From 8e955f1787b1ebda35897e5b5f458e2f8735b8ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Sat, 31 Jul 2004 18:57:45 +0000 Subject: New configure option --with-external-ffmpeg[=PREFIX]. CVS patchset: 6865 CVS date: 2004/07/31 18:57:45 --- m4/ffmpeg.m4 | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 m4/ffmpeg.m4 (limited to 'm4') diff --git a/m4/ffmpeg.m4 b/m4/ffmpeg.m4 new file mode 100644 index 000000000..f413a74f7 --- /dev/null +++ b/m4/ffmpeg.m4 @@ -0,0 +1,145 @@ +dnl +dnl autoconf script for searching and checking ffmpeg +dnl +dnl written by Frantisek Dvorak +dnl +dnl +dnl AM_PATH_FFMPEG([ACTION IF FOUND [, ACTION IF NOT FOUND]])) +dnl +dnl It looks for ffmpeg, defines FFMPEG_CFLAGS and FFMPEG_LIBS. +dnl +AC_DEFUN([AM_PATH_FFMPEG], [ + +dnl get the prefix, if specified +if test x"$external_ffmpeg" != "xyes" -a x"$external_ffmpeg" != "xno"; then + ffmpeg_prefix="$withval" +fi + +dnl disable test if requested +AC_ARG_ENABLE(ffmpegtest, + AC_HELP_STRING([--disable-ffmpegtest], + [Do not try compile and run a test ffmpeg program. It will need specify custom FFMPEG_CFLAGS and FFMPEG_LIBS environment variables.] + ), + enable_ffmpegtest="$enableval", + enable_ffmpegtest=yes +) + +if test x"$enable_ffmpegtest" = "xyes"; then + ac_save_LDFLAGS="${LDFLAGS}" + ac_save_CPPFLAGS="${CPPFLAGS}" + external_ffmpeg_found=no + + dnl look for the ffmpeg or just check specified flags + if test x"$FFMPEG_CFLAGS" = x -a x"$FFMPEG_LIBS" = x; then + dnl look for ffmpeg + if test x"$ffmpeg_prefix" = x; then + prefixes="$ffmpeg_prefix /usr /usr/local /opt" + else + prefixes="$ffmpeg_prefix" + fi + for dir in $prefixes; do + FFMPEG_CFLAGS="-I${dir}/include/ffmpeg -I${dir}/include/postproc" + FFMPEG_LIBS="-L${dir}/lib" + CPPFLAGS="${ac_save_CFLAGS} ${FFMPEG_CFLAGS}" + LDFLAGS="${ac_save_LDFLAGS} ${FFMPEG_LIBS}" + + dnl drop the cache + for i in "ac_cv_header_avcodec_h" "ac_cv_header_postprocess_h" \ + "ac_cv_lib_avcodec_pp_get_context" \ + "ac_cv_lib_postproc_pp_get_context" \ + "ac_cv_lib_avcodec_register_avcodec"; do + $as_unset $i || test "${$i+set}" != set || { $i=; export $i; } + done + + dnl check the headers + AC_CHECK_HEADERS(avcodec.h postprocess.h, + [dnl look for libpostproc inside libavcodec + AC_CHECK_LIB(avcodec, pp_get_context, + [external_ffmpeg_found=yes + FFMPEG_LIBS="${FFMPEG_LIBS} -lavcodec" + break], + [dnl look for shared libpostproc and avcodec + AC_CHECK_LIB(postproc, pp_get_context, + [AC_CHECK_LIB(avcodec, register_avcodec, + [external_ffmpeg_found=yes + FFMPEG_LIBS="${FFMPEG_LIBS} -lavcodec -lpostproc" + break], + [continue], + [-lavcodec] + )], + [continue] + )], + [] + )], + [continue] + ) + done + + dnl result of autodetection + if test x"$external_ffmpeg_found" = "xyes"; then + AC_MSG_RESULT([External ffmpeg library was found in ${dir}]) + else + AC_MSG_ERROR([External ffmpeg library not found. +********************************************************************* +You can try to specify prefix of ffmpeg library by the option +--with-external-ffmpeg=prefix, or to specify custom FFMPEG_CFLAGS and +FFMPEG_LIBS. + +If you would like to use the internal ffmpeg, please remove the configure +option --with-external-ffmpeg. +*********************************************************************]) + fi + else + dnl check specified flags + CPPFLAGS="${ac_save_CFLAGS} ${FFMPEG_CFLAGS}" + LDFLAGS="${ac_save_LDFLAGS} ${FFMPEG_LIBS}" + AC_LINK_IFELSE([#include +#include + +int main() { + register_avcodec((void *)0); + pp_get_context(0, 0, 0); +} +], + [external_ffmpeg_found=yes], + [external_ffmpeg_found=no], + ) + + dnl result + if test x"$external_ffmpeg_found" = "xyes"; then + AC_MSG_RESULT([Using custom FFMPEG_CFLAGS and FFMPEG_LIBS for external ffmpeg]) + else + AC_MSG_ERROR([External ffmpeg library not found with specified options. +********************************************************************* +You can try to specify prefix of ffmpeg library by the option +--with-external-ffmpeg=prefix, or to specify different FFMPEG_CFLAGS and +FFMPEG_LIBS. + +If you would like to use the internal ffmpeg, please remove the configure +option --with-external-ffmpeg. +*********************************************************************]) + fi + fi + CPPFLAGS="${ac_save_CPPFLAGS}" + LDFLAGS="${ac_save_LDFLAGS}" +else + if test x"${FFMPEG_CFLAGS}" = "x" -a x"${FFMPEG_LIBS}" = "x"; then + external_ffmpeg_found=no + AC_MSG_ERROR([You should specify FFMPEG_CFLAGS and FFMPEG_LIBS]) + else + external_ffmpeg_found=yes + AC_MSG_RESULT([Forced using custom FFMPEG_CFLAGS and FFMPEG_LIBS.]) + fi +fi + +dnl result +if test x"$external_ffmpeg_found" = "xyes"; then + ifelse([$1], , :, [$1]) +else + ifelse([$2], , :, [$2]) +fi + +AC_SUBST(FFMPEG_CFLAGS) +AC_SUBST(FFMPEG_LIBS) + +]) -- cgit v1.2.3