comparison mcabber/macros/missing/libotr.m4 @ 1302:1abddbec502a

Provide libotr and libgcrypt m4 macros
author Mikael Berthe <mikael@lilotux.net>
date Thu, 30 Aug 2007 09:57:01 +0200
parents
children 5e99e802656c
comparison
equal deleted inserted replaced
1301:37b41ed9ed35 1302:1abddbec502a
1 dnl
2 dnl Off-the-Record Messaging library
3 dnl Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
4 dnl <otr@cypherpunks.ca>
5 dnl
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of version 2.1 of the GNU Lesser General
8 dnl Public License as published by the Free Software Foundation.
9 dnl
10 dnl This library is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 dnl Lesser General Public License for more details.
14 dnl
15 dnl You should have received a copy of the GNU Lesser General Public
16 dnl License along with this library; if not, write to the Free Software
17 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 dnl
19
20 dnl AM_PATH_LIBOTR([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
21 dnl Test for libotr, and define LIBOTR_CFLAGS and LIBOTR_LIBS as appropriate.
22 dnl enables arguments --with-libotr-prefix=
23 dnl --with-libotr-inc-prefix=
24 dnl
25 dnl You must already have found libgcrypt with AM_PATH_LIBGCRYPT
26 dnl
27 dnl Adapted from alsa.m4, originally by
28 dnl Richard Boulton <richard-alsa@tartarus.org>
29 dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
30 dnl Jaroslav Kysela <perex@suse.cz>
31
32 AC_DEFUN([AM_PATH_LIBOTR],
33 [dnl Save the original CFLAGS, LDFLAGS, and LIBS
34 libotr_save_CFLAGS="$CFLAGS"
35 libotr_save_LDFLAGS="$LDFLAGS"
36 libotr_save_LIBS="$LIBS"
37 libotr_found=yes
38
39 dnl
40 dnl Get the cflags and libraries for libotr
41 dnl
42 AC_ARG_WITH(libotr-prefix,
43 [ --with-libotr-prefix=PFX Prefix where libotr is installed(optional)],
44 [libotr_prefix="$withval"], [libotr_prefix=""])
45
46 AC_ARG_WITH(libotr-inc-prefix,
47 [ --with-libotr-inc-prefix=PFX Prefix where libotr includes are (optional)],
48 [libotr_inc_prefix="$withval"], [libotr_inc_prefix=""])
49
50 dnl Add any special include directories
51 AC_MSG_CHECKING(for libotr CFLAGS)
52 if test "$libotr_inc_prefix" != "" ; then
53 LIBOTR_CFLAGS="$LIBOTR_CFLAGS -I$libotr_inc_prefix"
54 CFLAGS="$CFLAGS $LIBOTR_CFLAGS"
55 fi
56 AC_MSG_RESULT($LIBOTR_CFLAGS)
57
58 dnl add any special lib dirs
59 AC_MSG_CHECKING(for libotr LIBS)
60 if test "$libotr_prefix" != "" ; then
61 LIBOTR_LIBS="$LIBOTR_LIBS -L$libotr_prefix"
62 LDFLAGS="$LDFLAGS $LIBOTR_LIBS"
63 fi
64
65 dnl add the libotr library
66 LIBOTR_LIBS="$LIBOTR_LIBS -lotr"
67 LIBS="$LIBOTR_LIBS $LIBS"
68 AC_MSG_RESULT($LIBOTR_LIBS)
69
70 dnl Check for a working version of libotr that is of the right version.
71 min_libotr_version=ifelse([$1], ,3.0.0,$1)
72 no_libotr=""
73 libotr_min_major_version=`echo $min_libotr_version | \
74 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
75 libotr_min_minor_version=`echo $min_libotr_version | \
76 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
77 libotr_min_sub_version=`echo $min_libotr_version | \
78 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
79 AC_MSG_CHECKING(for libotr headers version $libotr_min_major_version.x >= $min_libotr_version)
80
81 AC_LANG_SAVE
82 AC_LANG_C
83 AC_TRY_COMPILE([
84 #include <stdlib.h>
85 #include <libotr/version.h>
86 ], [
87 # if(OTRL_VERSION_MAJOR != $libotr_min_major_version)
88 # error not present
89 # else
90
91 # if(OTRL_VERSION_MINOR > $libotr_min_minor_version)
92 exit(0);
93 # else
94 # if(OTRL_VERSION_MINOR < $libotr_min_minor_version)
95 # error not present
96 # endif
97
98 # if(OTRL_VERSION_SUB < $libotr_min_sub_version)
99 # error not present
100 # endif
101 # endif
102 # endif
103 exit(0);
104 ],
105 [AC_MSG_RESULT(found.)],
106 [AC_MSG_RESULT(not present.)
107 ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libotr not found.)])
108 libotr_found=no]
109 )
110 AC_LANG_RESTORE
111
112 dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
113 AC_CHECK_LIB([otr], [otrl_message_receiving],,
114 [ifelse([$3], , [AC_MSG_ERROR(No linkable libotr was found.)])
115 libotr_found=no],
116 $LIBGCRYPT_LIBS
117 )
118
119 LDFLAGS="$libotr_save_LDFLAGS"
120 LIBS="$libotr_save_LIBS"
121
122 if test "x$libotr_found" = "xyes" ; then
123 ifelse([$2], , :, [$2])
124 else
125 LIBOTR_CFLAGS=""
126 LIBOTR_LIBS=""
127 ifelse([$3], , :, [$3])
128 fi
129
130 dnl That should be it. Now just export our symbols:
131 AC_SUBST(LIBOTR_CFLAGS)
132 AC_SUBST(LIBOTR_LIBS)
133 ])
134