progdocs: Update Makefile.

In developer mode, use internal documentation as well.
This should produce no warnings. Fix yours!

In noisy mode, output all possible warnings of Doxygen.
This creates zillion of warnings. Double-check your current module!

Any warnings are in the file './doxygen.log'. Beside that, this change
avoids deprecated parameters because the configuration file for Doxygen
contains only those parameters which differ from the default. This
avoids the need to update the file on each run. Furthermore, it adds
AST_VECTOR to be expanded. Finally, the default name for that file is
Doxyfile. Therefore, let us use that!

ASTERISK-26991
ASTERISK-20259

Change-Id: I4129092a199d5e24c319a09cd088614b121015af
This commit is contained in:
Alexander Traud 2021-11-23 15:05:55 +01:00
parent f6df28ce87
commit f3b29c6aa8
5 changed files with 112 additions and 1715 deletions

View File

@ -442,7 +442,7 @@ distclean: $(SUBDIRS_DIST_CLEAN) _clean
rm -f include/asterisk/autoconfig.h
rm -f include/asterisk/buildopts.h
rm -rf doc/api
rm -f doc/asterisk-ng-doxygen
rm -f doc/Doxyfile
rm -f build_tools/menuselect-deps
datafiles: _all $(CORE_XMLDOC)
@ -891,29 +891,30 @@ webvmail:
@echo " +-------------------------------------------+"
progdocs:
# Note, Makefile conditionals must not be tabbed out. Wasted hours with that.
@cp doc/asterisk-ng-doxygen.in doc/asterisk-ng-doxygen
ifeq ($(DOXYGEN),:)
@echo "Doxygen is not installed. Please install and re-run the configuration script."
else
@cp doc/Doxyfile.in doc/Doxyfile
ifeq ($(DOT),:)
@echo "DOT is not installed. Doxygen will not produce any diagrams. Please install and re-run the configuration script."
else
# Enable DOT
@echo "HAVE_DOT = YES" >> doc/asterisk-ng-doxygen
@echo "HAVE_DOT = YES" >> doc/Doxyfile
endif
# Set Doxygen PROJECT_NUMBER variable
ifneq ($(ASTERISKVERSION),UNKNOWN__and_probably_unsupported)
@echo "PROJECT_NUMBER = $(ASTERISKVERSION)" >> doc/asterisk-ng-doxygen
ifneq ($(NOISY_BUILD),yes)
@echo "EXTRACT_ALL = YES" >> doc/Doxyfile
endif
ifeq ($(AST_DEVMODE),yes)
@echo "INTERNAL_DOCS = YES" >> doc/Doxyfile
@echo "WARN_NO_PARAMDOC = YES" >> doc/Doxyfile
endif
ifeq ($(ASTERISKVERSION),UNKNOWN__and_probably_unsupported)
@echo "Asterisk Version is unknown, not configuring Doxygen PROJECT_NUMBER."
else
echo "Asterisk Version is unknown, not configuring Doxygen PROJECT_NUMBER."
@echo "PROJECT_NUMBER = $(ASTERISKVERSION)" >> doc/Doxyfile
endif
# Validate and auto-update local copy
@doxygen -u doc/asterisk-ng-doxygen
# Run Doxygen
@doxygen doc/asterisk-ng-doxygen
# Remove configuration backup file
@rm -f doc/asterisk-ng-doxygen.bak
@echo "Generating C-API documentation. This will take a while."
@doxygen doc/Doxyfile
@echo "Generation complete. Any warnings are in ./doxygen.log."
endif
install-logrotate:
@ -1154,6 +1155,7 @@ check-alembic: makeopts
.PHONY: uninstall-headers
.PHONY: badshell
.PHONY: installdirs
.PHONY: progdocs
.PHONY: validate-docs
.PHONY: _clean
.PHONY: ari-stubs

View File

@ -1,10 +0,0 @@
<HTML>
<HEAD>
<TITLE>Asterisk.org: Developer Documentation ($date)</TITLE>
<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<div><font size="2" align="right">$datetime</font></div>
<h2>Asterisk developer's documentation</h2>
<hr/>

2
doc/.gitignore vendored
View File

@ -2,4 +2,4 @@ core-en_US.xml
full-en_US.xml
rest-api
api
asterisk-ng-doxygen
Doxyfile

94
doc/Doxyfile.in Normal file
View File

@ -0,0 +1,94 @@
PROJECT_NAME = "Asterisk - The Open Source Telephony Project"
OUTPUT_DIRECTORY = doc
CREATE_SUBDIRS = YES
ABBREVIATE_BRIEF =
FULL_PATH_NAMES = NO # why? Default: YES
ALIASES = "extref=\xrefitem extref \"ExtRef\" \"External references\"" \
"AsteriskTrunkWarning=\note The information contained on this page may be out of date. To make sure you get the most current information, please make sure that you are using the documentation generated from Asterisk trunk."
OPTIMIZE_OUTPUT_FOR_C = YES
EXTRACT_STATIC = YES
HIDE_SCOPE_NAMES = YES # why? Default: NO
SORT_BRIEF_DOCS = YES
MAX_INITIALIZER_LINES = 5 # why? Default: 30
QUIET = YES
WARN_LOGFILE = doxygen.log
FILE_PATTERNS = *.c \
*.h \
*.py
RECURSIVE = YES
EXCLUDE = doc/api \
menuselect \
res/pjproject \
addons/ooh323c/src \
third-party
EXCLUDE_SYMLINKS = YES
EXCLUDE_PATTERNS = *.o \
*.o.d \
.*
EXAMPLE_PATH = . \
doc \
configs \
contrib
IMAGE_PATH = images
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = NO # why? default: YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
HTML_OUTPUT = api
HTML_TIMESTAMP = YES
GENERATE_LATEX = NO
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
INCLUDE_PATH = ./ \
include/ \
include/asterisk/
PREDEFINED = __GNUC__ \
__attribute__(x)=
EXPAND_AS_DEFINED = AST_INLINE_API \
AST_DECLARE_STRING_FIELDS \
AST_STRING_FIELD \
AST_THREADSTORAGE \
AST_THREADSTORAGE_CUSTOM \
AST_MODULE_INFO \
AST_MODULE_INFO_STANDARD \
__AST_MUTEX_DEFINE \
AST_MUTEX_DEFINE_STATIC \
AST_MUTEX_DEFINE_STATIC_NOTRACKING \
__AST_RWLOCK_DEFINE \
AST_RWLOCK_DEFINE_STATIC \
AST_LIST_HEAD \
AST_RWLIST_HEAD \
AST_LIST_HEAD_NOLOCK \
AST_LIST_HEAD_STATIC \
AST_RWLIST_HEAD_STATIC \
AST_LIST_HEAD_NOLOCK_STATIC \
AST_LIST_ENTRY \
AST_RWLIST_ENTRY \
__ASTOBJ_HASH \
ASTOBJ_COMPONENTS_NOLOCK_FULL \
ASTOBJ_COMPONENTS_NOLOCK \
ASTOBJ_COMPONENTS_FULL \
ASTOBJ_COMPONENTS \
AST_IVR_DECLARE_MENU \
AST_DECLARE_APP_ARGS \
AST_DEFINE_APP_ARGS_TYPE \
AST_APP_ARG \
BEGIN_OPTIONS \
END_OPTIONS \
AST_APP_OPTIONS \
AST_APP_OPTION \
AST_APP_OPTION_ARG \
AST_DLLIST_HEAD \
AST_DLLIST_HEAD_STATIC \
AST_DLLIST_HEAD_NOLOCK \
AST_DLLIST_HEAD_NOLOCK_STATIC \
AST_RWDLLIST_HEAD \
AST_RWDLLIST_HEAD_STATIC \
AST_DLLIST_ENTRY \
AST_RWDLLIST_ENTRY \
AST_CLI_DEFINE \
AST_OPTIONAL_API \
AST_OPTIONAL_API_ATTR \
AST_VECTOR
TEMPLATE_RELATIONS = YES # why? Default: NO

File diff suppressed because it is too large Load Diff