123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #!/bin/bash
- #
- # Shell script to make doxygen documentation by specifying a target directory
- # on the command line
- #
- # Gef (gefdavis@dingoblue.net.au) -- August 2001
- # TODO:
- # - Dynamic ChangeLog (page gets updated with each commit)
- # - Have the ability to specify server dox or local dox, which will then
- # change the content on the main page
- # - Incorporate a scaled gtkradiant splash image into the pages
- #------------------------------------------------------------------------
- # Set some variables
- #------------------------------------------------------------------------
- # WORKINGDIR=`pwd`;
- RETVAL=0;
- TARGETSTRING='';
- EXTRAS_PATH="./Doxygen_files";
- CONFIG_OUTPUT="$EXTRAS_PATH/genConf";
- DOXYCONFIG="./DoxyConfig";
- DOXYFILE="$EXTRAS_PATH/Doxyfile";
- NEWDOXYFILE="$EXTRAS_PATH/genDoxyfile";
- declare -a TARGETLIST[$#];
- COUNTER=0;
- TARGETCOUNT=0;
- QUIETMODE=0;
- # added -k command line option to kill running doxygen procs
- KILLON=0
- #------------------------------------------------------------------------
- # load the functions
- #------------------------------------------------------------------------
- if [ -f "$EXTRAS_PATH/gendoxfunctions" ] ; then
- . $EXTRAS_PATH/gendoxfunctions
- else
- echo -e "Missing critical files...\n";
- exit 1;
- fi
- #------------------------------------------------------------------------
- # parse the command line options
- #------------------------------------------------------------------------
- COMLINE="$*";
- OPTCOUNT="$#";
- parse_commandline;
- if [ $RETVAL -gt 0 ] ; then
- echo -e "Exiting.";
- exit $RETVAL;
- fi
- if [ $KILLON -gt 0 ] ; then
- PIDOF_DOXYGEN=`pidof -x doxygen`
- MYPID=$$
-
- if [ -z "$PIDOF_DOXYGEN" ] ; then
- [ $QUIETMODE -gt 0 ] || echo -e " * Killing other doxygen pids";
- killall -q -9 doxygen
- else
- [ $QUIETMODE -gt 0 ] || echo -e " * Killing other doxygen pids";
- kill -9 $PIDOF_DOXYGEN &> /dev/null
- fi
-
- [ $QUIETMODE -gt 0 ] || echo -e " * Cleaning up gendox pids";
- killall -q -9 `pidof -x gendox | sed -e s/$MYPID//` &> /dev/null
-
- fi
- # If the output dir hasn't been set yet...
- #if [ -z "$OUTPUTDIR" ] ; then
- # OUTPUTDIR="../$(basename `pwd`)-doxygen";
- #fi
- #------------------------------------------------------------------------
- # execute some functions to determine stuff(c)
- # Get the perl path (either from the config file, or find it)
- #------------------------------------------------------------------------
- get_perlpath;
- if [ X"$PERLPATH" == "X" ] ; then
- echo -e "\nError: A working install of perl is needed to use doxygen";
- exit 2;
- fi
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set PERL_PATH to: $PERLPATH";
- get_dotpath;
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set HAVE_DOT to: $HAVEDOT";
- if [ X"$HAVEDOT" == "XYes" ] ; then
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set DOT_PATH to: $DOTPATH";
- fi
- get_language;
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set OUTPUT_LANGUAGE to: $OUPUTLANGUAGE";
- get_projectname;
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set PROJECT_NAME to: $PROJECTNAME";
- get_version;
- [ $QUIETMODE -gt 0 ] || echo -e " -> Set PROJECT_NUMBER to: $VERSION";
- #------------------------------------------------------------------------
- # Got everything we need, now write the DoxyConfig file and run doxygen
- #------------------------------------------------------------------------
- # Clean up first
- clean_up;
- # Put the images & reference pages in the right place
- move_stuff;
- if [ $RETVAL -ge 666 ] ; then
- exit 666;
- fi
- # Generate the config file
- gen_doxyconfig;
- if [ $RETVAL -gt 0 ] ; then
- echo -e "Error: You are missing critical files."
- exit RETVAL;
- fi
- # build the reference page and the index
- build_extra_html;
- # Generate documentation
- RETVAL=0;
- run_doxygen;
- if [ $RETVAL -gt 0 ] ; then
- echo -e "Doxygen error: returned $RETVAL";
- echo -e " Check doxygen.log for details";
- elif [ $RETVAL -lt 0 ] ; then
- echo -e "Doxygen error: Doxygen returned $RETVAL";
- fi
- # if the log file is empty, remove it
- if [ ! -s ./doxygen.log ] ; then
- rm -f ./doxygen.log
- fi
- #------------------------------------------------------------------------
- # Done.
- #------------------------------------------------------------------------
- [ $QUIETMODE -gt 0 ] || echo -e "Finished...";
- [ $QUIETMODE -gt 0 ] || echo -e "Duration: $SECONDS seconds\n";
- # echo -e "** Removing output while in debug mode **";
- # echo -e "** Output dir: $OUTPUTDIR **\n";
- # rm -rf $OUTPUTDIR
- exit 0;
|