From 16e482eb90408de0783a40fb596b05f2db4440c9 Mon Sep 17 00:00:00 2001 From: Jeff Teunissen Date: Thu, 19 Aug 2010 12:59:16 -0400 Subject: [PATCH] Proof of concept for making docs build without main configure We need to figure out a way to make docs in unusual places, like in the SourceForge shell environment -- which doesn't have an extremely recent autotools. This is an extremely stripped-down automake/autoconf setup that provides the bare minimum needed to AC_SUBST variables. It's dirty and hacky, but it kinda works. --- .gitignore | 9 +- configure.ac | 4 +- doc/configure.ac | 26 +++++ doc/docstrap | 2 + doc/quakeforge.dox.in | 239 ++++++++++-------------------------------- 5 files changed, 93 insertions(+), 187 deletions(-) create mode 100644 doc/configure.ac create mode 100755 doc/docstrap diff --git a/.gitignore b/.gitignore index 39c38dc36..8974296db 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.obj *.o *~ +autom4te.cache/ .deps/ .libs/ .vimrc @@ -14,7 +15,6 @@ Makefile.in # / /aclocal.m4 -/autom4te.cache /build-stamp /changelog-stamp /compile @@ -71,6 +71,13 @@ Makefile.in /doc/progs/vm-mem.png /doc/quakeforge.dox /doc/texinfo +/doc/stamp-* +/doc/aclocal.m4 +/doc/config.h +/doc/config.h.in +/doc/config.log +/doc/config.status +/doc/configure # /doc/man/ diff --git a/configure.ac b/configure.ac index dc2084439..fab49effa 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.67) dnl This is the only place where the package name and version appear -AC_INIT([QuakeForge], [git-master]) +AC_INIT([QuakeForge], m4_esyscmd([git log -1 --pretty=%h HEAD | tr -d '\n'])) AM_INIT_AUTOMAKE([foreign]) LT_INIT([win32-dll]) @@ -126,6 +126,8 @@ else AC_DEFINE(ENABLE_BOXCLIP, 0, [Define if you want boxclipping]) fi +TOPDIR=`readlink -f ${srcdir}` +AC_SUBST(TOPDIR) dnl Output files m4_include(config.d/rpm.m4) diff --git a/doc/configure.ac b/doc/configure.ac new file mode 100644 index 000000000..da353c1fb --- /dev/null +++ b/doc/configure.ac @@ -0,0 +1,26 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.59]) +AC_INIT([QuakeForge], m4_esyscmd([git log -1 --pretty=%h HEAD | tr -d '\n'])) +AC_CONFIG_SRCDIR([template.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([foreign]) + +# Checks for programs. +AC_PROG_INSTALL +# PKG_PROG_PKG_CONFIG + +# Checks for libraries. + +# Checks for header files. + +# Checks for typedefs, structures, and compiler characteristics. + +# Checks for library functions. + +TOPDIR=`readlink -f ${srcdir}/..` +AC_SUBST(TOPDIR) + +AC_CONFIG_FILES([Makefile man/Makefile quakeforge.dox]) +AC_OUTPUT diff --git a/doc/docstrap b/doc/docstrap new file mode 100755 index 000000000..bd6306161 --- /dev/null +++ b/doc/docstrap @@ -0,0 +1,2 @@ +#! /bin/sh +aclocal -I ../m4 && autoheader && automake --add-missing && autoconf diff --git a/doc/quakeforge.dox.in b/doc/quakeforge.dox.in index bf8aa5db7..39ba17e8b 100644 --- a/doc/quakeforge.dox.in +++ b/doc/quakeforge.dox.in @@ -92,7 +92,7 @@ ABBREVIATE_BRIEF = # Doxygen will generate a detailed section even if there is only a brief # description. -ALWAYS_DETAILED_SEC = YES +ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those @@ -114,7 +114,7 @@ FULL_PATH_NAMES = YES # If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = @top_srcdir@ +STRIP_FROM_PATH = @TOPDIR@ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells @@ -123,7 +123,7 @@ STRIP_FROM_PATH = @top_srcdir@ # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. -STRIP_FROM_INC_PATH = @top_srcdir@/include +STRIP_FROM_INC_PATH = @TOPDIR@/include # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems @@ -303,18 +303,18 @@ EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. -EXTRACT_PRIVATE = YES +EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. -EXTRACT_STATIC = YES +EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. -EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in @@ -365,7 +365,7 @@ HIDE_IN_BODY_DOCS = NO # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. -INTERNAL_DOCS = YES +INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also @@ -385,7 +385,7 @@ HIDE_SCOPE_NAMES = NO # will put a list of the files that are included by a file in the documentation # of that file. -SHOW_INCLUDE_FILES = YES +SHOW_INCLUDE_FILES = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation @@ -448,13 +448,13 @@ GENERATE_TODOLIST = YES # disable (NO) the test list. This list is created by putting \test # commands in the documentation. -GENERATE_TESTLIST = YES +GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. -GENERATE_BUGLIST = YES +GENERATE_BUGLIST = NO # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting @@ -581,22 +581,22 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @top_srcdir@/include -INPUT += @top_srcdir@/libs -INPUT += @top_srcdir@/nq -INPUT += @top_srcdir@/qtv -INPUT += @top_srcdir@/qw -INPUT += @top_srcdir@/tools -INPUT += @top_srcdir@/doc/bind.txt -INPUT += @top_srcdir@/doc/connect.txt -INPUT += @top_srcdir@/doc/cshifts.txt -INPUT += @top_srcdir@/doc/faq.txt -INPUT += @top_srcdir@/doc/mapformat.txt -INPUT += @top_srcdir@/doc/quakeforge.txt -INPUT += @top_srcdir@/doc/qw-cap-spec.txt -INPUT += @top_srcdir@/doc/qw-download-spec.txt -INPUT += @top_srcdir@/doc/surround-sound.txt -INPUT += @top_srcdir@/doc/timestamps.txt +INPUT = @TOPDIR@/include +INPUT += @TOPDIR@/libs +INPUT += @TOPDIR@/nq +INPUT += @TOPDIR@/qtv +INPUT += @TOPDIR@/qw +INPUT += @TOPDIR@/tools +INPUT += @TOPDIR@/doc/bind.txt +INPUT += @TOPDIR@/doc/connect.txt +INPUT += @TOPDIR@/doc/cshifts.txt +INPUT += @TOPDIR@/doc/faq.txt +INPUT += @TOPDIR@/doc/mapformat.txt +INPUT += @TOPDIR@/doc/quakeforge.txt +INPUT += @TOPDIR@/doc/qw-cap-spec.txt +INPUT += @TOPDIR@/doc/qw-download-spec.txt +INPUT += @TOPDIR@/doc/surround-sound.txt +INPUT += @TOPDIR@/doc/timestamps.txt # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -625,16 +625,16 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = @top_srcdir@/tools/qfcc/source/qc-lex.c -EXCLUDE += @top_srcdir@/tools/qfcc/source/qc-parse.c -EXCLUDE += @top_srcdir@/tools/qfcc/source/qc-parse.h -EXCLUDE += @top_srcdir@/tools/qfcc/test -EXCLUDE += @top_srcdir@/tools/texpaint -EXCLUDE += @top_srcdir@/libs/video/targets/fbset_modes_l.c -EXCLUDE += @top_srcdir@/libs/video/targets/fbset_modes_y.c -EXCLUDE += @top_srcdir@/libs/video/targets/fbset_modes_y.h -EXCLUDE += @top_srcdir@/tools/Forge -EXCLUDE += @top_srcdir@/include/QF/GL +EXCLUDE = @TOPDIR@/tools/qfcc/source/qc-lex.c +EXCLUDE += @TOPDIR@/tools/qfcc/source/qc-parse.c +EXCLUDE += @TOPDIR@/tools/qfcc/source/qc-parse.h +EXCLUDE += @TOPDIR@/tools/qfcc/test +EXCLUDE += @TOPDIR@/tools/texpaint +EXCLUDE += @TOPDIR@/libs/video/targets/fbset_modes_l.c +EXCLUDE += @TOPDIR@/libs/video/targets/fbset_modes_y.c +EXCLUDE += @TOPDIR@/libs/video/targets/fbset_modes_y.h +EXCLUDE += @TOPDIR@/tools/Forge +EXCLUDE += @TOPDIR@/include/QF/GL # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -662,8 +662,8 @@ EXCLUDE_SYMBOLS = # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = @top_srcdir@/doc -EXAMPLE_PATH += @top_srcdir@/doc/progs +EXAMPLE_PATH = @TOPDIR@/doc +EXAMPLE_PATH += @TOPDIR@/doc/progs # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -683,8 +683,8 @@ EXAMPLE_RECURSIVE = NO # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = @top_builddir@/doc -IMAGE_PATH += @top_builddir@/doc/progs +IMAGE_PATH = @TOPDIR@/doc +IMAGE_PATH += @TOPDIR@/doc/progs # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -723,7 +723,7 @@ FILTER_SOURCE_FILES = NO # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. -SOURCE_BROWSER = YES +SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. @@ -740,13 +740,13 @@ STRIP_CODE_COMMENTS = YES # then for each documented function all documented # functions referencing it will be listed. -REFERENCED_BY_RELATION = YES +REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. -REFERENCES_RELATION = YES +REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from @@ -754,7 +754,7 @@ REFERENCES_RELATION = YES # link to the source code. # Otherwise they will link to the documentation. -REFERENCES_LINK_SOURCE = YES +REFERENCES_LINK_SOURCE = NO # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen @@ -768,7 +768,7 @@ USE_HTAGS = NO # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. -VERBATIM_HEADERS = YES +VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index @@ -893,30 +893,6 @@ HTML_DYNAMIC_SECTIONS = NO GENERATE_DOCSET = NO -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) @@ -924,118 +900,11 @@ DOCSET_PUBLISHER_NAME = Publisher GENERATE_HTMLHELP = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = YES - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. -DISABLE_INDEX = NO +DISABLE_INDEX = YES # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. @@ -1050,7 +919,7 @@ ENUM_VALUES_PER_LINE = 4 # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. @@ -1092,7 +961,7 @@ FORMULA_TRANSPARENT = YES # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client @@ -1102,7 +971,7 @@ SEARCHENGINE = NO # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. -SERVER_BASED_SEARCH = NO +SERVER_BASED_SEARCH = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output @@ -1111,7 +980,7 @@ SERVER_BASED_SEARCH = NO # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be @@ -1374,7 +1243,7 @@ SEARCH_INCLUDES = YES # contain include files that are not input files but should be processed by # the preprocessor. -INCLUDE_PATH = @top_srcdir@/include +INCLUDE_PATH = @TOPDIR@/include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the @@ -1536,7 +1405,7 @@ COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies -GROUP_GRAPHS = YES +GROUP_GRAPHS = NO # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling @@ -1554,7 +1423,7 @@ TEMPLATE_RELATIONS = YES # file showing the direct and indirect include dependencies of the file with # other documented files. -INCLUDE_GRAPH = YES +INCLUDE_GRAPH = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each @@ -1589,7 +1458,7 @@ GRAPHICAL_HIERARCHY = YES # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. -DIRECTORY_GRAPH = YES +DIRECTORY_GRAPH = NO # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif