OLD | NEW |
| (Empty) |
1 # Based on: | |
2 # Configure paths for LIBXML2 | |
3 # Toshio Kuratomi 2001-04-21 | |
4 # Adapted from: | |
5 # Configure paths for GLIB | |
6 # Owen Taylor 97-11-3 | |
7 # | |
8 # Modified to work with libxslt by Thomas Schraitle 2002/10/25 | |
9 # Fixed by Edward Rudd 2004/05/12 | |
10 | |
11 dnl AM_PATH_XSLT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) | |
12 dnl Test for XML, and define XML_CFLAGS and XML_LIBS | |
13 dnl | |
14 AC_DEFUN([AM_PATH_XSLT],[ | |
15 AC_ARG_WITH(xslt-prefix, | |
16 [ --with-xslt-prefix=PFX Prefix where libxslt is installed (optio
nal)], | |
17 xslt_config_prefix="$withval", xslt_config_prefix="") | |
18 AC_ARG_WITH(xslt-exec-prefix, | |
19 [ --with-xslt-exec-prefix=PFX Exec prefix where libxslt is installe
d (optional)], | |
20 xslt_config_exec_prefix="$withval", xslt_config_exec_prefix="") | |
21 AC_ARG_ENABLE(xslttest, | |
22 [ --disable-xslttest Do not try to compile and run a test L
IBXSLT program],, | |
23 enable_xslttest=yes) | |
24 | |
25 if test x$xslt_config_exec_prefix != x ; then | |
26 xslt_config_args="$xslt_config_args --exec-prefix=$xslt_config_exec_prefix" | |
27 if test x${XSLT_CONFIG+set} != xset ; then | |
28 XSLT_CONFIG=$xslt_config_exec_prefix/bin/xslt-config | |
29 fi | |
30 fi | |
31 if test x$xslt_config_prefix != x ; then | |
32 xslt_config_args="$xslt_config_args --prefix=$xslt_config_prefix" | |
33 if test x${XSLT_CONFIG+set} != xset ; then | |
34 XSLT_CONFIG=$xslt_config_prefix/bin/xslt-config | |
35 fi | |
36 fi | |
37 | |
38 AC_PATH_PROG(XSLT_CONFIG, xslt-config, no) | |
39 min_xslt_version=ifelse([$1], ,1.0.0,[$1]) | |
40 AC_MSG_CHECKING(for libxslt - version >= $min_xslt_version) | |
41 no_xslt="" | |
42 if test "$XSLT_CONFIG" = "no" ; then | |
43 no_xslt=yes | |
44 else | |
45 XSLT_CFLAGS=`$XSLT_CONFIG $xslt_config_args --cflags` | |
46 XSLT_LIBS=`$XSLT_CONFIG $xslt_config_args --libs` | |
47 xslt_config_major_version=`$XSLT_CONFIG $xslt_config_args --version | \ | |
48 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` | |
49 xslt_config_minor_version=`$XSLT_CONFIG $xslt_config_args --version | \ | |
50 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` | |
51 xslt_config_micro_version=`$XSLT_CONFIG $xslt_config_args --version | \ | |
52 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` | |
53 if test "x$enable_xslttest" = "xyes" ; then | |
54 ac_save_CFLAGS="$CFLAGS" | |
55 ac_save_LIBS="$LIBS" | |
56 CFLAGS="$CFLAGS $XSLT_CFLAGS" | |
57 LIBS="$XSLT_LIBS $LIBS" | |
58 dnl | |
59 dnl Now check if the installed libxslt is sufficiently new. | |
60 dnl (Also sanity checks the results of xslt-config to some extent) | |
61 dnl | |
62 rm -f conf.xslttest | |
63 AC_TRY_RUN([ | |
64 #include <stdlib.h> | |
65 #include <stdio.h> | |
66 #include <string.h> | |
67 #include <libxslt/xsltconfig.h> | |
68 #include <libxslt/xslt.h> | |
69 int | |
70 main() | |
71 { | |
72 int xslt_major_version, xslt_minor_version, xslt_micro_version; | |
73 int major, minor, micro; | |
74 char *tmp_version; | |
75 | |
76 system("touch conf.xslttest"); | |
77 | |
78 /* Capture xslt-config output via autoconf/configure variables */ | |
79 /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
80 tmp_version = (char *)strdup("$min_xslt_version"); | |
81 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
82 printf("%s, bad version string from xslt-config\n", "$min_xslt_version"); | |
83 exit(1); | |
84 } | |
85 free(tmp_version); | |
86 | |
87 /* Capture the version information from the header files */ | |
88 tmp_version = (char *)strdup(LIBXSLT_DOTTED_VERSION); | |
89 if (sscanf(tmp_version, "%d.%d.%d", &xslt_major_version, &xslt_minor_version,
&xslt_micro_version) != 3) { | |
90 printf("%s, bad version string from libxslt includes\n", "LIBXSLT_DOTTED_VE
RSION"); | |
91 exit(1); | |
92 } | |
93 free(tmp_version); | |
94 | |
95 /* Compare xslt-config output to the libxslt headers */ | |
96 if ((xslt_major_version != $xslt_config_major_version) || | |
97 (xslt_minor_version != $xslt_config_minor_version) || | |
98 (xslt_micro_version != $xslt_config_micro_version)) | |
99 { | |
100 printf("*** libxslt header files (version %d.%d.%d) do not match\n", | |
101 xslt_major_version, xslt_minor_version, xslt_micro_version); | |
102 printf("*** xslt-config (version %d.%d.%d)\n", | |
103 $xslt_config_major_version, $xslt_config_minor_version, $xslt_config_mi
cro_version); | |
104 return 1; | |
105 } | |
106 /* Compare the headers to the library to make sure we match */ | |
107 /* Less than ideal -- doesn't provide us with return value feedback, | |
108 * only exits if there's a serious mismatch between header and library. | |
109 */ | |
110 /* copied from LIBXML_TEST_VERSION; */ | |
111 xmlCheckVersion(LIBXML_VERSION); | |
112 | |
113 /* Test that the library is greater than our minimum version */ | |
114 if ((xslt_major_version > major) || | |
115 ((xslt_major_version == major) && (xslt_minor_version > minor)) || | |
116 ((xslt_major_version == major) && (xslt_minor_version == minor) && | |
117 (xslt_micro_version >= micro))) | |
118 { | |
119 return 0; | |
120 } | |
121 else | |
122 { | |
123 printf("\n*** An old version of libxslt (%d.%d.%d) was found.\n", | |
124 xslt_major_version, xslt_minor_version, xslt_micro_version); | |
125 printf("*** You need a version of libxslt newer than %d.%d.%d. The lates
t version of\n", | |
126 major, minor, micro); | |
127 printf("*** libxslt is always available from ftp://ftp.xmlsoft.org.\n"); | |
128 printf("***\n"); | |
129 printf("*** If you have already installed a sufficiently new version, th
is error\n"); | |
130 printf("*** probably means that the wrong copy of the xslt-config shell
script is\n"); | |
131 printf("*** being found. The easiest way to fix this is to remove the ol
d version\n"); | |
132 printf("*** of LIBXSLT, but you can also set the XSLT_CONFIG environment
to point to the\n"); | |
133 printf("*** correct copy of xslt-config. (In this case, you will have to
\n"); | |
134 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /et
c/ld.so.conf\n"); | |
135 printf("*** so that the correct libraries are found at run-time))\n"); | |
136 } | |
137 return 1; | |
138 } | |
139 ],, no_xslt=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) | |
140 CFLAGS="$ac_save_CFLAGS" | |
141 LIBS="$ac_save_LIBS" | |
142 fi | |
143 fi | |
144 | |
145 if test "x$no_xslt" = x ; then | |
146 AC_MSG_RESULT(yes (version $xslt_config_major_version.$xslt_config_minor_ve
rsion.$xslt_config_micro_version)) | |
147 ifelse([$2], , :, [$2]) | |
148 else | |
149 AC_MSG_RESULT(no) | |
150 if test "$XSLT_CONFIG" = "no" ; then | |
151 echo "*** The xslt-config script installed by LIBXSLT could not be found" | |
152 echo "*** If libxslt was installed in PREFIX, make sure PREFIX/bin is in" | |
153 echo "*** your path, or set the XSLT_CONFIG environment variable to the" | |
154 echo "*** full path to xslt-config." | |
155 else | |
156 if test -f conf.xslttest ; then | |
157 : | |
158 else | |
159 echo "*** Could not run libxslt test program, checking why..." | |
160 CFLAGS="$CFLAGS $XSLT_CFLAGS" | |
161 LIBS="$LIBS $XSLT_LIBS" | |
162 AC_TRY_LINK([ | |
163 #include <libxslt/xslt.h> | |
164 #include <stdio.h> | |
165 ], [ LIBXSLT_TEST_VERSION; return 0;], | |
166 [ echo "*** The test program compiled, but did not run. This usually mea
ns" | |
167 echo "*** that the run-time linker is not finding LIBXSLT or finding t
he wrong" | |
168 echo "*** version of LIBXSLT. If it is not finding LIBXSLT, you'll nee
d to set your" | |
169 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.con
f to point" | |
170 echo "*** to the installed location Also, make sure you have run ldco
nfig if that" | |
171 echo "*** is required on your system" | |
172 echo "***" | |
173 echo "*** If you have an old version installed, it is best to remove i
t, although" | |
174 echo "*** you may also be able to get things to work by modifying LD_L
IBRARY_PATH" ], | |
175 [ echo "*** The test program failed to compile or link. See the file con
fig.log for the" | |
176 echo "*** exact error that occured. This usually means LIBXSLT was inc
orrectly installed" | |
177 echo "*** or that you have moved LIBXSLT since it was installed. In th
e latter case, you" | |
178 echo "*** may want to edit the xslt-config script: $XSLT_CONFIG" ]) | |
179 CFLAGS="$ac_save_CFLAGS" | |
180 LIBS="$ac_save_LIBS" | |
181 fi | |
182 fi | |
183 | |
184 XSLT_CFLAGS="" | |
185 XSLT_LIBS="" | |
186 ifelse([$3], , :, [$3]) | |
187 fi | |
188 AC_SUBST(XSLT_CFLAGS) | |
189 AC_SUBST(XSLT_LIBS) | |
190 rm -f conf.xslttest | |
191 ]) | |
OLD | NEW |