blob: ddcc85744cfaed79e2703bc99c206f7751189a29 [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)
Joey Armstronga5325392024-04-02 13:22:12 -040045onf-mk-tmp := $(onf-mk-top)/tmp# # TODO: Replace with lf-mk-tmp
46
47# per-repository paths: mirror repo:onf-make
48local-mk-top := $(onf-mk-top)
49local-mk-dir := $(dir $(onf-mk-dir))local
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050050
51ONF_MAKEDIR := $(onf-mk-dir)# # TODO: Deprecate ONF_MAKEDIR and MAKEDIR
Joey Armstrong0205d332023-04-11 17:29:23 -040052
Joey Armstronga2db6cd2023-11-30 12:16:18 -050053#--------------------##
Joey Armstronga8205c22023-10-18 13:35:16 -040054##---] INCLUDES [---##
55##--------------------##
Joey Armstronga5325392024-04-02 13:22:12 -040056include $(onf-mk-dir)/lint/make/warn-undef-vars.mk # target lint-make helper
Joey Armstrong216b04b2023-09-29 16:31:19 -040057
Joey Armstronga5325392024-04-02 13:22:12 -040058include $(onf-mk-dir)/consts.mk
59include $(onf-mk-dir)/help/include.mk # render target help
60include $(onf-mk-dir)/utils/include.mk # dependency-less helper macros
61include $(onf-mk-dir)/etc/include.mk # banner macros
62include $(onf-mk-dir)/main/include.mk # tempdir
Joey Armstrong42f4ce62023-06-09 12:56:48 -040063
Joey Armstronga5325392024-04-02 13:22:12 -040064include $(onf-mk-dir)/virtualenv/include.mk# # python, lint, JJB dependency
65# include $(onf-mk-dir)/patches/include.mk# # Patch when python 3.10+ in use
Joey Armstrongdf238722024-03-28 15:57:52 -040066
Joey Armstronga5325392024-04-02 13:22:12 -040067include $(onf-mk-dir)/commands/include.mk # Tools and local installers
68include $(onf-mk-dir)/lint/include.mk
Joey Armstrong0205d332023-04-11 17:29:23 -040069
Joey Armstronga5325392024-04-02 13:22:12 -040070include $(onf-mk-dir)/gerrit/include.mk
71include $(onf-mk-dir)/git/include.mk
72include $(onf-mk-dir)/jjb/include.mk
Joey Armstrong0205d332023-04-11 17:29:23 -040073
Joey Armstrong7ad5c362023-07-09 19:10:16 -040074$(if $(USE-VOLTHA-RELEASE-MK),\
Joey Armstronga5325392024-04-02 13:22:12 -040075 $(eval include $(onf-mk-dir)/release/include.mk))
Joey Armstronga6890342023-06-01 17:07:51 -040076
Joey Armstronga5325392024-04-02 13:22:12 -040077include $(onf-mk-dir)/todo.mk
78include $(onf-mk-dir)/help/variables.mk
Joey Armstrongd26858f2023-07-08 15:52:16 -040079
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050080##------------------------------------##
81##---] Languages & Interpreters [---##
82##------------------------------------##
Joey Armstrongcacdaa02024-02-08 16:40:55 -050083# [TODO] $(if $(golang-mode),$(eval include))
Joey Armstronga5325392024-04-02 13:22:12 -040084include $(onf-mk-dir)/golang/include.mk
Joey Armstrong7d51e8a2023-12-09 11:58:42 -050085
Joey Armstrong7ad5c362023-07-09 19:10:16 -040086##---------------------##
87##---] ON_DEMAND [---##
88##---------------------##
Joey Armstronga5325392024-04-02 13:22:12 -040089$(if $(USE-ONF-GERRIT-MK),$(eval include $(onf-mk-dir)/gerrit/include.mk))
90$(if $(USE-ONF-DOCKER-MK),$(eval include $(onf-mk-dir)/docker/include.mk))
Joey Armstrongd26858f2023-07-08 15:52:16 -040091
Joey Armstrong7ad5c362023-07-09 19:10:16 -040092##-------------------##
93##---] TARGETS [---##
94##-------------------##
Joey Armstronga5325392024-04-02 13:22:12 -040095include $(onf-mk-dir)/targets/include.mk # clean, sterile
Joey Armstrong0205d332023-04-11 17:29:23 -040096
Joey Armstronga2db6cd2023-11-30 12:16:18 -050097## Display make help text late
Joey Armstronga5325392024-04-02 13:22:12 -040098include $(onf-mk-dir)/help/trailer.mk
Joey Armstronga2db6cd2023-11-30 12:16:18 -050099
Joey Armstrong0205d332023-04-11 17:29:23 -0400100$(if $(DEBUG),$(warning LEAVE))
101
Joey Armstrong62ae1392024-03-17 20:49:30 -0400102## -----------------------------------------------------------------------
103## [VARS]
104## sandbox-root Path to top level directory containing [mM]akefile
105##
106## onf-mk-top Path to makefiles/ containing onf-make/ and local/
107## onf-mk-tmp Limited scratch area for repo:onf-make use
108##
109## [DEPRECATE]
110## ONF_MAKEDIR Replace with onf-mk-top/ {onf-mk}
111## MAKEDIR Replace with onf-mk-top/ {local}
112## -----------------------------------------------------------------------
Joey Armstrong0205d332023-04-11 17:29:23 -0400113# [EOF]