diff options
Diffstat (limited to 'recipes/ti/ti-dmai/arago-tdox')
-rw-r--r-- | recipes/ti/ti-dmai/arago-tdox | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/recipes/ti/ti-dmai/arago-tdox b/recipes/ti/ti-dmai/arago-tdox new file mode 100644 index 0000000000..81538cf316 --- /dev/null +++ b/recipes/ti/ti-dmai/arago-tdox @@ -0,0 +1,210 @@ +#!/bin/bash +# +# +# This script sets a series of environment variable that are referenced +# in a doxygen configuration file. The values passed in here are simply +# plugged into the file locations and doxygen proceeds normaly. +# +# template location is ${VENDORS}/opensource/doxygen/templates/<version> +# +# + +# Revision history +#! 02 Jul 2009 cring: Added cmd line args for doxygendir (-x) and template (-t) +#! 13 Jul 2006 ada: New template smaller pdf generation +#! 16 May 2006 ada: Added -p file to pdf for space in project names +#! 08 May 2006 ada: Added pdf generation to tdox (Solaris/Linux only). +#! 23 Jan 2006 ada: Overide file to change default doxyfile behaivior +#! 19 Jan 2006 ada: 1093, ENUM_VALUES_PER_LINE set to 1, ref doxyfile via vers +#! 05 Oct 2005 ada: 933, doxyfile in tools, removed win and unix vendors path +#! 24 Aug 2005 ada: Added 897 changes, optional css c or jave optimization +#! 18 Aug 2005 ada: inital version from AR 887 + +# Set these defaults here as the usage statement uses them +TDOX_TEMPLATEDIR=${TOOLS}/default/doxygen_templates +DOXYGEN_EXECUTABLE=doxygen + +function usage +{ + OPTIONS="`basename $0` code_location out_doc_location [-x doxygen_exe ] [-t tdox_templatedir] [-n project_name] [-v version] [-f FILE_PATTERNS ] [-s strip_dir] [-c css location] [-e exclude dirs] [-b enabled sections] [-m generate chm] [-p pdf_file] [-o override doxyfile] [-j]" + echo "`basename $1` $OPTIONS" + echo "Where: " + echo "\tcode_location: Top of tree(s) to search for code (required as 1st param)" + echo "\tout_doc_location: Output location for generated files (required as 2nd param)" + echo "\t[-n project_name]: title of generated documentation (defaults to Project)" + echo "\t[-x doxygen_exe]: location of doxygen executable (defaults to $DOXYGEN_EXECUTABLE)" + echo "\t[-t tdox_templatedir]: location of tdox templates (defaults to $TDOX_TEMPLATEDIR)" + echo "\t[-v version]: version number or string (defaults to 1.0)" + echo "\t[-f FILE_PATTERNS]: Optional list of files to document (defaults to all)" + echo "\t[-s strip_dirs]: Remove directory prefix from generated files (defaults to not remove)" + echo "\t[-c path_to_css]: Path to a user suplied CSS style sheet" + echo "\t[-e exclude dirs]: List of directories to exclude" + echo "\t[-b enabled sections]: List of sections to enable" + echo "\t[-m generate chm]: chm file name (required)" + echo "\t[-p generate pdf <file>]: create <file>.pdf in html/pdf (Linux only)" + echo "\t[-o override doxyfile]: file (advanced) Overide any doxyfile default" + echo "\t[-j]: Optimize for Java (Generate class files) defaults to C" + echo "\t[-r]: Call rshd to windows for chm generation (defaults to wine)" + echo + exit +} + +function optimizeForJava +{ + DOX_OPTIMIZE_OUTPUT_JAVA="YES" + DOX_OPTIMIZE_OUTPUT_FOR_C="NO" +} + +if [ "$#" -lt 2 ]; then + echo "Invalid number of parameters" + usage $0 +fi + +# get the required parameters then shift for the getopts parameters +export DOX_INPUT="$1" +shift +export DOX_OUTPUT_DIRECTORY="$1" +shift + +#set the global defaults +DOX_QUIET="YES" +DOX_OPTIMIZE_OUTPUT_JAVA="NO" +DOX_OPTIMIZE_OUTPUT_FOR_C="YES" +DOX_CHM_FILE= +DOX_GENERATE_HTMLHELP="NO" +OVERRIDE_FILE="" +PDF="" + +# Process the rest of the arguments as getopts +# parameters +while getopts b:c:e:f:m:n:o:p:s:t:v:x:dhjr arg +do + case $arg in + b) DOX_ENABLED_SECTIONS=${OPTARG};; + c) DOX_HTML_STYLESHEET=${OPTARG};; + d) DEBUG=1;; + e) DOX_EXCLUDE=${OPTARG};; + f) DOX_FILE_PATTERNS=${OPTARG};; + h) usage;exit 0;; + j) optimizeForJava;; + r) USERSHD=1;; + m) DOX_CHM_FILE=${OPTARG};DOX_GENERATE_HTMLHELP="YES";; + n) DOX_PROJECT_NAME=${OPTARG};; + s) DOX_STRIP_FROM_PATH=${OPTARG};; + t) TDOX_TEMPLATEDIR=${OPTARG};; + v) DOX_PROJECT_NUMBER=${OPTARG};; + x) DOXYGEN_EXECUTABLE=${OPTARG};; + o) OVERRIDE_FILE=${OPTARG};; + p) PDF=${OPTARG};; + \?) usage + exit 2;; + esac +done + +if [ "$DEBUG" = "1" ]; then + DOX_QUIET="NO" + set -x +fi + +if [ "$DOX_PROJECT_NAME" = "" ]; then + DOX_PROJECT_NAME="Project" +fi + +if [ "$DOX_PROJECT_NUMBER" = "" ]; then + DOX_PROJECT_NUMBER="1.0" +fi + +if [ "$DOX_FILE_PATTERNS" = "" ]; then + DOX_FILE_PATTERNS="*.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox" +fi + +export DOX_INPUT +export DOX_OUTPUT_DIRECTORY +export DOX_PROJECT_NAME +export DOX_PROJECT_NUMBER +export DOX_FILE_PATTERNS +export DOX_STRIP_FROM_PATH +export DOX_QUIET +export DOX_HTML_STYLESHEET +export DOX_OPTIMIZE_OUTPUT_FOR_C +export DOX_OPTIMIZE_OUTPUT_JAVA +export DOX_EXCLUDE +export DOX_ENABLED_SECTIONS +export DOX_CHM_FILE +export DOX_GENERATE_HTMLHELP +export TDOX_TEMPLATEDIR + + +# Make sure the dir exists +mkdir -p $DOX_OUTPUT_DIRECTORY + +# Create temp file copy of doxyfile and append overrides to the end of the file +cp ${TDOX_TEMPLATEDIR}/doxyfile /tmp/doxyfile$$ + +chmod +w /tmp/doxyfile$$ +if [ "$OVERRIDE_FILE" != "" ]; then + cat $OVERRIDE_FILE >> /tmp/doxyfile$$ +fi + +# Run doxygen and clean up temp file +${DOXYGEN_EXECUTABLE} /tmp/doxyfile$$ +rm -f /tmp/doxyfile$$ + +# Copy the TI banner gifs to the html directory. +cp -p ${TDOX_TEMPLATEDIR}/*gif $DOX_OUTPUT_DIRECTORY/html + +# Generate PDF files +if [ "$PDF" != "" ]; then + if [ "$BUILD_HOST_OS" = "Linux" ]; then + rm -rf $DOX_OUTPUT_DIRECTORY/html/pdf + mkdir -p $DOX_OUTPUT_DIRECTORY/html/pdf + cwd=`pwd` + cd $DOX_OUTPUT_DIRECTORY/latex + latex refman.tex + makeindex refman.idx + latex refman.tex + latex_count=5 + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] + do + latex refman.tex + latex_count=`expr $$latex_count - 1` + done + dvips -o refman.ps refman.dvi + ps2pdf refman.ps refman.pdf + cd $cwd + mv $DOX_OUTPUT_DIRECTORY/latex/refman.pdf $DOX_OUTPUT_DIRECTORY/html/pdf/${PDF}.pdf + else + echo "Sorry... pdf generation supported under Linux only" + fi +fi + +# Generate Windows compressed help +if [ "$DOX_GENERATE_HTMLHELP" = "YES" ]; then + + echo "chm generation is not supported" +fi |