blob: 41a809332feefcb32db55b625cf2c30038c05be4 [file] [log] [blame]
Joey Armstrongb3a06412023-02-06 09:58:58 -05001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrong518f3572024-02-11 07:56:25 -05003# Copyright 2023-2024 Open Networking Foundation (ONF) and the ONF Contributors
Joey Armstrongb3a06412023-02-06 09:58:58 -05004#
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# -----------------------------------------------------------------------
Joey Armstrongdd334492023-07-09 17:59:02 -040017# https://gerrit.opencord.org/plugins/gitiles/onf-make
18# ONF.makefiles.include.version = 1.1
Joey Armstrong4960ec92023-07-19 09:04:20 -040019# ONF.confg.mk = 1.5
Joey Armstrongdd334492023-07-09 17:59:02 -040020# -----------------------------------------------------------------------
21
22--repo-name-- := ci-management
23--repo-name-- ?= $(error --repo-name--= is required)
Joey Armstrongb3a06412023-02-06 09:58:58 -050024
25##--------------------------------##
26##---] Disable lint targets [---##
27##--------------------------------##
Joey Armstrong4960ec92023-07-19 09:04:20 -040028# NO-LINT-DOC8 := true
29# NO-LINT-GOLANG := true
Joey Armstrongdd334492023-07-09 17:59:02 -040030NO-LINT-GROOVY := true# # Note[1]
31# NO-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# # Note[1]
Joey Armstrong4960ec92023-07-19 09:04:20 -040037# NO-LINT-TOX := true# # Note[1]
Joey Armstrongdd334492023-07-09 17:59:02 -040038NO-LINT-YAML := true# # Note[1]
Joey Armstrong980e37f2023-02-28 18:57:41 -050039
Joey Armstrong4960ec92023-07-19 09:04:20 -040040# NO-LINT-FLAKE8 := true# # Note[1]
Joey Armstrongdd334492023-07-09 17:59:02 -040041NO-LINT-PYTHON := true# # Note[1]
42# NO-LINT-PYLINT := true# # Note[1]
Joey Armstrongdd334492023-07-09 17:59:02 -040043
44# Note[1] - A boatload of source to cleanup prior to enable.
45# Note[2] - No sources available
46
47##---------------------------------##
48##---] Conditional make logic [---##
49##---------------------------------##
50# USE-ONF-DOCKER-MK := true
51# USE-ONF-GERRIT-MK := true
52# USE-ONF-GIT-MK := true
53USE-ONF-JJB-MK := true
54# USE-VOLTHA-RELEASE-MK := true
55
56##----------------------##
57##---] Debug Mode [---##
58##----------------------##
59# export DEBUG := 1 # makefile debug
60# export DISTUTILS_DEBUG := 1 # verbose: pip
61# export DOCKER_DEBUG := 1 # verbose: docker
62# export VERBOSE := 1 # makefile debug
63
64##-----------------------------------##
65##---] JJB/Jenkins Job Builder [---##
66##-----------------------------------##
Joey Armstrong29874122023-09-21 12:34:34 -040067JJB_VERSION ?= 3.2.0 # lint-from: jjb/ci-management/ci-management.yaml
Joey Armstrongdd334492023-07-09 17:59:02 -040068JOBCONFIG_DIR ?= job-configs
69
70##---------------------------------##
71##---] Filesystem exclusions [---##
72##---------------------------------##
73onf-excl-dirs := $(null) # make clean: dirs=
74onf-excl-dirs += .venv# # $(venv-name)
75onf-excl-dirs += vendor# # golang / voltha*-go
76onf-excl-dirs += patches# # voltha docs - python upgrade
77onf-excl-dirs += .tox # also a python dependency
78
Joey Armstrong4960ec92023-07-19 09:04:20 -040079ifeq ($(--repo-name--),voltha-docs)
80 lint-doc8-excl += '_build'
81endif
82
Joey Armstrongdd334492023-07-09 17:59:02 -040083onf-excl-dirs ?= $(error onf-excl-dirs= is required)
84
85##-----------------------------##
86##---] Feature Detection [---##
87##-----------------------------##
88# [TODO] include makefiles/features/include.mk
89# [TODO] All logic below can migrate there.
90
91$(if $(filter %ci-management,$(--repo-name--)),\
92 $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
93)
Joey Armstrong4960ec92023-07-19 09:04:20 -040094$(if $(filter %voltha-docs,$(--repo-name--)),\
95 $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
96)
Joey Armstrongdd334492023-07-09 17:59:02 -040097
98# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
99# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
100
101##-------------------------##
102##---] Derived Flags [---##
103##-------------------------##
104ifdef --REPO-IS-CI-MANAGEMENT--
105 USE-ONF-JJB := true
106
107 onf-excl-dirs += global-jjb
108 onf-excl-dirs += lf-ansible
109 onf-excl-dirs += packer
110endif
111
Joey Armstrong4960ec92023-07-19 09:04:20 -0400112ifdef --REPO-IS-VOLTHA-DOCS--
113 onf-excl-dirs += _build
114 onf-excl-dirs += repos
115endif
116
Joey Armstrongdd334492023-07-09 17:59:02 -0400117ifdef NO-LINT-PYTHON
118 NO-LINT-FLAKE8 := true
119 NO-LINT-PYLINT := true
120endif
121
122ifndef USE-ONF-JJB
123 NO-LINT-JJB := true
124endif
125
126onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
Joey Armstrongb3a06412023-02-06 09:58:58 -0500127
Joey Armstrong7ba23ac2023-08-29 15:21:53 -0400128# --------------------------------------------------------------------
129# Repository specific values
130# --------------------------------------------------------------------
131sterile-dirs += archives
132
133# submodules
134# sterile-dirs += global-jjb
135# sterile-dirs += lf-ansible
136# sterile-dirs += packer
137
Joey Armstrong4960ec92023-07-19 09:04:20 -0400138# [TODO]#
139# --------------------------------------------------------------------
140# o two distinct makefiles/ directories are needed, one for onf-make
141# o second for repository specific makefile configs and logic.
142# o Two independent vars specify path:
143# ONF_MAKEDIR = library makefiles
144# MAKEDIR = repository specific content
145# o Conditional repository testing above can crush down all the
146# "if-this-repository-is-X-do-Y' logic above intoL
147# include $(MAKEDIR)/config.mk # repo:$(--repo-name--)
148# --------------------------------------------------------------------
149
Joey Armstrongb3a06412023-02-06 09:58:58 -0500150# [EOF]