Skip to content
Snippets Groups Projects
configure.ac 150 KiB
Newer Older
gbazin's avatar
gbazin committed
  VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
gbazin's avatar
 
gbazin committed

gbazin's avatar
 
gbazin committed
dnl
dnl  Switch to enable a version of VLC where most modules will be builtin
dnl
AC_ARG_ENABLE(mostly-builtin,
[  --enable-mostly-builtin most modules will be built-in (default disabled)])
if test "${enable_mostly_builtin}" = "yes"; then
  VLC_ADD_BUILTINS([${PLUGINS}])
gbazin's avatar
 
gbazin committed
  PLUGINS=""
fi

gbazin's avatar
 
gbazin committed
dnl
dnl Some plugins aren't useful on some platforms
dnl
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
    VLC_ADD_PLUGINS([screensaver])
elif test "${SYS}" != "mingwce"; then
    VLC_ADD_PLUGINS([ntservice access_smb dmo])
    VLC_ADD_LDFLAGS([dmo],[-lole32])
gbazin's avatar
 
gbazin committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  Accelerated modules
dnl
MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
#MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
MMXEXT_MODULES="memcpymmxext"
#MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn"
SSE_MODULES=""
ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
#ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
if test "${enable_gprof}" != "yes"
then
  MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
fi

AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
Samuel Hocevar's avatar
Samuel Hocevar committed
     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
if test "${ac_cv_mmx_inline}" != "no"; then
sigmunau's avatar
sigmunau committed
  AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
    [ac_cv_mmxext_inline],
Samuel Hocevar's avatar
Samuel Hocevar committed
     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
if test "${ac_cv_mmxext_inline}" != "no"; then
sigmunau's avatar
sigmunau committed
  AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
Samuel Hocevar's avatar
Samuel Hocevar committed
     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
if test "${ac_cv_3dnow_inline}" != "no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
Samuel Hocevar's avatar
Samuel Hocevar committed
     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Samuel Hocevar's avatar
Samuel Hocevar committed
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
Samuel Hocevar's avatar
Samuel Hocevar committed
     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
            [ac_cv_altivec_inline="-Wa,-m7400"],
            ac_cv_altivec_inline=no)
if test "${ac_cv_altivec_inline}" != "no"; then
Samuel Hocevar's avatar
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
  if test "${ac_cv_altivec_inline}" != "yes"; then
    VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
    VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
    VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
    VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
    VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
Samuel Hocevar's avatar
Samuel Hocevar committed
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
    [ac_cv_c_altivec],
Samuel Hocevar's avatar
Samuel Hocevar committed
    [# Darwin test
     CFLAGS="${CFLAGS_save} -faltivec"
     AC_TRY_COMPILE([],
Samuel Hocevar's avatar
Samuel Hocevar committed
       [vec_ld(0, (unsigned char *)0);],
Samuel Hocevar's avatar
Samuel Hocevar committed
       [ac_cv_c_altivec="-faltivec"],
        CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -maltivec -mabi=altivec"
Samuel Hocevar's avatar
Samuel Hocevar committed
        AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
                        #include <altivec.h>
                        #endif],
          [vec_ld(0, (unsigned char *)0);],
          [ac_cv_c_altivec=""
           ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
Samuel Hocevar's avatar
Samuel Hocevar committed
          [# Linux/PPC test (old GCC versions)
           CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
Samuel Hocevar's avatar
Samuel Hocevar committed
           AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
                           #include <altivec.h>
                           #endif],
             [vec_ld(0, (unsigned char *)0);],
Samuel Hocevar's avatar
Samuel Hocevar committed
             [ac_cv_c_altivec="-fvec"],
             [ac_cv_c_altivec=no])
           ])
if test "${ac_cv_c_altivec}" != "no"; then
Samuel Hocevar's avatar
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
  VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
Samuel Hocevar's avatar
Samuel Hocevar committed
  VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
  VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
    [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
if test "${ac_cv_ld_altivec}" != "no"; then
  VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
[  --with-tuning=ARCH      enable special tuning for an architecture
                          (default Pentium 2 on IA-32 and 750 on PPC)])
Samuel Hocevar's avatar
Samuel Hocevar committed
if test -n "${with_tuning}"; then
    CFLAGS_TUNING="-mtune=${with_tuning}"
    if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
        CFLAGS_TUNING="-mtune=pentium2"
    elif test "${target_cpu}" = "x86_64"; then
        CFLAGS_TUNING="-mtune=athlon64"
    elif test "${target_cpu}" = "powerpc"; then
        CFLAGS_TUNING="-mtune=750";

    dnl NOTE: this can't be cached cleanly
    AS_IF([test "${CFLAGS_TUNING}"],
       [CFLAGS_save="${CFLAGS}"
        CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"

        AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
        AC_COMPILE_IFELSE([ ], [tuning="yes"],
                               [CFLAGS_TUNING=""; tuning="no"])

        AC_MSG_RESULT([$tuning])
        CFLAGS="${CFLAGS_save}"
    ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  x86 accelerations
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
then
    ARCH="${ARCH} mmx"
    VLC_ADD_BUILTINS([${ACCEL_MODULES}])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  Memory usage
dnl
AC_ARG_ENABLE(optimize-memory,
[  --enable-optimize-memory      optimize memory usage over performance])
if test "${enable_optimize_memory}" = "yes"; then
  AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
[  --disable-optimizations disable compiler optimizations (default enabled)])
Samuel Hocevar's avatar
Samuel Hocevar committed
test "${enable_optimizations}" != "no" && enable_optimizations="yes"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  AltiVec acceleration
dnl
Samuel Hocevar's avatar
Samuel Hocevar committed
[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
[ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
    VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
[ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
    VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  Debugging mode
dnl
[  --enable-debug          debug mode (default disabled)])
Samuel Hocevar's avatar
Samuel Hocevar committed
test "${enable_debug}" != "yes" && enable_debug="no"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  Enable release-specific flags
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_ENABLE(release,
[  --enable-release        activate extra optimizations (default disabled)])
Samuel Hocevar's avatar
Samuel Hocevar committed
test "${enable_release}" != "yes" && enable_release="no"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl Stream output
dnl
AC_ARG_ENABLE(sout,
  [  --enable-sout           Stream output modules (default enabled)])
if test "${enable_sout}" != "no"
  VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
  VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
  VLC_ADD_PLUGINS([packetizer_copy])
  VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
  VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
  AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
dnl
dnl HTTP daemon
dnl
AC_ARG_ENABLE(httpd,
  [  --enable-httpd          HTTP daemon (default enabled)])
if test "${enable_httpd}" != "no"
then
gbazin's avatar
gbazin committed
  VLC_ADD_PLUGINS([http])
  AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
fi

dnl
dnl VideoLAN manager
dnl
AC_ARG_ENABLE(vlm,
  [  --enable-vlm            VideoLAN manager (default enabled)])
if test "${enable_vlm}" != "no"
then
  AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
fi
dnl
dnl TLS/SSL
dnl
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
AC_ARG_ENABLE(gnutls,
  [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
AS_IF([test "${enable_gnutls}" != "no"], [

  gcrypt_LIBS="-lgpg-error"
  AS_IF([test "${SYS}" = "mingw32"],
    [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
     VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
  )

  gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"

  AC_CHECK_HEADER(gcrypt.h,
    [AC_CHECK_LIB(gcrypt, gcry_control,
      [AC_CHECK_HEADER(gnutls/gnutls.h,
        [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
	  [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
     ${gcrypt_LIBS})])

  AS_IF([test "${have_gnutls}" = "yes"], [
    VLC_ADD_PLUGINS([gnutls])
    VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
  ], [
    AS_IF([test "${enable_gnutls}" = "yes"], [
      AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  Input plugins
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl

Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_WITH(,[Input plugins:])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl  live.com input
dnl
AC_ARG_ENABLE(livedotcom,
hartman's avatar
hartman committed
[  --enable-livedotcom     live.com input plugin (default disabled)])
Samuel Hocevar's avatar
Samuel Hocevar committed
if test "${enable_livedotcom}" = "yes"; then
Samuel Hocevar's avatar
Samuel Hocevar committed
    [    --with-livedotcom-tree=PATH live.com tree for static linking])
  if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
Samuel Hocevar's avatar
Samuel Hocevar committed
    AC_LANG_PUSH(C++)
    CPPFLAGS_save="${CPPFLAGS}"
    CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
    AC_CHECK_HEADERS(liveMedia.hh, [
      VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
Samuel Hocevar's avatar
Samuel Hocevar committed
      AC_CHECK_LIB(liveMedia_pic, main, [
        # We have -lliveMedia_pic, build plugins
        VLC_ADD_PLUGINS([livedotcom])
        VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
Samuel Hocevar's avatar
Samuel Hocevar committed
      ], [
        AC_CHECK_LIB(liveMedia, main, [
          # We only have -lliveMedia, do builtins
          VLC_ADD_BUILTINS([livedotcom])
          VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
Samuel Hocevar's avatar
Samuel Hocevar committed
        ])
      ])
      if test "${SYS}" = "mingw32"; then
        # add ws2_32 for closesocket, select, recv
        VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
Samuel Hocevar's avatar
Samuel Hocevar committed
      fi
    ])
    CPPFLAGS="${CPPFLAGS_save}"
    AC_LANG_POP(C++)
  else
    AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
    real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
    if test -z "${real_livedotcom_tree}"; then
      dnl  The given directory can't be found
      AC_MSG_RESULT(no)
      AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
    fi
    if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
      AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)

      VLC_ADD_BUILTINS([livedotcom])
gbazin's avatar
 
gbazin committed
      if test "${SYS}" = "mingw32"; then
        # add ws2_32 for closesocket, select, recv
        VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
gbazin's avatar
 
gbazin committed
      fi

      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
      VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
gbazin's avatar
 
gbazin committed

      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
      VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
    else
      dnl  The given live.com wasn't built
      AC_MSG_RESULT(no)
      AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
    fi
  fi
fi


dnl
dnl dvdread module: check for libdvdread
dnl
AC_ARG_ENABLE(dvdread,
[  --enable-dvdread        dvdread input module (default disabled)])
if test "${enable_dvdread}" != "no"
then
  AC_ARG_WITH(dvdread,
  [    --with-dvdread=PATH   libdvdread headers and libraries])
  AC_ARG_WITH(dvdread-tree,
  [    --with-dvdread-tree=PATH libdvdread tree for static linking])

  dnl Temporary hack (yeah, sure ;)
  if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
      VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
  fi

  if test -z "${with_dvdread}"
  then
    if test -z "${with_dvdread_tree}"
    then
      AC_CHECK_HEADERS(dvdread/dvd_reader.h,
        [ VLC_ADD_PLUGINS([dvdread])
          VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
        ],[
          if test -n "${enable_dvdread}"
          then
            AC_MSG_ERROR([cannot find libdvdread headers])
          fi
        ])
    else
      AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
      real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
      if test -z "${real_dvdread_tree}"
      then
        dnl  The given directory can't be found
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
      fi
      if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
      then
        dnl  Use a custom libdvdread
        AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
        VLC_ADD_BUILTINS([dvdread])
        VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
        VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
      else
        dnl  The given libdvdread wasn't built
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
      fi
    fi
  else
    AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
    if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
    then
      dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
      AC_MSG_RESULT(yes)
      VLC_ADD_PLUGINS([dvdread])
      VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
      VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
    else
      dnl  No libdvdread could be found, sorry
      AC_MSG_RESULT(no)
      AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
    fi
  fi
fi
gbazin's avatar
 
gbazin committed
dnl
dnl  libdvdnav plugin
dnl
AC_ARG_ENABLE(dvdnav,
  [  --enable-dvdnav         dvdnav input module (default enabled)])
if test "${enable_dvdnav}" != "no"
gbazin's avatar
 
gbazin committed
then
  dnl Same hack than dvdread
  if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
      VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
  fi

gbazin's avatar
 
gbazin committed
  DVDNAV_PATH="${PATH}"
  AC_ARG_WITH(dvdnav-config-path,
    [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
    [ if test "${with_dvdnav_config_path}" != "no"
      then
        DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
      fi ])
  AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
  if test "${DVDNAV_CONFIG}" != "no"
  then
    VLC_ADD_PLUGINS([dvdnav])
    VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
    VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
gbazin's avatar
 
gbazin committed
  fi
fi

gbazin's avatar
 
gbazin committed
dnl
dnl  Windows DirectShow access module
dnl
AC_ARG_ENABLE(dshow,
hartman's avatar
hartman committed
  [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
gbazin's avatar
 
gbazin committed
if test "${enable_dshow}" != "no"
then
  if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
  then
      AC_CHECK_HEADERS(dshow.h,
      [ VLC_ADD_PLUGINS([dshow])
        VLC_ADD_CXXFLAGS([dshow],[])
        VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
gbazin's avatar
 
gbazin committed
  fi
fi

dnl
dnl  libsmbclient plugin
dnl
AC_ARG_ENABLE(smb,
  [  --enable-smb            smb input module (default enabled)])
if test "${enable_smb}" != "no"; then
  AC_CHECK_HEADERS(libsmbclient.h,
    [ VLC_ADD_PLUGINS([access_smb])
      VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
    [ if test -n "${enable_smb}"; then
        AC_MSG_ERROR([cannot find libsmbclient headers])
     fi ])
fi

[  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
if test "${enable_dvbpsi}" != "no"
  [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
  AC_ARG_WITH(dvbpsi,
  [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
  case "${with_dvbpsi}" in
  ""|yes)
Samuel Hocevar's avatar
Samuel Hocevar committed
    if test -z "${with_dvbpsi_tree}"
Samuel Hocevar's avatar
Samuel Hocevar committed
      AC_CHECK_HEADERS(dvbpsi/dr.h,
        [ VLC_ADD_PLUGINS([ts])
          if test "${enable_sout}" != "no"; then
            VLC_ADD_BUILTINS([mux_ts])
          fi
          VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
        [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
        [#if defined( HAVE_STDINT_H )
#   include <stdint.h>
#elif defined( HAVE_INTTYPES_H )
#   include <inttypes.h>
#endif
gbazin's avatar
 
gbazin committed
#include <dvbpsi/dvbpsi.h>
#include <dvbpsi/descriptor.h>
#include <dvbpsi/pat.h>
#include <dvbpsi/pmt.h>])
    else
      AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
      real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
Samuel Hocevar's avatar
Samuel Hocevar committed
      if test -z "${real_dvbpsi_tree}"
      then
        dnl  The given directory can't be found
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
      fi
      if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
      then
        dnl  Use a custom libdvbpsi
        AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
        VLC_ADD_BUILTINS([ts])
        if test "${enable_sout}" != "no"; then
          VLC_ADD_BUILTINS([mux_ts])
        fi
        VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
        VLC_ADD_LDFLAGS([mux_ts ts dvb],[-L${real_dvbpsi_tree}/src/.libs -ldvbpsi])
      else
        dnl  The given libdvbpsi wasn't built
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
      fi
    dnl  Compile without dvbpsi
  ;;
  *)
    AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
Samuel Hocevar's avatar
Samuel Hocevar committed
    if test -z "${with_dvbpsi}"
      LDFLAGS_test="-L${with_dvbpsi}/lib"
      CPPFLAGS_test="-I${with_dvbpsi}/include"
    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
Samuel Hocevar's avatar
Samuel Hocevar committed
    AC_CHECK_HEADERS([dvbpsi/dr.h],[
      VLC_ADD_PLUGINS([ts])
      if test "${enable_sout}" != "no"; then
        VLC_ADD_PLUGINS([mux_ts])
      VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
      VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
Samuel Hocevar's avatar
Samuel Hocevar committed
    ],[
Samuel Hocevar's avatar
Samuel Hocevar committed
      if test -n "${enable_dvbpsi}"
      then
        AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
      fi
    ])
dnl
dnl  Video4Linux plugin
dnl
AC_ARG_ENABLE(v4l,
  [  --enable-v4l            Video4Linux input support (default disabled)])
if test "${enable_v4l}" = "yes"
  AC_ARG_WITH(v4l,
    [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
Samuel Hocevar's avatar
Samuel Hocevar committed
  if test "${with_v4l}" != "no" -a -n "${with_v4l}"
    VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
  fi

  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
  AC_CHECK_HEADERS(linux/videodev.h, [
    VLC_ADD_PLUGINS([v4l])
  ],[])
  CPPFLAGS="${CPPFLAGS_save}"
dnl
dnl  special access module for Hauppauge PVR cards
dnl
AC_ARG_ENABLE(pvr,
  [  --enable-pvr            PVR cards access module (default disabled)])
if test "${enable_pvr}" = "yes"
  VLC_ADD_PLUGINS([pvr])
dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
AC_ARG_ENABLE(libcdio,
  [  --enable-libcdio        CD input and control library support (default enabled)])
 
have_libcdio=no
have_libvcdinfo=no
if test "${enable_libcdio}" != "no"
then
Rocky Bernstein's avatar
Rocky Bernstein committed
  PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
     have_libcdio=yes
     AC_DEFINE(HAVE_LIBCDIO, [], 
Rocky Bernstein's avatar
Rocky Bernstein committed
     [Define if you have libcdio 0.72 or greater installed]),
     [AC_MSG_WARN(CD Reading and information library not found)])

  PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
     [Define if you have libvcdinfo 0.7.21 or greater installed])],
     [AC_MSG_WARN(VCD information library not found)])
dnl
dnl  VCDX and CDDAX modules
dnl
AC_ARG_ENABLE(cddax,
  [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
  [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
if test "${enable_cddax}" = "yes"
  if test "$have_libcdio" = "yes"
  then
    AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
    VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
    VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
    PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
    VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
    AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
  else 
    AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
    HAVE_CDDAX=no
  fi
  if test "$enable_libcddb" != "no"; then
    PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
      HAVE_LIBCDDB=yes 
      AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
      VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
      VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
      ],
      [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
      HAVE_LIBCDDB=no])
  fi
 
  [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
if test "${enable_vcdx}" = "yes"
then
  if test "${have_libvcdinfo}" = "yes"
  then
    VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
    VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
  else 
    AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
    HAVE_VCDX=no
  fi
Rocky Bernstein's avatar
Rocky Bernstein committed
  PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
   [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
    VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
    [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
  if test "$have_libvcdinfo" = "yes"
  then
    AC_DEFINE(HAVE_VCDX, [], 
    [Define for the VCD plugin using libcdio/libvcdinfo])
    VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
    VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
    VLC_ADD_PLUGINS([vcdx])
  else 
    AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
    HAVE_VCDX=no
  fi
dnl  Built-in CD-DA and VCD module
  [  --enable-cdda           audio CD via built-in VCD (default enabled)])
AC_ARG_ENABLE(vcd,
  [  --enable-vcd            built-in VCD (default enabled)])
if test "${enable_vcd}" != "no"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
then
  AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
    VLC_ADD_PLUGINS([vcd cdda])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ])
  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
  AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
    VLC_ADD_PLUGINS([vcd cdda])
    AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
  AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
    VLC_ADD_PLUGINS([vcd cdda])
    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  then
    VLC_ADD_PLUGINS([vcd cdda])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  fi
  if test "${SYS}" = "darwin"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  then
    VLC_ADD_PLUGINS([vcd cdda])
    VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
    VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  fi
dnl
dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
dnl
AC_ARG_ENABLE(dvb,
  [  --enable-dvb            DVB-S/T/C card support (default disabled)])

if test "${enable_dvb}" = "yes"
then
  AC_ARG_WITH(dvb,
  [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
  if test "${with_dvb}" != "no" -a -n "${with_dvb}"
  then
    VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
  CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
  AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
    if test -z "${with_dvbpsi_tree}"
    then
      VLC_ADD_PLUGINS([dvb])
    else
      VLC_ADD_BUILTINS([dvb])
    fi
dnl
dnl  Screen capture module
dnl
AC_ARG_ENABLE(screen,
  [  --enable-screen         Screen capture support (default enabled)])
Eric Petit's avatar
Eric Petit committed
  if test "${SYS}" = "darwin"; then
    AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
      VLC_ADD_PLUGINS([screen])
      VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
    ])
Eric Petit's avatar
Eric Petit committed
  elif test "${SYS}" = "mingw32"; then
    VLC_ADD_PLUGINS([screen])
    VLC_ADD_LDFLAGS([screen],[-lgdi32])
  elif test "${SYS}" = "mingwce"; then
    CPPFLAGS="${CPPFLAGS_save}"
  elif test "${SYS}" = "beos"; then
    VLC_ADD_PLUGINS([screen])
    VLC_ADD_CXXFLAGS([screen],[])
    VLC_ADD_LDFLAGS([screen],[-lbe])
  else
    CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
    AC_CHECK_HEADERS(X11/Xlib.h, [
      VLC_ADD_PLUGINS([screen])
      VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
      VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
    ])
    CPPFLAGS="${CPPFLAGS_save}"
  fi
fi

dnl  ipv6 plugin - not for QNX yet
have_ipv6=no
AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
  AC_CHECK_LIB(resolv,inet_pton,
    [have_ipv6=yes
     VLC_ADD_LDFLAGS([ipv6],[-lresolv])])
])

AS_IF([test "${have_ipv6}" == "yes"], [
  AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])

if test "${SYS}" != "nto" &&
   test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
  AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
    [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
  AS_IF([test "${have_ipv6}" != "no"], [
    VLC_ADD_PLUGINS([ipv6])])
if test "${SYS}" = "mingw32"
gbazin's avatar
 
gbazin committed
then
  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
    VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
gbazin's avatar
 
gbazin committed
fi
gbazin's avatar
 
gbazin committed
dnl
gbazin's avatar
 
gbazin committed
dnl  ogg demux plugin
gbazin's avatar
 
gbazin committed
dnl
AC_ARG_ENABLE(ogg,
  [  --enable-ogg            Ogg demux support (default enabled)])
if test "${enable_ogg}" != "no"
gbazin's avatar
 
gbazin committed
then
  AC_CHECK_HEADERS(ogg/ogg.h, [
gbazin's avatar
 
gbazin committed
    AC_CHECK_LIB( ogg, oggpack_read, [
      VLC_ADD_PLUGINS([ogg])
      if test "${enable_sout}" != "no"; then
        VLC_ADD_PLUGINS([mux_ogg])
      fi
      VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
gbazin's avatar
 
gbazin committed
   ],[])
fi

gbazin's avatar
 
gbazin committed
dnl
dnl  matroska demux plugin
dnl
AC_ARG_ENABLE(mkv,
gbazin's avatar
 
gbazin committed
  [  --enable-mkv            Matroska demux support (default enabled)])
if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
Samuel Hocevar's avatar
Samuel Hocevar committed
  AC_LANG_PUSH(C++)
  AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
    AC_MSG_CHECKING(for libebml version >= 0.7.3)
    AC_EGREP_CPP(yes,
      [#include <ebml/EbmlVersion.h>
       #ifdef LIBEBML_VERSION
       #if LIBEBML_VERSION >= 0x000703
       yes
       #endif
       #endif],
      [AC_MSG_RESULT([yes])
        AC_CHECK_HEADERS(matroska/KaxVersion.h, [
          AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
          AC_EGREP_CPP(yes,
            [#include <matroska/KaxVersion.h>
             #ifdef LIBMATROSKA_VERSION
             #if LIBMATROSKA_VERSION >= 0x000705
             yes
             #endif
             #endif],
            [AC_MSG_RESULT([yes])
              AC_CHECK_HEADERS(matroska/KaxAttachments.h)
              VLC_ADD_CXXFLAGS([mkv],[])
              if test "${SYS}" = "darwin"; then
                VLC_ADD_CXXFLAGS([mkv],[-O1])
              fi
              AC_CHECK_LIB(ebml_pic, main, [
                # We have ebml_pic, that's good, we can build an mkv.so plugin !
                VLC_ADD_PLUGINS([mkv])
                VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
              ], [
                AC_CHECK_LIB(ebml, main, [
                  # We only have libebml, make mkv.a a builtin
                  VLC_ADD_BUILTINS([mkv])
                  VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
                ])
              ])
            ],
            [AC_MSG_RESULT([no])
              AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
          ])
Samuel Hocevar's avatar
Samuel Hocevar committed
        ])
      ],
      [AC_MSG_RESULT([no])
        AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
Samuel Hocevar's avatar
Samuel Hocevar committed
  ])
Samuel Hocevar's avatar
Samuel Hocevar committed
  AC_LANG_POP(C++)
gbazin's avatar
 
gbazin committed
fi

gbazin's avatar
 
gbazin committed
dnl
dnl  modplug demux plugin
dnl
AC_ARG_ENABLE(mod,
  [  --enable-mod            Mod demux support (default enabled)])
if test "${enable_mod}" != "no"
then
  AC_CHECK_HEADERS(libmodplug/modplug.h, [
    VLC_ADD_PLUGINS([mod])
    VLC_ADD_CXXFLAGS([mod],[])
    VLC_ADD_LDFLAGS([mod],[-lmodplug])])
gbazin's avatar
 
gbazin committed
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  Codec plugins
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_WITH(,[Codec plugins:])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  mad plugin
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_ENABLE(mad,
  [  --enable-mad            libmad module (default enabled)])
if test "${enable_mad}" != "no"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
then
  AC_ARG_WITH(mad,
gbazin's avatar
 
gbazin committed
    [    --with-mad=PATH       path to libmad],[],[])
Samuel Hocevar's avatar
Samuel Hocevar committed
  if test "${with_mad}" != "no" -a -n "${with_mad}"
gbazin's avatar
 
gbazin committed
  then
    VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
    VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
gbazin's avatar
 
gbazin committed
  fi

  AC_ARG_WITH(mad-tree,
    [    --with-mad-tree=PATH  mad tree for static linking],[],[])
Samuel Hocevar's avatar
Samuel Hocevar committed
  if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
gbazin's avatar
 
gbazin committed
  then
    real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
Samuel Hocevar's avatar
Samuel Hocevar committed
    if test -z "${real_mad_tree}"
gbazin's avatar
 
gbazin committed
    then
      dnl  The given directory can't be found
      AC_MSG_RESULT(no)
      AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
    fi
    dnl  Use a custom libmad
    AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
    if test -f ${real_mad_tree}/mad.h
gbazin's avatar
 
gbazin committed
    then
      AC_MSG_RESULT(yes)
      VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
      VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
gbazin's avatar
 
gbazin committed
      AC_CHECK_LIB(mad, mad_bit_init, [
        VLC_ADD_BUILTINS([mpgatofixed32])
        VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
gbazin's avatar
 
gbazin committed
        ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
      ],[])
gbazin's avatar
 
gbazin committed
    else
      AC_MSG_RESULT(no)
      AC_MSG_ERROR([the specified tree doesn't have mad.h])
    fi
  else
    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
gbazin's avatar
 
gbazin committed
    AC_CHECK_HEADERS(mad.h, ,
gbazin's avatar
 
gbazin committed
      [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])