summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac9
-rw-r--r--manuals_and_examples/Makefile.am64
-rw-r--r--manuals_and_examples/doxygen-all.cfg.in (renamed from manuals_and_examples/doxygen-all.cfg)15
-rw-r--r--manuals_and_examples/doxygen-api.cfg.in (renamed from manuals_and_examples/doxygen-api.cfg)25
-rw-r--r--manuals_and_examples/doxygen-basedbms.cfg.in (renamed from manuals_and_examples/doxygen-basedbms.cfg)22
-rw-r--r--manuals_and_examples/doxygen-server.cfg.in (renamed from manuals_and_examples/doxygen-server.cfg)0
6 files changed, 104 insertions, 31 deletions
diff --git a/configure.ac b/configure.ac
index 66ffbcc..c859491 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,7 @@ AC_PROG_CC
AC_PROG_CPP
AC_PROG_LEX
AC_PROG_INSTALL
+AC_PROG_MKDIR_P
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
@@ -52,6 +53,14 @@ AC_CHECK_PROGS([JAR_TOOL], [jar], [${am_missing_run} jar])
dnl we need bison not yacc
AC_CHECK_PROGS(YACC, bison, [${am_missing_run} bison])
+# Find/use given doxygen executable
+AC_ARG_VAR([DOXYGEN], [doxygen executable to build docs with])
+AS_IF([test "x$DOXYGEN" = "x"],
+ [AC_PATH_PROG([DOXYGEN], [doxygen], [no])],
+ [AC_MSG_CHECKING([DOXYGEN from env variable])
+ AC_MSG_RESULT([${DOXYGEN}])])
+AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$DOXYGEN" != "xno"])
+
# Checks for libraries.
# FIXME: Replace `main' with a function in `-lcrypt':
AC_CHECK_LIB([crypt], [main], , [AC_MSG_FAILURE([libcrypt.a not found! Please install.])])
diff --git a/manuals_and_examples/Makefile.am b/manuals_and_examples/Makefile.am
index ca924d3..cdf536d 100644
--- a/manuals_and_examples/Makefile.am
+++ b/manuals_and_examples/Makefile.am
@@ -42,16 +42,66 @@ EXTRA_DIST = manuals
dest_Makefile=$(DESTDIR)$(pkgdatadir)/examples/c++/Makefile
+# Set the rasdaman installation root to allow Make finding
+# include/ and lib/ for the C++ examples.
install-data-hook:
- -# Set the rasdaman installation root to allow Make finding
- -# include/ and lib/ for the C++ examples.
$(SED) \
-e 's|[@]pkgincludedir@|$(pkgincludedir)|g' \
-e 's|[@]pkglibdir@|$(pkglibdir)|g' \
< $(dest_Makefile) > $(dest_Makefile).new
mv -f $(dest_Makefile).new $(dest_Makefile)
- -# install documentation
- (cd ..; doxygen manuals_and_examples/doxygen-all.cfg)
- (cd ..; doxygen manuals_and_examples/doxygen-api.cfg)
- (cd ..; doxygen manuals_and_examples/doxygen-basedbms.cfg)
- cp -r $(srcdir)/manuals/ $(DESTDIR)$(pkgdatadir)/doc
+
+CLEANFILES =
+DOXYGEN_CONFIGS =
+
+DOXYGEN_CONFIGS += doxygen-all.cfg
+DOXYGEN_CONFIGS += doxygen-api.cfg
+DOXYGEN_CONFIGS += doxygen-basedbms.cfg
+# DOXYGEN_CONFIGS += doxygen-server.cfg
+
+EXTRA_DIST += doxygen-all.cfg.in
+EXTRA_DIST += doxygen-api.cfg.in
+EXTRA_DIST += doxygen-basedbms.cfg.in
+# EXTRA_DIST += doxygen-server.cfg.in
+
+CLEANFILES += $(DOXYGEN_CONFIGS)
+
+SUFFIXES = .cfg.in .cfg
+.cfg.in.cfg:
+ $(SED) \
+ -e "s,[@]top_srcdir@,$$(cd "$(top_srcdir)" && pwd),g" \
+ -e "s,[@]top_builddir@,$$(cd "$(top_builddir)" && pwd),g" \
+ -e "s,[@]PACKAGE@,$(PACKAGE),g" \
+ -e "s,[@]VERSION@,$(VERSION),g" \
+ $< > $@
+
+# Build documentation
+if HAVE_DOXYGEN
+CFG_TO_DIR = $(SED) -n 's,^doxygen-\([[:alpha:]]*\)\.cfg,dox-manuals/doc-\1,p'
+
+all-local: $(DOXYGEN_CONFIGS)
+ @set -ex; for cfg in $(DOXYGEN_CONFIGS); do \
+ $(MKDIR_P) "$$(echo "$$cfg" | $(CFG_TO_DIR))"; \
+ $(DOXYGEN) "$$cfg"; \
+ done
+
+clean-local:
+ rm -rf dox-manuals
+endif
+
+# Install the documentation, in two parts: The stuff from $(srcdir)
+# and the doxygen built docs from the builddir "."
+install-data-local:
+ $(INSTALL) -m 0755 -d $(DESTDIR)$(pkgdatadir)/doc
+ cp -R $(srcdir)/manuals/ $(DESTDIR)$(pkgdatadir)/doc
+if HAVE_DOXYGEN
+ if test -d dox-manuals; then \
+ cp -R dox-manuals/* $(DESTDIR)$(pkgdatadir)/doc; \
+ fi
+endif
+ find $(DESTDIR)$(pkgdatadir)/doc \
+ \( -type d -exec chmod 0755 {} \; \) -or \
+ \( -type f -exec chmod 0644 {} \; \)
+
+uninstall-local:
+ rm -rf $(DESTDIR)$(pkgdatadir)/doc
diff --git a/manuals_and_examples/doxygen-all.cfg b/manuals_and_examples/doxygen-all.cfg.in
index 7c4d433..9873938 100644
--- a/manuals_and_examples/doxygen-all.cfg
+++ b/manuals_and_examples/doxygen-all.cfg.in
@@ -62,7 +62,7 @@ PROJECT_NUMBER =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = manuals_and_examples/manuals/doc-all
+OUTPUT_DIRECTORY = @top_builddir@/manuals_and_examples/dox-manuals/doc-all
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -129,7 +129,7 @@ INLINE_INHERITED_MEMB = NO
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = YES
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
@@ -138,7 +138,7 @@ FULL_PATH_NAMES = NO
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH =
+STRIP_FROM_PATH = @top_srcdir@ @top_builddir@
# 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
@@ -598,7 +598,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = .
+INPUT = @top_srcdir@ @top_builddir@
# 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
@@ -644,7 +644,10 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
-EXCLUDE_PATTERNS = */test*
+EXCLUDE_PATTERNS = */test* */.git* \
+ */_b/* */_build/* \
+ */_i/* */_inst/* \
+ */@PACKAGE@-@VERSION@/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@@ -658,7 +661,7 @@ EXCLUDE_SYMBOLS =
# directories that contain example code fragments that are included (see
# the \include command).
-EXAMPLE_PATH = manuals_and_examples/examples
+EXAMPLE_PATH = @top_srcdir@/manuals_and_examples/examples
# 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
diff --git a/manuals_and_examples/doxygen-api.cfg b/manuals_and_examples/doxygen-api.cfg.in
index 60a1012..bfed432 100644
--- a/manuals_and_examples/doxygen-api.cfg
+++ b/manuals_and_examples/doxygen-api.cfg.in
@@ -38,7 +38,7 @@ PROJECT_NUMBER =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = manuals_and_examples/manuals/doc-api
+OUTPUT_DIRECTORY = @top_builddir@/manuals_and_examples/dox-manuals/doc-api
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -105,7 +105,7 @@ INLINE_INHERITED_MEMB = NO
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = YES
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
@@ -114,7 +114,7 @@ FULL_PATH_NAMES = NO
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH =
+STRIP_FROM_PATH = @top_srcdir@ @top_builddir@
# 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
@@ -574,12 +574,12 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = raslib \
- rasodmg \
- compression \
- conversion \
- include \
- java/rasj
+INPUT = @top_srcdir@/raslib \
+ @top_srcdir@/rasodmg \
+ @top_srcdir@/compression \
+ @top_srcdir@/conversion \
+ @top_srcdir@/include \
+ @top_srcdir@/java/rasj
# 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
@@ -622,7 +622,10 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
-EXCLUDE_PATTERNS = */test*
+EXCLUDE_PATTERNS = */test* */.git* \
+ */_b/* */_build/* \
+ */_i/* */_inst/* \
+ */@PACKAGE@-@VERSION@/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@@ -636,7 +639,7 @@ EXCLUDE_SYMBOLS =
# directories that contain example code fragments that are included (see
# the \include command).
-EXAMPLE_PATH = manuals_and_examples/examples
+EXAMPLE_PATH = @top_srcdir@/manuals_and_examples/examples
# 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
diff --git a/manuals_and_examples/doxygen-basedbms.cfg b/manuals_and_examples/doxygen-basedbms.cfg.in
index 55ad551..9f1bdc8 100644
--- a/manuals_and_examples/doxygen-basedbms.cfg
+++ b/manuals_and_examples/doxygen-basedbms.cfg.in
@@ -38,7 +38,7 @@ PROJECT_NUMBER =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = manuals_and_examples/manuals/doc-basedbms
+OUTPUT_DIRECTORY = @top_builddir@/manuals_and_examples/dox-manuals/doc-basedbms
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -105,7 +105,7 @@ INLINE_INHERITED_MEMB = NO
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = YES
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
@@ -114,7 +114,7 @@ FULL_PATH_NAMES = NO
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH =
+STRIP_FROM_PATH = @top_srcdir@ @top_builddir@
# 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
@@ -574,7 +574,12 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = reladminif relblobif relcatalogif relindexif relmddif relstorageif
+INPUT = @top_srcdir@/reladminif @top_builddir@/reladminif \
+ @top_srcdir@/relblobif @top_builddir@/relblobif \
+ @top_srcdir@/relcatalogif @top_builddir@/relcatalogif \
+ @top_srcdir@/relindexif @top_builddir@/relindexif \
+ @top_srcdir@/relmddif @top_builddir@/relmddif \
+ @top_srcdir@/relstorageif @top_builddir@/relstorageif
# 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
@@ -603,7 +608,7 @@ 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 = test
+EXCLUDE = test
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded
@@ -617,7 +622,10 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
-EXCLUDE_PATTERNS = */test*
+EXCLUDE_PATTERNS = */test* */.git* \
+ */_b/* */_build/* \
+ */_i/* */_inst/* \
+ */@PACKAGE@-@VERSION@/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@@ -631,7 +639,7 @@ EXCLUDE_SYMBOLS =
# directories that contain example code fragments that are included (see
# the \include command).
-EXAMPLE_PATH = manuals_and_examples/examples
+EXAMPLE_PATH = @top_srcdir@/manuals_and_examples/examples
# 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
diff --git a/manuals_and_examples/doxygen-server.cfg b/manuals_and_examples/doxygen-server.cfg.in
index 400bf57..400bf57 100644
--- a/manuals_and_examples/doxygen-server.cfg
+++ b/manuals_and_examples/doxygen-server.cfg.in