1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
# autoconf macros for detecting libgstroke support
# Use AC_CHECK_LIBGSTROKE in your configure.in.
# the smr_* functions have been taken from fvwm-2.4.0
dnl Allow argument for optional libraries; wraps AC_ARG_WITH, to
dnl provide a "--with-foo-library" option in the configure script, where foo
dnl is presumed to be a library name. The argument given by the user
dnl (i.e. "bar" in ./configure --with-foo-library=bar) may be one of three
dnl things:
dnl * boolean (no, yes or blank): whether to use library or not
dnl * file: assumed to be the name of the library
dnl * directory: assumed to *contain* the library
dnl
dnl The argument is sanity-checked. If all is well, two variables are
dnl set: "with_foo" (value is yes, no, or maybe), and "foo_LIBS" (value
dnl is either blank, a file, -lfoo, or '-L/some/dir -lfoo'). The idea
dnl is: the first tells you whether the library is to be used or not
dnl (or the user didn't specify one way or the other) and the second
dnl to put on the command line for linking with the library.
dnl
dnl Usage:
dnl smr_ARG_WITHLIB(name, libname, description)
dnl
dnl name name for --with argument ("foo" for libfoo)
dnl libname (optional) actual name of library,
dnl if different from name
dnl description (optional) used to construct help string
dnl
AC_DEFUN([smr_ARG_WITHLIB], [
ifelse($2, , smr_lib=[$1], smr_lib=[$2])
AC_ARG_WITH([$1]-library,
ifelse($3, ,
[ --with-$1-library[=PATH] use $1 library],
[ --with-$1-library[=PATH] use $1 library ($3)]),
[
if test "$withval" = yes; then
with_[$1]=yes
[$1]_LIBS="-l${smr_lib}"
elif test "$withval" = no; then
with_[$1]=no
[$1]_LIBS=
else
with_[$1]=yes
if test -f "$withval"; then
[$1]_LIBS=$withval
elif test -d "$withval"; then
[$1]_LIBS="-L$withval -l${smr_lib}"
else
AC_MSG_ERROR(argument must be boolean, file, or directory)
fi
fi
], [
with_[$1]=maybe
[$1]_LIBS="-l${smr_lib}"
])])
dnl Check if the include files for a library are accessible, and
dnl define the variable "name_CFLAGS" with the proper "-I" flag for
dnl the compiler. The user has a chance to specify the includes
dnl location, using "--with-foo-includes".
dnl
dnl This should be used *after* smr_ARG_WITHLIB *and* AC_CHECK_LIB are
dnl successful.
dnl
dnl Usage:
dnl smr_ARG_WITHINCLUDES(name, header, extra-flags)
dnl
dnl name library name, MUST same as used with smr_ARG_WITHLIB
dnl header a header file required for using the lib
dnl extra-flags (optional) flags required when compiling the
dnl header, typically more includes; for ex. X_CFLAGS
dnl
AC_DEFUN([smr_ARG_WITHINCLUDES], [
AC_ARG_WITH([$1]-includes,
[ --with-$1-includes=DIR set directory for $1 headers],
[
if test -d "$withval"; then
[$1]_CFLAGS="-I${withval}"
else
AC_MSG_ERROR(argument must be a directory)
fi])
dnl We need to put the given include directory into CPPFLAGS temporarily, but
dnl then restore CPPFLAGS to its old value.
dnl
smr_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS ${[$1]_CFLAGS}"
ifelse($3, , , CPPFLAGS="$CPPFLAGS [$3]")
AC_CHECK_HEADERS($2)
CPPFLAGS=$smr_save_CPPFLAGS
])
dnl Probe for an optional library. This macro creates both
dnl --with-foo-library and --with-foo-includes options for the configure
dnl script. If --with-foo-library is *not* specified, the default is to
dnl probe for the library, and use it if found.
dnl
dnl Usage:
dnl smr_CHECK_LIB(name, libname, desc, func, header, x-libs, x-flags)
dnl
dnl name name for --with options
dnl libname (optional) real name of library, if different from
dnl above
dnl desc (optional) short descr. of library, for help string
dnl func function of library, to probe for
dnl header (optional) header required for using library
dnl x-libs (optional) extra libraries, if needed to link with lib
dnl x-flags (optional) extra flags, if needed to include header files
dnl
AC_DEFUN([smr_CHECK_LIB],
[
ifelse($2, , smr_lib=[$1], smr_lib=[$2])
ifelse($5, , , smr_header=[$5])
smr_ARG_WITHLIB($1,$2,$3)
if test "$with_$1" != no; then
AC_CHECK_LIB($smr_lib, $4,
smr_havelib=yes,
smr_havelib=no; problem_$1=": Cannot find required lib$smr_lib",
ifelse($6, , ${$1_LIBS}, [${$1_LIBS} $6]))
if test "$smr_havelib" = yes -a "$smr_header" != ""; then
smr_ARG_WITHINCLUDES($1, $smr_header, $7)
smr_safe=`echo "$smr_header" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$ac_cv_header_'$smr_safe`\" != yes"; then
smr_havelib=no
problem_$1=": Can't find required $smr_header"
fi
fi
if test "$smr_havelib" = yes; then
with_$1=yes
problem_$1=
else
$1_LIBS=
$1_CFLAGS=
with_$1=no
fi
else
problem_$1=": Explicitly disabled"
fi])
dnl AC_CHECK_LIBGSTROKE
dnl The HAVE_LIBGSTROKE macro will be defined (to be used in
dnl config.h.in) and gstroke_CFLAGS gstroke_LIBS will be set to proper
dnl values (to be used for compiling and linking)
dnl --with-gstroke-library and --with-gstroke-includes can be used to
dnl tell configure where to find the gstroke.h header file and the
dnl libgstroke library
AC_DEFUN([AC_CHECK_LIBGSTROKE],
[
smr_CHECK_LIB(gstroke, , mouse strokes recognition, gstroke_enable, gstroke.h, $GTK_LIBS, $GTK_CFLAGS)
AC_SUBST(gstroke_LIBS)
AC_SUBST(gstroke_CFLAGS)
if test "x$with_gstroke" = xyes; then
AC_DEFINE(HAVE_GSTROKE)
fi
])
|