Blob Blame History Raw
dnl Process this file with autoconf to produce configure.
# vim: noet sw=8
# $Id: configure.ac,v 1.21 2007/03/03 13:44:14 stevecheng Exp $

AC_INIT([docbook2X], 0.8.8, [stevecheng@users.sourceforge.net], docbook2X)
AC_CONFIG_SRCDIR(perl/docbook2X.pl)

AM_INIT_AUTOMAKE(docbook2X, 0.8.8)

XSLT_PROCESSOR="libxslt"

AC_ARG_WITH(html-xsl, 
	AC_HELP_STRING([--with-html-xsl],
[build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no)]),
	HTML_XSL="$withval",
	HTML_XSL=no)
AC_ARG_WITH(xslt-processor,
	AC_HELP_STRING([--with-xslt-processor=ARG],
[which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j)]),
	XSLT_PROCESSOR="$withval",
	XSLT_PROCESSOR="libxslt")
AC_ARG_WITH(resolver-jars,
	AC_HELP_STRING([--with-resolver-jars=ARG],
[specify Java class path for Apache XML Commons catalogs resolver]),
	RESOLVER_JARS="$withval",
	RESOLVER_JARS="")
AC_ARG_WITH(saxon-jars,
	AC_HELP_STRING([--with-saxon-jars=ARG],
[specify Java class path for SAXON XSLT processor]),
	SAXON_JARS="$withval",
	SAXON_JARS="")
AC_ARG_WITH(xalan-jars,
	AC_HELP_STRING([--with-xalan-jars=ARG],
[specify Java class path for Xalan XSLT processor]),
	XALAN_JARS="$withval",
	XALAN_JARS="")



AM_CONDITIONAL(HAVE_HTML_XSL, test "x$HTML_XSL" != "xno")
AC_SUBST(XSLT_PROCESSOR)
	
dnl Check for compiler, Perl...
AC_PROG_CC
AC_PROG_INSTALL

AC_PATH_PROG(PERL, perl)
if test -z "$PERL" ; then
	AC_MSG_ERROR(You need Perl 5)
fi

dnl For db2x_manxml and db2x_texixml
AC_PATH_PROG(ICONV, iconv piconv)
if test -z "$ICONV" ; then
	AC_MSG_ERROR(You need iconv)
fi
dnl (piconv is an iconv implementation from Perl 5.8.0.
dnl  I haven't heard of anyone using it regularly, but
dnl  I added it here for the convenience of non-GNU
dnl  platforms that may not already have a working
dnl  iconv.)

dnl For sgml2xml-isoent
AC_PATH_PROG(SX, sgml2xml sx)
AC_PATH_PROG(OSX, osx)

dnl For db2x_texixml
AC_PATH_PROG(MAKEINFO, makeinfo)

dnl For testing man pages.  
dnl We check for groff only; Unix nroff is useless for testing.
AC_PATH_PROG(GROFF, groff)
AM_CONDITIONAL(HAVE_GROFF, test -n "$GROFF")

dnl For validating the docbook2X documentation XML sources
AC_PATH_PROG(XMLLINT, xmllint)
AM_CONDITIONAL(HAVE_XMLLINT, test -n "$XMLLINT")

dnl Tidy is for tidying up the output from the HTML stylesheets.
AC_PATH_PROG(TIDY, tidy)
AM_CONDITIONAL(HAVE_TIDY, test -n "$TIDY")


dnl The XSLT processors
AC_PATH_PROG(XSLTPROC, xsltproc)
AC_PATH_PROG(JAVA, java)

if test -z "$RESOLVER_JARS" ; then
AC_CHECK_FILE(/usr/local/share/java/resolver.jar, 
	[ RESOLVER_JARS=/usr/local/share/java/resolver.jar ])
fi
if test -z "$RESOLVER_JARS" ; then
AC_CHECK_FILE(/usr/share/java/resolver.jar,
	[ RESOLVER_JARS=/usr/share/java/resolver.jar ])
fi
if test -z "$RESOLVER_JARS" ; then
AC_CHECK_FILE(/usr/share/java/xml-commons-resolver-1.1.jar,
	[ RESOLVER_JARS=/usr/share/java/xml-commons-resolver-1.1.jar ])
fi
AC_SUBST(RESOLVER_JARS)

if test -z "$SAXON_JARS" ; then
AC_CHECK_FILE(/usr/local/share/java/saxon.jar, 
	[ SAXON_JARS=/usr/local/share/java/saxon.jar ])
fi
if test -z "$SAXON_JARS" ; then
AC_CHECK_FILE(/usr/share/java/saxon.jar,
	[ SAXON_JARS=/usr/share/java/saxon.jar ])
fi
AC_SUBST(SAXON_JARS)

if test -z "$XALAN_JARS" ; then
AC_CHECK_FILE(/usr/local/share/java/xalan.jar, 
	[ XALAN_JARS=/usr/local/share/java/xalan.jar ])
fi
if test -z "$XALAN_JARS" ; then
AC_CHECK_FILE(/usr/share/java/xalan.jar,
	[ XALAN_JARS=/usr/share/java/xalan.jar ])
fi
if test -z "$XALAN_JARS" ; then
AC_CHECK_FILE(/usr/share/java/xalan2.jar,
	[ XALAN_JARS=/usr/share/java/xalan2.jar ])
fi
AC_SUBST(XALAN_JARS)



dnl For utf8trans
AM_CONFIG_HEADER(utf8trans/config.h)
AC_CHECK_HEADERS(getopt.h)
AC_CHECK_FUNCS(getline, ,)
AC_CHECK_FUNCS(getopt_long,,)

dnl ----------------------------------------------------------------------
dnl
dnl Default paths enbedded in db2x_xsltproc binary:
dnl

dnl This bit copied from libggi's configure:

test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

dnl Use static_* to substitute into files where values shouldn't
dnl dynamicly change.  Makefiles need to be able to dynamicly change
dnl paths between build and install and shouldn't use these static_*.
dnl Files that will be installed must always show the final location where
dnl they will reside and should use these static_* values.
dnl Ensure that all static_* are fully expanded.

eval static_datadir="$datadir"

eval static_bindir="$bindir"
old_val=""
until test "$static_bindir" = "$old_val"; do
	old_val="$static_bindir"
	eval static_bindir="$static_bindir"
done

dnl For perl/config.pl
INSTALLED_UTF8TRANS="$static_bindir/`echo utf8trans | sed -e "$program_transform_name"`"
INSTALLED_CHARMAP_ROFF="$static_datadir/docbook2X/charmaps/roff.charmap"
INSTALLED_CHARMAP_TEXI="$static_datadir/docbook2X/charmaps/texi.charmap"

INSTALLED_DB2X_MANXML="$static_bindir/`echo db2x_manxml | sed -e "$program_transform_name"`"
INSTALLED_DB2X_TEXIXML="$static_bindir/`echo db2x_texixml | sed -e "$program_transform_name"`"

INSTALLED_STYLESHEETS_CATALOG="$static_datadir/docbook2X/xslt/catalog.xml"
INSTALLED_DB2X_XSLTPROC="$static_bindir/`echo db2x_xsltproc | sed -e "$program_transform_name"`"
INSTALLED_SGML2XML_ISOENT="$static_bindir/`echo sgml2xml-isoent | sed -e "$program_transform_name"`"

AC_SUBST(INSTALLED_UTF8TRANS)
AC_SUBST(INSTALLED_CHARMAP_ROFF)
AC_SUBST(INSTALLED_CHARMAP_TEXI)
AC_SUBST(INSTALLED_DB2X_MANXML)
AC_SUBST(INSTALLED_DB2X_TEXIXML)
AC_SUBST(INSTALLED_STYLESHEETS_CATALOG)
AC_SUBST(INSTALLED_DB2X_XSLTPROC)
AC_SUBST(INSTALLED_SGML2XML_ISOENT)

dnl Turn on compiler warnings (for utf8trans)
CFLAGS="${CFLAGS} -Wall"
AC_SUBST(CFLAGS)


dnl ----------------------------------------------------------------------
dnl
dnl Makefile output
dnl

AC_OUTPUT(
Makefile
charmaps/Makefile dtd/Makefile
xslt/Makefile 
xslt/common/Makefile xslt/common/text/Makefile
xslt/man/Makefile xslt/texi/Makefile
xslt/documentation/Makefile xslt/backend/Makefile
perl/Makefile 
perl/config.pl perl/sgml2xml-isoent
utf8trans/Makefile
doc/Makefile
test/Makefile test/refentry/Makefile test/complete-manuals/Makefile
test/utf8trans/Makefile test/sgml/Makefile
)