1 dnl pkgconfig.m4 --- pkgconfig helpers
3 dnl Copyright (C) 2008 Sebastian Freundt
5 dnl Author: Sebastian Freundt <hroptatyr@sxemacs.org>
7 dnl Redistribution and use in source and binary forms, with or without
8 dnl modification, are permitted provided that the following conditions
11 dnl 1. Redistributions of source code must retain the above copyright
12 dnl notice, this list of conditions and the following disclaimer.
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.
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.
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.
34 dnl This file is part of SXEmacs.
38 dnl Be sure to use solely basic stuff that ships with autoconf.
39 dnl This file must sort of work stand-alone.
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"
51 *** pkg-config not found.
52 *** See http://pkgconfig.sourceforge.net
53 *** Cannot check for various goodies, YOUR fault!])
56 sxe_cv_feat_pkgconfig="no"
58 AC_MSG_CHECKING([for pkg-config for real this time])
60 ])dnl SXE_CHECK_PKGCONFIG
62 AC_DEFUN([SXE_PC_CHECK_EXISTS], [dnl
64 ## defines sxe_cv_pc_<$1>_exists
66 pushdef([shmod], translit([]mod[], [+-.], [___]))
67 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
68 pushdef([existsvar], [sxe_cv_pc_]shmod[_exists])
70 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
71 SXE_MSG_CHECKING([whether pkg-config for ]mod[ exists ])
72 if $PKG_CONFIG --exists []mod[]; then
77 SXE_MSG_RESULT([$]existsvar[])
83 ])dnl SXE_PC_CHECK_EXISTS
85 AC_DEFUN([SXE_PC_CHECK_VERSION_ATLEAST], [dnl
87 ## arg2 is the version we want to see
88 ## defines sxe_cv_pc_<$1>_version and
89 ## sxe_cv_pc_<$1>_recent_enough_p
92 pushdef([shmod], translit([]mod[], [+-.], [___]))
93 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
94 pushdef([vervar], [sxe_cv_pc_]shmod[_version])
95 pushdef([verrecp], [sxe_cv_pc_]shmod[_recent_enough_p])
97 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
98 SXE_MSG_CHECKING([whether ]mod[ is at least ]ver)
99 if $PKG_CONFIG --atleast-version []ver[] []mod[]; then
104 SXE_MSG_RESULT([$]verrecp[])
106 SXE_MSG_CHECKING([for ]mod['s actual version])
107 vervar[]=$($PKG_CONFIG --modversion []mod[])
108 []MOD[]_VERSION=[$]vervar[]
109 SXE_MSG_RESULT([$]vervar[])
111 AC_SUBST([]MOD[]_VERSION)
119 ])dnl SXE_PC_CHECK_VERSION
121 AC_DEFUN([SXE_PC_CHECK_VERSION_ATMOST], [dnl
122 ## arg1 is the module
123 ## arg2 is the version we want to see
124 ## defines sxe_cv_pc_<$1>_version and
125 ## sxe_cv_pc_<$1>_recent_enough_p
128 pushdef([shmod], translit([]mod[], [+-.], [___]))
129 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
130 pushdef([vervar], [sxe_cv_pc_]shmod[_version])
131 pushdef([veroldp], [sxe_cv_pc_]shmod[_old_enough_p])
133 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
134 SXE_MSG_CHECKING([whether ]mod[ is at most ]ver)
135 if test "$PKG_CONFIG --max-version []ver[] []mod[]"; then
140 SXE_MSG_RESULT([$]veroldp[])
142 SXE_MSG_CHECKING([for ]mod['s actual version])
143 vervar[]=$($PKG_CONFIG --modversion []mod[])
144 []MOD[]_VERSION=[$]vervar[]
145 SXE_MSG_RESULT([$]vervar[])
147 AC_SUBST([]MOD[]_VERSION)
155 ])dnl SXE_PC_CHECK_VERSION
157 AC_DEFUN([SXE_PC_CHECK_VERSION], [dnl
158 ## arg1 is the module
159 ## defines sxe_cv_pc_<$1>_version
161 pushdef([shmod], translit([]mod[], [+-.], [___]))
162 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
163 pushdef([vervar], [sxe_cv_pc_]shmod[_version])
165 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
166 SXE_MSG_CHECKING([for ]mod[ version])
167 vervar[]=$($PKG_CONFIG --modversion []mod[])
168 []MOD[]_VERSION=[$]vervar[]
169 SXE_MSG_RESULT([$]vervar[])
171 AC_SUBST([]MOD[]_VERSION)
177 ])dnl SXE_PC_CHECK_VERSION
179 AC_DEFUN([SXE_PC_CHECK_LIBS], [dnl
180 ## arg1 is the module
181 ## defines sxe_cv_pc_<$1>_libs
183 pushdef([shmod], translit([]mod[], [+-.], [___]))
184 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
185 pushdef([libvar], [sxe_cv_pc_]shmod[_libs])
187 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
188 SXE_MSG_CHECKING([for ]mod[ libraries])
189 libvar[]=$($PKG_CONFIG --libs-only-l []mod[])
190 []MOD[]_LIBS=[$]libvar[]
191 SXE_MSG_RESULT([$]libvar[])
193 AC_SUBST([]MOD[]_LIBS)
199 ])dnl SXE_PC_CHECK_VERSION
201 AC_DEFUN([SXE_PC_CHECK_LDFLAGS], [dnl
202 ## arg1 is the module
203 ## defines sxe_cv_pc_<$1>_ldflags
205 pushdef([shmod], translit([]mod[], [+-.], [___]))
206 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
207 pushdef([ldfvar], [sxe_cv_pc_]shmod[_ldflags])
209 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
210 SXE_MSG_CHECKING([for ]mod[ ldflags])
211 ldfvar[]=$($PKG_CONFIG --libs-only-L []mod[])
212 []MOD[]_LDFLAGS=[$]ldfvar[]
213 SXE_MSG_RESULT([$]ldfvar[])
215 AC_SUBST([]MOD[]_LDFLAGS)
221 ])dnl SXE_PC_CHECK_VERSION
223 AC_DEFUN([SXE_PC_CHECK_CPPFLAGS], [dnl
224 ## arg1 is the module
225 ## defines sxe_cv_pc_<$1>_cppflags
227 pushdef([shmod], translit([]mod[], [+-.], [___]))
228 pushdef([MOD], translit([]shmod[], [a-z], [A-Z]))
229 pushdef([cfvar], [sxe_cv_pc_]shmod[_cppflags])
231 AC_REQUIRE([SXE_CHECK_PKGCONFIG])
232 SXE_MSG_CHECKING([for ]mod[ cppflags])
233 cfvar[]=$($PKG_CONFIG --cflags []mod[])
234 []MOD[]_CPPFLAGS=[$]cfvar[]
235 SXE_MSG_RESULT([$]cfvar[])
237 AC_SUBST([]MOD[]_CPPFLAGS)
243 ])dnl SXE_PC_CHECK_VERSION
246 dnl sxe-pkgconfig.m4 ends here