blob: 3bfe1586a64dedf228801373bc753c52d34c984f [file] [log] [blame]
Joey Armstrong96bcf1b2023-06-27 14:49:40 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
3# Copyright 2023 Open Networking Foundation (ONF) and the ONF Contributors
4#
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
15# limitations under the License.
16# -----------------------------------------------------------------------
17# https://gerrit.opencord.org/plugins/gitiles/onf-make
18# ONF.makefiles.include.version = 1.1
19# ONF.confg.mk = 1.6
20# -----------------------------------------------------------------------
21
22--repo-name-- := bbsim
23--repo-name-- ?= $(error --repo-name--= is required)
24
25##--------------------------------##
26##---] Disable lint targets [---##
27##--------------------------------##
28NO-LINT-DOC8 := true
29# NO-LINT-GOLANG := true
30NO-LINT-GROOVY := true# # Note[1]
31NO-LINT-JJB := true# # Note[2]
32# NO-LINT-JSON := true# # Note[1]
33NO-LINT-MAKEFILE := true# # Note[1]
34NO-LINT-REUSE := true # License check
35NO-LINT-ROBOT := true#
36NO-LINT-SHELL := true# # Legacy syntax: update makefiles/lint then delete
37NO-LINT-SHELLCHECK := true# # Note[1]
38NO-LINT-TOX := true# # Note[1]
39NO-LINT-YAML := true# # Note[1]
40
41# NO-LINT-FLAKE8 := true# # Note[1]
42NO-LINT-PYTHON := true# # Note[1]
43# NO-LINT-PYLINT := true# # Note[1]
44
45# Note[1] - A boatload of source to cleanup prior to enable.
46# Note[2] - No sources available
47
48##---------------------------------##
49##---] Conditional make logic [---##
50##---------------------------------##
51# USE-ONF-DOCKER-MK := true
52# USE-ONF-GERRIT-MK := true
53# USE-ONF-GIT-MK := true
54# USE-ONF-JJB-MK := true
55# USE-VOLTHA-RELEASE-MK := true
56
57##----------------------##
58##---] Debug Mode [---##
59##----------------------##
60# export DEBUG := 1 # makefile debug
61# export DISTUTILS_DEBUG := 1 # verbose: pip
62# export DOCKER_DEBUG := 1 # verbose: docker
63# export VERBOSE := 1 # makefile debug
64
65##-----------------------------------##
66##---] JJB/Jenkins Job Builder [---##
67##-----------------------------------##
68JJB_VERSION ?= 2.8.0
69JOBCONFIG_DIR ?= job-configs
70
71##---------------------------------##
72##---] Filesystem exclusions [---##
73##---------------------------------##
74onf-excl-dirs := $(null) # make clean: dirs=
75onf-excl-dirs += .venv# # $(venv-name)
76onf-excl-dirs += vendor# # golang / voltha*-go
77onf-excl-dirs += patches# # voltha docs - python upgrade
78onf-excl-dirs += .tox # also a python dependency
79
80ifeq ($(--repo-name--),voltha-docs)
81 lint-doc8-excl += '_build'
82endif
83
84onf-excl-dirs ?= $(error onf-excl-dirs= is required)
85
86##-----------------------------##
87##---] Feature Detection [---##
88##-----------------------------##
89# [TODO] include makefiles/features/include.mk
90# [TODO] All logic below can migrate there.
91
92$(if $(filter %ci-management,$(--repo-name--)),\
93 $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
94)
95$(if $(filter %voltha-docs,$(--repo-name--)),\
96 $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
97)
98
99# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
100# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
101
102##-------------------------##
103##---] Derived Flags [---##
104##-------------------------##
105ifdef --REPO-IS-CI-MANAGEMENT--
106 USE-ONF-JJB := true
107
108 onf-excl-dirs += global-jjb
109 onf-excl-dirs += lf-ansible
110 onf-excl-dirs += packer
111endif
112
113ifdef --REPO-IS-VOLTHA-DOCS--
114 onf-excl-dirs += _build
115 onf-excl-dirs += repos
116endif
117
118ifdef NO-LINT-PYTHON
119 NO-LINT-FLAKE8 := true
120 NO-LINT-PYLINT := true
121endif
122
123ifndef USE-ONF-JJB
124 NO-LINT-JJB := true
125endif
126
127onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
128
129# [TODO]#
130# --------------------------------------------------------------------
131# o two distinct makefiles/ directories are needed, one for onf-make
132# o second for repository specific makefile configs and logic.
133# o Two independent vars specify path:
134# ONF_MAKEDIR = library makefiles
135# MAKEDIR = repository specific content
136# o Conditional repository testing above can crush down all the
137# "if-this-repository-is-X-do-Y' logic above intoL
138# include $(MAKEDIR)/config.mk # repo:$(--repo-name--)
139# --------------------------------------------------------------------
140
141# [EOF]