Erik de Castro Lopo
2009-Oct-25 09:57 UTC
[Speex-dev] [PATCH] Use pkg-config (if available) to detect libogg. Fall back to old method if pkg-config fails.
Hi all, Here is a patch to user pkg-config (if available) to detect libogg and fall back to old method if pkg-config fails. Pkg-config has the advantage that it can do configured to do the right thing when cross-compiling. Erik --- m4/Makefile.am | 4 ++ m4/extra_pkg.m4 | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 0 deletions(-) create mode 100644 m4/Makefile.am create mode 100644 m4/extra_pkg.m4 diff --git a/m4/Makefile.am b/m4/Makefile.am new file mode 100644 index 0000000..a87e1b8 --- /dev/null +++ b/m4/Makefile.am @@ -0,0 +1,4 @@ +## Process this file with automake to produce Makefile.in. -*-Makefile-*- + +EXTRA_DIST = extra_pkg.m4 + diff --git a/m4/extra_pkg.m4 b/m4/extra_pkg.m4 new file mode 100644 index 0000000..a92d090 --- /dev/null +++ b/m4/extra_pkg.m4 @@ -0,0 +1,85 @@ +# extra_pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright (c) 2004 Scott James Remnant <scott at netsplit.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# -------------------------------------------------------------- +# PKG_CHECK_MOD_VERSION(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# This is a very slight modification to the macro PKG_CHECK_MODULES that +# is in the original pkg.m4 file. It prints the versions in the checking +# message (erikd at mega-nerd.com). + +AC_DEFUN([PKG_CHECK_MOD_VERSION], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $2 ]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MOD_VERSION -- 1.6.3.3
Erik de Castro Lopo
2009-Oct-25 10:07 UTC
[Speex-dev] [PATCH] Use pkg-config (if available) to detect libogg. Fall back to old method if pkg-config fails.
Erik de Castro Lopo wrote:> Hi all, > > Here is a patch to user pkg-config (if available) to detect libogg and > fall back to old method if pkg-config fails. > > Pkg-config has the advantage that it can do configured to do the right > thing when cross-compiling.Actually that patch is missing some stuff. Complete patch coming soon. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
Apparently Analagous Threads
- [PATCH] Use pkg-config (if available) to detect libogg. Fall back to old method if pkg-config fails.
- pkg-config output and <FLAC/assert.h>
- [PATCH nbdkit] golang: Compile against the local nbdkit build, not installed.
- Re: build problem with libxl
- Re: build problem with libxl