blob: fc5d5a20f8f93900f644c94730b7966c9c2cf0dc [file] [log] [blame]
# -*- makefile -*-
# -----------------------------------------------------------------------
# Copyright 2023-2024 Open Networking Foundation Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------
# SPDX-FileCopyrightText: 2023-2024 Open Networking Foundation Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
# [NOTE] All of these conditionals and logic can be removed if makefile
# logic transitions from static to dynamic detection (by file extension).
# See detect.mk for an early implementation.
# -----------------------------------------------------------------------
--repo-name-- := onf-make
--repo-name-- ?= $(error --repo-name--= is required)
##--------------------------------##
##---] Disable lint targets [---##
##--------------------------------##
NO-LINT-DOC8 := true
# USE_DOC8_INI := true
# NO-LINT-GOLANG := true
NO-LINT-GROOVY := true# # Note[1]
NO-LINT-JJB := true# # Note[2]
NO-LINT-JSON := true# # Note[1]
NO-LINT-MAKEFILE := true# # Note[1]
NO-LINT-REUSE := true # License check
NO-LINT-ROBOT := true
# NO-LINT-SHELL := true# # Note[1]
NO-LINT-YAML := true# # Note[1]
# NO-LINT-FLAKE8 := true# # Note[1]
NO-LINT-PYTHON := true# # Note[1]
# NO-LINT-PYLINT := true# # Note[1]
# Note[1] - A boatload of source to cleanup prior to enable.
# Note[2] - No sources available
##---------------------------------##
##---] Conditional make logic [---##
##---------------------------------##
# USE-ONF-DOCKER-MK := true
# USE-ONF-GERRIT-MK := true
# USE-ONF-GIT-MK := true
# USE-ONF-JJB-MK := true
# USE-VOLTHA-RELEASE-MK := true
##----------------------##
##---] Debug Mode [---##
##----------------------##
# export DEBUG := 1 # makefile debug
# export DISTUTILS_DEBUG := 1 # verbose: pip
# export DOCKER_DEBUG := 1 # verbose: docker
# export VERBOSE := 1 # makefile debug
##-----------------------------------##
##---] JJB/Jenkins Job Builder [---##
##-----------------------------------##
JJB_VERSION ?= 2.8.0
JOBCONFIG_DIR ?= job-configs
##---------------------------------##
##---] Filesystem exclusions [---##
##---------------------------------##
onf-excl-dirs := $(null) # make clean: dirs=
onf-excl-dirs += lf/onf-make # repo:onf-make git submodule
onf-excl-dirs += .venv# # $(venv-name)
onf-excl-dirs += patches# # voltha docs - python upgrade
onf-excl-dirs += .tmp #
onf-excl-dirs += .tox # also a python dependency
# onf-excl-dirs += vendor# # golang / voltha*-go -- local exclude
# [NOTE] Add exclusions: lint/doc8/doc8.incl
ifeq ($(--repo-name--),voltha-docs)
lint-doc8-excl += '_build' # TODO: deprecate
endif
onf-excl-dirs ?= $(error onf-excl-dirs= is required)
##-----------------------------##
##---] Feature Detection [---##
##-----------------------------##
# [TODO] include makefiles/features/include.mk
# [TODO] All logic below can migrate there.
$(if $(filter %ci-management,$(--repo-name--)),\
$(eval --REPO-IS-CI-MANAGEMENT-- := true)\
)
$(if $(filter %voltha-docs,$(--repo-name--)),\
$(eval --REPO-IS-VOLTHA-DOCS-- := true)\
)
# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
##-------------------------##
##---] Derived Flags [---##
##-------------------------##
ifdef --REPO-IS-CI-MANAGEMENT--
USE-ONF-JJB := true
onf-excl-dirs += global-jjb
onf-excl-dirs += lf-ansible
onf-excl-dirs += packer
endif
ifdef --REPO-IS-VOLTHA-DOCS--
onf-excl-dirs += _build
onf-excl-dirs += repos
endif
ifdef NO-LINT-PYTHON
NO-LINT-FLAKE8 := true
NO-LINT-PYLINT := true
endif
ifndef USE-ONF-JJB
NO-LINT-JJB := true
endif
onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
# --------------------------------------------------------------------
# Repository specific values
# --------------------------------------------------------------------
# sterile-dirs += archives
# [EOF]