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_VERSION_ATLEAST], [dnl
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
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])
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
81 SXE_MSG_RESULT([$]verrecp[])
83 SXE_MSG_CHECKING([for ]mod['s actual version])
84 vervar[]=$($PKG_CONFIG --modversion []mod[])
85 MOD[_VERSION]=[$]vervar[]
86 SXE_MSG_RESULT([$]vervar[])
88 AC_SUBST(MOD[_VERSION])
96 ])dnl SXE_PC_CHECK_VERSION
98 AC_DEFUN([SXE_PC_CHECK_VERSION_ATMOST], [dnl
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
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])
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
117 SXE_MSG_RESULT([$]veroldp[])
119 SXE_MSG_CHECKING([for ]mod['s actual version])
120 vervar[]=$($PKG_CONFIG --modversion []mod[])
121 MOD[_VERSION]=[$]vervar[]
122 SXE_MSG_RESULT([$]vervar[])
124 AC_SUBST(MOD[_VERSION])
132 ])dnl SXE_PC_CHECK_VERSION
134 AC_DEFUN([SXE_PC_CHECK_VERSION], [dnl
135 ## arg1 is the module
136 ## defines sxe_cv_pc_<$1>_version
138 pushdef([shmod], translit([mod], [+-.], [___]))
139 pushdef([MOD], translit([shmod], [a-z], [A-Z]))
140 pushdef([vervar], [sxe_cv_pc_]shmod[_version])
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[])
148 AC_SUBST(MOD[_VERSION])
154 ])dnl SXE_PC_CHECK_VERSION
156 AC_DEFUN([SXE_PC_CHECK_LIBS], [dnl
157 ## arg1 is the module
158 ## defines sxe_cv_pc_<$1>_libs
160 pushdef([shmod], translit([mod], [+-.], [___]))
161 pushdef([MOD], translit([shmod], [a-z], [A-Z]))
162 pushdef([libvar], [sxe_cv_pc_]shmod[_libs])
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[])
176 ])dnl SXE_PC_CHECK_VERSION
178 AC_DEFUN([SXE_PC_CHECK_LDFLAGS], [dnl
179 ## arg1 is the module
180 ## defines sxe_cv_pc_<$1>_ldflags
182 pushdef([shmod], translit([mod], [+-.], [___]))
183 pushdef([MOD], translit([shmod], [a-z], [A-Z]))
184 pushdef([ldfvar], [sxe_cv_pc_]shmod[_ldflags])
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[])
192 AC_SUBST(MOD[_LDFLAGS])
198 ])dnl SXE_PC_CHECK_VERSION
200 AC_DEFUN([SXE_PC_CHECK_CPPFLAGS], [dnl
201 ## arg1 is the module
202 ## defines sxe_cv_pc_<$1>_cppflags
204 pushdef([shmod], translit([mod], [+-.], [___]))
205 pushdef([MOD], translit([shmod], [a-z], [A-Z]))
206 pushdef([cfvar], [sxe_cv_pc_]shmod[_cppflags])
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[])
214 AC_SUBST(MOD[_CPPFLAGS])
220 ])dnl SXE_PC_CHECK_VERSION
223 dnl sxe-pkgconfig.m4 ends here