Initial git import
[sxemacs] / m4 / sxe-pkgconfig.m4
1 dnl pkgconfig.m4 --- pkgconfig helpers
2 dnl
3 dnl Copyright (C) 2008 Sebastian Freundt
4 dnl
5 dnl Author: Sebastian Freundt <hroptatyr@sxemacs.org>
6 dnl
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted provided that the following conditions
9 dnl are met:
10 dnl
11 dnl 1. Redistributions of source code must retain the above copyright
12 dnl    notice, this list of conditions and the following disclaimer.
13 dnl
14 dnl 2. Redistributions in binary form must reproduce the above copyright
15 dnl    notice, this list of conditions and the following disclaimer in the
16 dnl    documentation and/or other materials provided with the distribution.
17 dnl
18 dnl 3. Neither the name of the author nor the names of any contributors
19 dnl    may be used to endorse or promote products derived from this
20 dnl    software without specific prior written permission.
21 dnl
22 dnl THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
23 dnl IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24 dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 dnl DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26 dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29 dnl BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30 dnl WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
31 dnl OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
32 dnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 dnl
34 dnl This file is part of SXEmacs.
35 dnl
36 dnl
37 dnl Commentary:
38 dnl Be sure to use solely basic stuff that ships with autoconf.
39 dnl This file must sort of work stand-alone.
40
41
42 AC_DEFUN([SXE_CHECK_PKGCONFIG], [dnl
43         AC_CACHE_CHECK([for pkg-config], [sxe_cv_feat_pkgconfig], [
44                 AC_MSG_RESULT([answer deferred])
45                 AC_CHECK_PROG([have_pkg_config], [pkg-config], [yes], [no])
46                 AC_PATH_PROG([PKG_CONFIG], [pkg-config], [echo])
47                 if test "$have_pkg_config" = "yes" -a -n "$PKG_CONFIG"; then
48                         sxe_cv_feat_pkgconfig="yes"
49                 else
50                         AS_MESSAGE([
51 *** pkg-config not found.
52 *** See http://pkgconfig.sourceforge.net
53 *** Cannot check for various goodies, YOUR fault!])
54                         have_pkg_config="no"
55                         PKG_CONFIG="false"
56                         sxe_cv_feat_pkgconfig="no"
57                 fi
58                 AC_MSG_CHECKING([for pkg-config for real this time])
59                 ])
60 ])dnl SXE_CHECK_PKGCONFIG
61
62 AC_DEFUN([SXE_PC_CHECK_VERSION_ATLEAST], [dnl
63         ## arg1 is the module
64         ## arg2 is the version we want to see
65         ## defines sxe_cv_pc_<$1>_version and
66         ## sxe_cv_pc_<$1>_recent_enough_p
67         pushdef([mod], [$1])
68         pushdef([ver], [$2])
69         pushdef([shmod], translit([mod], [+-.], [___]))
70         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
71         pushdef([vervar], [sxe_cv_pc_]shmod[_version])
72         pushdef([verrecp], [sxe_cv_pc_]shmod[_recent_enough_p])
73
74         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
75         SXE_MSG_CHECKING([whether ]mod[ is at least ]ver)
76         if $PKG_CONFIG --atleast-version []ver[] []mod[]; then
77                 verrecp[]="yes"
78         else
79                 verrecp[]="no"
80         fi
81         SXE_MSG_RESULT([$]verrecp[])
82
83         SXE_MSG_CHECKING([for ]mod['s actual version])
84         vervar[]=$($PKG_CONFIG --modversion []mod[])
85         MOD[_VERSION]=[$]vervar[]
86         SXE_MSG_RESULT([$]vervar[])
87
88         AC_SUBST(MOD[_VERSION])
89
90         popdef([verrecp])
91         popdef([vervar])
92         popdef([shmod])
93         popdef([MOD])
94         popdef([mod])
95         popdef([ver])
96 ])dnl SXE_PC_CHECK_VERSION
97
98 AC_DEFUN([SXE_PC_CHECK_VERSION_ATMOST], [dnl
99         ## arg1 is the module
100         ## arg2 is the version we want to see
101         ## defines sxe_cv_pc_<$1>_version and
102         ## sxe_cv_pc_<$1>_recent_enough_p
103         pushdef([mod], [$1])
104         pushdef([ver], [$2])
105         pushdef([shmod], translit([mod], [+-.], [___]))
106         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
107         pushdef([vervar], [sxe_cv_pc_]shmod[_version])
108         pushdef([veroldp], [sxe_cv_pc_]shmod[_old_enough_p])
109
110         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
111         SXE_MSG_CHECKING([whether ]mod[ is at most ]ver)
112         if test "$PKG_CONFIG --max-version []ver[] []mod[]"; then
113                 veroldp[]="yes"
114         else
115                 veroldp[]="no"
116         fi
117         SXE_MSG_RESULT([$]veroldp[])
118
119         SXE_MSG_CHECKING([for ]mod['s actual version])
120         vervar[]=$($PKG_CONFIG --modversion []mod[])
121         MOD[_VERSION]=[$]vervar[]
122         SXE_MSG_RESULT([$]vervar[])
123
124         AC_SUBST(MOD[_VERSION])
125
126         popdef([verrecp])
127         popdef([vervar])
128         popdef([shmod])
129         popdef([MOD])
130         popdef([mod])
131         popdef([ver])
132 ])dnl SXE_PC_CHECK_VERSION
133
134 AC_DEFUN([SXE_PC_CHECK_VERSION], [dnl
135         ## arg1 is the module
136         ## defines sxe_cv_pc_<$1>_version
137         pushdef([mod], [$1])
138         pushdef([shmod], translit([mod], [+-.], [___]))
139         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
140         pushdef([vervar], [sxe_cv_pc_]shmod[_version])
141
142         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
143         SXE_MSG_CHECKING([for ]mod[ version])
144         vervar[]=$($PKG_CONFIG --modversion []mod[])
145         MOD[_VERSION]=[$]vervar[]
146         SXE_MSG_RESULT([$]vervar[])
147
148         AC_SUBST(MOD[_VERSION])
149
150         popdef([vervar])
151         popdef([shmod])
152         popdef([MOD])
153         popdef([mod])
154 ])dnl SXE_PC_CHECK_VERSION
155
156 AC_DEFUN([SXE_PC_CHECK_LIBS], [dnl
157         ## arg1 is the module
158         ## defines sxe_cv_pc_<$1>_libs
159         pushdef([mod], [$1])
160         pushdef([shmod], translit([mod], [+-.], [___]))
161         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
162         pushdef([libvar], [sxe_cv_pc_]shmod[_libs])
163
164         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
165         SXE_MSG_CHECKING([for ]mod[ libraries])
166         libvar[]=$($PKG_CONFIG --libs-only-l []mod[])
167         MOD[_LIBS]=[$]libvar[]
168         SXE_MSG_RESULT([$]libvar[])
169
170         AC_SUBST(MOD[_LIBS])
171
172         popdef([libvar])
173         popdef([shmod])
174         popdef([MOD])
175         popdef([mod])
176 ])dnl SXE_PC_CHECK_VERSION
177
178 AC_DEFUN([SXE_PC_CHECK_LDFLAGS], [dnl
179         ## arg1 is the module
180         ## defines sxe_cv_pc_<$1>_ldflags
181         pushdef([mod], [$1])
182         pushdef([shmod], translit([mod], [+-.], [___]))
183         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
184         pushdef([ldfvar], [sxe_cv_pc_]shmod[_ldflags])
185
186         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
187         SXE_MSG_CHECKING([for ]mod[ ldflags])
188         ldfvar[]=$($PKG_CONFIG --libs-only-L []mod[])
189         MOD[_LDFLAGS]=[$]ldfvar[]
190         SXE_MSG_RESULT([$]ldfvar[])
191
192         AC_SUBST(MOD[_LDFLAGS])
193
194         popdef([ldfvar])
195         popdef([shmod])
196         popdef([MOD])
197         popdef([mod])
198 ])dnl SXE_PC_CHECK_VERSION
199
200 AC_DEFUN([SXE_PC_CHECK_CPPFLAGS], [dnl
201         ## arg1 is the module
202         ## defines sxe_cv_pc_<$1>_cppflags
203         pushdef([mod], [$1])
204         pushdef([shmod], translit([mod], [+-.], [___]))
205         pushdef([MOD], translit([shmod], [a-z], [A-Z]))
206         pushdef([cfvar], [sxe_cv_pc_]shmod[_cppflags])
207
208         AC_REQUIRE([SXE_CHECK_PKGCONFIG])
209         SXE_MSG_CHECKING([for ]mod[ cppflags])
210         cfvar[]=$($PKG_CONFIG --cflags []mod[])
211         MOD[_CPPFLAGS]=[$]cfvar[]
212         SXE_MSG_RESULT([$]cfvar[])
213
214         AC_SUBST(MOD[_CPPFLAGS])
215
216         popdef([cfvar])
217         popdef([shmod])
218         popdef([MOD])
219         popdef([mod])
220 ])dnl SXE_PC_CHECK_VERSION
221
222
223 dnl sxe-pkgconfig.m4 ends here