~ubuntu-branches/debian/sid/libdc0/sid

« back to all changes in this revision

Viewing changes to admin/libxml.m4.in

  • Committer: Bazaar Package Importer
  • Author(s): Pasi Savilaakso
  • Date: 2004-06-05 23:01:37 UTC
  • Revision ID: james.westby@ubuntu.com-20040605230137-2ty5g6rcfyguk4et
Tags: upstream-0.3.2
ImportĀ upstreamĀ versionĀ 0.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Configure paths for LIBXML2
 
2
# Toshio Kuratomi 2001-04-21
 
3
# Adapted from:
 
4
# Configure paths for GLIB
 
5
# Owen Taylor     97-11-3
 
6
 
 
7
dnl AM_PATH_XML([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 
8
dnl Test for XML, and define XML_CFLAGS and XML_LIBS
 
9
dnl
 
10
AC_DEFUN([AM_PATH_XML],[ 
 
11
AC_ARG_WITH(xml-prefix,
 
12
            [  --with-xml-prefix=PFX   Prefix where libxml is installed (optional)],
 
13
            xml_config_prefix="$withval", xml_config_prefix="")
 
14
AC_ARG_WITH(xml-exec-prefix,
 
15
            [  --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
 
16
            xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
 
17
AC_ARG_ENABLE(xmltest,
 
18
              [  --disable-xmltest       Do not try to compile and run a test LIBXML program],,
 
19
              enable_xmltest=yes)
 
20
 
 
21
  if test x$xml_config_exec_prefix != x ; then
 
22
     xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix"
 
23
     if test x${XML_CONFIG+set} != xset ; then
 
24
        XML_CONFIG=$xml_config_exec_prefix/bin/xml-config
 
25
     fi
 
26
  fi
 
27
  if test x$xml_config_prefix != x ; then
 
28
     xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
 
29
     if test x${XML_CONFIG+set} != xset ; then
 
30
        XML_CONFIG=$xml_config_prefix/bin/xml-config
 
31
     fi
 
32
  fi
 
33
 
 
34
  AC_PATH_PROG(XML_CONFIG, xml-config, no)
 
35
  min_xml_version=ifelse([$1], ,1.0.0,[$1])
 
36
  AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
 
37
  no_xml=""
 
38
  if test "$XML_CONFIG" = "no" ; then
 
39
    no_xml=yes
 
40
  else
 
41
    XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags`
 
42
    XML_LIBS=`$XML_CONFIG $xml_config_args --libs`
 
43
    xml_config_major_version=`$XML_CONFIG $xml_config_args --version | \
 
44
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
 
45
    xml_config_minor_version=`$XML_CONFIG $xml_config_args --version | \
 
46
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
 
47
    xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \
 
48
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 
49
    if test "x$enable_xmltest" = "xyes" ; then
 
50
      ac_save_CFLAGS="$CFLAGS"
 
51
      ac_save_LIBS="$LIBS"
 
52
      CFLAGS="$CFLAGS $XML_CFLAGS"
 
53
      LIBS="$XML_LIBS $LIBS"
 
54
dnl
 
55
dnl Now check if the installed libxml is sufficiently new.
 
56
dnl (Also sanity checks the results of xml-config to some extent)
 
57
dnl
 
58
      rm -f conf.xmltest
 
59
      AC_TRY_RUN([
 
60
#include <stdlib.h>
 
61
#include <stdio.h>
 
62
#include <string.h>
 
63
#include <libxml/tree.h>
 
64
 
 
65
int 
 
66
main()
 
67
{
 
68
  int xml_major_version, xml_minor_version, xml_micro_version;
 
69
  int major, minor, micro;
 
70
  char *tmp_version;
 
71
  int tmp_int_version;
 
72
 
 
73
  system("touch conf.xmltest");
 
74
 
 
75
  /* Capture xml-config output via autoconf/configure variables */
 
76
  /* HP/UX 9 (%@#!) writes to sscanf strings */
 
77
  tmp_version = (char *)strdup("$min_xml_version");
 
78
  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
 
79
     printf("%s, bad version string from xml-config\n", "$min_xml_version");
 
80
     exit(1);
 
81
   }
 
82
   free(tmp_version);
 
83
 
 
84
   /* Capture the version information from the header files */
 
85
   tmp_int_version = LIBXML_VERSION;
 
86
   xml_major_version=tmp_int_version / 10000;
 
87
   xml_minor_version=(tmp_int_version - xml_major_version * 10000) / 100;
 
88
   xml_micro_version=(tmp_int_version - xml_minor_version * 100 - xml_major_version * 10000);
 
89
 
 
90
 /* Compare xml-config output to the libxml headers */
 
91
  if ((xml_major_version != $xml_config_major_version) ||
 
92
      (xml_minor_version != $xml_config_minor_version)
 
93
#if 0
 
94
      ||
 
95
/* The last released version of libxml-1.x has an incorrect micro version in
 
96
 * the header file so neither the includes nor the library will match the
 
97
 * micro_version to the output of xml-config
 
98
 */
 
99
      (xml_micro_version != $xml_config_micro_version)
 
100
#endif 
 
101
          )
 
102
          
 
103
    {
 
104
      printf("*** libxml header files (version %d.%d.%d) do not match\n",
 
105
         xml_major_version, xml_minor_version, xml_micro_version);
 
106
      printf("*** xml-config (version %d.%d.%d)\n",
 
107
         $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
 
108
      return 1;
 
109
    } 
 
110
/* Compare the headers to the library to make sure we match */
 
111
  /* Less than ideal -- doesn't provide us with return value feedback, 
 
112
   * only exits if there's a serious mismatch between header and library.
 
113
   */
 
114
    LIBXML_TEST_VERSION;
 
115
 
 
116
    /* Test that the library is greater than our minimum version */
 
117
    if (($xml_config_major_version > major) ||
 
118
        (($xml_config_major_version == major) && ($xml_config_minor_version > minor)) ||
 
119
        (($xml_config_major_version == major) && ($xml_config_minor_version == minor) &&
 
120
        ($xml_config_micro_version >= micro)))
 
121
      {
 
122
        return 0;
 
123
       }
 
124
     else
 
125
      {
 
126
        printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
 
127
               xml_major_version, xml_minor_version, xml_micro_version);
 
128
        printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
 
129
           major, minor, micro);
 
130
        printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
 
131
        printf("***\n");
 
132
        printf("*** If you have already installed a sufficiently new version, this error\n");
 
133
        printf("*** probably means that the wrong copy of the xml-config shell script is\n");
 
134
        printf("*** being found. The easiest way to fix this is to remove the old version\n");
 
135
        printf("*** of LIBXML, but you can also set the XML_CONFIG environment to point to the\n");
 
136
        printf("*** correct copy of xml-config. (In this case, you will have to\n");
 
137
        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
 
138
        printf("*** so that the correct libraries are found at run-time))\n");
 
139
    }
 
140
  return 1;
 
141
}
 
142
],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
 
143
       CFLAGS="$ac_save_CFLAGS"
 
144
       LIBS="$ac_save_LIBS"
 
145
     fi
 
146
  fi
 
147
 
 
148
  if test "x$no_xml" = x ; then
 
149
     AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
 
150
     ifelse([$2], , :, [$2])     
 
151
  else
 
152
     AC_MSG_RESULT(no)
 
153
     if test "$XML_CONFIG" = "no" ; then
 
154
       echo "*** The xml-config script installed by LIBXML could not be found"
 
155
       echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
 
156
       echo "*** your path, or set the XML_CONFIG environment variable to the"
 
157
       echo "*** full path to xml-config."
 
158
     else
 
159
       if test -f conf.xmltest ; then
 
160
        :
 
161
       else
 
162
          echo "*** Could not run libxml test program, checking why..."
 
163
          CFLAGS="$CFLAGS $XML_CFLAGS"
 
164
          LIBS="$LIBS $XML_LIBS"
 
165
          AC_TRY_LINK([
 
166
#include <libxml/tree.h>
 
167
#include <stdio.h>
 
168
],      [ LIBXML_TEST_VERSION; return 0;],
 
169
        [ echo "*** The test program compiled, but did not run. This usually means"
 
170
          echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
 
171
          echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
 
172
          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
 
173
          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
 
174
          echo "*** is required on your system"
 
175
          echo "***"
 
176
          echo "*** If you have an old version installed, it is best to remove it, although"
 
177
          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
 
178
        [ echo "*** The test program failed to compile or link. See the file config.log for the"
 
179
          echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
 
180
          echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
 
181
          echo "*** may want to edit the xml-config script: $XML_CONFIG" ])
 
182
          CFLAGS="$ac_save_CFLAGS"
 
183
          LIBS="$ac_save_LIBS"
 
184
       fi
 
185
     fi
 
186
 
 
187
     XML_CFLAGS=""
 
188
     XML_LIBS=""
 
189
     ifelse([$3], , :, [$3])
 
190
  fi
 
191
  AC_SUBST(XML_CFLAGS)
 
192
  AC_SUBST(XML_LIBS)
 
193
  rm -f conf.xmltest
 
194
])
 
195
 
 
196
# Configure paths for LIBXML2
 
197
# Toshio Kuratomi 2001-04-21
 
198
# Adapted from:
 
199
# Configure paths for GLIB
 
200
# Owen Taylor     97-11-3
 
201
 
 
202
dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 
203
dnl Test for XML, and define XML_CFLAGS and XML_LIBS
 
204
dnl
 
205
AC_DEFUN([AM_PATH_XML2],[ 
 
206
AC_ARG_WITH(xml-prefix,
 
207
            [  --with-xml-prefix=PFX   Prefix where libxml is installed (optional)],
 
208
            xml_config_prefix="$withval", xml_config_prefix="")
 
209
AC_ARG_WITH(xml-exec-prefix,
 
210
            [  --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
 
211
            xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
 
212
AC_ARG_ENABLE(xmltest,
 
213
              [  --disable-xmltest       Do not try to compile and run a test LIBXML program],,
 
214
              enable_xmltest=yes)
 
215
 
 
216
  if test x$xml_config_exec_prefix != x ; then
 
217
     xml_config_args="$xml_config_args"
 
218
     if test x${XML2_CONFIG+set} != xset ; then
 
219
        XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config
 
220
     fi
 
221
  fi
 
222
  if test x$xml_config_prefix != x ; then
 
223
     xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
 
224
     if test x${XML2_CONFIG+set} != xset ; then
 
225
        XML2_CONFIG=$xml_config_prefix/bin/xml2-config
 
226
     fi
 
227
  fi
 
228
 
 
229
  AC_PATH_PROG(XML2_CONFIG, xml2-config, no)
 
230
  min_xml_version=ifelse([$1], ,2.0.0,[$1])
 
231
  AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
 
232
  no_xml=""
 
233
  if test "$XML2_CONFIG" = "no" ; then
 
234
    no_xml=yes
 
235
  else
 
236
    XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
 
237
    XML_LIBS=`$XML2_CONFIG $xml_config_args --libs`
 
238
    xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \
 
239
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
 
240
    xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \
 
241
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
 
242
    xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \
 
243
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 
244
    if test "x$enable_xmltest" = "xyes" ; then
 
245
      ac_save_CFLAGS="$CFLAGS"
 
246
      ac_save_LIBS="$LIBS"
 
247
      CFLAGS="$CFLAGS $XML_CFLAGS"
 
248
      LIBS="$XML_LIBS $LIBS"
 
249
dnl
 
250
dnl Now check if the installed libxml is sufficiently new.
 
251
dnl (Also sanity checks the results of xml2-config to some extent)
 
252
dnl
 
253
      rm -f conf.xmltest
 
254
      AC_TRY_RUN([
 
255
#include <stdlib.h>
 
256
#include <stdio.h>
 
257
#include <string.h>
 
258
#include <libxml/xmlversion.h>
 
259
 
 
260
int 
 
261
main()
 
262
{
 
263
  int xml_major_version, xml_minor_version, xml_micro_version;
 
264
  int major, minor, micro;
 
265
  char *tmp_version;
 
266
 
 
267
  system("touch conf.xmltest");
 
268
 
 
269
  /* Capture xml2-config output via autoconf/configure variables */
 
270
  /* HP/UX 9 (%@#!) writes to sscanf strings */
 
271
  tmp_version = (char *)strdup("$min_xml_version");
 
272
  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
 
273
     printf("%s, bad version string from xml2-config\n", "$min_xml_version");
 
274
     exit(1);
 
275
   }
 
276
   free(tmp_version);
 
277
 
 
278
   /* Capture the version information from the header files */
 
279
   tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION);
 
280
   if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) {
 
281
     printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION");
 
282
     exit(1);
 
283
   }
 
284
   free(tmp_version);
 
285
 
 
286
 /* Compare xml2-config output to the libxml headers */
 
287
  if ((xml_major_version != $xml_config_major_version) ||
 
288
      (xml_minor_version != $xml_config_minor_version) ||
 
289
      (xml_micro_version != $xml_config_micro_version))
 
290
    {
 
291
      printf("*** libxml header files (version %d.%d.%d) do not match\n",
 
292
         xml_major_version, xml_minor_version, xml_micro_version);
 
293
      printf("*** xml2-config (version %d.%d.%d)\n",
 
294
         $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
 
295
      return 1;
 
296
    } 
 
297
/* Compare the headers to the library to make sure we match */
 
298
  /* Less than ideal -- doesn't provide us with return value feedback, 
 
299
   * only exits if there's a serious mismatch between header and library.
 
300
   */
 
301
    LIBXML_TEST_VERSION;
 
302
 
 
303
    /* Test that the library is greater than our minimum version */
 
304
    if ((xml_major_version > major) ||
 
305
        ((xml_major_version == major) && (xml_minor_version > minor)) ||
 
306
        ((xml_major_version == major) && (xml_minor_version == minor) &&
 
307
        (xml_micro_version >= micro)))
 
308
      {
 
309
        return 0;
 
310
       }
 
311
     else
 
312
      {
 
313
        printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
 
314
               xml_major_version, xml_minor_version, xml_micro_version);
 
315
        printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
 
316
           major, minor, micro);
 
317
        printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
 
318
        printf("***\n");
 
319
        printf("*** If you have already installed a sufficiently new version, this error\n");
 
320
        printf("*** probably means that the wrong copy of the xml2-config shell script is\n");
 
321
        printf("*** being found. The easiest way to fix this is to remove the old version\n");
 
322
        printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n");
 
323
        printf("*** correct copy of xml2-config. (In this case, you will have to\n");
 
324
        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
 
325
        printf("*** so that the correct libraries are found at run-time))\n");
 
326
    }
 
327
  return 1;
 
328
}
 
329
],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
 
330
       CFLAGS="$ac_save_CFLAGS"
 
331
       LIBS="$ac_save_LIBS"
 
332
     fi
 
333
  fi
 
334
 
 
335
  if test "x$no_xml" = x ; then
 
336
     AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
 
337
     ifelse([$2], , :, [$2])     
 
338
  else
 
339
     AC_MSG_RESULT(no)
 
340
     if test "$XML2_CONFIG" = "no" ; then
 
341
       echo "*** The xml2-config script installed by LIBXML could not be found"
 
342
       echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
 
343
       echo "*** your path, or set the XML2_CONFIG environment variable to the"
 
344
       echo "*** full path to xml2-config."
 
345
     else
 
346
       if test -f conf.xmltest ; then
 
347
        :
 
348
       else
 
349
          echo "*** Could not run libxml test program, checking why..."
 
350
          CFLAGS="$CFLAGS $XML_CFLAGS"
 
351
          LIBS="$LIBS $XML_LIBS"
 
352
          AC_TRY_LINK([
 
353
#include <libxml/xmlversion.h>
 
354
#include <stdio.h>
 
355
],      [ LIBXML_TEST_VERSION; return 0;],
 
356
        [ echo "*** The test program compiled, but did not run. This usually means"
 
357
          echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
 
358
          echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
 
359
          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
 
360
          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
 
361
          echo "*** is required on your system"
 
362
          echo "***"
 
363
          echo "*** If you have an old version installed, it is best to remove it, although"
 
364
          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
 
365
        [ echo "*** The test program failed to compile or link. See the file config.log for the"
 
366
          echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
 
367
          echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
 
368
          echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
 
369
          CFLAGS="$ac_save_CFLAGS"
 
370
          LIBS="$ac_save_LIBS"
 
371
       fi
 
372
     fi
 
373
 
 
374
     XML_CFLAGS=""
 
375
     XML_LIBS=""
 
376
     ifelse([$3], , :, [$3])
 
377
  fi
 
378
  AC_SUBST(XML_CFLAGS)
 
379
  AC_SUBST(XML_LIBS)
 
380
  rm -f conf.xmltest
 
381
])