Update extensions after changing ##lookin semantics
[shapes.git] / m4 / compare.m4
blob60a11ee1975482d240b4b362cfb5787997819061
1 AC_DEFUN([AC_PROG_COMPARE],
3   AC_ARG_WITH([compare],
4               [AS_HELP_STRING([--without-compare],
5               [disable use of compare to validate graphical output from tests])],
6             [],
7             [with_compare=yes])
9   if test "X$with_compare" = "Xyes"
10   then
11     AC_CHECK_PROG([COMPARE], [compare], [yes], [no])
12   else
13     COMPARE=no
14   fi
16 if test "X$COMPARE" = "Xyes"
17 then
18   min_ImageMagick_version=ifelse([$1], ,6.4.0,$1)
19   AC_MSG_CHECKING(for ImageMagick compare - version >= $min_ImageMagick_version)
20   ImageMagick_version=`compare -version | grep '^Version:' | sed -e 's!.*ImageMagick \([[^ ]]*\).*!\1!'`
22   AC_TRY_RUN([
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
27 char* my_strdup (const char *str);
29 char* my_strdup (const char *str)
31   char *new_str;
33   if (str)
34     {
35       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
36       strcpy (new_str, str);
37     }
38   else
39     new_str = NULL;
41   return new_str;
44 int main (void)
46   int major = 0, minor = 0, micro = 0;
47   int min_major = 0, min_minor = 0, min_micro = 0;
48   int n;
49   char *tmp_version;
51   /* HP/UX 9 (%@#!) writes to sscanf strings */
52   tmp_version = my_strdup("$min_ImageMagick_version");
53   n = sscanf(tmp_version, "%d.%d.%d", &min_major, &min_minor, &min_micro);
55   if (n != 2 && n != 3) {
56      printf("%s, bad minimum version string\n", "$min_ImageMagick_version");
57      exit(1);
58    }
60   tmp_version = my_strdup("$ImageMagick_version");
61   n = sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) ;
63   if (n != 2 && n != 3) {
64      printf("%d, %s, bad version string\n", n, "$ImageMagick_version");
65      exit(1);
66    }
68   if ((major > min_major) ||
69       ((major == min_major) && (minor > min_minor)) ||
70       ((major == min_major) && (minor == min_minor) && (micro >= min_micro)))
71     {
72       exit(0);
73     }
74   else
75     {
76       exit(1);
77     }
79     ],
80     [
81                   COMPARE=yes
82       AC_MSG_RESULT(yes)
83     ],[
84                   COMPARE=no
85                         AC_MSG_RESULT(no)
86                 ],)
87         AC_SUBST([COMPARE])