blob: 9bb71fcadd0f76387ce2cf48e4dde2f395dbdf2d [file] [log] [blame]
Joey Armstrongad7bd3f2023-10-02 16:55:59 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrongdc04c932024-04-01 12:14:21 -04003# Copyright 2017-2024 Open Networking Foundation Contributors
Joey Armstrongad7bd3f2023-10-02 16:55:59 -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 Armstrongad7bd3f2023-10-02 16:55:59 -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: 2017-2024 Open Networking Foundation Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
20# Intent:
21# -----------------------------------------------------------------------
Joey Armstrongad7bd3f2023-10-02 16:55:59 -040022
Joey Armstrong6fdded62023-11-30 12:47:50 -050023$(if $(DEBUG),$(eval LINT_DOC8_DEBUG=1))
24
25$(if $(LINT_DOC8_DEBUG),$(warning ENTER))
26
Joey Armstrongad7bd3f2023-10-02 16:55:59 -040027##-------------------##
28##---] GLOBALS [---##
29##-------------------##
30.PHONY: lint-doc8 lint-doc8-all lint-doc8-modified
31
32have-doc8-files := $(if $(strip $(DOC8_SOURCE)),true)
33DOC8_SOURCE ?= $(error DOC8_SOURCE= is required)
34
35# -----------------------------------------------------------------------
36# Well that is annoying. Cannot pass two --config switches, doc8 will
37# use only one. Repos have more special exclusions so pass onf-make
38# doc8 config as command line args so local makefiles to use --config
39# -----------------------------------------------------------------------
40# lint-doc8-args += --config $(ONF_MAKEDIR)/lint/doc8/doc8.ini
41
42## -----------------------------------------------------------------------
43## -----------------------------------------------------------------------
44ifndef NO-LINT-DOC8
45 lint-doc8-mode := $(if $(have-doc8-files),mod,all)
46 lint : lint-doc8-$(lint-doc8-mode)
47endif# NO-LINT-DOC8
48
49## -----------------------------------------------------------------------
50# Support consistent lint target names across makefiles
51# Clone logic makefiles/lint/shellcheck/shellcheck.mk deps
52# *-{mod, src} targets and exclusiosn.
53## -----------------------------------------------------------------------
54lint-doc8-all : lint-doc8
55lint-doc8-mod : lint-doc8
56lint-doc8-src : lint-doc8
57
58## -----------------------------------------------------------------------
Joey Armstrong6fdded62023-11-30 12:47:50 -050059## Intent: Morph exclusion strings into command line arguments.
60## NOTE: Do not double-quote argument: -ignore-path "$(dir)"
61## Single quotes surrounding exclusion strings added in doc8/excl.mk
62## will become part of exclusion string and fail pattern matching.
Joey Armstrongad7bd3f2023-10-02 16:55:59 -040063## -----------------------------------------------------------------------
Joey Armstrong6fdded62023-11-30 12:47:50 -050064## [TODO] - move lint-doc8-excl into doc8.ini (autogenerate)
65## -----------------------------------------------------------------------
66lint-doc8-excl := $(strip \
67 $(foreach dir,$(onf-excl-dirs) $(lint-doc8-excl-raw),\
68 $(if $(LINT_DOC8_DEBUG),$(info ** linux-doc8-excl += [$(dir)]))\
69 --ignore-path $(dir))\
70)
71
72## -----------------------------------------------------------------------
73## Usage: make lint-doc8 LINT_DOC8_DEBUG=1
74## -----------------------------------------------------------------------
Joey Armstrongad7bd3f2023-10-02 16:55:59 -040075lint-doc8: lint-doc8-cmd-version
76
77 $(call banner-enter,Target $@)
78 $(activate) && doc8 $(lint-doc8-excl) $(lint-doc8-args)
79 $(call banner-enter,Target $@)
80
Joey Armstrong6fdded62023-11-30 12:47:50 -050081$(if $(LINT_DOC8_DEBUG),$(warning LEAVE))
82
Joey Armstrongad7bd3f2023-10-02 16:55:59 -040083# [EOF]