nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/865c1cb0e921c173e88be7d4cddaee651b79bbfe.tar.gz -p doxygen graphviz
-
graphvizis needed to generate the graph-related content (this is also noted in theDoxyfilesnippet below). -
The timestamp of the above Nixpkgs commit is
2025-05-15T00:46:48.000Z.NOTE
Keep forgetting this post about how to pin packages withnix-shell.
NOTE
The end result will (or should) be this Doxyfile. Was thinking about including the results in this repo, but the size of the generated output was 1.6 GB...
-
Enter the FreeSWITCH directory
-
Generate the configuration
doxygen -g -
Plug in the following values:
PROJECT_NAME = FreeSWITCH # This may already be a long list, but # make sure that these are definitely # listed: FILE_PATTERNS = *.c *.h INPUT = OUTPUT_DIRECTORY = ../<your-dir> RECURSIVE = YES EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_STATIC = YES SOURCE_BROWSER = YES GENERATE_HTML = YES GENERATE_LATEX = NO GENERATE_XML = NOLeaving
INPUTempty means to scan the current directory (i.e., the FreeSWITCH repo's root).srcholds the main code, butlibshas all the supporting data structures and functions FreeSWITCH is built on.It is recommended to set
OUTPUT_DIRECTORYsomewhere outside the FreeSWITCH repo, because code editors such as VS Code can start scanning it and might even crash (just the generated graphs alone are around 70,000).Here is the reference documentation of the Doxygen configuration options.
doxygen Doxyfile
Finally, open the generated docs:
open html/index.html