]> git.sesse.net Git - vlc/blobdiff - m4/with_pkg.m4
Configure, create a m4cro for checking dependencies in pkg_config
[vlc] / m4 / with_pkg.m4
diff --git a/m4/with_pkg.m4 b/m4/with_pkg.m4
new file mode 100644 (file)
index 0000000..23a7525
--- /dev/null
@@ -0,0 +1,98 @@
+dnl with_pkg.m4 - Macros to ease the usage of pkg-config.    -*- Autoconf -*-
+dnl
+dnl Copyright © 2008 Luca Barbato <lu_zero@gentoo.org>,
+dnl                  Diego Pettenò <flameeyes@gentoo.org>
+dnl                  Jean-Baptiste Kempf
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that program.
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl                  [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl                  [DESCRIPTION], [DEFAULT])
+dnl
+dnl Prepare a --with-variable-prefix triggered check for module,
+dnl disable by default.
+dnl
+
+AC_DEFUN([PKG_WITH_MODULES],
+[
+AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+           [m4_default([$5], [build with ]with_arg[ support enabled])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([enable_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([enable_]with_arg)=no])
+
+m4_case(def_arg,
+            [yes],[m4_pushdef([with_without], [--disable-]with_arg)],
+            [m4_pushdef([with_without],[--enable-]with_arg)])
+
+AC_ARG_ENABLE(with_arg,
+     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+    [AS_TR_SH([enable_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([enable_]with_arg)],
+            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+            [auto],[PKG_CHECK_MODULES([$1],[$2],
+                                        [m4_n([def_action_if_found]) $3],
+                                        [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+]) dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl                       [DESCRIPTION], [DEFAULT])
+dnl
+
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])
+
+dnl PKG_ENABLE_MODULES_VLC(VARIABLE-PREFIX, MODULES,
+dnl                         [DESCRIPTION], [DEFAULT],
+dnl                         [EXTRA_CFLAGS], [EXTRA_LIBS])
+AC_DEFUN([PKG_ENABLE_MODULES_VLC],
+[
+PKG_WITH_MODULES([$1],[$2],
+    VLC_ADD_PLUGIN(m4_tolower([$1]))
+    VLC_ADD_CFLAGS(m4_tolower([$1]),[$$1_CFLAGS] [$5] )
+    VLC_ADD_LIBS(m4_tolower([$1]),[$$1_LIBS] [$6]),
+    AS_IF([test x"$AS_TR_SH([enable_]m4_tolower([$1]))" = "xyes"],
+        [AC_MSG_ERROR(Library [$2] needed for [m4_tolower([$1]) was not found])],
+        [AC_MSG_WARN(Library [$2] needed for [m4_tolower([$1]) was not found])]
+         ),
+    [$3],[$4])
+
+
+AM_CONDITIONAL([HAVE_][$1],
+               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+
+])
+