summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorMatt Messier <mmessier@grapetv.org>2007-05-14 23:46:35 -0400
committerMatt Messier <mmessier@grapetv.org>2007-05-14 23:46:35 -0400
commit8aeaff301f34f29fb53e01d5de49535409cb3077 (patch)
treea07a56912337179a67ea2e5902a626fe91df2155 /m4
parentd1b1501547f9415ac6ee38bc99f528d9dcfdf21d (diff)
downloadxine-lib-8aeaff301f34f29fb53e01d5de49535409cb3077.tar.gz
xine-lib-8aeaff301f34f29fb53e01d5de49535409cb3077.tar.bz2
Clean up xine.m4 to match with package.m4 for 3rd-party use.
Since xine.m4 is also derived from the same code that's all been replaced with the more generic package.m4 code, use that same code for xine.m4 as well, though it doesn't actually depend on package.m4, but is instead a specific, customized version of it intended to be used where package.m4 is not available.
Diffstat (limited to 'm4')
-rw-r--r--m4/xine.m4257
1 files changed, 77 insertions, 180 deletions
diff --git a/m4/xine.m4 b/m4/xine.m4
index cb64bad1a..a78c678a4 100644
--- a/m4/xine.m4
+++ b/m4/xine.m4
@@ -23,193 +23,90 @@ dnl script generated by Autoconf, you may include it under the same
dnl distribution terms that you use for the rest of that program.
dnl
-dnl AM_PATH_XINE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
-dnl Test for XINE, and define XINE_CFLAGS and XINE_LIBS
-dnl
-AC_DEFUN([AM_PATH_XINE],
-[dnl
-dnl Get the cflags and libraries from the xine-config script
-dnl
-AC_ARG_WITH(xine-prefix,
- AS_HELP_STRING([--with-xine-prefix=DIR], [prefix where XINE is installed (optional)]),
- xine_config_prefix="$withval", xine_config_prefix="")
-AC_ARG_WITH(xine-exec-prefix,
- AS_HELP_STRING([--with-xine-exec-prefix=DIR], [exec prefix where XINE is installed (optional)]),
- xine_config_exec_prefix="$withval", xine_config_exec_prefix="")
-AC_ARG_ENABLE(xinetest,
- AS_HELP_STRING([--disable-xinetest], [do not try to compile and run a test XINE program]),
- enable_xinetest=$enableval, enable_xinetest=yes)
-
- AC_LANG_PUSH([C])
+dnl _XINE_VERSION_PARSE(version)
+AC_DEFUN([_XINE_VERSION_PARSE], [`echo $1 | perl -e 'my $v = <>; chomp $v;
+my @v = split(" ", $v); $v = $v[$#v]; $v =~ s/[^0-9.].*$//; @v = split (/\./, $v);
+push @v, 0 while $#v < 2; print $v[0] * 10000 + $v[1] * 100 + $v[2], "\n"'`])
- if test x$xine_config_exec_prefix != x ; then
- xine_config_args="$xine_config_args --exec-prefix=$xine_config_exec_prefix"
- if test x${XINE_CONFIG+set} != xset ; then
- XINE_CONFIG=$xine_config_exec_prefix/bin/xine-config
- fi
- fi
- if test x$xine_config_prefix != x ; then
- xine_config_args="$xine_config_args --prefix=$xine_config_prefix"
- if test x${XINE_CONFIG+set} != xset ; then
- XINE_CONFIG=$xine_config_prefix/bin/xine-config
- fi
- fi
- min_xine_version=ifelse([$1], ,0.5.0,$1)
- if test "x$enable_xinetest" != "xyes" ; then
- AC_MSG_CHECKING([for XINE-LIB version >= $min_xine_version])
- else
- AC_PATH_TOOL(XINE_CONFIG, xine-config, no)
- AC_MSG_CHECKING([for XINE-LIB version >= $min_xine_version])
- no_xine=""
- if test "$XINE_CONFIG" = "no" ; then
- no_xine=yes
+dnl _XINE_VERSION_CHECK(required, actual)
+AC_DEFUN([_XINE_VERSION_CHECK], [
+ required_version=ifelse([$1], , [0.0.0], [$1])
+ required_version_parsed=_XINE_VERSION_PARSE([$required_version])
+ actual_version=ifelse([$2], , [0.0.0], [$2])
+ actual_version_parsed=_XINE_VERSION_PARSE([$actual_version])
+ if test $required_version_parsed -ge $actual_version_parsed; then
+ ifelse([$3], , [:], [$3])
else
- XINE_CFLAGS=`$XINE_CONFIG $xine_config_args --cflags`
- XINE_LIBS=`$XINE_CONFIG $xine_config_args --libs`
- XINE_ACFLAGS=`$XINE_CONFIG $xine_config_args --acflags`
- xine_config_major_version=`$XINE_CONFIG $xine_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- xine_config_minor_version=`$XINE_CONFIG $xine_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- xine_config_sub_version=`$XINE_CONFIG $xine_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- xine_data_dir=`$XINE_CONFIG $xine_config_args --datadir`
- xine_script_dir=`$XINE_CONFIG $xine_config_args --scriptdir`
- xine_plugin_dir=`$XINE_CONFIG $xine_config_args --plugindir`
- xine_locale_dir=`$XINE_CONFIG $xine_config_args --localedir`
- dnl if test "x$enable_xinetest" = "xyes" ; then
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $XINE_CFLAGS"
- LIBS="$XINE_LIBS $LIBS"
-dnl
-dnl Now check if the installed XINE is sufficiently new. (Also sanity
-dnl checks the results of xine-config to some extent
-dnl
- rm -f conf.xinetest
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <xine.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main ()
-{
- int major, minor, sub;
- char *tmp_version;
+ ifelse([$4], , [:], [$4])
+ fi
+])
- system ("touch conf.xinetest");
- /* HP/UX 9 (%@#!) writes to sscanf strings */
- tmp_version = (char *) strdup("$min_xine_version");
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &sub) != 3) {
- printf("%s, bad version string\n", "$min_xine_version");
- exit(1);
- }
+dnl AM_PATH_XINE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl Test for XINE, and define XINE_CFLAGS and XINE_LIBS
+dnl
+AC_DEFUN([AM_PATH_XINE], [
+ AC_ARG_VAR([XINE_CONFIG], [Full path to xine-config])
+ AC_ARG_WITH([xine-prefix],
+ [AS_HELP_STRING([--with-xine-prefix], [prefix where xine-lib is installed (optional)])])
+ AC_ARG_WITH([xine-exec-prefix],
+ [AS_HELP_STRING([--with-xine-exec-prefix], [exec prefix where xine-lib is installed (optional)])])
- if ((XINE_MAJOR_VERSION != $xine_config_major_version) ||
- (XINE_MINOR_VERSION != $xine_config_minor_version) ||
- (XINE_SUB_VERSION != $xine_config_sub_version))
- {
- printf("\n*** 'xine-config --version' returned %d.%d.%d, but XINE (%d.%d.%d)\n",
- $xine_config_major_version, $xine_config_minor_version, $xine_config_sub_version,
- XINE_MAJOR_VERSION, XINE_MINOR_VERSION, XINE_SUB_VERSION);
- printf ("*** was found! If xine-config was correct, then it is best\n");
- printf ("*** to remove the old version of XINE. You may also be able to fix the error\n");
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
- printf("*** required on your system.\n");
- printf("*** If xine-config was wrong, set the environment variable XINE_CONFIG\n");
- printf("*** to point to the correct copy of xine-config, and remove the file config.cache\n");
- printf("*** before re-running configure\n");
- }
- else
- {
- if ((XINE_MAJOR_VERSION > major) ||
- ((XINE_MAJOR_VERSION == major) && (XINE_MINOR_VERSION > minor)) ||
- ((XINE_MAJOR_VERSION == major) && (XINE_MINOR_VERSION == minor) && (XINE_SUB_VERSION >= sub)))
- {
- return 0;
- }
- else
- {
- printf("\n*** An old version of XINE (%d.%d.%d) was found.\n",
- XINE_MAJOR_VERSION, XINE_MINOR_VERSION, XINE_SUB_VERSION);
- printf("*** You need a version of XINE newer than %d.%d.%d. The latest version of\n",
- major, minor, sub);
- printf("*** XINE is always available from:\n");
- printf("*** http://xine.sourceforge.net\n");
- printf("***\n");
- printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the xine-config shell script is\n");
- printf("*** being found. The easiest way to fix this is to remove the old version\n");
- printf("*** of XINE, but you can also set the XINE_CONFIG environment to point to the\n");
- printf("*** correct copy of xine-config. (In this case, you will have to\n");
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
- printf("*** so that the correct libraries are found at run-time))\n");
- }
- }
- return 1;
-}
-]])],[],[no_xine=yes],[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
+ xine_config_args=""
+ if test x"$with_xine_exec_prefix" != x""; then
+ xine_config_args="$xine_config_args --exec-prefix=$with_xine_exec_prefix"
+ test x"$XINE_CONFIG" != x"" && XINE_CONFIG="$with_xine_exec_prefix/bin/xine-config"
+ fi
+ if test x"$with_xine_prefix" != x""; then
+ xine_config_args="$xine_config_args --prefix=$with_xine_prefix"
+ test x"$XINE_CONFIG" = x"" && XINE_CONFIG="$with_xine_prefix/bin/xine-config"
fi
- if test "x$no_xine" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
+
+ min_xine_version=ifelse([$1], , [0.5.0], [$1])
+ AC_PATH_TOOL([XINE_CONFIG], [xine-config], [no])
+ AC_MSG_CHECKING([for XINE-LIB version >= $min_xine_version])
+ if test x"$XINE_CONFIG" = x"no"; then
+ AC_MSG_RESULT([unknown])
+ AC_MSG_NOTICE([
+*** If xine-lib was installed in PREFIX, make sure PREFIX/bin is in your path,
+*** or set the XINE_CONFIG environment variable to the full path to the
+*** xine-config shell script.
+ ])
else
- AC_MSG_RESULT(no)
- if test "$XINE_CONFIG" = "no" ; then
- echo "*** The xine-config script installed by XINE could not be found"
- echo "*** If XINE was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the XINE_CONFIG environment variable to the"
- echo "*** full path to xine-config."
- else
- if test -f conf.xinetest ; then
- :
- else
- echo "*** Could not run XINE test program, checking why..."
- CFLAGS="$CFLAGS $XINE_CFLAGS"
- LIBS="$LIBS $XINE_LIBS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <xine.h>
-#include <stdio.h>
-]], [[ return ((XINE_MAJOR_VERSION) || (XINE_MINOR_VERSION) || (XINE_SUB_VERSION)); ]])],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding XINE or finding the wrong"
- echo "*** version of XINE. If it is not finding XINE, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
- echo "***"],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means XINE was incorrectly installed"
- echo "*** or that you have moved XINE since it was installed. In the latter case, you"
- echo "*** may want to edit the xine-config script: $XINE_CONFIG" ])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- XINE_CFLAGS=""
- XINE_LIBS=""
- ifelse([$3], , :, [$3])
- fi
- AC_SUBST(XINE_CFLAGS)
- AC_SUBST(XINE_LIBS)
- AC_SUBST(XINE_ACFLAGS)
- AC_LANG_POP([C])
- rm -f conf.xinetest
+ XINE_CFLAGS="`$XINE_CONFIG $xine_config_args --cflags`"
+ XINE_LIBS="`$XINE_CONFIG $xine_config_args --libs`"
+ XINE_VERSION="`$XINE_CONFIG $xine_config_args --version`"
+ XINE_ACFLAGS="`$XINE_CONFIG $xine_config_args --acflags`"
+ xine_data_dir="`$XINE_CONFIG $xine_config_args --datadir`"
+ xine_script_dir="`$XINE_CONFIG $xine_config_args --scriptdir`"
+ xine_plugin_dir="`$XINE_CONFIG $xine_config_args --plugindir`"
+ xine_locale_dir="`$XINE_CONFIG $xine_config_args --localedir`"
+ _XINE_VERSION_CHECK([$min_xine_version], [$XINE_VERSION],
+ [xine_version_ok=yes; AC_MSG_RESULT([yes, $XINE_VERSION])],
+ [xine_version_ok=no; AC_MSG_RESULT([no, $XINE_VERSION])])
+ if test x"$xine_version_ok" != x"yes"; then
+ AC_MSG_NOTICE([
+*** You need a version of xine-lib newer than $XINE_VERSION.
+*** The latest version of xine-lib is always available from:
+*** http://www.xinehq.de
+***
+*** If you have already installed a sufficiently new version, this error
+*** probably means that the wrong copy of the xine-config shell script is
+*** being found. The easiest way to fix this is to remove the old version
+*** of xine-lib, but you can also set the XINE_CONFIG environment variable
+*** to point to the correct copy of xine-config. In this case, you will have
+*** to modify your LD_LIBRARY_PATH enviroment variable, or edit
+*** /etc/ld.so.conf so that the correct libraries are found at run-time.
+ ])
+ fi
+ AC_SUBST(XINE_CFLAGS)
+ AC_SUBST(XINE_LIBS)
+ AC_SUBST(XINE_ACFLAGS)
-dnl Make sure HAVE_STRSEP, HAVE_SETENV and HAVE_STRPBRK are defined as
-dnl necessary.
- AC_CHECK_FUNCS([strsep strpbrk setenv])
-dnl alloca (in public macro) and MinGW
- AC_CHECK_HEADERS([malloc.h])
+ if test x"$xine_version_ok" = x"yes"; then
+ ifelse([$2], , [:], [$2])
+ else
+ ifelse([$3], , [:], [$3])
+ fi
])