blob: d11f8a62fbafec9f31736097efdfd6727ef4ebd8 [file] [log] [blame]
Joey Armstrong0205d332023-04-11 17:29:23 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrongdc04c932024-04-01 12:14:21 -04003# Copyright 2023--2024 Open Networking Foundation 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#
Joey Armstrongdc04c932024-04-01 12:14:21 -04009# http:#www.apache.org/licenses/LICENSE-2.0
Joey Armstrong0205d332023-04-11 17:29:23 -040010#
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 Armstrongdc04c932024-04-01 12:14:21 -040017# SPDX-FileCopyrightText: 2023--2024 Open Networking Foundation Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
20# Intent:
Joey Armstrong7ad5c362023-07-09 19:10:16 -040021# -----------------------------------------------------------------------
22
Joey Armstronga8205c22023-10-18 13:35:16 -040023--repo-name-- := onf-make
Joey Armstrong7ad5c362023-07-09 19:10:16 -040024--repo-name-- ?= $(error --repo-name--= is required)
Joey Armstrong0205d332023-04-11 17:29:23 -040025
26##--------------------------------##
27##---] Disable lint targets [---##
28##--------------------------------##
Joey Armstrongf128de82023-09-08 17:05:18 -040029# NO-LINT-DOC8 := true
Joey Armstrongccab2cf2024-04-06 18:00:59 -040030# USE_DOC8_INI := true
Joey Armstrongf128de82023-09-08 17:05:18 -040031# NO-LINT-GOLANG := true
Joey Armstrong7ad5c362023-07-09 19:10:16 -040032# NO-LINT-GROOVY := true# # Note[1]
33# NO-LINT-JJB := true# # Note[2]
34# NO-LINT-JSON := true# # Note[1]
35# NO-LINT-MAKEFILE := true# # Note[1]
36# NO-LINT-REUSE := true # License check
Joey Armstrongf128de82023-09-08 17:05:18 -040037# NO-LINT-ROBOT := true
Joey Armstrong7ad5c362023-07-09 19:10:16 -040038# NO-LINT-SHELL := true# # Note[1]
39# NO-LINT-YAML := true# # Note[1]
Joey Armstrong0205d332023-04-11 17:29:23 -040040
Joey Armstrongf128de82023-09-08 17:05:18 -040041# NO-LINT-FLAKE8 := true# # Note[1]
Joey Armstrong7ad5c362023-07-09 19:10:16 -040042# NO-LINT-PYTHON := true# # Note[1]
43# NO-LINT-PYLINT := true# # Note[1]
Joey Armstrong7ad5c362023-07-09 19:10:16 -040044
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=
Joey Armstrongccab2cf2024-04-06 18:00:59 -040075onf-excl-dirs += lf/onf-make # repo:onf-make git submodule
Joey Armstrong7ad5c362023-07-09 19:10:16 -040076onf-excl-dirs += .venv# # $(venv-name)
Joey Armstrong7ad5c362023-07-09 19:10:16 -040077onf-excl-dirs += patches# # voltha docs - python upgrade
Joey Armstrongccab2cf2024-04-06 18:00:59 -040078onf-excl-dirs += .tmp #
Joey Armstrong7ad5c362023-07-09 19:10:16 -040079onf-excl-dirs += .tox # also a python dependency
Joey Armstrongccab2cf2024-04-06 18:00:59 -040080# onf-excl-dirs += vendor# # golang / voltha*-go -- local exclude
81
82# [NOTE] Add exclusions: lint/doc8/doc8.incl
Joey Armstrong7ad5c362023-07-09 19:10:16 -040083
Joey Armstrongf128de82023-09-08 17:05:18 -040084ifeq ($(--repo-name--),voltha-docs)
Joey Armstronga8205c22023-10-18 13:35:16 -040085 lint-doc8-excl += '_build' # TODO: deprecate
Joey Armstrongf128de82023-09-08 17:05:18 -040086endif
87
Joey Armstrong7ad5c362023-07-09 19:10:16 -040088onf-excl-dirs ?= $(error onf-excl-dirs= is required)
89
90##-----------------------------##
91##---] Feature Detection [---##
92##-----------------------------##
93# [TODO] include makefiles/features/include.mk
94# [TODO] All logic below can migrate there.
95
96$(if $(filter %ci-management,$(--repo-name--)),\
97 $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
98)
Joey Armstronga8205c22023-10-18 13:35:16 -040099
Joey Armstrongf128de82023-09-08 17:05:18 -0400100$(if $(filter %voltha-docs,$(--repo-name--)),\
101 $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
102)
Joey Armstrong7ad5c362023-07-09 19:10:16 -0400103
104# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
105# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
106
107##-------------------------##
108##---] Derived Flags [---##
109##-------------------------##
110ifdef --REPO-IS-CI-MANAGEMENT--
111 USE-ONF-JJB := true
112
113 onf-excl-dirs += global-jjb
114 onf-excl-dirs += lf-ansible
115 onf-excl-dirs += packer
116endif
117
Joey Armstrongf128de82023-09-08 17:05:18 -0400118ifdef --REPO-IS-VOLTHA-DOCS--
119 onf-excl-dirs += _build
120 onf-excl-dirs += repos
121endif
122
Joey Armstrong7ad5c362023-07-09 19:10:16 -0400123ifdef NO-LINT-PYTHON
124 NO-LINT-FLAKE8 := true
125 NO-LINT-PYLINT := true
126endif
127
128ifndef USE-ONF-JJB
129 NO-LINT-JJB := true
130endif
131
132onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
Joey Armstronga6890342023-06-01 17:07:51 -0400133
Joey Armstrongf128de82023-09-08 17:05:18 -0400134# --------------------------------------------------------------------
135# Repository specific values
136# --------------------------------------------------------------------
137# sterile-dirs += archives
Joey Armstrong7805bbd2023-07-07 08:37:04 -0400138
Joey Armstrong0205d332023-04-11 17:29:23 -0400139# [EOF]