blob: 628073550db12fbc5bdae1cacea855a1298f1e5b [file] [log] [blame]
Joey Armstrong0205d332023-04-11 17:29:23 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrong7d51e8a2023-12-09 11:58:42 -05003# Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
Joey Armstrong0205d332023-04-11 17:29:23 -04004#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
Joey Armstrong7ad5c362023-07-09 19:10:16 -040015# limitations under the License.
Joey Armstrong686d3b92023-09-15 17:59:59 -040016# -----------------------------------------------------------------------
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050017# SPDX-FileCopyrightText: 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
Joey Armstrong7ad5c362023-07-09 19:10:16 -040018# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
Joey Armstronga6890342023-06-01 17:07:51 -040020
Joey Armstrong0205d332023-04-11 17:29:23 -040021$(if $(DEBUG),$(warning ENTER))
22
Joey Armstronga8205c22023-10-18 13:35:16 -040023##-------------------##
24##---] GLOBALS [---##
25##-------------------##
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050026# DEBUG := 1
27# DEBUG-onf-mk-paths := 1
Joey Armstronga8205c22023-10-18 13:35:16 -040028
Joey Armstrong7ad5c362023-07-09 19:10:16 -040029## -----------------------------------------------------------------------
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050030## [LOADER] Define path vars based on library include directory
Joey Armstrong7ad5c362023-07-09 19:10:16 -040031## -----------------------------------------------------------------------
Joey Armstrong62ae1392024-03-17 20:49:30 -040032sandbox-root := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))
33sandbox-root := $(patsubst %/,%,$(sandbox-root))
34
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050035$(foreach makefile,$(lastword $(MAKEFILE_LIST)),\
36 $(foreach makedir,$(abspath $(dir $(makefile))),\
37 $(eval include $(makedir)/library-makefiles.mk)\
38))
Joey Armstrong0205d332023-04-11 17:29:23 -040039
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050040$(call gen-mk-paths,onf-mk) # [ALSO] $(call gen-mk-include,onf-mk)
41
42## Missing required vars are fatal
43onf-mk-dir ?= $(error onf-mk-dir= is required)
44onf-mk-top ?= $(error onf-mk-top= is required)
45onf-mk-tmp := $(onf-mk-top)/tmp
46
47ONF_MAKEDIR := $(onf-mk-dir)# # TODO: Deprecate ONF_MAKEDIR and MAKEDIR
Joey Armstrong0205d332023-04-11 17:29:23 -040048
Joey Armstronga2db6cd2023-11-30 12:16:18 -050049#--------------------##
Joey Armstronga8205c22023-10-18 13:35:16 -040050##---] INCLUDES [---##
51##--------------------##
Joey Armstrong216b04b2023-09-29 16:31:19 -040052include $(ONF_MAKEDIR)/lint/make/warn-undef-vars.mk # target lint-make helper
53
Joey Armstrong7ad5c362023-07-09 19:10:16 -040054include $(ONF_MAKEDIR)/consts.mk
55include $(ONF_MAKEDIR)/help/include.mk # render target help
56include $(ONF_MAKEDIR)/utils/include.mk # dependency-less helper macros
57include $(ONF_MAKEDIR)/etc/include.mk # banner macros
Joey Armstrong42f4ce62023-06-09 12:56:48 -040058
Joey Armstronge6a99912023-09-15 14:47:51 -040059include $(ONF_MAKEDIR)/virtualenv/include.mk# # python, lint, JJB dependency
Joey Armstrongf128de82023-09-08 17:05:18 -040060# include $(ONF_MAKEDIR)/patches/include.mk# # Patch when python 3.10+ in use
Joey Armstrongdf238722024-03-28 15:57:52 -040061
62include $(ONF_MAKEDIR)/commands/include.mk # Tools and local installers
Joey Armstrong7ad5c362023-07-09 19:10:16 -040063include $(ONF_MAKEDIR)/lint/include.mk
Joey Armstrong0205d332023-04-11 17:29:23 -040064
Joey Armstrong7ad5c362023-07-09 19:10:16 -040065include $(ONF_MAKEDIR)/gerrit/include.mk
66include $(ONF_MAKEDIR)/git/include.mk
67include $(ONF_MAKEDIR)/jjb/include.mk
Joey Armstrong0205d332023-04-11 17:29:23 -040068
Joey Armstrong7ad5c362023-07-09 19:10:16 -040069$(if $(USE-VOLTHA-RELEASE-MK),\
70 $(eval include $(ONF_MAKEDIR)/release/include.mk))
Joey Armstronga6890342023-06-01 17:07:51 -040071
Joey Armstrong7ad5c362023-07-09 19:10:16 -040072include $(ONF_MAKEDIR)/todo.mk
73include $(ONF_MAKEDIR)/help/variables.mk
Joey Armstrongd26858f2023-07-08 15:52:16 -040074
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050075##------------------------------------##
76##---] Languages & Interpreters [---##
77##------------------------------------##
Joey Armstrongcacdaa02024-02-08 16:40:55 -050078# [TODO] $(if $(golang-mode),$(eval include))
79include $(ONF_MAKEDIR)/golang/include.mk
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050080
Joey Armstrong7ad5c362023-07-09 19:10:16 -040081##---------------------##
82##---] ON_DEMAND [---##
83##---------------------##
84$(if $(USE-ONF-GERRIT-MK),$(eval include $(ONF_MAKEDIR)/gerrit/include.mk))
85$(if $(USE-ONF-DOCKER-MK),$(eval include $(ONF_MAKEDIR)/docker/include.mk))
Joey Armstrongd26858f2023-07-08 15:52:16 -040086
Joey Armstrong7ad5c362023-07-09 19:10:16 -040087##-------------------##
88##---] TARGETS [---##
89##-------------------##
90include $(ONF_MAKEDIR)/targets/include.mk # clean, sterile
Joey Armstrong0205d332023-04-11 17:29:23 -040091
Joey Armstronga2db6cd2023-11-30 12:16:18 -050092## Display make help text late
93include $(ONF_MAKEDIR)/help/trailer.mk
94
Joey Armstrong0205d332023-04-11 17:29:23 -040095$(if $(DEBUG),$(warning LEAVE))
96
Joey Armstrong62ae1392024-03-17 20:49:30 -040097## -----------------------------------------------------------------------
98## [VARS]
99## sandbox-root Path to top level directory containing [mM]akefile
100##
101## onf-mk-top Path to makefiles/ containing onf-make/ and local/
102## onf-mk-tmp Limited scratch area for repo:onf-make use
103##
104## [DEPRECATE]
105## ONF_MAKEDIR Replace with onf-mk-top/ {onf-mk}
106## MAKEDIR Replace with onf-mk-top/ {local}
107## -----------------------------------------------------------------------
Joey Armstrong0205d332023-04-11 17:29:23 -0400108# [EOF]