mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
shiny new avifile test macro let's give it a ride
Original commit message from CVS: shiny new avifile test macro let's give it a ride
This commit is contained in:
parent
e40b24493b
commit
096eca22a2
2 changed files with 151 additions and 1 deletions
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit 49b94b4d92a9621d42aa6c80bd720e2abc747fe4
|
||||
Subproject commit e400d0fc2780dac2ee516286893d4f312d065f86
|
150
m4/as-avifile.m4
Normal file
150
m4/as-avifile.m4
Normal file
|
@ -0,0 +1,150 @@
|
|||
# AS_AVIFILE 0.1.0
|
||||
# CXXFLAGS and LIBS for avifile
|
||||
# taken from Autostar Sandbox, http://autostars.sourceforge.net/
|
||||
# constructed by careful cross-pollination from various sources and lots of
|
||||
# hard labour
|
||||
|
||||
dnl Usage:
|
||||
dnl AS_AVIFILE(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for avifile, and defines
|
||||
dnl - AVIFILE_CXXFLAGS (C++ compiler flags)
|
||||
dnl - AVIFILE_LDFLAGS (linker flags, stripping and path)
|
||||
dnl as well as set HAVE_AVIFILE to yes or no
|
||||
dnl
|
||||
dnl FIXME: should define AVIFILE_VERSION
|
||||
dnl
|
||||
dnl prerequisites:
|
||||
dnl - working C++ compiler
|
||||
dnl - usable libstdc++
|
||||
dnl - AC_PATH_XTRA
|
||||
|
||||
AC_DEFUN(AS_AVIFILE,
|
||||
[
|
||||
HAVE_AVIFILE="no"
|
||||
|
||||
dnl first look for avifile-config
|
||||
AC_PATH_PROG(AVIFILE_CONFIG, avifile-config, no)
|
||||
min_avifile_version=ifelse([$1], ,0.7.0,$1)
|
||||
if test "x$AVIFILE_CONFIG" != "xno"; then
|
||||
dnl now that we have it, we need to save libs and cflags
|
||||
AVIFILE_LDFLAGS=`avifile-config --libs`
|
||||
AVIFILE_CXXFLAGS=`avifile-config --cflags`
|
||||
AC_SUBST(AVIFILE_LDFLAGS)
|
||||
AC_SUBST(AVIFILE_CXXFLAGS)
|
||||
HAVE_AVIFILE="yes"
|
||||
fi
|
||||
|
||||
dnl we got this far, now start checking if we have the right version
|
||||
if test "x$HAVE_AVIFILE" = "xyes";
|
||||
then
|
||||
AC_MSG_CHECKING(for avifile - version >= $min_avifile_version)
|
||||
dnl first get the version number from avifile-config
|
||||
avifile_major_version=`$AVIFILE_CONFIG $avifile_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
avifile_minor_version=`$AVIFILE_CONFIG $avifile_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
avifile_micro_version=`$AVIFILE_CONFIG $avifile_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
|
||||
dnl now run a short C app that tells us if the version is ok or not
|
||||
dnl all of this is boilerplate code from other examples
|
||||
rm -f conf.avifiletest
|
||||
AC_TRY_RUN([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
char*
|
||||
my_strdup (char *str)
|
||||
{
|
||||
char *new_str;
|
||||
|
||||
if (str)
|
||||
{
|
||||
new_str = (char *) malloc ((strlen (str) + 1) * sizeof (char));
|
||||
strcpy (new_str, str);
|
||||
}
|
||||
else
|
||||
new_str = NULL;
|
||||
|
||||
return new_str;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.avifiletest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = my_strdup ("$min_avifile_version");
|
||||
if (sscanf (tmp_version, "%d.%d.%d", &major, &minor, µ) != 3)
|
||||
{
|
||||
printf ("%s, bad version string\n", "$min_avifile_version");
|
||||
exit (1);
|
||||
}
|
||||
if (($avifile_major_version > major) ||
|
||||
(($avifile_major_version == major) && ($avifile_minor_version > minor)) ||
|
||||
(($avifile_major_version == major) && ($avifile_minor_version == minor) && ($avifile_micro_version >= micro)))
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
printf ("\n*** 'avifile-config --version' returned %d.%d.%d, but the minimum version\n", $avifile_major_version, $avifile_minor_version, $avifile_micro_version);
|
||||
printf ("*** of AVIFILE required is %d.%d.%d. If avifile-config is correct, then it is\n", major, minor, micro);
|
||||
printf ("*** best to upgrade to the required version.\n");
|
||||
printf ("*** If avifile-config was wrong, set the environment variable AVIFILE_CONFIG\n");
|
||||
printf ("*** to point to the correct copy of avifile-config, and remove the file\n");
|
||||
printf ("*** config.cache (if it exists) before re-running configure\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(yes)
|
||||
HAVE_AVIFILE="yes"
|
||||
],
|
||||
[
|
||||
HAVE_AVIFILE="no"
|
||||
])
|
||||
fi
|
||||
if test "x$HAVE_AVIFILE" = "xyes";
|
||||
then
|
||||
dnl now try to compile a sample test app
|
||||
|
||||
dnl first save whatever language we're currently testing in
|
||||
dnl AC_LANG_SAVE
|
||||
dnl AC_LANG_CPLUSPLUS
|
||||
AC_LANG_PUSH(C++)
|
||||
ac_save_CXXFLAGS=$CXXFLAGS
|
||||
ac_save_LDFLAGS=$LDFLAGS
|
||||
dnl add X flags, because it looks like avifile needs libXv and libXxf86vm
|
||||
CXXFLAGS="$XXCFLAGS $AVIFILE_CXXFLAGS"
|
||||
LDFLAGS="$LDFLAGS $AVIFILE_LDFLAGS $X_LIBS -lXv -lXxf86vm"
|
||||
|
||||
AC_MSG_CHECKING(compilation of avifile test program)
|
||||
dnl try the compile
|
||||
AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <avifile.h>
|
||||
#include <creators.h>
|
||||
],[
|
||||
/* function body */
|
||||
IVideoDecoder *decoder;
|
||||
BITMAPINFOHEADER bh;
|
||||
|
||||
decoder = Creators::CreateVideoDecoder (bh);
|
||||
],
|
||||
AC_MSG_RESULT(succeeded)
|
||||
HAVE_AVIFILE="yes",
|
||||
AC_MSG_RESULT(failed)
|
||||
HAVE_AVIFILE="no",
|
||||
)
|
||||
AC_LANG_RESTORE
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LDFLAGS="$ac_save_LDFLAGS"
|
||||
fi
|
||||
])
|
||||
|
Loading…
Reference in a new issue