]> git.sur5r.net Git - glabels/blob - glabels2/macros/gnome-pilot.m4
Skrewing with the build environment.
[glabels] / glabels2 / macros / gnome-pilot.m4
1 dnl
2 dnl GNOME_PILOT_HOOK(script if found, fail)
3 dnl if fail = "failure", abort if gnome-pilot not found
4 dnl
5
6 dnl
7 dnl 
8
9 GNOME_PILOT_CFLAGS=
10 GNOME_PILOT_LIBS=
11 PISOCK_CFLAGS=
12 PISOCK_LIBS=
13
14 AC_SUBST(GNOME_PILOT_CFLAGS)
15 AC_SUBST(GNOME_PILOT_LIBS)
16 AC_SUBST(PISOCK_CFLAGS)
17 AC_SUBST(PISOCK_LIBS)
18
19 AC_DEFUN([PILOT_LINK_HOOK],[
20         AC_ARG_WITH(pisock,
21         [  --with-pisock            Specify prefix for pisock files],[
22         if test x$withval = xyes; then
23             dnl Note that an empty true branch is not valid sh syntax.
24             ifelse([$1], [], :, [$1])
25         else
26             PISOCK_CFLAGS="-I$withval/include"
27             incdir="$withval/include"
28             PISOCK_LIBS="-L$withval/lib -lpisock"
29             AC_MSG_CHECKING("for existance of $withval/lib/libpisock.so")
30             if test -r $withval/lib/libpisock.so; then
31                 AC_MSG_RESULT(yes)
32             else
33                 AC_MSG_ERROR([Unable to find libpisock. Try  http://www.pilot-link.org.])
34             fi
35         fi
36         ])
37
38         if test x$PISOCK_CFLAGS = x; then
39             AC_CHECK_HEADER(pi-version.h, [incdir="/usr/include"], [
40             AC_CHECK_HEADER(libpisock/pi-version.h, [PISOCK_CFLAGS="-I/usr/include/libpisock"
41                                                      piversion_include="libpisock/pi-version.h"
42                                                      incdir="/usr/include/libpisock"
43                                                     ], [
44             AC_CHECK_HEADER($prefix/include/pi-version.h, [PISOCK_CFLAGS="-I$prefix/include/libpisock"
45                                                            piversion_include="$prefix/include/pi-version.h"
46                                                            if test x$PISOCK_LIBDIR = x; then
47                                                               incdir="$prefix/include"
48                                                               PISOCK_LIBS="-L$prefix/lib -lpisock"
49                                                            fi                                                     ],
50             AC_MSG_ERROR([Unable to find pi-version.h])) 
51             ])
52             ])
53         fi
54                 
55         if test "x$PISOCK_LIBS" = "x"; then
56                 AC_CHECK_LIB(pisock, pi_accept, [ PISOCK_LIBS=-lpisock ], 
57                         [ AC_MSG_ERROR([Unable to find libpisock. Try http://www.pilot-link.org.]) ])
58         fi
59         
60         AC_ARG_ENABLE(pilotlinktest,
61                 [  --enable-pilotlinktest   Test for correct version of pilot-link],
62                 [testplversion=$enableval],
63                 [ testplversion=yes ]
64         )
65
66         if test x$piversion_include = x; then
67                 piversion_include="pi-version.h"
68         fi
69
70         pi_version=`cat $incdir/pi-version.h|grep PILOT_LINK_VERSION|sed 's/#define PILOT_LINK_VERSION \([[0-9]]*\)/\1/'`
71         pi_major=`cat $incdir/pi-version.h|grep PILOT_LINK_MAJOR|sed 's/#define PILOT_LINK_MAJOR \([[0-9]]*\)/\1/'`
72         pi_minor=`cat $incdir/pi-version.h|grep PILOT_LINK_MINOR|sed 's/#define PILOT_LINK_MINOR \([[0-9]]*\)/\1/'`
73         pi_patch=`cat $incdir/pi-version.h|grep PILOT_LINK_PATCH|sed 's/#define PILOT_LINK_PATCH \"\(.*\)\"/\1/'`
74
75         PILOT_LINK_VERSION="$pi_version.$pi_major.$pi_minor$pi_patch"
76
77         if test x$testplversion = xyes; then
78                 AC_MSG_CHECKING([for pilot-link version >= $1])
79                 pl_ve=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
80                 pl_ma=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
81                 pl_mi=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
82                 CFLAGS_save="$CFLAGS"
83                 CFLAGS="$CFLAGS $PISOCK_CFLAGS"
84                 AC_TRY_RUN(
85                         [
86                         #include <$piversion_include>
87                         int main(int argc,char *argv[]) {
88                                 if (PILOT_LINK_VERSION == $pl_ve) {
89                                         if (PILOT_LINK_MAJOR == $pl_ma) {
90                                                 if (PILOT_LINK_MINOR >= $pl_mi) {
91                                                         return 0;
92                                                 }
93                                         } else if (PILOT_LINK_MAJOR > $pl_ma) {
94                                                 return 0;
95                                         }
96                                 } else if (PILOT_LINK_VERSION > $pl_ve) {
97                                         return 0;
98                                 }
99                                 return 1;
100                         }
101                         ],
102                         [AC_MSG_RESULT([yes (found $PILOT_LINK_VERSION)])],
103                         [AC_MSG_ERROR([pilot-link >= $1 required])],
104                         [AC_MSG_WARN([No action taken for crosscompile])]
105                 )
106                 CFLAGS="$CFLAGS_save"
107         fi
108
109         unset piversion_include
110         unset pi_verion
111         unset pi_major
112         unset pi_minor
113         unset pi_patch
114         unset incdir
115         unset pl_mi
116         unset pl_ma
117         unset pl_ve
118 ])
119
120 AC_DEFUN([PILOT_LINK_CHECK],[
121         PILOT_LINK_HOOK($1,[],nofailure)
122 ])
123
124 AC_DEFUN([GNOME_PILOT_HOOK],[
125         AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
126         AC_CACHE_CHECK([for gnome-pilot environment],gnome_cv_pilot_found,[
127                 if test "x$GNOME_CONFIG" = "xno"; then
128                         gnome_cv_pilot_found=no
129                 else
130                         # gnome-config doesn't return a useful error status,
131                         # so we check if it outputs anything to stderr
132                         if test "x`$GNOME_CONFIG gpilot 2>&1 > /dev/null`" = "x"; then
133                                 gnome_cv_pilot_found=yes
134                         else
135                                 gnome_cv_pilot_found=no
136                         fi
137                 fi
138         ])
139         if test x$gnome_cv_pilot_found = xyes; then
140                 if test x$1 != x; then
141                         gpv_pre_found=`$GNOME_CONFIG --modversion gpilot`
142                         gpv_found=`echo $gpv_pre_found | sed 's/gnome-pilot-\(.*\)/\1/'`
143                         AC_MSG_CHECKING([gnome-pilot version ($1)])
144                         gpv_major=`echo $gpv_found | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
145                         gpv_minor=`echo $gpv_found | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
146                         gpv_patch=`echo $gpv_found | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
147                         gpv_ma=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
148                         gpv_mi=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
149                         gpv_pa=`echo $1 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
150
151                         if test $gpv_major -eq $gpv_ma; then
152                                 if test $gpv_minor -eq $gpv_mi; then
153                                         if test $gpv_patch -ge $gpv_pa; then
154                                                 AC_MSG_RESULT([yes (found $gpv_found)])
155                                         else
156                                                 AC_MSG_RESULT([too old (found $gpv_found)])
157                                                 gnome_cv_pilot_found=no
158                                         fi
159                                 elif test $gpv_minor -gt $gpv_mi; then
160                                         AC_MSG_RESULT([yes (found $gpv_found)])
161                                 else                                    
162                                         AC_MSG_RESULT([too old (found $gpv_found)])
163                                         gnome_cv_pilot_found=no
164                                 fi
165                         else
166                                 AC_MSG_RESULT([major version mismatch (found $gpv_found)])
167                                 gnome_cv_pilot_found=no
168                         fi
169                         unset gpv_pre_found
170                         unset gpv_found
171                         unset gpv_major
172                         unset gpv_minor
173                         unset gpv_patch
174                         unset gpv_ma
175                         unset gpv_mi
176                         unset gpv_pa
177                 fi
178         fi
179
180         AM_CONDITIONAL(HAVE_GNOME_PILOT,test x$gnome_cv_pilot_found = xyes)
181         if test x$gnome_cv_pilot_found = xyes; then
182                 PILOT_LINK_CHECK($2)
183                 GNOME_PILOT_CFLAGS=`gnome-config --cflags gpilot`
184                 GNOME_PILOT_LIBS=`gnome-config --libs gpilot`
185         else
186                 if test x$3 = xfail; then
187                         AC_MSG_ERROR([gnome-pilot development package not installed or installation problem])
188                 else
189                         AC_MSG_WARN([gnome-pilot development package not installed or installation problem])
190                 fi
191         fi
192 ])
193
194 AC_DEFUN([GNOME_PILOT_CHECK],[
195         if test x$1 = x; then
196                 gpv=[]
197         else
198                 gpv=$1
199         fi
200         if test x$2 = x; then
201                 plv=0.9.5
202         else
203                 plv=$2
204         fi
205         if test x$3 = x; then
206                 good=[]
207         else
208                 good=$3
209         fi
210                 
211         GNOME_PILOT_HOOK($gpv, $plv, $good)
212 ])
213