Integrate doxygen with autoconf infrastructure

Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
This commit is contained in:
Tushar Gohad 2014-09-07 08:49:05 -07:00
parent 2a103711fa
commit c85e1bacd3
6 changed files with 132 additions and 8 deletions

5
.gitignore vendored
View File

@ -44,3 +44,8 @@ config_liberasurecode.h.in
.deps
config_liberasurecode.h
stamp-h1
# doxygen documentation
^doc/.*\.doxytag
^doc/html
^doc/doxygen.cfg

View File

@ -1,7 +1,8 @@
# Top-level liberasurecode automake configuration
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src test
SUBDIRS = src test doc
EXTRA_DIST = autogen.sh
INCLUDE = -I$(abs_top_builddir)/include \

40
aclocal.m4 vendored
View File

@ -114,6 +114,46 @@ AC_PREREQ([2.50])dnl
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# AM_COND_IF -*- Autoconf -*-
# Copyright (C) 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 3
# _AM_COND_IF
# _AM_COND_ELSE
# _AM_COND_ENDIF
# --------------
# These macros are only used for tracing.
m4_define([_AM_COND_IF])
m4_define([_AM_COND_ELSE])
m4_define([_AM_COND_ENDIF])
# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
# ---------------------------------------
# If the shell condition COND is true, execute IF-TRUE, otherwise execute
# IF-FALSE. Allow automake to learn about conditional instantiating macros
# (the AC_CONFIG_FOOS).
AC_DEFUN([AM_COND_IF],
[m4_ifndef([_AM_COND_VALUE_$1],
[m4_fatal([$0: no such condition "$1"])])dnl
_AM_COND_IF([$1])dnl
if test -z "$$1_TRUE"; then :
m4_n([$2])[]dnl
m4_ifval([$3],
[_AM_COND_ELSE([$1])dnl
else
$3
])dnl
_AM_COND_ENDIF([$1])dnl
fi[]dnl
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008

View File

@ -1,3 +1,6 @@
################################################################################
# Standard Stuff
################################################################################
AC_INIT(liberasurecode,0.9.10)
AC_GNU_SOURCE
@ -25,13 +28,20 @@ AC_PROG_MAKE_SET
AX_EXT()
################################################################################
# System Headers
################################################################################
dnl Check for C library headers
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h \
string.h strings.h inttypes.h stdint.h ctype.h math.h iconv.h \
signal.h dlfcn.h pthread.h unistd.h limits.h errno.h syslog.h)
AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h \
malloc.h memory.h string.h strings.h inttypes.h \
stdint.h ctype.h math.h iconv.h signal.h dlfcn.h \
pthread.h unistd.h limits.h errno.h syslog.h)
AC_CHECK_FUNCS(malloc calloc realloc free openlog)
#################################################################################
# Debug/coverage Options
#################################################################################
AC_ARG_ENABLE([debug],
[ --enable-debug Turn on debugging],
[case "${enableval}" in
@ -74,15 +84,47 @@ dnl Expand the sources and objects needed to build the library
AC_SUBST(ac_aux_dir)
AC_SUBST(OBJECTS)
#################################################################################
# Doxygen Documentation
#################################################################################
AC_CHECK_PROG(DOXYGEN, doxygen, true, false)
AM_CONDITIONAL(HAVE_DOXYGEN, $DOXYGEN)
AC_SUBST(HAVE_DOXYGEN)
dnl Let people disable the doxygen stuff.
AC_ARG_ENABLE(doxygen, [ --enable-doxygen Use doxygen to build documentation (default=auto)],
enable_doxygen="$enableval",
enable_doxygen=auto)
if test x$enable_doxygen = xauto ; then
if test x$DOXYGEN = xtrue ; then
enable_doxygen=yes
else
enable_doxygen=no
fi
fi
dnl NOTE: We need to use a separate automake conditional for this
dnl to make this work with the tarballs.
AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doxygen = xyes)
################################################################################
# Output Files
################################################################################
AC_CONFIG_FILES([\
src/builtin/null_code/Makefile \
src/builtin/xor_codes/Makefile \
src/Makefile \
test/Makefile \
doc/Makefile \
Makefile \
erasurecode.pc \
Xorcode.pc
])
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
AM_COND_IF([HAVE_DOXYGEN],
[AC_CONFIG_FILES([doc/doxygen.cfg])])
AC_OUTPUT

36
doc/Makefile.am Normal file
View File

@ -0,0 +1,36 @@
DOC_MODULE="liberasurecode"
HTML_DIR=$(datadir)/$(DOC_MODULE)/html
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
all-local: html/index.html
if ENABLE_DOXYGEN
html/index.html: doxygen.cfg
doxygen doxygen.cfg
else
html/index.html:
endif
clean-local:
rm -f *~ *.bak
rm -rf html
install-data-local: html
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
(installfiles=`echo html/*`; \
if test "$$installfiles" = 'html/*'; \
then echo '-- Nothing to install' ; \
else \
for i in $$installfiles; do \
echo '-- Installing '$$i ; \
$(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
done; \
fi)
dist-hook:
mkdir $(distdir)/html
mkdir $(distdir)/man
-cp html/* $(distdir)/html
-cp man/* $(distdir)/man
.PHONY : html latex man

View File

@ -32,13 +32,13 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = "liberasurecode"
PROJECT_NAME = @PACKAGE_NAME@
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER =
PROJECT_NUMBER = @PACKAGE_VERSION@
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@ -751,8 +751,8 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
INPUT = ../include/erasurecode/erasurecode.h \
../include/erasurecode/erasurecode_backend.h
INPUT = @top_srcdir@/include/erasurecode/erasurecode.h \
@top_srcdir@/include/erasurecode/erasurecode_backend.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses