]> git.draconx.ca Git - upkg.git/blob - m4/libmodplug.m4
Implement support for libmodplug in Engine.Music.
[upkg.git] / m4 / libmodplug.m4
1 AC_DEFUN([_LIBMODPLUG_TEST], [dnl
2 AC_CACHE_CHECK([whether libmodplug works],
3         [libmodplug_cv_works],
4         [AC_LINK_IFELSE([AC_LANG_PROGRAM([dnl
5 #include <modplug.h>
6 ], [dnl
7 unsigned char buf@<:@128@:>@ = {0};
8 ModPlugFile *f = ModPlug_Load(buf, sizeof buf);
9 ModPlug_Unload(f);
10 ])], [libmodplug_cv_works=yes], [libmodplug_cv_works=no])])
11 ])
12
13 dnl CHECK_LIBMODPLUG([action-if-ok], [action-if-fail])
14 AC_DEFUN([CHECK_LIBMODPLUG],
15 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
16 AC_ARG_VAR([LIBMODPLUG_CFLAGS], [C compiler flags for libmodplug])dnl
17 AC_ARG_VAR([LIBMODPLUG_LIBS],   [linker flags for libmodplug])dnl
18
19 if test x"$PKG_CONFIG" != x; then
20         AC_MSG_CHECKING([pkg-config database for libmodplug])
21         _PKG_CONFIG([libmodplug_cflags], [cflags], [libmodplug])
22         _PKG_CONFIG([libmodplug_libs],   [libs],   [libmodplug])
23         if test x$pkg_failed = xyes; then
24                 errors=`$PKG_CONFIG --errors-to-stdout --print-errors libmodplug`
25                 echo "$errors" >&AS_MESSAGE_LOG_FD
26                 AC_MSG_RESULT([no])
27         else
28                 if test x"$LIBMODPLUG_CFLAGS" = x; then
29                         LIBMODPLUG_CFLAGS=$pkg_cv_libmodplug_cflags
30                 fi
31                 if test x"$LIBMODPLUG_LIBS" = x; then
32                         LIBMODPLUG_LIBS=$pkg_cv_libmodplug_libs
33                 fi
34
35                 AC_MSG_RESULT([yes])
36         fi
37 fi
38
39 if test x"$LIBMODPLUG_CFLAGS" = x; then
40         LIBMODPLUG_CFLAGS="-I$includedir/libmodplug"
41 fi
42
43 if test x"$LIBMODPLUG_LIBS" = x; then
44         LIBMODPLUG_LIBS=-lmodplug
45 fi
46
47 AC_LANG_PUSH([C])
48 old_cflags=$CFLAGS
49 old_libs=$LIBS
50 CFLAGS="$LIBMODPLUG_CFLAGS $CFLAGS"
51 LIBS="$LIBMODPLUG_LIBS $LIBS"
52
53 _LIBMODPLUG_TEST
54
55 CFLAGS=$old_cflags
56 LIBS=$old_libs
57 AC_LANG_POP([C])
58
59 if test x"$libmodplug_cv_works" = x"yes"; then
60         AC_SUBST([LIBMODPLUG_CFLAGS])
61         AC_SUBST([LIBMODPLUG_LIBS])
62         ifelse([$1], [], [true], [$1])
63 else
64         ifelse([$2], [], [AC_MSG_FAILURE([dnl
65 libmodplug is required.  The latest version can be
66 obtained from http://modplug-xmms.sourceforge.net/.
67
68 If libmodplug is installed but was not found by this configure script,
69 consider adjusting LIBMODPLUG_CFLAGS and/or LIBMODPLUG_LIBS as necessary.
70
71 If pkg-config is installed, it may help to adjust PKG_CONFIG_PATH
72 if libmodplug is installed in a non-standard prefix.
73 ])], [$2])
74 fi
75 ])