| #!/bin/sh |
| |
| # Check arguments. |
| if [ $# -ne 1 ]; then |
| echo "Usage: ./generate_doc.sh sdk_root_directory" |
| exit 1 |
| fi |
| |
| # Change to SDK root directory. |
| cd $1 |
| |
| # Check for doxygen. |
| command -v doxygen > /dev/null || { echo "Doxygen not found. Exiting."; exit 1; } |
| |
| # Doxygen must be run twice: once to generate tags and once more to link tags. |
| i=0; while [ $i -le 1 ]; do |
| # Run for each library config file. |
| for file in doc/config/*; do |
| # Ignore directories. |
| if [ -d $file ]; then |
| continue |
| fi |
| |
| # Ignore xml files. |
| if [ ${file##*.} = "xml" ]; then |
| continue |
| fi |
| |
| # Ignore the common configuration file. |
| if [ $file = "doc/config/common" ]; then |
| continue |
| fi |
| |
| # Generate Doxygen tags first. Once tags are generated, generate documentation. |
| if [ $i -eq 0 ]; then |
| echo "Generating Doxygen tags for $file..." |
| doxygen $file 2> /dev/null |
| else |
| echo "Generating documentation for $file..." |
| |
| # Redirect errors to a file. |
| doxygen $file 2>>doxygen_warnings.txt |
| fi |
| done |
| |
| i=$(($i+1)); |
| done |
| |
| echo "Documentation written to doc/output" |
| echo "Doxygen warnings written to ./doxygen_warnings.txt" |
| |
| # Print any doxygen errors or warnings and exit with a nonzero value. |
| if [ -s doxygen_warnings.txt ]; then |
| cat doxygen_warnings.txt |
| exit 1 |
| fi |