blob: fa0c38d7bff348e7a4ef493eb52a4f9ebba56793 [file] [log] [blame]
Thomas Vander Sticheleab5a4112002-11-26 14:51:33 +00001# CFLAGS and library paths for FFMPEG
2# taken from Autostar Sandbox, http://autostars.sourceforge.net/
3
4dnl Usage:
5dnl AM_PATH_FFMPEG([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
6dnl FIXME: version checking does not work currently
7dnl
8dnl Example:
9dnl AM_PATH_FFMPEG(0.4.6, , AC_MSG_ERROR([*** FFMPEG >= 0.4.6 not installed))
10dnl
11dnl Defines FFMPEG_LIBS
12dnl FIXME: should define FFMPEG_VERSION
13dnl
14
Thomas Vander Stichelefd831b82004-02-11 16:44:05 +000015AC_DEFUN([AM_PATH_FFMPEG],
Thomas Vander Sticheleab5a4112002-11-26 14:51:33 +000016[
17 dnl allow for specification of a source path (for uninstalled)
18 AC_ARG_WITH(ffmpeg-source,
19 AC_HELP_STRING([--with-ffmpeg-source=DIR],
20 [Directory where FFmpeg source is (optional)]),
Thomas Vander Stichelee947d5f2002-12-26 10:53:21 +000021 ffmpeg_source="$withval")
Thomas Vander Sticheleab5a4112002-11-26 14:51:33 +000022
23 dnl save CFLAGS and LIBS here
24 CFLAGS_save=$CFLAGS
25 LIBS_save=$LIBS
26 if test "x$ffmpeg_source" != "x"; then
27 dnl uninstalled FFmpeg copy
28 AC_MSG_NOTICE([Looking for FFmpeg source in $ffmpeg_source])
29 CFLAGS="-I$ffmpeg_source/libav -I$ffmpeg_source/libavcodec"
30 LIBS="-L$ffmpeg_source/libav -L$ffmpeg_source/libavcodec"
31 AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
32 [defined if we compile against uninstalled FFmpeg])
33 FFMPEG_COMMON_INCLUDE="#include <common.h>"
34 else
35 FFMPEG_COMMON_INCLUDE="#include <ffmpeg/common.h>"
36 fi
37
38 dnl check for libavcodec
39 AC_CHECK_LIB(avcodec, avcodec_init, HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
40
41 dnl check for avcodec.h and avformat.h
42 if test "x$ffmpeg_source" != "x"; then
43 dnl uninstalled
44 AC_CHECK_HEADER(avcodec.h, , HAVE_FFMPEG=no, [/* only compile */])
45 AC_CHECK_HEADER(avformat.h, , HAVE_FFMPEG=no, [/* only compile */])
46 else
47 AC_CHECK_HEADER(ffmpeg/avcodec.h, , HAVE_FFMPEG=no)
48 AC_CHECK_HEADER(ffmpeg/avformat.h, , HAVE_FFMPEG=no)
49 fi
50
51dnl now check if it's sufficiently new
52
53 AC_LANG_SAVE()
54 AC_LANG_C()
55
56 dnl FIXME: we use strcmp, which we know is going to break if ffmpeg ever uses
57 dnl two digits for any of their version numbers. It makes the test so much
58 dnl easier though so let's ignore that
59 AC_TRY_RUN([
60$FFMPEG_COMMON_INCLUDE
61#include <stdio.h>
62#include <string.h>
63
64int
65main ()
66{
67 if (strcmp (FFMPEG_VERSION, "$1") == -1)
68 {
69 fprintf (stderr,
70 "ERROR: your copy of ffmpeg is too old (%s)\n", FFMPEG_VERSION);
71 return 1;
72 }
73 else
74 return 0;
75}
76], , HAVE_FFMPEG=no)
77
78dnl now do the actual "do we have it ?" test
79 if test "x$HAVE_FFMPEG" = "xyes"; then
80 FFMPEG_LIBS="$LIBS -lavcodec -lavformat"
81 FFMPEG_CFLAGS="$CFLAGS"
82 AC_MSG_NOTICE(we have ffmpeg)
83 dnl execute what we have to because it's found
84 ifelse([$2], , :, [$2])
85 else
86 FFMPEG_LIBS=""
87 FFMPEG_CFLAGS=""
88 dnl execute what we have to because it's not found
89 ifelse([$3], , :, [$3])
90 fi
91
92dnl make variables available
93 AC_SUBST(FFMPEG_LIBS)
94 AC_SUBST(FFMPEG_CFLAGS)
95 AC_SUBST(HAVE_FFMPEG)
96 AC_LANG_RESTORE()
97 CFLAGS=$CFLAGS_save
98 LIBS=$LIBS_save
99])