Manually tweak Doxyfile to squash warnings. The Doxyfile introduced by the previous commit (created by running doxygen -u) causes doxygen to complain: warning: Tag 'TCL_SUBST' at line 260 of file '-' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" warning: argument 'a4wide' for option PAPER_TYPE is not a valid enum value Using the default: a4! This patch should get rid of the warnings.
Update DOXYFILE. The patched file was created with doxygen -u with no manual editing. We picked doxygen-1.8.17 although that's already a bit old because this version ships with Ubuntu-20.04. However, this version generates a file list (shown on the Documentation page) which lacks the description column, so we use a self-compiled doxygen executable for the time being.
Doxyfile: Remove GNUC definitions. These defines have been present since day one of the git repo in 2006. The log message of the cvs commit which introduced them back then just states "activate the source browser", so it will have to remain a mystery why __GNUC__ and __GNUC_MINOR__ needed to be predefined.
doxygen: Exclude config.h. This file is generated by autoconf and contains no doxygen comments. Therefore it should not be part of the web documentation.
Update to doxygen-1.8.11. This is the result of running doxygen -u.
Doxyfile: Simplify exclude patterns. The patterns which are removed in this commit are a leftover from the pre-lopsub era and match no files in the source tree.
doxygen: Avoid segfault. After an upgrade to Ubuntu-16.04, the new doxygen version 1.8.11 started to segfault. It turned out that this can be circumvented by disabling USE_HTAGS so that doxygen will use its built-in source browser instead of the htags tool of GNU global. However, the html which is generated by the built-in source browser the source code is unreadable because leading tab characters are not shown, so indentation is messed up. This patch deactivates the source browser for now, getting rid of all source code in the generated output.
Merge branch 'refs/heads/t/simple_error_codes' Two patches which get rid of the concept of per-subsystem error codes. The host-compiled error2.c program can be removed, configure.ac and error.h simplified. The merge conflicted because both sides modified error.h, but this was easy to resolve. * refs/heads/t/simple_error_codes: Sort errors alphabetically. Simplify the error subsystem, get rid of error2.[ch].
fade: Add documentation for main() and include it in doxygen. The two mixer implementations for OSS and ALSA are also included, both of which are only used by para_fade. So it makes sense to include para_fade as well. main() is the only a non-static function, so let's doxify that.
Simplify the error subsystem, get rid of error2.[ch]. This commit removes error2.c and the surrounding infrastructure of the build system, getting rid of ~600 LOC. After the change there are no more subsystems for error codes, and we don't need to host-compile error2.c any more. Since all executables now contain the text of every error code, the change has some impact on the sizes of the (stripped) executables: Before: After: 64K para_afh 71K para_afh 43K para_audioc 47K para_audioc 256K para_audiod 259K para_audiod 64K para_client 71K para_client 39K para_fade 47K para_fade 141K para_filter 144K para_filter 51K para_gui 59K para_gui 252K para_play 255K para_play 97K para_recv 104K para_recv 227K para_server 230K para_server 60K para_write 67K para_write This increase in size is justified by the major simplification.
web: Deactivate search engine. It hasn't worked for years and the recent upgrade to doxygen-1.8.6 did not fix it. Just deactivate the feature for now.
web: Clear DOT_FONTNAME in Doxyfile. Doxygen-1.8.6. warns about DOT_FONTNAME being set: Warning: doxygen no longer ships with the FreeSans font. You may want to clear or change DOT_FONTNAME. Otherwise you run the risk that the wrong font is being used for dot generated graphs. The warning is harmless because the DOT_FONTNAME option has no effect in our setup because HAVE_DOT is set to "NO". Setting DOT_FONTNAME to the empty string, as recommended in the explanatory text after the warning, silences the warning.
web: Update Doxyfile to doxygen-1.8.6. The system on which the public web pages are generated is now running on Ubuntu-14.04 which ships doxygen-1.8.6. This version prints a couple of warnings about obsolete tags in Doxyfile: Warning: Tag `SYMBOL_CACHE_SIZE' at line 289 of file - has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `SHOW_DIRECTORIES' at line 483 of file - has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `HTML_ALIGN_MEMBERS' at line 820 of file - has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `USE_INLINE_TREES' at line 989 of file - has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" This patch is the result of running doxygen -u. With the patch applied, the above warnings go away. There is no need to be backwards compatible here because the web pages are not created during a normal build.
build: Introduce cmdlist_dir. This puts all files generated by command_util.bash into a new subdirectory inside the build directory. This way we don't need to special-case these files any more in .gitignore, Doxyfile, make clean. The compiler and depend.sh need to know this directory, so we add -I$(cmdlist_dir) to CPPFLAGS and introduce a new parameter for depend.sh. To prevent cpp from including stale versions of the *command_list.h files in the top level directory (left over from a previous build) this commit renames the generated files slightly. For example, audiod_completion.h becomes audiod.completion.h.
Doxify para_gui. Now that para_gui is in a much better shape, let's make it a first class citizen and document all public functions and data structures.
doxygen: Expand all macros, in particular config.h. This improves the generated documentation web pages since now all HAVE_XXX macros of config.h are taken into account.
Doxyfile: Predefine HAVE_CLOCK_GETTIME. Fixes the following doxygen warning: time.c:227: Warning: include file sys/time.h not found, perhaps you forgot to add its directory to INCLUDE_PATH?
command_util: Remove code for generating .c files. Now that the *_command_list.c files are no longer needed we may remove this mode from command_util.sh. This makes quite a few headers of the .cmd files unused, so these can be removed as well.
Teach command_util to print also completions. This adds completion mode to command_util.sh. When exectuted in this mode, it prints array initializers for all supported commands. This will be used to generate the array of completers for para_client and para_audiod.
doxygen: Exclude *.command_list.[ch]. These files are auto-generated and the documentation is not very helpful, so do not generate doxygen pages for these.