| # -*- makefile -*- |
| # ----------------------------------------------------------------------- |
| # Copyright 2017-2022 Open Networking Foundation |
| # |
| # 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. |
| # ----------------------------------------------------------------------- |
| |
| $(if $(DEBUG),$(eval LINT_DOC8_DEBUG=1)) |
| |
| $(if $(LINT_DOC8_DEBUG),$(warning ENTER)) |
| |
| ##-------------------## |
| ##---] GLOBALS [---## |
| ##-------------------## |
| .PHONY: lint-doc8 lint-doc8-all lint-doc8-modified |
| |
| have-doc8-files := $(if $(strip $(DOC8_SOURCE)),true) |
| DOC8_SOURCE ?= $(error DOC8_SOURCE= is required) |
| |
| # ----------------------------------------------------------------------- |
| # Well that is annoying. Cannot pass two --config switches, doc8 will |
| # use only one. Repos have more special exclusions so pass onf-make |
| # doc8 config as command line args so local makefiles to use --config |
| # ----------------------------------------------------------------------- |
| # lint-doc8-args += --config $(ONF_MAKEDIR)/lint/doc8/doc8.ini |
| |
| ## ----------------------------------------------------------------------- |
| ## ----------------------------------------------------------------------- |
| ifndef NO-LINT-DOC8 |
| lint-doc8-mode := $(if $(have-doc8-files),mod,all) |
| lint : lint-doc8-$(lint-doc8-mode) |
| endif# NO-LINT-DOC8 |
| |
| ## ----------------------------------------------------------------------- |
| # Support consistent lint target names across makefiles |
| # Clone logic makefiles/lint/shellcheck/shellcheck.mk deps |
| # *-{mod, src} targets and exclusiosn. |
| ## ----------------------------------------------------------------------- |
| lint-doc8-all : lint-doc8 |
| lint-doc8-mod : lint-doc8 |
| lint-doc8-src : lint-doc8 |
| |
| ## ----------------------------------------------------------------------- |
| ## Intent: Morph exclusion strings into command line arguments. |
| ## NOTE: Do not double-quote argument: -ignore-path "$(dir)" |
| ## Single quotes surrounding exclusion strings added in doc8/excl.mk |
| ## will become part of exclusion string and fail pattern matching. |
| ## ----------------------------------------------------------------------- |
| ## [TODO] - move lint-doc8-excl into doc8.ini (autogenerate) |
| ## ----------------------------------------------------------------------- |
| lint-doc8-excl := $(strip \ |
| $(foreach dir,$(onf-excl-dirs) $(lint-doc8-excl-raw),\ |
| $(if $(LINT_DOC8_DEBUG),$(info ** linux-doc8-excl += [$(dir)]))\ |
| --ignore-path $(dir))\ |
| ) |
| |
| ## ----------------------------------------------------------------------- |
| ## Usage: make lint-doc8 LINT_DOC8_DEBUG=1 |
| ## ----------------------------------------------------------------------- |
| lint-doc8: lint-doc8-cmd-version |
| |
| $(call banner-enter,Target $@) |
| $(activate) && doc8 $(lint-doc8-excl) $(lint-doc8-args) |
| $(call banner-enter,Target $@) |
| |
| $(if $(LINT_DOC8_DEBUG),$(warning LEAVE)) |
| |
| # [EOF] |