Various changes
[gnupg.git] / m4 / libassuan.m4
1 dnl Autoconf macros for libassuan
2 dnl       Copyright (C) 2002, 2003 Free Software Foundation, Inc.
3 dnl
4 dnl This file is free software; as a special exception the author gives
5 dnl unlimited permission to copy and/or distribute it, with or without
6 dnl modifications, as long as this notice is preserved.
7 dnl
8 dnl This file is distributed in the hope that it will be useful, but
9 dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
10 dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12 dnl
13 dnl Common code used for libassuan detection [internal]
14 dnl Returns ok set to yes or no.
15 dnl
16 AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
17 [ AC_ARG_WITH(libassuan-prefix,
18               AC_HELP_STRING([--with-libassuan-prefix=PFX],
19                              [prefix where LIBASSUAN is installed (optional)]),
20      libassuan_config_prefix="$withval", libassuan_config_prefix="")
21   if test x$libassuan_config_prefix != x ; then
22     libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix"
23     if test x${LIBASSUAN_CONFIG+set} != xset ; then
24       LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config
25     fi
26   fi
27   AC_PATH_PROG(LIBASSUAN_CONFIG, libassuan-config, no)
28
29   tmp=ifelse([$1], ,1:0.9.2,$1)
30   if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
31     req_libassuan_api=`echo "$tmp"     | sed 's/\(.*\):\(.*\)/\1/'`
32     min_libassuan_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
33   else
34     req_libassuan_api=0
35     min_libassuan_version="$tmp"
36   fi
37
38   if test "$LIBASSUAN_CONFIG" != "no" ; then
39     libassuan_version=`$LIBASSUAN_CONFIG --version`
40   fi
41   libassuan_version_major=`echo $libassuan_version | \
42                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
43   libassuan_version_minor=`echo $libassuan_version | \
44                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
45   libassuan_version_micro=`echo $libassuan_version | \
46                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
47
48   AC_MSG_CHECKING(for LIBASSUAN ifelse([$2], ,,[$2 ])- version >= $min_libassuan_version)
49   ok=no
50   if test "$LIBASSUAN_CONFIG" != "no" ; then
51     ifelse([$2], ,,[if `$LIBASSUAN_CONFIG --thread=$2 2> /dev/null` ; then])
52     req_major=`echo $min_libassuan_version | \
53                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
54     req_minor=`echo $min_libassuan_version | \
55                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
56     req_micro=`echo $min_libassuan_version | \
57                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
58     if test "$libassuan_version_major" -gt "$req_major"; then
59         ok=yes
60     else 
61         if test "$libassuan_version_major" -eq "$req_major"; then
62             if test "$libassuan_version_minor" -gt "$req_minor"; then
63                ok=yes
64             else
65                if test "$libassuan_version_minor" -eq "$req_minor"; then
66                    if test "$libassuan_version_micro" -ge "$req_micro"; then
67                      ok=yes
68                    fi
69                fi
70             fi
71         fi
72     fi
73     ifelse([$2], ,,[fi])
74   fi
75
76   if test $ok = yes; then
77     AC_MSG_RESULT(yes)
78   else
79     AC_MSG_RESULT(no)
80   fi
81
82   if test $ok = yes; then
83     if test "$req_libassuan_api" -gt 0 ; then
84       tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0`
85       if test "$tmp" -gt 0 ; then
86         AC_MSG_CHECKING([LIBASSUAN ifelse([$2], ,,[$2 ])API version])
87         if test "$req_libassuan_api" -eq "$tmp" ; then
88           AC_MSG_RESULT(okay)
89         else
90           ok=no
91           AC_MSG_RESULT([does not match.  want=$req_libassuan_api got=$tmp.])
92         fi
93       fi
94     fi
95   fi
96
97 ])
98
99
100
101 dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
102 dnl                   [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
103 dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
104 dnl
105 AC_DEFUN([AM_PATH_LIBASSUAN],
106 [ _AM_PATH_LIBASSUAN_COMMON($1)
107   if test $ok = yes; then
108     LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --cflags`
109     LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --libs`
110     ifelse([$2], , :, [$2])
111   else
112     LIBASSUAN_CFLAGS=""
113     LIBASSUAN_LIBS=""
114     ifelse([$3], , :, [$3])
115   fi
116   AC_SUBST(LIBASSUAN_CFLAGS)
117   AC_SUBST(LIBASSUAN_LIBS)
118 ])
119
120
121 dnl AM_PATH_LIBASSUAN_PTH([MINIMUM-VERSION,
122 dnl                      [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
123 dnl Test for libassuan and define LIBASSUAN_PTH_CFLAGSand LIBASSUAN_PTH_LIBS
124 dnl
125 AC_DEFUN([AM_PATH_LIBASSUAN_PTH],
126 [ _AM_PATH_LIBASSUAN_COMMON($1,pth)
127   if test $ok = yes; then
128     LIBASSUAN_PTH_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --thread=pth --cflags`
129     LIBASSUAN_PTH_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --thread=pth --libs`
130     ifelse([$2], , :, [$2])
131   else
132     LIBASSUAN_PTH_CFLAGS=""
133     LIBASSUAN_PTH_LIBS=""
134     ifelse([$3], , :, [$3])
135   fi
136   AC_SUBST(LIBASSUAN_PTH_CFLAGS)
137   AC_SUBST(LIBASSUAN_PTH_LIBS)
138 ])
139
140
141 dnl AM_PATH_LIBASSUAN_PTHREAD([MINIMUM-VERSION,
142 dnl                           [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
143 dnl Test for libassuan and define LIBASSUAN_PTHREAD_CFLAGS 
144 dnl                           and LIBASSUAN_PTHREAD_LIBS
145 dnl
146 AC_DEFUN([AM_PATH_LIBASSUAN_PTHREAD],
147 [ _AM_PATH_LIBASSUAN_COMMON($1,pth)
148   if test $ok = yes; then
149     LIBASSUAN_PTHREAD_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --thread=pthread --cflags`
150     LIBASSUAN_PTHREAD_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --thread=pthread --libs`
151     ifelse([$2], , :, [$2])
152   else
153     LIBASSUAN_PTHREAD_CFLAGS=""
154     LIBASSUAN_PTHREAD_LIBS=""
155     ifelse([$3], , :, [$3])
156   fi
157   AC_SUBST(LIBASSUAN_PTHREAD_CFLAGS)
158   AC_SUBST(LIBASSUAN_PTHREAD_LIBS)
159 ])
160