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