cannam@86: # CFLAGS and library paths for XMMS cannam@86: # written 15 December 1999 by Ben Gertzfield cannam@86: cannam@86: dnl Usage: cannam@86: dnl AM_PATH_XMMS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) cannam@86: dnl cannam@86: dnl Example: cannam@86: dnl AM_PATH_XMMS(0.9.5.1, , AC_MSG_ERROR([*** XMMS >= 0.9.5.1 not installed - please install first ***])) cannam@86: dnl cannam@86: dnl Defines XMMS_CFLAGS, XMMS_LIBS, XMMS_DATA_DIR, XMMS_PLUGIN_DIR, cannam@86: dnl XMMS_VISUALIZATION_PLUGIN_DIR, XMMS_INPUT_PLUGIN_DIR, cannam@86: dnl XMMS_OUTPUT_PLUGIN_DIR, XMMS_GENERAL_PLUGIN_DIR, XMMS_EFFECT_PLUGIN_DIR, cannam@86: dnl and XMMS_VERSION for your plugin pleasure. cannam@86: dnl cannam@86: cannam@86: dnl XMMS_TEST_VERSION(AVAILABLE-VERSION, NEEDED-VERSION [, ACTION-IF-OKAY [, ACTION-IF-NOT-OKAY]]) cannam@86: AC_DEFUN([XMMS_TEST_VERSION], [ cannam@86: cannam@86: # Determine which version number is greater. Prints 2 to stdout if cannam@86: # the second number is greater, 1 if the first number is greater, cannam@86: # 0 if the numbers are equal. cannam@86: cannam@86: # Written 15 December 1999 by Ben Gertzfield cannam@86: # Revised 15 December 1999 by Jim Monty cannam@86: cannam@86: AC_PROG_AWK cannam@86: xmms_got_version=[` $AWK ' \ cannam@86: BEGIN { \ cannam@86: print vercmp(ARGV[1], ARGV[2]); \ cannam@86: } \ cannam@86: \ cannam@86: function vercmp(ver1, ver2, ver1arr, ver2arr, \ cannam@86: ver1len, ver2len, \ cannam@86: ver1int, ver2int, len, i, p) { \ cannam@86: \ cannam@86: ver1len = split(ver1, ver1arr, /\./); \ cannam@86: ver2len = split(ver2, ver2arr, /\./); \ cannam@86: \ cannam@86: len = ver1len > ver2len ? ver1len : ver2len; \ cannam@86: \ cannam@86: for (i = 1; i <= len; i++) { \ cannam@86: p = 1000 ^ (len - i); \ cannam@86: ver1int += ver1arr[i] * p; \ cannam@86: ver2int += ver2arr[i] * p; \ cannam@86: } \ cannam@86: \ cannam@86: if (ver1int < ver2int) \ cannam@86: return 2; \ cannam@86: else if (ver1int > ver2int) \ cannam@86: return 1; \ cannam@86: else \ cannam@86: return 0; \ cannam@86: }' $1 $2`] cannam@86: cannam@86: if test $xmms_got_version -eq 2; then # failure cannam@86: ifelse([$4], , :, $4) cannam@86: else # success! cannam@86: ifelse([$3], , :, $3) cannam@86: fi cannam@86: ]) cannam@86: cannam@86: AC_DEFUN([AM_PATH_XMMS], cannam@86: [ cannam@86: AC_ARG_WITH(xmms-prefix,[ --with-xmms-prefix=PFX Prefix where XMMS is installed (optional)], cannam@86: xmms_config_prefix="$withval", xmms_config_prefix="") cannam@86: AC_ARG_WITH(xmms-exec-prefix,[ --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)], cannam@86: xmms_config_exec_prefix="$withval", xmms_config_exec_prefix="") cannam@86: cannam@86: if test x$xmms_config_exec_prefix != x; then cannam@86: xmms_config_args="$xmms_config_args --exec-prefix=$xmms_config_exec_prefix" cannam@86: if test x${XMMS_CONFIG+set} != xset; then cannam@86: XMMS_CONFIG=$xmms_config_exec_prefix/bin/xmms-config cannam@86: fi cannam@86: fi cannam@86: cannam@86: if test x$xmms_config_prefix != x; then cannam@86: xmms_config_args="$xmms_config_args --prefix=$xmms_config_prefix" cannam@86: if test x${XMMS_CONFIG+set} != xset; then cannam@86: XMMS_CONFIG=$xmms_config_prefix/bin/xmms-config cannam@86: fi cannam@86: fi cannam@86: cannam@86: AC_PATH_PROG(XMMS_CONFIG, xmms-config, no) cannam@86: min_xmms_version=ifelse([$1], ,0.9.5.1, $1) cannam@86: cannam@86: if test "$XMMS_CONFIG" = "no"; then cannam@86: no_xmms=yes cannam@86: else cannam@86: XMMS_CFLAGS=`$XMMS_CONFIG $xmms_config_args --cflags` cannam@86: XMMS_LIBS=`$XMMS_CONFIG $xmms_config_args --libs` cannam@86: XMMS_VERSION=`$XMMS_CONFIG $xmms_config_args --version` cannam@86: XMMS_DATA_DIR=`$XMMS_CONFIG $xmms_config_args --data-dir` cannam@86: XMMS_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --plugin-dir` cannam@86: XMMS_VISUALIZATION_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args \ cannam@86: --visualization-plugin-dir` cannam@86: XMMS_INPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --input-plugin-dir` cannam@86: XMMS_OUTPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --output-plugin-dir` cannam@86: XMMS_EFFECT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --effect-plugin-dir` cannam@86: XMMS_GENERAL_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --general-plugin-dir` cannam@86: cannam@86: XMMS_TEST_VERSION($XMMS_VERSION, $min_xmms_version, ,no_xmms=version) cannam@86: fi cannam@86: cannam@86: AC_MSG_CHECKING(for XMMS - version >= $min_xmms_version) cannam@86: cannam@86: if test "x$no_xmms" = x; then cannam@86: AC_MSG_RESULT(yes) cannam@86: ifelse([$2], , :, [$2]) cannam@86: else cannam@86: AC_MSG_RESULT(no) cannam@86: cannam@86: if test "$XMMS_CONFIG" = "no" ; then cannam@86: echo "*** The xmms-config script installed by XMMS could not be found." cannam@86: echo "*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in" cannam@86: echo "*** your path, or set the XMMS_CONFIG environment variable to the" cannam@86: echo "*** full path to xmms-config." cannam@86: else cannam@86: if test "$no_xmms" = "version"; then cannam@86: echo "*** An old version of XMMS, $XMMS_VERSION, was found." cannam@86: echo "*** You need a version of XMMS newer than $min_xmms_version." cannam@86: echo "*** The latest version of XMMS is always available from" cannam@86: echo "*** http://www.xmms.org/" cannam@86: echo "***" cannam@86: cannam@86: echo "*** If you have already installed a sufficiently new version, this error" cannam@86: echo "*** probably means that the wrong copy of the xmms-config shell script is" cannam@86: echo "*** being found. The easiest way to fix this is to remove the old version" cannam@86: echo "*** of XMMS, but you can also set the XMMS_CONFIG environment to point to the" cannam@86: echo "*** correct copy of xmms-config. (In this case, you will have to" cannam@86: echo "*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf" cannam@86: echo "*** so that the correct libraries are found at run-time)" cannam@86: fi cannam@86: fi cannam@86: XMMS_CFLAGS="" cannam@86: XMMS_LIBS="" cannam@86: ifelse([$3], , :, [$3]) cannam@86: fi cannam@86: AC_SUBST(XMMS_CFLAGS) cannam@86: AC_SUBST(XMMS_LIBS) cannam@86: AC_SUBST(XMMS_VERSION) cannam@86: AC_SUBST(XMMS_DATA_DIR) cannam@86: AC_SUBST(XMMS_PLUGIN_DIR) cannam@86: AC_SUBST(XMMS_VISUALIZATION_PLUGIN_DIR) cannam@86: AC_SUBST(XMMS_INPUT_PLUGIN_DIR) cannam@86: AC_SUBST(XMMS_OUTPUT_PLUGIN_DIR) cannam@86: AC_SUBST(XMMS_GENERAL_PLUGIN_DIR) cannam@86: AC_SUBST(XMMS_EFFECT_PLUGIN_DIR) cannam@86: ])