Use gedcom_check_version when available.
[gedcom-parse.git] / m4 / gedcom.m4
1 dnl Autoconf/automake macros for the Gedcom parser library
2 dnl Peter Verthez
3 dnl 
4 dnl $Id$
5 dnl $Name$
6
7 dnl AM_LIB_GEDCOM_PARSER([MINIMUM-MAJOR-VERSION, [MINIMUM-MINOR-VERSION,
8 dnl                      [MINIMUM-PATCH]]])
9 dnl Test for the availability of the Gedcom parser library, and check whether
10 dnl the required minimum version is available (parameters default to 0 if
11 dnl not given)
12 AC_DEFUN(AM_LIB_GEDCOM_PARSER, [
13   AC_CHECK_LIB(gedcom, gedcom_parse_file,,
14      AC_MSG_ERROR([Cannot find libgedcom: Please install gedcom-parse]))
15   major_version=ifelse([$1], ,0,$1)
16   minor_version=ifelse([$2], ,0,$2)
17   patch_version=ifelse([$3], ,0,$3)
18   if test "$patch_version" = '0'; then
19     AC_MSG_CHECKING(for libgedcom version >= $major_version.$minor_version)
20   else
21     AC_MSG_CHECKING(for libgedcom version >= $major_version.$minor_version.$patch_version)
22   fi
23   AC_TRY_RUN([
24 #include <stdlib.h>
25 #include <gedcom.h>
26 int
27 main()
28 {
29 #ifdef GEDCOM_PARSE_VERSION_PATCH
30 if (gedcom_check_version($major_version, $minor_version, $patch_version))
31   exit(0);
32 #else
33 if (GEDCOM_PARSE_VERSION >= $major_version * 1000 + $minor_version) exit(0);
34 #endif
35 exit(1);
36 }],
37 ac_gedcom_version_ok='yes',
38 ac_gedcom_version_ok='no',
39 ac_gedcom_version_ok='no')
40 if test "$ac_gedcom_version_ok" = 'yes' ; then
41   AC_MSG_RESULT(ok)
42 else
43   AC_MSG_RESULT(not ok)
44   if test "$patch_version" = '0'; then
45     AC_MSG_ERROR(You need at least version $major_version.$minor_version of gedcom-parse)
46   else
47     AC_MSG_ERROR(You need at least version $major_version.$minor_version.$patch_version of gedcom-parse)
48   fi
49 fi
50 ])