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