[tools] missing-macros: add xmms.m4, from libflac
[openwrt.git] / tools / missing-macros / src / m4 / xmms.m4
1 # CFLAGS and library paths for XMMS
2 # written 15 December 1999 by Ben Gertzfield <che@debian.org>
3
4 dnl Usage:
5 dnl AM_PATH_XMMS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
6 dnl
7 dnl Example:
8 dnl AM_PATH_XMMS(0.9.5.1, , AC_MSG_ERROR([*** XMMS >= 0.9.5.1 not installed - please install first ***]))
9 dnl
10 dnl Defines XMMS_CFLAGS, XMMS_LIBS, XMMS_DATA_DIR, XMMS_PLUGIN_DIR, 
11 dnl XMMS_VISUALIZATION_PLUGIN_DIR, XMMS_INPUT_PLUGIN_DIR, 
12 dnl XMMS_OUTPUT_PLUGIN_DIR, XMMS_GENERAL_PLUGIN_DIR, XMMS_EFFECT_PLUGIN_DIR,
13 dnl and XMMS_VERSION for your plugin pleasure.
14 dnl
15
16 dnl XMMS_TEST_VERSION(AVAILABLE-VERSION, NEEDED-VERSION [, ACTION-IF-OKAY [, ACTION-IF-NOT-OKAY]])
17 AC_DEFUN([XMMS_TEST_VERSION], [
18
19 # Determine which version number is greater. Prints 2 to stdout if      
20 # the second number is greater, 1 if the first number is greater,       
21 # 0 if the numbers are equal.                                           
22                                                                         
23 # Written 15 December 1999 by Ben Gertzfield <che@debian.org>           
24 # Revised 15 December 1999 by Jim Monty <monty@primenet.com>            
25                                                                         
26     AC_PROG_AWK
27     xmms_got_version=[` $AWK '                                          \
28 BEGIN {                                                                 \
29     print vercmp(ARGV[1], ARGV[2]);                                     \
30 }                                                                       \
31                                                                         \
32 function vercmp(ver1, ver2,    ver1arr, ver2arr,                        \
33                                ver1len, ver2len,                        \
34                                ver1int, ver2int, len, i, p) {           \
35                                                                         \
36     ver1len = split(ver1, ver1arr, /\./);                               \
37     ver2len = split(ver2, ver2arr, /\./);                               \
38                                                                         \
39     len = ver1len > ver2len ? ver1len : ver2len;                        \
40                                                                         \
41     for (i = 1; i <= len; i++) {                                        \
42         p = 1000 ^ (len - i);                                           \
43         ver1int += ver1arr[i] * p;                                      \
44         ver2int += ver2arr[i] * p;                                      \
45     }                                                                   \
46                                                                         \
47     if (ver1int < ver2int)                                              \
48         return 2;                                                       \
49     else if (ver1int > ver2int)                                         \
50         return 1;                                                       \
51     else                                                                \
52         return 0;                                                       \
53 }' $1 $2`]                                                              
54
55     if test $xmms_got_version -eq 2; then       # failure
56         ifelse([$4], , :, $4)                   
57     else                                        # success!
58         ifelse([$3], , :, $3)
59     fi
60 ])
61
62 AC_DEFUN([AM_PATH_XMMS],
63 [
64 AC_ARG_WITH(xmms-prefix,[  --with-xmms-prefix=PFX  Prefix where XMMS is installed (optional)],
65         xmms_config_prefix="$withval", xmms_config_prefix="")
66 AC_ARG_WITH(xmms-exec-prefix,[  --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)],
67         xmms_config_exec_prefix="$withval", xmms_config_exec_prefix="")
68
69 if test x$xmms_config_exec_prefix != x; then
70     xmms_config_args="$xmms_config_args --exec-prefix=$xmms_config_exec_prefix"
71     if test x${XMMS_CONFIG+set} != xset; then
72         XMMS_CONFIG=$xmms_config_exec_prefix/bin/xmms-config
73     fi
74 fi
75
76 if test x$xmms_config_prefix != x; then
77     xmms_config_args="$xmms_config_args --prefix=$xmms_config_prefix"
78     if test x${XMMS_CONFIG+set} != xset; then
79         XMMS_CONFIG=$xmms_config_prefix/bin/xmms-config
80     fi
81 fi
82
83 AC_PATH_PROG(XMMS_CONFIG, xmms-config, no)
84 min_xmms_version=ifelse([$1], ,0.9.5.1, $1)
85
86 if test "$XMMS_CONFIG" = "no"; then
87     no_xmms=yes
88 else
89     XMMS_CFLAGS=`$XMMS_CONFIG $xmms_config_args --cflags`
90     XMMS_LIBS=`$XMMS_CONFIG $xmms_config_args --libs`
91     XMMS_VERSION=`$XMMS_CONFIG $xmms_config_args --version`
92     XMMS_DATA_DIR=`$XMMS_CONFIG $xmms_config_args --data-dir`
93     XMMS_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --plugin-dir`
94     XMMS_VISUALIZATION_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args \
95                                         --visualization-plugin-dir`
96     XMMS_INPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --input-plugin-dir`
97     XMMS_OUTPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --output-plugin-dir`
98     XMMS_EFFECT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --effect-plugin-dir`
99     XMMS_GENERAL_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --general-plugin-dir`
100
101     XMMS_TEST_VERSION($XMMS_VERSION, $min_xmms_version, ,no_xmms=version)
102 fi
103
104 AC_MSG_CHECKING(for XMMS - version >= $min_xmms_version)
105
106 if test "x$no_xmms" = x; then
107     AC_MSG_RESULT(yes)
108     ifelse([$2], , :, [$2])
109 else
110     AC_MSG_RESULT(no)
111
112     if test "$XMMS_CONFIG" = "no" ; then
113         echo "*** The xmms-config script installed by XMMS could not be found."
114         echo "*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in"
115         echo "*** your path, or set the XMMS_CONFIG environment variable to the"
116         echo "*** full path to xmms-config."
117     else
118         if test "$no_xmms" = "version"; then
119             echo "*** An old version of XMMS, $XMMS_VERSION, was found."
120             echo "*** You need a version of XMMS newer than $min_xmms_version."
121             echo "*** The latest version of XMMS is always available from"
122             echo "*** http://www.xmms.org/"
123             echo "***"
124
125             echo "*** If you have already installed a sufficiently new version, this error"
126             echo "*** probably means that the wrong copy of the xmms-config shell script is"
127             echo "*** being found. The easiest way to fix this is to remove the old version"
128             echo "*** of XMMS, but you can also set the XMMS_CONFIG environment to point to the"
129             echo "*** correct copy of xmms-config. (In this case, you will have to"
130             echo "*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf"
131             echo "*** so that the correct libraries are found at run-time)"
132         fi
133     fi
134     XMMS_CFLAGS=""
135     XMMS_LIBS=""
136     ifelse([$3], , :, [$3])
137 fi
138 AC_SUBST(XMMS_CFLAGS)
139 AC_SUBST(XMMS_LIBS)
140 AC_SUBST(XMMS_VERSION)
141 AC_SUBST(XMMS_DATA_DIR)
142 AC_SUBST(XMMS_PLUGIN_DIR)
143 AC_SUBST(XMMS_VISUALIZATION_PLUGIN_DIR)
144 AC_SUBST(XMMS_INPUT_PLUGIN_DIR)
145 AC_SUBST(XMMS_OUTPUT_PLUGIN_DIR)
146 AC_SUBST(XMMS_GENERAL_PLUGIN_DIR)
147 AC_SUBST(XMMS_EFFECT_PLUGIN_DIR)
148 ])
149