diff --git a/doc/generate_documentation.sh b/doc/generate_documentation.sh index 2f094f0f6..9f886b848 100755 --- a/doc/generate_documentation.sh +++ b/doc/generate_documentation.sh @@ -1,4 +1,12 @@ -#!/bin/sh +#!/bin/bash + +POSIXLY_CORRECT=1 + +CHECK_API=false +GEN_HTML=false +GEN_PDF=false +GEN_ALL=false +INSTALL_DOX=false command -v g++ if [ $? -ne "0" ]; then @@ -24,14 +32,34 @@ echo "Please install make" exit 1 fi -./check_api.sh +# Checking arguments and setting appropriate option variables -if [ $? = 1 ]; then -echo "Not all API match" -exit 1 -fi +for var in $@ +do + case $var in + -install) + INSTALL_DOX=true + ;; + -html) + CHECK_API=true + GEN_HTML=true + ;; + -pdf) + CHECK_API=true + GEN_PDF=true + ;; + -all) + CHECK_API=true + GEN_ALL=true + ;; + esac +done -if [ ! -e "build/bin/doxygen" ]; then +# Checking if doxygen is already installed +# True - doxygen from "which doxygen" is used to generate documentation +# False - clones doxygen Release_1_8_13 and ./build/bin/ added to PATH + +if [ $INSTALL_DOX = true ] && [ ! "$(which doxygen)" ]; then mkdir -p build cd build echo "cloning doxygen 1.8.13..." @@ -39,13 +67,24 @@ git clone https://github.com/doxygen/doxygen --branch Release_1_8_13 cmake -G "Unix Makefiles" doxygen/ make cd .. +export PATH="./build/bin/:$PATH" +fi + +# Runs script to check that all API with documentation match wolfSSL API +if [ $CHECK_API = true ]; then +./check_api.sh +fi + +if [ $? = 1 ]; then +echo "Not all API match" +exit 1 fi -if [ $1 = "-html" ] || [ $1 = "-all" ]; then #HTML GENERATION +if [ $GEN_HTML = true ] || [ $GEN_ALL = true ]; then cp -r formats/html/* ./ echo "generating html..." -build/bin/doxygen Doxyfile +doxygen Doxyfile cp html_changes/search/* html/search/ cp html_changes/*.css html/ cp html_changes/*.js html/ @@ -58,10 +97,10 @@ echo "To view the html files use a browser to open the index.html file located a fi #PDF GENERATION -if [ $1 = "-pdf" ] || [ $1 = "-all" ]; then +if [ $GEN_PDF = true ] || [ $GEN_ALL = true ]; then cp -r formats/pdf/* ./ echo "generating pdf..." -build/bin/doxygen Doxyfile +doxygen Doxyfile cd latex/ make mv refman.pdf ../ diff --git a/doc/include.am b/doc/include.am index 6339f0f1f..3be217ce0 100644 --- a/doc/include.am +++ b/doc/include.am @@ -6,11 +6,11 @@ dist_doc_DATA+= doc/README.txt dox-pdf: echo "Generating PDF" - cd doc && ./generate_documentation.sh -pdf || (echo "HTML generation failed $$?"; exit 1) + cd doc && ./generate_documentation.sh -install -pdf || (echo "HTML generation failed $$?"; exit 1) dox-html: echo "Generating HTML" - cd doc && ./generate_documentation.sh -html || (echo "HTML generation failed $$?"; exit 1) + cd doc && ./generate_documentation.sh -install -html || (echo "HTML generation failed $$?"; exit 1) dox: dox-html dox-pdf