Better diagnostics for iconv test. Added case for bug #258
[yaz-moved-to-github.git] / yaz.m4
1 # Use this m4 function for autoconf if you use YAZ in your own
2 # configure script.
3
4 dnl ----- Setup Docbook documentation for YAZ
5 AC_DEFUN([YAZ_DOC],
6 [
7 AC_SUBST(DTD_DIR)       
8 AC_ARG_WITH(docbook-dtd, [  --with-docbook-dtd[=DIR]  use docbookx.dtd in DIR],
9 [
10         if test -f "$withval/docbookx.dtd"; then
11                 DTD_DIR=$withval
12         fi
13 ],[
14         AC_MSG_CHECKING(for docbookx.dtd)
15         DTD_DIR=""
16         for d in /usr/lib/sgml/dtd/docbook-xml \
17                  /usr/share/sgml/docbook/dtd/4.2 \
18                  /usr/share/sgml/docbook/dtd/xml/4.0 \
19                  /usr/share/sgml/docbook/dtd/xml/4.1.2 \
20                  /usr/share/sgml/docbook/xml-dtd-4.1 \
21                  /usr/share/sgml/docbook/xml-dtd-4.1.2* 
22         do
23                 if test -f $d/docbookx.dtd; then
24                         AC_MSG_RESULT($d)
25                         DTD_DIR=$d
26                         break
27                 fi
28         done
29         if test -z "$DTD_DIR"; then
30                 AC_MSG_RESULT(Not found)
31         fi
32 ])
33 AC_SUBST(DSSSL_DIR)
34 AC_ARG_WITH(docbook-dsssl,[  --with-docbook-dsssl[=DIR] use Docbook DSSSL in DIR/{html,print}/docbook.dsl],
35 [
36         if test -f "$withval/html/docbook.dsl"; then
37                 DSSSL_DIR=$withval
38         fi
39 ],[
40         AC_MSG_CHECKING(for docbook.dsl)
41         DSSSL_DIR=""
42         for d in /usr/share/sgml/docbook/stylesheet/dsssl/modular \
43                 /usr/share/sgml/docbook/dsssl-stylesheets-1.* \
44                 /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh 
45         do
46                 if test -f $d/html/docbook.dsl; then
47                         AC_MSG_RESULT($d)
48                         DSSSL_DIR=$d
49                         break
50                 fi
51         done
52         if test -z "$DSSSL_DIR"; then
53                 AC_MSG_RESULT(Not found)
54         fi
55 ])
56 AC_SUBST(XSL_DIR)
57 AC_ARG_WITH(docbook-xsl,[  --with-docbook-xsl[=DIR]  use Docbook XSL in DIR/{htmlhelp,xhtml}],
58 [
59         if test -f "$withval/htmlhelp/htmlhelp.xsl"; then
60                 XSL_DIR=$withval
61         fi
62 ],[
63         AC_MSG_CHECKING(for htmlhelp.xsl)
64         for d in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh \
65                 /usr/share/sgml/docbook/xsl-stylesheets-1.* 
66         do
67                 if test -f $d/htmlhelp/htmlhelp.xsl; then
68                         AC_MSG_RESULT($d)
69                         XSL_DIR=$d
70                         break
71                 fi
72         done
73         if test -z "$XSL_DIR"; then
74                 AC_MSG_RESULT(Not found)
75         fi
76 ])
77 ]) 
78
79 AC_DEFUN([YAZ_INIT],
80 [
81         AC_SUBST(YAZLIB)
82         AC_SUBST(YAZLALIB)
83         AC_SUBST(YAZINC)
84         AC_SUBST(YAZVERSION)
85         yazconfig=NONE
86         yazpath=NONE
87         AC_ARG_WITH(yaz, [  --with-yaz=DIR          use yaz-config in DIR (example /home/yaz-1.7)], [yazpath=$withval])
88         if test "x$yazpath" != "xNONE"; then
89                 yazconfig=$yazpath/yaz-config
90         else
91                 if test "x$srcdir" = "x"; then
92                         yazsrcdir=.
93                 else
94                         yazsrcdir=$srcdir
95                 fi
96                 for i in ${yazsrcdir}/../../yaz ${yazsrcdir}/../yaz* ${yazsrcdir}/../yaz; do
97                         if test -d $i; then
98                                 if test -r $i/yaz-config; then
99                                         yazconfig=$i/yaz-config
100                                 fi
101                         fi
102                 done
103                 if test "x$yazconfig" = "xNONE"; then
104                         AC_PATH_PROG(yazconfig, yaz-config, NONE)
105                 fi
106         fi
107         AC_MSG_CHECKING(for YAZ)
108         if $yazconfig --version >/dev/null 2>&1; then
109                 YAZLIB=`$yazconfig --libs $1`
110                 # if this is empty, it's a simple version YAZ 1.6 script
111                 # so we have to source it instead...
112                 if test "X$YAZLIB" = "X"; then
113                         . $yazconfig
114                 else
115                         YAZLALIB=`$yazconfig --lalibs $1`
116                         YAZINC=`$yazconfig --cflags $1`
117                         YAZVERSION=`$yazconfig --version`
118                 fi
119                 AC_MSG_RESULT([$yazconfig])
120         else
121                 AC_MSG_RESULT(Not found)
122                 YAZVERSION=NONE
123         fi
124         if test "X$YAZVERSION" != "XNONE"; then
125                 AC_MSG_CHECKING([for YAZ version])
126                 AC_MSG_RESULT([$YAZVERSION])
127                 if test "$2"; then
128                         have_yaz_version=`echo "$YAZVERSION" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`
129                         req_yaz_version=`echo "$2" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`
130                         if test "$have_yaz_version" -lt "$req_yaz_version"; then
131                                 AC_MSG_ERROR([$YAZVERSION. Requires $2 or later])
132                         fi
133                         if test "$req_yaz_version" -gt "2000028"; then
134                                 YAZINC="$YAZINC -DYAZ_USE_NEW_LOG=1"
135                         fi
136                 fi
137         fi
138 ]) 
139