configure.ac
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:197k
源码类别:

midi

开发平台:

Unix_Linux

  1. dnl Autoconf settings for vlc
  2. AC_COPYRIGHT([Copyright 2002-2010 the VideoLAN team])
  3. AC_INIT(vlc, 1.0.5)
  4. VERSION_MAJOR="1"
  5. VERSION_MINOR="0"
  6. VERSION_REVISION="5"
  7. VERSION_EXTRA=""
  8. PKGDIR="vlc"
  9. AC_SUBST(PKGDIR)
  10. CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\/\\\/g'`"
  11. CODENAME="Goldeneye"
  12. COPYRIGHT_YEARS="1996-2010"
  13. AC_PREREQ(2.59c)
  14. AC_CONFIG_SRCDIR(src/libvlc.c)
  15. AC_CONFIG_AUX_DIR(autotools)
  16. AC_CONFIG_MACRO_DIR(m4)
  17. AC_CONFIG_LIBOBJ_DIR(compat)
  18. AC_CANONICAL_BUILD
  19. AC_CANONICAL_HOST
  20. AM_INIT_AUTOMAKE(tar-ustar)
  21. AM_CONFIG_HEADER(config.h)
  22. dnl Too many people are not aware of maintainer mode:
  23. dnl If you want to use it, you definitely know what you are doing, so
  24. dnl you can specify "--disable-maintainer-mode". But if you want the default
  25. dnl automake behavior, you've likely never heard of maintainer mode, so we
  26. dnl can't expect you to enable it manually.
  27. AS_IF([test "x${enable_maintainer_mode}" != "xno"],
  28.     [enable_maintainer_mode="yes"])
  29. AM_MAINTAINER_MODE
  30. dnl
  31. dnl Directories
  32. dnl
  33. dnl vlcincludedir="${includedir}/${PKGDIR}"
  34. dnl AC_SUBST(vlcincludedir)
  35. vlcdatadir="${datadir}/${PKGDIR}"
  36. AC_SUBST(vlcdatadir)
  37. vlclibdir="${libdir}/${PKGDIR}"
  38. AC_SUBST(vlclibdir)
  39. dnl
  40. dnl  Deprecated options
  41. dnl  to notify packagers that stuff has changed
  42. dnl
  43. AC_ARG_ENABLE(python-bindings,
  44.   [  --enable-python-bindings Always fails for historical reasons)],,
  45.   [enable_python_bindings="no"])
  46. AS_IF([test "${enable_python_bindings}" != "no"], [
  47.   AC_MSG_ERROR([Python bindings are now built from a separate source package])
  48. ])
  49. AC_ARG_ENABLE(java-bindings,
  50.   [  --enable-java-bindings  Always fails for historical reasons],,
  51.   [enable_java_bindings="no"])
  52. AS_IF([test "${enable_java_bindings}" != "no"], [
  53.   AC_MSG_ERROR([Java bindings are now built from a separate source package])
  54. ])
  55. dnl
  56. dnl  Save *FLAGS
  57. dnl
  58. VLC_SAVE_FLAGS
  59. dnl
  60. dnl Check for tools
  61. dnl
  62. AC_PROG_CC_C99
  63. AC_USE_SYSTEM_EXTENSIONS
  64. AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
  65. AM_PROG_CC_C_O
  66. AC_PROG_CXX
  67. AC_PROG_CPP
  68. AC_PROG_OBJC
  69. _AM_DEPENDENCIES([OBJC])
  70. AC_PROG_EGREP
  71. AC_PROG_MAKE_SET
  72. AC_PROG_INSTALL
  73. AM_PROG_AS
  74. dnl Find the right ranlib, even when cross-compiling
  75. AC_CHECK_TOOL(RANLIB, ranlib, :)
  76. AC_CHECK_TOOL(STRIP, strip, :)
  77. AC_CHECK_TOOL(AR, ar, :)
  78. AC_CHECK_TOOL(LD, ld, :)
  79. AC_CHECK_TOOL(DLLTOOL, dlltool, :)
  80. dnl Check for compiler properties
  81. AC_C_CONST
  82. AC_C_INLINE
  83. AC_C_RESTRICT
  84. dnl Allow binary package maintainer to pass a custom string to avoid
  85. dnl cache problem
  86. AC_ARG_WITH(binary-version,
  87. AS_HELP_STRING([--with-binary-version=STRING],
  88.      [To avoid plugins cache problem between binary version]),[],[])
  89. AS_IF([test -n "${with_binary_version}"],[
  90.       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
  91.  [Binary specific version])
  92.       ])
  93. dnl
  94. dnl  Check for the contrib directory
  95. dnl
  96. AC_ARG_WITH(contrib,
  97.     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
  98.   AS_IF([test "${with_contrib}" != "no"],[
  99.     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
  100.     if test -z "$CONTRIB_DIR"
  101.     then
  102.       topdir="`dirname $0`"
  103.       if test "`echo "$topdir" | cut -c 1`" != "/"; then
  104.          topdir="`pwd`/$topdir"
  105.       fi
  106.       CONTRIB_DIR=${topdir}/extras/contrib
  107.     fi
  108.     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
  109.   AS_IF([test -d ${CONTRIB_DIR}/lib],[
  110.    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
  111.       if test "${with_contrib}" = "yes"; then
  112.         AC_MSG_RESULT([no])
  113.         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
  114.       else
  115.         AC_MSG_RESULT([no])
  116.         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
  117.       fi
  118.      ],[
  119.     AC_MSG_RESULT([yes])
  120.     export PATH=${CONTRIB_DIR}/bin:$PATH
  121.     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
  122.     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
  123.     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
  124.     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
  125.     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
  126.     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
  127.     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
  128.     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
  129.     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
  130.         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
  131.     else
  132.         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
  133.     fi
  134.     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
  135.     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
  136.     if test -z $with_mozilla_sdk_path; then
  137.        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
  138.     fi
  139.     if test -z $with_cyberlink_tree; then
  140.        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
  141.     fi
  142.     if test ".`uname -s`" = ".Darwin"; then
  143.       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
  144.       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
  145.     elif test ".`uname -s`" = ".BeOS"; then
  146.       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
  147.       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
  148.     fi
  149.     ])
  150.   ],[
  151.     AC_MSG_RESULT([no])
  152.   ])
  153. ])
  154. dnl
  155. dnl  Set default values
  156. dnl
  157. LDFLAGS_vlc="${LDFLAGS}"
  158. dnl
  159. dnl  Check the operating system
  160. dnl
  161. case "${host_os}" in
  162.   "")
  163.     SYS=unknown
  164.     ;;
  165.   linux*)
  166.     SYS=linux
  167.     ;;
  168.   bsdi*)
  169.     SYS=bsdi
  170.     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
  171.     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
  172.     ;;
  173.   *bsd*)
  174.     SYS="${host_os}"
  175.     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
  176.     case "${host_os}" in
  177.       freebsd*)
  178.         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
  179.         CPPFLAGS="${CPPFLAGS_save}"
  180.         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
  181.         LDFLAGS="${LDFLAGS_save}"
  182.         ;;
  183.     esac
  184.     ;;
  185.   darwin*)
  186.     SYS=darwin
  187.     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
  188.     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
  189.     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
  190.     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
  191.     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
  192.     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
  193.     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
  194.     VLC_ADD_LDFLAGS([libvlc],[-Wl,-undefined,dynamic_lookup])
  195.     VLC_ADD_LDFLAGS([avcodec avformat swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
  196.     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
  197.     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
  198.     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
  199.     AC_ARG_ENABLE(macosx-defaults,
  200.       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
  201.     if test "x${enable_macosx_defaults}" != "xno"
  202.     then
  203.         echo ""
  204.         echo "Building with Mac OS X defaults:"
  205.         with_macosx_version_min="10.5"
  206.         echo "  Assuming --with-macosx-version-min=10.5"
  207.         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
  208.         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
  209.         build_dir=`pwd`
  210.         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
  211.         ac_default_prefix="${build_dir}/vlc_install_dir"
  212.         enable_macosx="yes"
  213.         echo "  Assuming --enable-macosx"
  214.         enable_faad="yes"
  215.         echo "  Assuming --enable-faad"
  216.         enable_flac="yes"
  217.         echo "  Assuming --enable-flac"
  218.         enable_theora="yes"
  219.         echo "  Assuming --enable-theora"
  220.         enable_shout="yes"
  221.         echo "  Assuming --enable-shout"
  222.         enable_cddax="yes"
  223.         echo "  Assuming --enable-cddax"
  224.         enable_vcdx="yes"
  225.         echo "  Assuming --enable-vcdx"
  226.         enable_caca="yes"
  227.         echo "  Assuming --enable-caca"
  228.         enable_goom="yes"
  229.         echo "  Assuming --enable-goom"
  230.         enable_ncurses="yes"
  231.         echo "  Assuming --enable-ncurses"
  232.         enable_twolame="yes"
  233.         echo "  Assuming --enable-twolame"
  234.         enable_realrtsp="yes"
  235.         echo "  Assuming --enable-realrtsp"
  236.         enable_update_check="yes"
  237.         echo "  Assuming --enable-update-check"
  238.         enable_libass="yes"
  239.         echo "  Assuming --enable-libass"
  240.         enable_asademux="yes"
  241.         echo "  Assuming --enable-asademux"
  242.         enable_skins2="no"
  243.         echo "  Assuming --disable-skins2"
  244.         enable_x11="no"
  245.         echo "  Assuming --disable-x11"
  246.         enable_glx="no"
  247.         echo "  Assuming --disable-glx"
  248.         enable_xvideo="no"
  249.         echo "  Assuming --disable-xvideo"
  250.     fi
  251.     dnl
  252.     dnl  Check for Mac OS X SDK settings
  253.     dnl
  254.     AC_ARG_WITH(macosx-sdk,
  255.        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
  256.     if test "${with_macosx_sdk}" != "" ; then
  257.         CPP="${CPP} -isysroot ${with_macosx_sdk}"
  258.         CC="${CC} -isysroot ${with_macosx_sdk}"
  259.         CXX="${CXX} -isysroot ${with_macosx_sdk}"
  260.         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
  261.         LD="${LD} -syslibroot ${with_macosx_sdk}"
  262.     fi
  263.     AC_ARG_WITH(macosx-version-min,
  264.        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
  265.     if test "${with_macosx_version_min}" != "" ; then
  266.         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
  267.         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
  268.         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
  269.         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
  270.         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
  271.         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
  272.         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
  273.         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
  274.         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
  275.         export MACOSX_DEPLOYMENT_TARGET
  276.     fi
  277.     ;;
  278.   darwin9*)
  279.     if (test ".`uname -p`" = ".i386"); then
  280.         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
  281.         dnl without hacking it a lot, we disable mmx and sse.
  282.         dnl (that bug is about ld being unable to handle
  283.         dnl text relocation)
  284.         save_cflags="$CFLAGS"
  285.         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
  286.         AC_TRY_LINK(
  287.             [int a;], [asm("movq _a,%mm0n");],
  288.             ac_ld_does_not_support_text_reloc=no,
  289.             ac_ld_does_not_support_text_reloc=yes)
  290.         CFLAGS="$save_cflags"
  291.         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
  292.             enable_mmx="no"
  293.             echo "  Assuming --disable-mmx (due to a bug in ld)"
  294.             enable_sse="no"
  295.             echo "  Assuming --disable-sse (due to a bug in ld)"
  296.         fi
  297.     fi
  298.     ;;
  299.   *mingw32* | *cygwin* | *wince* | *mingwce*)
  300.     AC_CHECK_TOOL(WINDRES, windres, :)
  301.     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
  302.     case "${host_os}" in
  303.       *wince* | *mingwce* | *mingw32ce*)
  304.         SYS=mingwce
  305.         dnl Sadly CeGCC still needs non-wince macros
  306.         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
  307.         ;;
  308.       *mingw32*)
  309.         SYS=mingw32
  310.         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
  311.         ;;
  312.       *cygwin*)
  313.         dnl Check if we are using the mno-cygwin mode in which case we are
  314.         dnl actually dealing with a mingw32 compiler.
  315.         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
  316.         AC_EGREP_CPP(yes,
  317.             [#ifdef WIN32
  318.              yes
  319.              #endif],
  320.             SYS=mingw32, SYS=cygwin)
  321.         ;;
  322.     esac
  323.     if test "${SYS}" = "mingw32"; then
  324.         # add ws2_32 for closesocket, select, recv
  325.         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
  326.         VLC_ADD_LDFLAGS([vlc],[-mwindows])
  327.         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
  328.         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
  329.         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi],[-lws2_32])
  330.         VLC_ADD_LIBS([access_file], [-lshlwapi])
  331.     fi
  332.     if test "${SYS}" = "mingwce"; then
  333.         # add ws2 for closesocket, select, recv
  334.         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd ts telnet],[-lws2])
  335.         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
  336.    fi
  337.     ;;
  338.   *nto*)
  339.     SYS=nto
  340.     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
  341.     ;;
  342.   solaris*)
  343.     SYS=solaris
  344.     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
  345.     # Perhaps it is useful other places as well?
  346.     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
  347.     ;;
  348.   hpux*)
  349.     SYS=hpux
  350.     ;;
  351.   beos)
  352.     SYS=beos
  353.     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
  354.     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
  355.     VLC_ADD_CXXFLAGS([beos],[])
  356.     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
  357.     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
  358.     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
  359.     VLC_ADD_LIBS([access_file],[-lpoll])
  360.     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
  361.     dnl Check for BONE
  362.     if test -f /boot/beos/system/lib/libbind.so; then
  363.         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
  364.     else
  365.         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
  366.     fi
  367.     dnl Ugly check for Zeta
  368.     if test -f /boot/beos/system/lib/libzeta.so; then
  369.         VLC_ADD_LIBS([beos],[-lzeta])
  370.     fi
  371.     ;;
  372.   *)
  373.     SYS="${host_os}"
  374.     ;;
  375. esac
  376. AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
  377. AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
  378. AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
  379. AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
  380. AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
  381. dnl
  382. dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
  383. dnl for program foo on win32
  384. case "${build_os}" in
  385.     cygwin|msys)
  386.         ac_executable_extensions=".exe"
  387.     ;;
  388.     *)
  389.     ;;
  390. esac
  391. dnl
  392. dnl  Libtool
  393. dnl  It's very bad, but our former custom system was worst
  394. dnl  -- Courmisch
  395. dnl
  396. dnl override platform specific check for dependent libraries
  397. dnl otherwise libtool linking of shared libraries will
  398. dnl fail on anything other than pass_all.
  399. AC_CACHE_VAL(lt_cv_deplibs_check_method,
  400.     [lt_cv_deplibs_check_method=pass_all])
  401. AC_DISABLE_STATIC
  402. dnl AC_DISABLE_FAST_INSTALL
  403. AC_LIBTOOL_DLOPEN
  404. AC_LIBTOOL_WIN32_DLL
  405. m4_undefine([AC_PROG_F77])
  406. m4_defun([AC_PROG_F77],[])
  407. AC_PROG_LIBTOOL
  408. m4_undefine([AC_DEPLIBS_CHECK_METHOD])
  409. m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
  410. lt_cv_deplibs_check_method=pass_all
  411. AS_IF([test "${enable_shared}" = "no"], [
  412.   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
  413. ])
  414. dnl
  415. dnl Gettext stuff
  416. dnl
  417. AM_GNU_GETTEXT_VERSION([0.17])
  418. AM_GNU_GETTEXT([external])
  419. VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
  420. dnl
  421. dnl Iconv stuff
  422. dnl
  423. AM_ICONV
  424. VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
  425. VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
  426. dnl Check for broken versions of mingw-runtime compatability library
  427. AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
  428.     AC_MSG_CHECKING(for broken mingw-runtime)
  429.     AC_PREPROC_IFELSE([
  430. #include <_mingw.h>
  431. #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
  432. # error Attempting to use mingw-runtime with broken vsnprintf support
  433. #endif
  434. ], [
  435.         AC_MSG_RESULT([ok])
  436. ], [
  437.         AC_MSG_RESULT([present])
  438.         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
  439. ])
  440.     dnl force use of mingw provided c99 *printf over msvcrt
  441.     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
  442.     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
  443. ])
  444. dnl Check for the need to include the mingwex lib for mingw32
  445. if test "${SYS}" = "mingw32"
  446. then
  447.     AC_CHECK_LIB(mingwex,opendir,
  448.         AC_CHECK_LIB(mingw32,opendir,,
  449.             [VLC_ADD_LIBS([libvlccore gtk],[-lmingwex])])
  450.     )
  451. fi
  452. dnl Check for fnative-struct or mms-bitfields support for mingw32
  453. if test "${SYS}" = "mingw32"
  454. then
  455.     AC_CACHE_CHECK([if $CC accepts -mms-bitfields],
  456.         [ac_cv_c_mms_bitfields],
  457.         [CFLAGS="${CFLAGS_save} -mms-bitfields"
  458.          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
  459.     if test "${ac_cv_c_mms_bitfields}" != "no"; then
  460.         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
  461.         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
  462.     else
  463.         AC_CACHE_CHECK([if $CC accepts -fnative-struct],
  464.             [ac_cv_c_fnative_struct],
  465.             [CFLAGS="${CFLAGS_save} -fnative-struct"
  466.              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
  467.         if test "${ac_cv_c_fnative_struct}" != "no"; then
  468.             CFLAGS_save="${CFLAGS_save} -fnative-struct";
  469.             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
  470.         fi
  471.     fi
  472.     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
  473. fi
  474. dnl Check for fvtable-thunks support for mingw32
  475. if test "${SYS}" = "mingw32" -a "${CXX}" != ""
  476. then
  477. AC_LANG_PUSH(C++)
  478.     AC_CACHE_CHECK([if $CXX accepts -fvtable-thunks],
  479.         [ac_cv_cxx_fvtable_thunks],
  480.         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
  481.          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
  482.                         ac_cv_cxx_fvtable_thunks=no)])
  483.     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
  484.         CXXFLAGS_mingw32_special="-fvtable-thunks"
  485.     fi
  486.     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
  487. AC_LANG_POP(C++)
  488. fi
  489. dnl
  490. dnl Buggy glibc prevention. Purposedly not cached.
  491. dnl Ubuntu alone has 20 bug numbers for this...
  492. dnl
  493. AC_MSG_CHECKING(for buggy GNU/libc versions)
  494. AC_PREPROC_IFELSE([
  495. #include <limits.h>
  496. #if defined (__GLIBC__) && (__GLIBC__ == 2) 
  497.   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
  498. # error GNU/libc with dcgettext killer bug!
  499. #endif
  500. ], [
  501.   AC_MSG_RESULT([not present])
  502. ], [
  503.   AC_MSG_RESULT([found])
  504.   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
  505.     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
  506. work-around for this. Check with your distribution vendor on how to update the
  507. glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
  508. be sure to not use LibVLC from other applications/wrappers.])
  509.   ], [
  510.     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
  511.   ])
  512. ])
  513. dnl Plugin compilation stuff
  514. VLC_LIBRARY_SUFFIX
  515. dnl The -DSYS_FOO flag
  516. CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
  517. dnl Check for system libs needed
  518. need_libc=false
  519. dnl Check for usual libc functions
  520. AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r lrintf daemon fork lstat posix_fadvise posix_madvise uselocale])
  521. AC_FUNC_ALLOCA
  522. AC_CHECK_FUNCS(fcntl)
  523. AC_REPLACE_FUNCS([asprintf atof atoll getcwd gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
  524. AC_CHECK_FUNCS([stricmp strnicmp])
  525. AC_CHECK_FUNCS(fdatasync,,
  526.   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
  527. ])
  528. dnl Check for non-standard system calls
  529. AC_CHECK_FUNCS([vmsplice eventfd fstatfs])
  530. AH_BOTTOM([#include <vlc_fixups.h>])
  531. AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
  532. dnl Check for setlocal and langinfo
  533. AC_CHECK_FUNCS(setlocale)
  534. AC_CHECK_HEADERS(langinfo.h)
  535. AC_CHECK_FUNCS(nl_langinfo)
  536. AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
  537.   [AC_TRY_LINK([#include <langinfo.h>],
  538.     [char* cs = nl_langinfo(CODESET);],
  539.     ac_cv_langinfo_codeset=yes,
  540.     ac_cv_langinfo_codeset=no)
  541.   ])
  542. if test ${ac_cv_langinfo_codeset} = yes; then
  543.   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
  544.     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
  545. fi
  546. SOCKET_LIBS=""
  547. AC_CHECK_FUNCS(connect,,[
  548.   AC_CHECK_LIB(socket,connect,[
  549.     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
  550.     SOCKET_LIBS="-lsocket"
  551.   ])
  552. ])
  553. AC_SUBST(SOCKET_LIBS)
  554. AC_CHECK_FUNCS(send,,[
  555.   AC_CHECK_LIB(socket,send,[
  556.     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd],[-lsocket])
  557.   ])
  558. ])
  559. dnl Check for socklen_t
  560. AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
  561. AC_CACHE_CHECK([for socklen_t in sys/socket.h],
  562. ac_cv_type_socklen_t,
  563. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
  564. [#include <sys/types.h>
  565. #ifdef WIN32
  566. # include <winsock2.h>
  567. # include <ws2tcpip.h>
  568. #else
  569. # include <sys/socket.h>
  570. #endif]], [[socklen_t len; len = 0;]])],
  571. ac_cv_type_socklen_t=yes,
  572. ac_cv_type_socklen_t=no)])
  573. AS_IF([test "$ac_cv_type_socklen_t" = no],
  574.  [AC_DEFINE(socklen_t, int)])
  575. dnl Check for struct sockaddr_storage
  576. AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
  577. AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
  578. AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
  579.   [AC_TRY_COMPILE(
  580.     [#include <sys/types.h>
  581.      #if defined( UNDER_CE )
  582.      # include <winsock2.h>
  583.      #elif defined( WIN32 )
  584.      # include <winsock2.h>
  585.      #else
  586.      # include <sys/socket.h>
  587.      #endif], [struct sockaddr_storage addr;],
  588.      ac_cv_struct_sockaddr_storage=yes,
  589.      ac_cv_struct_sockaddr_storage=no)])
  590. AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
  591.   AC_DEFINE(sockaddr_storage, sockaddr)
  592.   AC_DEFINE(ss_family, sa_family)
  593. ])
  594. dnl getaddrinfo, getnameinfo and gai_strerror check
  595. dnl  -lnsl and -lsocket are needed on Solaris;
  596. dnl  we purposedly make the test fail on Windows
  597. LIBS_save="${LIBS}"
  598. AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
  599. AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
  600. dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
  601. dnl are
  602. LIBS="${LIBS_gai}"
  603. AC_CHECK_FUNCS([getnameinfo gai_strerror])
  604. LIBS="${LIBS_save}"
  605. AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
  606. AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
  607. [#include <sys/types.h>
  608. #if defined( WIN32 ) || defined( UNDER_CE )
  609. # if defined(UNDER_CE) && defined(sockaddr_storage)
  610. #  undef sockaddr_storage
  611. # endif
  612. # include <winsock2.h>
  613. # include <ws2tcpip.h>
  614. #else
  615. # include <netdb.h>
  616. #endif])
  617. dnl Check for va_copy
  618. AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
  619.   AC_TRY_LINK(
  620.     [#include <stdarg.h>],
  621.     [va_list ap1, ap2; va_copy(ap1,ap2);],
  622.     [ac_cv_c_va_copy="yes"],
  623.     [ac_cv_c_va_copy="no"]))
  624. if test "${ac_cv_c_va_copy}" = "yes"; then
  625.   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
  626. fi
  627. AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
  628.   AC_TRY_LINK(
  629.     [#include <stdarg.h>],
  630.     [va_list ap1, ap2; __va_copy(ap1,ap2);],
  631.     [ac_cv_c___va_copy="yes"],
  632.     [ac_cv_c___va_copy="no"]))
  633. if test "${ac_cv_c___va_copy}" = "yes"; then
  634.   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
  635. fi
  636. AC_CHECK_FUNCS(inet_aton,,[
  637.   AC_CHECK_LIB(resolv,inet_aton,[
  638.     VLC_ADD_LIBS([libvlccore],[-lresolv])
  639.   ])
  640. ])
  641. dnl Check for getopt (always use builtin one on win32)
  642. if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
  643. need_getopt=:
  644. else
  645. need_getopt=false
  646. AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
  647. [ # FreeBSD has a gnugetopt library for this:
  648.   AC_CHECK_LIB([gnugetopt],[getopt_long],
  649.     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
  650.      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
  651.     [need_getopt=:])])
  652. fi
  653. AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
  654. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  655. AC_TYPE_SIGNAL
  656. AC_CHECK_LIB(m,cos,[
  657.   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua],[-lm])
  658. ])
  659. AC_CHECK_LIB(m,pow,[
  660.   VLC_ADD_LIBS([avcodec avformat swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
  661. ])
  662. AC_CHECK_LIB(m,sqrt,[
  663.   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
  664. ])
  665. AC_CHECK_LIB(m,ceil,[
  666.   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
  667. ])
  668. AC_CHECK_LIB(m,exp,[
  669.   VLC_ADD_LIBS([gaussianblur],[-lm])
  670. ])
  671. AC_CHECK_LIB(m,round,[
  672.   VLC_ADD_LIBS([dbus],[-lm])
  673. ])
  674. AC_CHECK_LIB(m,sqrtf,[
  675.   VLC_ADD_LIBS([x264],[-lm])
  676. ])
  677. fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  678. AC_CHECK_LIB(m,lrintf, [
  679.   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
  680.   VLC_ADD_LIBS([skins2],[-lm])
  681. ])
  682. dnl Check for dynamic plugins
  683. ac_cv_have_plugins=no
  684. # OS X style
  685. AC_CHECK_HEADERS(mach-o/dyld.h,
  686.   [AC_CHECK_FUNCS(NSLinkModule,
  687.     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
  688.      ac_cv_have_plugins=yes])])
  689. # HP-UX style
  690. if test "${ac_cv_have_plugins}" = "no"; then
  691.   AC_CHECK_HEADERS(dl.h)
  692.   ac_cv_my_have_shl_load=no
  693.   AC_CHECK_FUNC(shl_load,
  694.    [ac_cv_my_have_shl_load=yes,
  695.     AC_CHECK_LIB(dld, shl_load,
  696.      [ac_cv_my_have_shl_load=yes
  697.       VLC_ADD_LIBS([libvlccore],[-ldld])])])
  698.   if test "${ac_cv_my_have_shl_load}" = "yes"; then
  699.     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
  700.     ac_cv_have_plugins=yes
  701.   fi
  702. fi
  703. # Whatever style
  704. if test "${ac_cv_have_plugins}" = "no"; then
  705.   AC_CHECK_LIB(dld, dld_link,
  706.    [VLC_ADD_LIBS([libvlccore],[-ldld])
  707.     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
  708.     ac_cv_have_plugins=yes])
  709. fi
  710. # Win32 style
  711. if test "${ac_cv_have_plugins}" = "no"; then
  712.   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
  713.     AC_CHECK_LIB(kernel32, main,
  714.      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
  715.       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
  716.       ac_cv_have_plugins=yes])
  717.   fi
  718. fi
  719. # WinCE style
  720. if test "${ac_cv_have_plugins}" = "no"; then
  721.   if test "${SYS}" = "mingwce"; then
  722.     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
  723.     ac_cv_have_plugins=yes
  724.   fi
  725. fi
  726. # BeOS style
  727. if test "${ac_cv_have_plugins}" = "no"; then
  728.   AC_CHECK_HEADERS(image.h)
  729.   AC_CHECK_FUNCS(load_add_on,
  730.    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
  731.     ac_cv_have_plugins=yes])
  732. fi
  733. # Only test for dlopen() if the others didn't work
  734. if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
  735.   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
  736.   ac_cv_my_have_dlopen=no
  737.   AC_CHECK_FUNC(dlopen,
  738.     ac_cv_my_have_dlopen=yes,
  739.     AC_CHECK_LIB(dl, dlopen,
  740.       ac_cv_my_have_dlopen=yes
  741.       VLC_ADD_LIBS([libvlccore realaudio realvideo lua],[-ldl]),
  742.       AC_CHECK_LIB(svld, dlopen,
  743.         ac_cv_my_have_dlopen=yes
  744.         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
  745.   if test "${ac_cv_my_have_dlopen}" = "yes"; then
  746.     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
  747.     ac_cv_have_plugins=yes
  748.   fi
  749. fi
  750. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  751. dnl Check for pthreads - borrowed from XMMS
  752. THREAD_LIB=error
  753. if test "${THREAD_LIB}" = "error"; then
  754.   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
  755. fi
  756. if test "${THREAD_LIB}" = "error"; then
  757.   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
  758. fi
  759. if test "${THREAD_LIB}" = "error"; then
  760.   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
  761. fi
  762. if test "${THREAD_LIB}" = "error"; then
  763.   AC_CHECK_FUNCS(pthread_mutex_lock)
  764.   THREAD_LIB=""
  765. fi
  766. VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
  767. AC_CHECK_LIB(rt, clock_nanosleep, [
  768.   VLC_ADD_LIBS([libvlccore],[-lrt])
  769.   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
  770. ], [
  771.   dnl HP/UX port
  772.   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
  773. ])
  774. have_nanosleep=false
  775. AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
  776.   AC_CHECK_LIB(rt,nanosleep,
  777.     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
  778.     [AC_CHECK_LIB(posix4,nanosleep,
  779.         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
  780.   )
  781. ])
  782. if ${have_nanosleep}; then
  783.   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
  784. fi
  785. fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  786. dnl Check for misc headers
  787. AC_MSG_CHECKING(for strncasecmp in strings.h)
  788. AC_EGREP_HEADER(strncasecmp,strings.h,[
  789.   AC_MSG_RESULT(yes)
  790.   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
  791.             Define if <strings.h> defines strncasecmp.)],[
  792.   AC_MSG_RESULT(no)])
  793. dnl Check for headers
  794. AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
  795. AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
  796. AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
  797. AC_CHECK_HEADERS([net/if.h], [], [],
  798.   [
  799.     #include <sys/types.h>
  800.     #include <sys/socket.h>
  801.   ])
  802. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  803. AC_CHECK_HEADERS(machine/param.h sys/shm.h)
  804. AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
  805. AC_CHECK_HEADERS(syslog.h)
  806. fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  807. AC_HEADER_TIME
  808. dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
  809. AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
  810. AC_CHECK_TYPE(ssize_t,, [
  811.   AC_DEFINE(ssize_t, int)
  812. ])
  813. dnl Check for poll
  814. AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
  815. if test ${SYS} != "mingw32"
  816. then
  817.     AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
  818. fi
  819. ])
  820. dnl Check for dirent
  821. need_dirent=false
  822. AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
  823. AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
  824. dnl Mac OS X and other OSes don't have declaration for nanosleep
  825. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  826. AC_MSG_CHECKING(for nanosleep in time.h)
  827. AC_EGREP_HEADER(nanosleep,time.h,[
  828.   AC_MSG_RESULT(yes)
  829.   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
  830.             Define if <time.h> defines nanosleep.)
  831. ],[
  832.   AC_MSG_RESULT(no)
  833. ])
  834. fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  835. dnl Make sure we have timespecs
  836. AC_MSG_CHECKING(for timespec in sys/time.h)
  837. AC_EGREP_HEADER(timespec,sys/time.h,[
  838.   AC_MSG_RESULT(yes)
  839.   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
  840.             Define if <sys/time.h> defines struct timespec.)
  841. ],[
  842.   AC_MSG_RESULT(no)
  843. ])
  844. dnl Check for threads library
  845. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  846. AC_CHECK_HEADERS(pthread.h)
  847. fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  848. dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
  849. dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
  850. AC_ARG_VAR(PKG_CONFIG_PATH,
  851.    [Paths where to find .pc not at the default location])
  852. PKG_PROG_PKG_CONFIG()
  853. dnl On some OS we need static linking 
  854.        AS_IF([test -n "${PKG_CONFIG}" ],[
  855.       AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
  856.           PKG_CONFIG="${PKG_CONFIG} --static"
  857.           ])
  858.        ])
  859. dnl
  860. dnl Check for zlib.h and -lz along with system -lminizip if available
  861. dnl 
  862. AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
  863. AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
  864. if test "${have_zlib}" = "yes"
  865. then
  866.   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
  867.   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
  868.     AC_CHECK_HEADERS([unzip.h], [ 
  869.       have_minizip=yes
  870.       MINIZIP_LIBS="-lminizip -lz"
  871.     ], [
  872.       have_minizip=no
  873.       MINIZIP_CFLAGS="-I\${top_srcdir}/libs/unzip"
  874.       MINIZIP_LIBS="\${top_builddir}/libs/unzip/libunzip.la"
  875.     ])
  876.   ])
  877.   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
  878.   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
  879.   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
  880.   VLC_ADD_PLUGIN([unzip])
  881.   VLC_ADD_PLUGIN([zip])
  882. fi
  883. AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
  884. dnl Check for hal
  885. AC_ARG_ENABLE(hal,
  886.   [  --enable-hal            Linux HAL services discovery (default enabled)])
  887. if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  888. then
  889.   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
  890.     [
  891.       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
  892.       VLC_ADD_PLUGIN([hal])
  893.       VLC_ADD_PLUGIN([probe_hal])
  894.       VLC_ADD_LIBS([libvlccore hal probe_hal],[$HAL_LIBS])
  895.       VLC_ADD_CFLAGS([libvlccore hal probe_hal],[$HAL_CFLAGS])],
  896.     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
  897.   )
  898. fi
  899. dnl Check for libudev
  900. AC_ARG_ENABLE(udev,
  901.   [  --enable-udev           Linux udev services discovery (default auto)])
  902. AS_IF([test "$enable_udev" != "no"], [
  903.   PKG_CHECK_MODULES(UDEV, [libudev >= 142], [
  904.     VLC_ADD_PLUGIN([udev])
  905.     VLC_ADD_LIBS([udev],[$UDEV_LIBS])
  906.     VLC_ADD_CFLAGS([udev],[$UDEV_CFLAGS])
  907.   ], [
  908.     true
  909.   ])
  910. ])
  911. dnl Check for mtp
  912. AC_ARG_ENABLE(mtp,
  913.   [  --enable-mtp            MTP devices support (default enabled)])
  914. if test "${enable_mtp}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  915. then
  916.   PKG_CHECK_MODULES(MTP, libmtp >= 0.3.0,
  917.     [ VLC_ADD_PLUGIN([mtp])
  918.       VLC_ADD_PLUGIN([access_mtp])
  919.       VLC_ADD_LIBS([mtp access_mtp],[$MTP_LIBS])
  920.       VLC_ADD_CFLAGS([mtp access_mtp],[$MTP_CFLAGS])],
  921.        [AC_MSG_WARN(MTP library not found)]
  922.   )
  923. fi
  924. dnl Check for dbus
  925. AC_ARG_ENABLE(dbus,
  926.   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
  927. case "${SYS}" in
  928.     linux*|*bsd*)
  929. if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
  930. then
  931.   dnl api stable dbus
  932.   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
  933.     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
  934.       VLC_ADD_LIBS([screensaver libvlccore],[$DBUS_LIBS])
  935.       VLC_ADD_CFLAGS([screensaver libvlccore],[$DBUS_CFLAGS])
  936.       dnl Check for dbus control interface
  937.         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
  938.         if test "${enable_dbus_control}" != "no"
  939.         then
  940.           VLC_ADD_PLUGIN([dbus])
  941.           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
  942.           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
  943.         fi
  944.       dnl Check for Telepathy
  945.         AC_ARG_ENABLE(telepathy,
  946.           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
  947.         if test "${enable_telepathy}" != "no"; then
  948.           VLC_ADD_PLUGIN([telepathy])
  949.           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
  950.           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
  951.         fi
  952.         dnl Power Management Inhibiter
  953.         VLC_ADD_PLUGIN([inhibit])
  954.         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
  955.         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
  956.     ],
  957.     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
  958.   )
  959. fi
  960. ;;
  961. esac
  962. dnl Build the gtk_main plugins?
  963. NEED_GTK_MAIN=no
  964. NEED_GNOME_MAIN=no
  965. NEED_GTK2_MAIN=no
  966. NEED_GNOME2_MAIN=no
  967. dnl build the qte plugin ?
  968. NEED_QTE_MAIN=no
  969. dnl Check for ntohl, etc.
  970. AC_CACHE_CHECK([for ntohl in sys/param.h],
  971.     [ac_cv_c_ntohl_sys_param_h],
  972.     [CFLAGS="${CFLAGS_save} -Wall -Werror"
  973.      AC_TRY_COMPILE([#include <sys/param.h>],
  974.         [int meuh; ntohl(meuh);],
  975.         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
  976. if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
  977.     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
  978. fi
  979. CFLAGS="${CFLAGS_save}"
  980. RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
  981. RDC_PROG_CC_FLAGS_IFELSE([-pipe])
  982. dnl Check for various optimization flags
  983. AC_CACHE_CHECK([if $CC accepts -Os],
  984.     [ac_cv_c_os],
  985.     [CFLAGS="${CFLAGS_save} -Os"
  986.      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
  987. if test "${ac_cv_c_os}" != "no"; then
  988.     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
  989. else
  990.     AC_CACHE_CHECK([if $CC accepts -O],
  991.         [ac_cv_c_o],
  992.         [CFLAGS="${CFLAGS_save} -O"
  993.          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
  994.     if test "${ac_cv_c_o}" != "no"; then
  995.         if test "${ac_cv_c_o3}" = "no"; then
  996.             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
  997.         fi
  998.     fi
  999. fi
  1000. AC_CACHE_CHECK([if $CC accepts -O4],
  1001.     [ac_cv_c_o4],
  1002.     [CFLAGS="${CFLAGS_save} -O4"
  1003.      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
  1004. if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
  1005.     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
  1006. else
  1007.     AC_CACHE_CHECK([if $CC accepts -O3],
  1008.         [ac_cv_c_o3],
  1009.         [CFLAGS="${CFLAGS_save} -O3"
  1010.          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
  1011.     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
  1012.         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
  1013.     else
  1014.         AC_CACHE_CHECK([if $CC accepts -O2],
  1015.             [ac_cv_c_o2],
  1016.             [CFLAGS="${CFLAGS_save} -O2"
  1017.              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
  1018.         if test "${ac_cv_c_o2}" != "no"; then
  1019.             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
  1020.         else
  1021.             AC_CACHE_CHECK([if $CC accepts -O],
  1022.                 [ac_cv_c_o],
  1023.                 [CFLAGS="${CFLAGS_save} -O"
  1024.                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
  1025.             if test "${ac_cv_c_o}" != "no"; then
  1026.                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
  1027.             fi
  1028.         fi
  1029.     fi
  1030. fi
  1031. AC_CACHE_CHECK([if $CC accepts -O0],
  1032.     [ac_cv_c_o0],
  1033.     [CFLAGS="${CFLAGS_save} -O0"
  1034.      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
  1035. if test "${ac_cv_c_o0}" != "no"; then
  1036.     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
  1037. fi
  1038. dnl Check for -ffast-math
  1039. AC_CACHE_CHECK([if $CC accepts -ffast-math],
  1040.     [ac_cv_c_fast_math],
  1041.     [CFLAGS="${CFLAGS_save} -ffast-math"
  1042.      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
  1043. if test "${ac_cv_c_fast_math}" != "no"; then
  1044.     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
  1045. fi
  1046. dnl Check for -funroll-loops
  1047. dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
  1048. if test "${SYS}" != "beos"
  1049. then
  1050.   AC_CACHE_CHECK([if $CC accepts -funroll-loops],
  1051.       [ac_cv_c_unroll_loops],
  1052.       [CFLAGS="${CFLAGS_save} -funroll-loops"
  1053.        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
  1054.   if test "${ac_cv_c_unroll_loops}" != "no"; then
  1055.       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
  1056.   fi
  1057. fi
  1058. dnl Check for -fomit-frame-pointer
  1059. AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
  1060.     [ac_cv_c_omit_frame_pointer],
  1061.     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
  1062.      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
  1063. if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
  1064.  if test "${SYS}" != "darwin"; then
  1065.     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
  1066.  else
  1067.     dnl On darwin we explicitely disable it.
  1068.     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
  1069.  fi
  1070. fi
  1071. dnl Check for Darwin plugin linking flags
  1072. AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
  1073.     [ac_cv_ld_darwin],
  1074.     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
  1075.      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
  1076. if test "${ac_cv_ld_darwin}" != "no"; then
  1077.     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
  1078. fi
  1079. dnl Checks for __attribute__(aligned()) directive
  1080. AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
  1081.     [ac_cv_c_attribute_aligned],
  1082.     [ac_cv_c_attribute_aligned=0
  1083.         CFLAGS="${CFLAGS_save} -Werror"
  1084.     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
  1085.         AC_TRY_COMPILE([],
  1086.         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
  1087.         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
  1088.     done
  1089.         CFLAGS="${CFLAGS_save}"])
  1090. if test "${ac_cv_c_attribute_aligned}" != "0"; then
  1091.     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
  1092.         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
  1093. fi
  1094. dnl Check for __attribute__((packed))
  1095. AC_CACHE_CHECK([for __attribute__((packed))],
  1096.   [ac_cv_c_attribute_packed],
  1097.   [ac_cv_c_attribute_packed=no
  1098.    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
  1099.                     [ac_cv_c_attribute_packed=yes])])
  1100. if test "${ac_cv_c_attribute_packed}" != "no"; then
  1101.   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
  1102. fi
  1103. dnl
  1104. dnl  Check the CPU
  1105. dnl
  1106. case "${host_cpu}" in
  1107.   "")
  1108.     ARCH=unknown
  1109.     ;;
  1110.   *)
  1111.     ARCH="${host_cpu}"
  1112.     ;;
  1113. esac
  1114. dnl Check for backtrace() support
  1115. AC_CHECK_HEADERS(execinfo.h)
  1116. AC_CHECK_FUNCS(backtrace)
  1117. dnl
  1118. dnl  Enable profiling
  1119. dnl
  1120. AC_ARG_ENABLE(gprof,
  1121. [  --enable-gprof          gprof profiling (default disabled)])
  1122. AC_ARG_ENABLE(cprof,
  1123. [  --enable-cprof          cprof profiling (default disabled)])
  1124. test "${enable_gprof}" != "yes" && enable_gprof="no"
  1125. test "${enable_cprof}" != "yes" && enable_cprof="no"
  1126. dnl
  1127. dnl  default modules
  1128. dnl
  1129. dnl Video filters:
  1130. VLC_ADD_PLUGIN([deinterlace])
  1131. VLC_ADD_PLUGIN([yuvp])
  1132. VLC_ADD_PLUGIN([invert])
  1133. VLC_ADD_PLUGIN([adjust])
  1134. VLC_ADD_PLUGIN([transform])
  1135. VLC_ADD_PLUGIN([wave])
  1136. VLC_ADD_PLUGIN([ripple])
  1137. VLC_ADD_PLUGIN([psychedelic])
  1138. VLC_ADD_PLUGIN([gradient])
  1139. VLC_ADD_PLUGIN([motionblur])
  1140. VLC_ADD_PLUGIN([rv32])
  1141. VLC_ADD_PLUGIN([rotate])
  1142. VLC_ADD_PLUGIN([noise])
  1143. VLC_ADD_PLUGIN([grain])
  1144. VLC_ADD_PLUGIN([extract])
  1145. VLC_ADD_PLUGIN([sharpen])
  1146. VLC_ADD_PLUGIN([croppadd])
  1147. VLC_ADD_PLUGIN([canvas])
  1148. VLC_ADD_PLUGIN([blendbench])
  1149. VLC_ADD_PLUGIN([blend])
  1150. VLC_ADD_PLUGIN([scale])
  1151. VLC_ADD_PLUGIN([vmem])
  1152. VLC_ADD_PLUGIN([logo])
  1153. VLC_ADD_PLUGIN([magnify])
  1154. VLC_ADD_PLUGIN([puzzle])
  1155. VLC_ADD_PLUGIN([colorthres])
  1156. VLC_ADD_PLUGIN([scene])
  1157. VLC_ADD_PLUGIN([yuv])
  1158. ALIASES="${ALIASES} cvlc"
  1159. dnl
  1160. dnl default modules that need g++
  1161. dnl
  1162. AC_LANG_PUSH(C++)
  1163. VLC_ADD_PLUGIN([spatializer])
  1164. AC_LANG_POP(C++)
  1165. if test "${SYS}" != "mingwce"; then
  1166.   VLC_ADD_PLUGIN([gestures])
  1167.   VLC_ADD_PLUGIN([rc])
  1168.   VLC_ADD_PLUGIN([hotkeys])
  1169.   VLC_ADD_PLUGIN([showintf])
  1170.   VLC_ADD_PLUGIN([marq])
  1171.   VLC_ADD_PLUGIN([podcast])
  1172.   VLC_ADD_PLUGIN([shout])
  1173.   VLC_ADD_PLUGIN([sap])
  1174.   VLC_ADD_PLUGIN([fake])
  1175.   VLC_ADD_PLUGIN([folder])
  1176.   VLC_ADD_PLUGIN([rss])
  1177.   VLC_ADD_PLUGIN([mosaic])
  1178.   VLC_ADD_PLUGIN([wall])
  1179.   VLC_ADD_PLUGIN([motiondetect])
  1180.   VLC_ADD_PLUGIN([clone])
  1181.   VLC_ADD_PLUGIN([crop])
  1182.   VLC_ADD_PLUGIN([erase])
  1183.   VLC_ADD_PLUGIN([bluescreen])
  1184.   VLC_ADD_PLUGIN([alphamask])
  1185.   VLC_ADD_PLUGIN([gaussianblur])
  1186.   VLC_ADD_PLUGIN([i420_yuy2])
  1187.   VLC_ADD_PLUGIN([i422_yuy2])
  1188.   VLC_ADD_PLUGIN([i420_ymga])
  1189.   VLC_ADD_PLUGIN([i422_i420])
  1190.   VLC_ADD_PLUGIN([yuy2_i422])
  1191.   VLC_ADD_PLUGIN([yuy2_i420])
  1192.   VLC_ADD_PLUGIN([chain])
  1193.   VLC_ADD_PLUGIN([aout_file])
  1194.   VLC_ADD_PLUGIN([linear_resampler])
  1195.   VLC_ADD_PLUGIN([bandlimited_resampler])
  1196.   VLC_ADD_PLUGIN([float32_mixer])
  1197.   VLC_ADD_PLUGIN([spdif_mixer])
  1198.   VLC_ADD_PLUGIN([simple_channel_mixer])
  1199.   VLC_ADD_PLUGIN([dolby_surround_decoder])
  1200.   VLC_ADD_PLUGIN([headphone_channel_mixer])
  1201.   VLC_ADD_PLUGIN([normvol])
  1202.   VLC_ADD_PLUGIN([equalizer])
  1203.   VLC_ADD_PLUGIN([param_eq])
  1204.   VLC_ADD_PLUGIN([scaletempo])
  1205.   VLC_ADD_PLUGIN([converter_float])
  1206.   VLC_ADD_PLUGIN([a52tospdif])
  1207.   VLC_ADD_PLUGIN([dtstospdif])
  1208.   VLC_ADD_PLUGIN([audio_format])
  1209.   ALIASES="${ALIASES} rvlc"
  1210. fi
  1211. if test "${SYS}" = "mingwce"; then
  1212.   VLC_ADD_PLUGIN([chain])
  1213.   VLC_ADD_PLUGIN([aout_file])
  1214.   VLC_ADD_PLUGIN([linear_resampler])
  1215.   VLC_ADD_PLUGIN([bandlimited_resampler])
  1216.   VLC_ADD_PLUGIN([float32_mixer])
  1217.   VLC_ADD_PLUGIN([spdif_mixer])
  1218.   VLC_ADD_PLUGIN([simple_channel_mixer])
  1219.   VLC_ADD_PLUGIN([headphone_channel_mixer])
  1220.   VLC_ADD_PLUGIN([normvol])
  1221.   VLC_ADD_PLUGIN([converter_float])
  1222.   VLC_ADD_PLUGIN([a52tospdif])
  1223.   VLC_ADD_PLUGIN([dtstospdif])
  1224.   VLC_ADD_PLUGIN([audio_format])
  1225.   VLC_ADD_PLUGIN([i420_yuy2])
  1226.   VLC_ADD_PLUGIN([i422_yuy2])
  1227.   VLC_ADD_PLUGIN([i420_ymga])
  1228.   VLC_ADD_PLUGIN([i422_i420])
  1229.   VLC_ADD_PLUGIN([yuy2_i422])
  1230.   VLC_ADD_PLUGIN([yuy2_i420])
  1231. fi
  1232. dnl
  1233. dnl Some plugins aren't useful on some platforms
  1234. dnl
  1235. if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
  1236.     VLC_ADD_PLUGIN([screensaver])
  1237.     VLC_ADD_PLUGIN([motion])
  1238.     VLC_ADD_PLUGIN([dynamicoverlay])
  1239.     VLC_ADD_PLUGIN([signals])
  1240. elif test "${SYS}" != "mingwce"; then
  1241.     VLC_ADD_PLUGIN([ntservice])
  1242.     VLC_ADD_PLUGIN([access_smb])
  1243.     VLC_ADD_PLUGIN([dmo])
  1244.     VLC_ADD_PLUGIN([msn])
  1245.     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
  1246.     VLC_ADD_PLUGIN([globalhotkeys])
  1247. else
  1248.     VLC_ADD_PLUGIN([win32text])
  1249. fi
  1250. if test "${SYS}" = "darwin"; then
  1251.     VLC_ADD_PLUGIN([quartztext])
  1252.     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
  1253. fi
  1254. dnl
  1255. dnl  Accelerated modules
  1256. dnl
  1257. AC_ARG_WITH(,[])
  1258. AC_ARG_WITH(,[Optimization options:])
  1259. dnl  Check for fully working MMX intrinsics
  1260. dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
  1261. dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
  1262. AC_ARG_ENABLE(mmx,
  1263. [  --disable-mmx           disable MMX optimizations (default auto)],,[
  1264.   case "${host_cpu}" in
  1265.     i?86|x86_64)
  1266.       enable_mmx="yes"
  1267.       ;;
  1268.     *)
  1269.       enable_mmx="no"
  1270.       ;;
  1271.   esac
  1272. ])
  1273. AS_IF([test "${enable_mmx}" != "no"], [
  1274.   ARCH="${ARCH} mmx"
  1275.   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
  1276.     [ac_cv_c_mmx_intrinsics],
  1277.     [CFLAGS="${CFLAGS_save} -O -mmmx"
  1278.      AC_TRY_COMPILE([#include <mmintrin.h>
  1279.                      #include <stdint.h>
  1280.                      uint64_t frobzor;],
  1281.                     [__m64 a, b, c;
  1282.                      a = b = c = (__m64)frobzor;
  1283.                      a = _mm_slli_pi16(a, 3);
  1284.                      a = _mm_adds_pi16(a, b);
  1285.                      c = _mm_srli_pi16(c, 8);
  1286.                      c = _mm_slli_pi16(c, 3);
  1287.                      b = _mm_adds_pi16(b, c);
  1288.                      a = _mm_unpacklo_pi8(a, b);
  1289.                      frobzor = (uint64_t)a;],
  1290.                     [ac_cv_c_mmx_intrinsics=yes],
  1291.                     [ac_cv_c_mmx_intrinsics=no])])
  1292.   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
  1293.     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
  1294.               [Define to 1 if MMX intrinsics are available.])
  1295.     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
  1296.   ])
  1297.   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
  1298.     [ac_cv_mmx_inline],
  1299.     [CFLAGS="${CFLAGS_save}"
  1300.      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
  1301.                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
  1302.   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
  1303.     AC_DEFINE(CAN_COMPILE_MMX, 1,
  1304.               [Define to 1 inline MMX assembly is available.])
  1305.     VLC_ADD_PLUGIN([memcpymmx])
  1306.     VLC_ADD_PLUGIN([i420_rgb_mmx])
  1307.     VLC_ADD_PLUGIN([i420_yuy2_mmx])
  1308.     VLC_ADD_PLUGIN([i422_yuy2_mmx])
  1309.     VLC_ADD_PLUGIN([i420_ymga_mmx])
  1310.   ])
  1311.   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
  1312.     [ac_cv_mmxext_inline],
  1313.     [CFLAGS="${CFLAGS_save}"
  1314.      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
  1315.                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
  1316.   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
  1317.     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
  1318.               [Define to 1 if MMX EXT inline assembly is available.])
  1319.     VLC_ADD_PLUGIN([memcpymmxext])
  1320.   ])
  1321. ])
  1322. dnl  Check for fully workin SSE2 intrinsics
  1323. dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
  1324. dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
  1325. AC_ARG_ENABLE(sse,
  1326. [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
  1327. ,, [
  1328.   case "${host_cpu}" in
  1329.     i686|x86_64)
  1330.       enable_sse=yes
  1331.       ;;
  1332.     *)
  1333.       enable_sse=no
  1334.       ;;
  1335.   esac
  1336. ])
  1337. AS_IF([test "${enable_sse}" != "no"], [
  1338.   ARCH="${ARCH} sse sse2"
  1339.   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
  1340.     [ac_cv_c_sse2_intrinsics],
  1341.     [CFLAGS="${CFLAGS_save} -O -msse2"
  1342.      AC_TRY_COMPILE([#include <emmintrin.h>
  1343.                      #include <stdint.h>
  1344.                      uint64_t frobzor;],
  1345.                     [__m128i a, b, c;
  1346.                      a = b = c = _mm_set1_epi64((__m64)frobzor);
  1347.                      a = _mm_slli_epi16(a, 3);
  1348.                      a = _mm_adds_epi16(a, b);
  1349.                      c = _mm_srli_epi16(c, 8);
  1350.                      c = _mm_slli_epi16(c, 3);
  1351.                      b = _mm_adds_epi16(b, c);
  1352.                      a = _mm_unpacklo_epi8(a, b);
  1353.                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
  1354.                     [ac_cv_c_sse2_intrinsics=yes],
  1355.                     [ac_cv_c_sse2_intrinsics=no])])
  1356.   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
  1357.     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
  1358.               [Define to 1 if SSE2 intrinsics are available.])
  1359.     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
  1360.   ])
  1361.   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
  1362.     [ac_cv_sse_inline],
  1363.     [CFLAGS="${CFLAGS_save}"
  1364.      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
  1365.                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
  1366.   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
  1367.     AC_DEFINE(CAN_COMPILE_SSE, 1,
  1368.               [Define to 1 if SSE inline assembly is available.])
  1369.   ])
  1370.   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
  1371.     [ac_cv_sse2_inline],
  1372.     [CFLAGS="${CFLAGS_save}"
  1373.      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
  1374.                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
  1375.   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
  1376.     AC_DEFINE(CAN_COMPILE_SSE2, 1,
  1377.               [Define to 1 if SSE2 inline assembly is available.])
  1378.     VLC_ADD_PLUGIN([i420_rgb_sse2])
  1379.     VLC_ADD_PLUGIN([i420_yuy2_sse2])
  1380.     VLC_ADD_PLUGIN([i422_yuy2_sse2])
  1381.   ])
  1382. ])
  1383. AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
  1384.     [ac_cv_3dnow_inline],
  1385.     [CFLAGS="${CFLAGS_save}"
  1386.      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
  1387.                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
  1388. AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
  1389.   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
  1390.             [Define to 1 if 3D Now! inline assembly is available.])
  1391.   VLC_ADD_PLUGIN([memcpy3dn])
  1392. ])
  1393. AC_ARG_ENABLE(altivec,
  1394. [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
  1395.   AS_IF([test "${host_cpu}" = "powerpc"],
  1396.         [enable_altivec=yes], [enable_altivec=no])
  1397. ])
  1398. AS_IF([test "${enable_altivec}" = "yes"], [
  1399.   ARCH="${ARCH} altivec";
  1400.   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
  1401.     [ac_cv_altivec_inline],
  1402.     [CFLAGS="${CFLAGS_save}"
  1403.      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
  1404.          ac_cv_altivec_inline="yes",
  1405.          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
  1406.           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
  1407.             [ac_cv_altivec_inline="-Wa,-m7400"],
  1408.             ac_cv_altivec_inline=no)
  1409.          ])])
  1410.   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
  1411.     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
  1412.               [Define to 1 if AltiVec inline assembly is available.])
  1413.     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
  1414.       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
  1415.       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
  1416.       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
  1417.       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
  1418.       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
  1419.     ])
  1420.     VLC_ADD_PLUGIN([memcpyaltivec])
  1421.     VLC_ADD_PLUGIN([i420_yuy2_altivec])
  1422.   ])
  1423. dnl The AltiVec C extensions
  1424. dnl
  1425. dnl There are several possible cases:
  1426. dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
  1427. dnl                      need <altivec.h>
  1428. dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
  1429. dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
  1430. dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
  1431. dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
  1432. dnl - Others: test should fail
  1433.   AC_CACHE_CHECK([if $CC groks AltiVec C extensions],
  1434.   [ac_cv_c_altivec],
  1435.   [# OS X/PPC test (gcc 4.x)
  1436.    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
  1437.    AC_TRY_COMPILE([vector unsigned char foo;],
  1438.      [vec_ld(0, (unsigned char *)0);],
  1439.      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
  1440.      [# OS X/PPC test (gcc 3.x)
  1441.       CFLAGS="${CFLAGS_save} -faltivec"
  1442.       AC_TRY_COMPILE([vector unsigned char foo;],
  1443.         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
  1444.         [ac_cv_c_altivec="-faltivec"],
  1445.         dnl Below this are the Linux tests
  1446.         [# Linux/PPC test (gcc 4.x)
  1447.          CFLAGS="${CFLAGS_save} -maltivec"
  1448.          AC_TRY_COMPILE([#include <altivec.h>],
  1449.            [vec_ld(0, (unsigned char *)0);],
  1450.            [ac_cv_c_altivec="-maltivec"],
  1451.            [# Linux/PPC test (gcc 3.3)
  1452.             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
  1453.             AC_TRY_COMPILE([#include <altivec.h>],
  1454.               [vec_ld(0, (unsigned char *)0);],
  1455.               [ac_cv_c_altivec=""
  1456.                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
  1457.               [# Linux/PPC test (gcc 3.3)
  1458.                CFLAGS="${CFLAGS_save} -fvec"
  1459.                AC_TRY_COMPILE([#include <altivec.h>],
  1460.                  [vec_ld(0, (unsigned char *)0);],
  1461.                  [ac_cv_c_altivec="-fvec"],
  1462.                  [ac_cv_c_altivec=no])
  1463.               ])
  1464.            ])
  1465.         ])
  1466.      ])
  1467.    CFLAGS="${CFLAGS_save}"
  1468.   ])
  1469.   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
  1470.     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
  1471.   ])
  1472.   AC_CHECK_HEADERS(altivec.h)
  1473.   CPPFLAGS="${CPPFLAGS_save}"
  1474.   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
  1475.     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
  1476.               [Define to 1 if C AltiVec extensions are available.])
  1477.     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
  1478.     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
  1479.     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
  1480.     VLC_ADD_PLUGIN([memcpyaltivec])
  1481.     VLC_ADD_PLUGIN([i420_yuy2_altivec])
  1482.   ])
  1483.   AC_CACHE_CHECK([if linker needs -framework vecLib],
  1484.     [ac_cv_ld_altivec],
  1485.     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
  1486.      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
  1487.      LDFLAGS="${LDFLAGS_save}"
  1488.     ])
  1489.   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
  1490.     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
  1491.   ])
  1492. ])
  1493. dnl
  1494. dnl  Special arch tuning
  1495. dnl
  1496. AC_ARG_WITH(tuning,
  1497. [  --with-tuning=ARCH      enable special tuning for an architecture
  1498.                           (default Pentium 2 on IA-32 and G4 on PPC)])
  1499. if test -n "${with_tuning}"; then
  1500.     if test "${with_tuning}" != "no"; then
  1501.         CFLAGS_TUNING="-mtune=${with_tuning}"
  1502.     fi
  1503. else
  1504.     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
  1505.         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
  1506.     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
  1507.         CFLAGS_TUNING="-mtune=pentium2"
  1508.     elif test "${host_cpu}" = "x86_64"; then
  1509.         CFLAGS_TUNING="-mtune=athlon64"
  1510.     elif test "${host_cpu}" = "powerpc"; then
  1511.         CFLAGS_TUNING="-mtune=G4";
  1512.     fi
  1513. fi
  1514. dnl NOTE: this can't be cached cleanly
  1515. AS_IF([test "${CFLAGS_TUNING}"],
  1516.    [CFLAGS_save="${CFLAGS}"
  1517.     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
  1518.     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
  1519.     AC_COMPILE_IFELSE([ ],
  1520.                       [tuning="yes"],
  1521.                       [CFLAGS_TUNING=""; tuning="no"
  1522.                        AS_IF([test "${with_tuning}"],
  1523.                              [AC_MSG_ERROR([requested tuning not supported])])])
  1524.     AC_MSG_RESULT([$tuning])
  1525.     CFLAGS="${CFLAGS_save}"
  1526. ])
  1527. dnl
  1528. dnl  Memory usage
  1529. dnl
  1530. AC_ARG_ENABLE(optimize-memory,
  1531. [  --enable-optimize-memory optimize memory usage over performance])
  1532. if test "${enable_optimize_memory}" = "yes"; then
  1533.   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
  1534. fi
  1535. dnl
  1536. dnl  Enable/disable optimizations
  1537. dnl
  1538. AC_ARG_ENABLE(optimizations,
  1539. [  --disable-optimizations disable compiler optimizations (default enabled)])
  1540. if test "${enable_optimizations}" != "no"; then
  1541.    if test "${enable_optimize_memory}" = "yes"; then
  1542.       enable_optimizations="size"
  1543.    else
  1544.       enable_optimizations="speed"
  1545.    fi
  1546. fi
  1547. dnl
  1548. dnl  Debugging mode
  1549. dnl
  1550. AC_ARG_ENABLE(debug,
  1551. [  --enable-debug          debug mode (default disabled)])
  1552. test "${enable_debug}" != "yes" && enable_debug="no"
  1553. AH_TEMPLATE(NDEBUG,
  1554.             [Define to 1 if debug code should NOT be compiled])
  1555. AS_IF([test "x${enable_debug}" = "xno"], [
  1556.   AC_DEFINE(NDEBUG)
  1557. ], [
  1558.   AC_CHECK_HEADERS([valgrind/valgrind.h])
  1559. ])
  1560. dnl
  1561. dnl Allow runing as root (usefull for people runing on embedded platforms)
  1562. dnl
  1563. AC_ARG_ENABLE(run-as-root,
  1564. [  --enable-run-as-root    allow runing VLC as root (default disabled)])
  1565. AS_IF([test "${enable_run_as_root}" = "yes"],[
  1566.     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
  1567.               [Define to 1 to allow runing VLC as root (uid 0).])
  1568. ])
  1569. dnl
  1570. dnl  Test coverage
  1571. dnl
  1572. AC_ARG_ENABLE(coverage,
  1573. [  --enable-coverage       build for test coverage (default disabled)],,
  1574. [enable_coverage="no"])
  1575. AS_IF([test "${enable_coverage}" != "no"], [
  1576. CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
  1577. CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
  1578. LDFLAGS="-lgcov ${LDFLAGS}"
  1579. dnl ugly...
  1580. CFLAGS_save="${CFLAGS}"
  1581. CXXFLAGS_save="${CXXFLAGS}"
  1582. LDFLAGS_save="${LDFLAGS}"
  1583. ])
  1584. dnl
  1585. dnl  Enable release-specific flags
  1586. dnl
  1587. AC_ARG_ENABLE(release,
  1588. [  --enable-release        activate extra optimizations (default disabled)])
  1589. test "${enable_release}" != "yes" && enable_release="no"
  1590. dnl
  1591. dnl Stream output
  1592. dnl
  1593. AC_ARG_ENABLE(sout,
  1594.   [  --enable-sout           Stream output modules (default enabled)])
  1595. AS_IF([test "${enable_sout}" != "no"], [
  1596.   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
  1597. ])
  1598. AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
  1599. AC_ARG_ENABLE(switcher,
  1600.   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
  1601. dnl Check for libshout
  1602. AC_ARG_ENABLE(shout,
  1603.   [  --enable-shout          libshout output plugin (default disabled)])
  1604. if test "${enable_shout}" = "yes"; then
  1605.   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
  1606.     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
  1607.      VLC_ADD_PLUGIN([access_output_shout])
  1608.      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
  1609.      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
  1610.     [AC_MSG_WARN(libshout library not found)])
  1611. fi
  1612. dnl Lua modules
  1613. AC_ARG_ENABLE(lua,
  1614.   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
  1615.   plugins (default enabled)]))
  1616. if test "${enable_lua}" != "no"
  1617. then
  1618.   PKG_CHECK_MODULES(LUA, lua5.1,
  1619.     [ have_lua=yes ],
  1620.     [
  1621.     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
  1622.     PKG_CHECK_MODULES(LUA, lua >= 5.1,
  1623.       [ have_lua=yes ],
  1624.       [
  1625.         have_lua=yes
  1626.         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
  1627.           [],
  1628.           [ have_lua=no ] )
  1629.         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
  1630.           [LUA_LIBS="-llua5.1"],
  1631.           AC_CHECK_LIB( lua51 , luaL_newstate,
  1632.             [LUA_LIBS="-llua51"],
  1633.             AC_CHECK_LIB( lua , luaL_newstate,
  1634.               [LUA_LIBS="-llua"],
  1635.               [ have_lua=no
  1636.                 AC_MSG_WARN([lua >= 5.1 not found!])
  1637.               ],[-lm])
  1638.           )
  1639.         )
  1640.       ])
  1641.     ])
  1642.   if test "x${have_lua}" = "xyes" ;  then
  1643.      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
  1644.      VLC_ADD_LIBS([lua],[$LUA_LIBS])
  1645.      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
  1646.   fi
  1647. fi
  1648. AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
  1649. dnl
  1650. dnl HTTP daemon
  1651. dnl
  1652. AC_ARG_ENABLE(httpd,
  1653.   [  --enable-httpd          HTTP daemon (default enabled)])
  1654. if test "${enable_httpd}" != "no"
  1655. then
  1656.   VLC_ADD_PLUGIN([http])
  1657.   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
  1658. fi
  1659. AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
  1660. dnl
  1661. dnl libproxy support
  1662. dnl
  1663. AC_ARG_ENABLE(libproxy,
  1664.   [  --enable-libproxy       libproxy support (default auto)])
  1665. AS_IF([test "${enable_libproxy}" != "no"], [
  1666.   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
  1667.     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
  1668.     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
  1669.     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
  1670.   ], [
  1671.     AS_IF([test "x${enable_libproxy}" != "x"], [
  1672.       AC_MSG_ERROR([libproxy could not be found on your system])
  1673.     ])
  1674.   ])
  1675. ])
  1676. dnl
  1677. dnl VideoLAN manager
  1678. dnl
  1679. AC_ARG_ENABLE(vlm,
  1680.   [  --enable-vlm            VideoLAN manager (default enabled)],,
  1681.   [enable_vlm="${enable_sout}"])
  1682. AS_IF([test "${enable_vlm}" != "no"], [
  1683.   AS_IF([test "${enable_sout}" = "no"], [
  1684.     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
  1685.   ])
  1686.   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
  1687.   VLC_ADD_PLUGIN([telnet])
  1688. ])
  1689. AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
  1690. dnl
  1691. dnl Growl notification plugin
  1692. dnl
  1693. AC_ARG_ENABLE(growl,
  1694.   [  --enable-growl          growl notification plugin (default disabled)],,
  1695.   [enable_growl=no])
  1696. AS_IF([test "${enable_growl}" != "no"], [
  1697.     VLC_ADD_PLUGIN([growl_udp])
  1698.     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
  1699.       VLC_ADD_PLUGIN([growl])
  1700.       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
  1701.     ])
  1702.   ]
  1703. )
  1704. dnl
  1705. dnl Libnotify notification plugin
  1706. dnl
  1707. AC_ARG_ENABLE(notify,
  1708.   [  --enable-notify         libnotify notification plugin (default enabled)])
  1709. AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
  1710.     PKG_CHECK_MODULES(NOTIFY, libnotify,
  1711.       [
  1712.         VLC_ADD_PLUGIN([notify])
  1713.         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
  1714.         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
  1715.       ],[
  1716.     AS_IF([test "${enable_notify}" = "yes"],[
  1717.         AC_MSG_WARN( libnotify not found) ])
  1718.       ])
  1719.   ])
  1720. dnl
  1721. dnl Audioscrobbler plugin
  1722. dnl
  1723. AC_ARG_ENABLE(audioscrobbler,
  1724.   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
  1725. AS_IF([test "${enable_audioscrobbler}" != "no"], [
  1726.         VLC_ADD_PLUGIN([audioscrobbler])
  1727.   ])
  1728. dnl
  1729. dnl Taglibplugin
  1730. dnl
  1731. AC_ARG_ENABLE(taglib,
  1732.   [  --disable-taglib        Taglib support (default enabled) ])
  1733.   AS_IF([test "${enable_taglib}" != "no"],[
  1734.     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
  1735.       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
  1736.         VLC_ADD_PLUGIN([taglib])
  1737.         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
  1738.        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
  1739.       [AC_MSG_WARN(TagLib library not found)])
  1740.   ])
  1741. dnl
  1742. dnl  Input plugins
  1743. dnl
  1744. AC_ARG_WITH(,[Input plugins:])
  1745. dnl  live555 input
  1746. dnl
  1747. if test "${enable_livedotcom}"
  1748. then
  1749.   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
  1750. fi
  1751. if test "${enable_livedotcom}" = "no"
  1752. then
  1753.   enable_live555="no"
  1754. fi
  1755. AC_ARG_ENABLE(live555,
  1756. [  --enable-live555        live555 RTSP input plugin (default enabled)])
  1757. if test "${enable_live555}" != "no"; then
  1758.   AC_ARG_WITH(live555-tree,
  1759.     [    --with-live555-tree=PATH live.com tree for static linking])
  1760.   dnl
  1761.   dnl test for --with-live555-tree
  1762.   dnl
  1763.   if test "${with_livedotcom_tree}"
  1764.   then
  1765.     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
  1766.   with_live555_tree="${with_livedotcom_tree}"
  1767.   fi
  1768.   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
  1769.     AC_LANG_PUSH(C++)
  1770.     CPPFLAGS_save="${CPPFLAGS}"
  1771.     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
  1772.     if test "${SYS}" = "solaris"; then
  1773.       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
  1774.     fi
  1775.     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
  1776.     AC_CHECK_HEADERS(liveMedia_version.hh, [
  1777.       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
  1778.       AC_EGREP_CPP(yes,
  1779.         [#include <liveMedia_version.hh>
  1780.          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
  1781.          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
  1782.          yes
  1783.          #endif
  1784.          #endif],
  1785.         [AC_MSG_RESULT([no])
  1786.          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
  1787. lternatively you can use --disable-live555 to disable the liveMedia plugin.])
  1788.       ],[
  1789.  AC_MSG_RESULT([yes])
  1790.  ])
  1791.     ])
  1792.      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
  1793.      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
  1794.       if test "${SYS}" = "mingw32"; then
  1795.         # add ws2_32 for closesocket, select, recv
  1796.         other_libs="$other_libs -lws2_32"
  1797.       elif test "${SYS}" = "mingwce"; then
  1798.         # add ws2 for closesocket, select, recv
  1799.         other_libs="$other_libs -lws2"
  1800.       fi
  1801.     dnl We need to check for pic because live555 don't provide shared libs
  1802.     dnl and we want to build a plugins so we need -fPIC on some arch.
  1803.     AC_CHECK_HEADERS(liveMedia.hh, [
  1804.       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
  1805.         AC_CHECK_LIB(liveMedia_pic, main, [
  1806.           VLC_ADD_PLUGIN([live555])
  1807.          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
  1808.  ],[
  1809.         AC_CHECK_LIB(liveMedia, main, [
  1810.           VLC_ADD_PLUGIN([live555])
  1811.           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
  1812.         ],[],[${other_libs}]) ],[${other_libs_pic}])
  1813.     ],[
  1814.        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
  1815.     ])
  1816.     CPPFLAGS="${CPPFLAGS_save}"
  1817.     AC_LANG_POP(C++)
  1818.   else
  1819.     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
  1820.     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
  1821.     if test -z "${real_live555_tree}"; then
  1822.       dnl  The given directory can't be found
  1823.       AC_MSG_RESULT(no)
  1824.       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
  1825.     fi
  1826.     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
  1827.       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
  1828.       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
  1829.         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
  1830.         AC_EGREP_CPP(yes,
  1831.           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
  1832.            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
  1833.            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
  1834.            yes
  1835.            #endif
  1836.            #endif],
  1837.           [AC_MSG_RESULT([no])
  1838.            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
  1839. lternatively you can use --disable-live555 to disable the liveMedia plugin.])
  1840.         ],[
  1841.    AC_MSG_RESULT([yes])
  1842.    ])
  1843.       ])
  1844.       VLC_ADD_PLUGIN([live555])
  1845.       if test "${SYS}" = "mingw32"; then
  1846.         # add ws2_32 for closesocket, select, recv
  1847.         VLC_ADD_LIBS([live555],[-lws2_32])
  1848.       fi
  1849.       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
  1850.       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
  1851.       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
  1852.       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
  1853.       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
  1854.       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
  1855.       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
  1856.       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
  1857.       if test "${SYS}" = "solaris"; then
  1858.         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
  1859.       fi
  1860.     else
  1861.       dnl  The given live555 wasn't built
  1862.         AC_MSG_RESULT(no)
  1863.       if test "${enable_live555}" = "yes"; then
  1864.         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
  1865.       fi
  1866.     fi
  1867.   fi
  1868. fi
  1869. dnl
  1870. dnl  special access module for dc1394 input
  1871. dnl
  1872. AC_ARG_ENABLE(dc1394,
  1873.   [  --enable-dc1394         dc1394 access module (default disabled)])
  1874. if test "${enable_dc1394}" = "yes"
  1875. then
  1876.   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
  1877.     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
  1878.         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
  1879. dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
  1880.               VLC_ADD_PLUGIN([dc1394])
  1881.               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
  1882. dnl         ],
  1883. dnl         [
  1884. dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
  1885. dnl         ])
  1886.       ],
  1887.       [
  1888.         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
  1889.       ])
  1890.     ],
  1891.     [
  1892.       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
  1893.     ])
  1894.   ],
  1895.   [
  1896.     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
  1897.   ])
  1898. fi
  1899. dnl
  1900. dnl dv module: digital video module check for libraw1394
  1901. dnl
  1902. AC_ARG_ENABLE(dv,
  1903. [  --enable-dv             dv input module (default disabled)])
  1904. if test "${enable_dv}" = "yes"
  1905. then
  1906.   AC_ARG_WITH(dv-raw1394,
  1907.   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
  1908.   AC_ARG_WITH(dv-raw1394-tree,
  1909.   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
  1910.   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
  1911.   then
  1912.     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
  1913.     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
  1914.     then
  1915.       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
  1916.       AC_MSG_RESULT(yes)
  1917.       VLC_ADD_PLUGIN([access_dv])
  1918.       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
  1919.       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
  1920.     else
  1921.       dnl  No libraw1394 could be found, sorry
  1922.       AC_MSG_RESULT(no)
  1923.       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
  1924.     fi
  1925.   else
  1926.     AC_CHECK_HEADERS(libraw1394/raw1394.h,
  1927.     [ VLC_ADD_PLUGIN([access_dv])
  1928.         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
  1929.     ],[
  1930.         if test -n "${enable_dv}"
  1931.         then
  1932.           AC_MSG_ERROR([cannot find libraw1394 headers])
  1933.         fi
  1934.     ])
  1935.   fi
  1936.   dnl Check for static linking of libraw1394
  1937.   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
  1938.   then
  1939.     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
  1940.     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
  1941.     if test -z "${real_dv_raw1394_tree}"
  1942.     then
  1943.       dnl  The given directory can't be found
  1944.       AC_MSG_RESULT(no)
  1945.       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
  1946.     fi
  1947.     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
  1948.     then
  1949.       dnl  Use a custom libraw1394
  1950.       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
  1951.       VLC_ADD_PLUGIN([access_dv])
  1952.       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
  1953.       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
  1954.     else
  1955.       dnl  The given libraw1394 wasn't built
  1956.       AC_MSG_RESULT(no)
  1957.       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
  1958.     fi
  1959.   fi
  1960.   dnl
  1961.   dnl Check for libavc1394
  1962.   dnl
  1963.   AC_ARG_WITH(dv-avc1394,
  1964.   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
  1965.   AC_ARG_WITH(dv-avc1394-tree,
  1966.   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
  1967.   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
  1968.   then
  1969.     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
  1970.     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
  1971.     then
  1972.       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
  1973.       AC_MSG_RESULT(yes)
  1974.       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
  1975.       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
  1976.     else
  1977.       dnl  No libavc1394 could be found, sorry
  1978.       AC_MSG_RESULT(no)
  1979.       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
  1980.     fi
  1981.   else
  1982.     AC_CHECK_HEADERS(libavc1394/avc1394.h,
  1983.     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
  1984.     ],[
  1985.         if test -n "${enable_dv}"
  1986.         then
  1987.           AC_MSG_ERROR([cannot find libavc1394 headers])
  1988.         fi
  1989.     ])
  1990.   fi
  1991.   dnl Check for static linking of libavc1394
  1992.   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
  1993.   then
  1994.     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
  1995.     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
  1996.     if test -z "${real_dv_avc1394_tree}"
  1997.     then
  1998.       dnl  The given directory can't be found
  1999.       AC_MSG_RESULT(no)
  2000.       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
  2001.     fi
  2002.     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
  2003.     then
  2004.       dnl  Use a custom libavc1394
  2005.       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
  2006.       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
  2007.       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
  2008.     else
  2009.       dnl  The given libavc1394 wasn't built
  2010.       AC_MSG_RESULT(no)
  2011.       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
  2012.     fi
  2013.   fi
  2014. fi
  2015. dnl
  2016. dnl dvdread module: check for libdvdread
  2017. dnl
  2018. AC_ARG_ENABLE(dvdread,
  2019. [  --enable-dvdread        dvdread input module (default disabled)])
  2020. if test "${enable_dvdread}" != "no"
  2021. then
  2022.   AC_ARG_WITH(dvdread,
  2023.   [    --with-dvdread=PATH   libdvdread headers and libraries])
  2024.   AC_ARG_WITH(dvdread-tree,
  2025.   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
  2026.   dnl Temporary hack (yeah, sure ;)
  2027.   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
  2028.       VLC_ADD_LIBS([dvdread],[-ldvdcss])
  2029.   fi
  2030.   if test -z "${with_dvdread}"
  2031.   then
  2032.     if test -z "${with_dvdread_tree}"
  2033.     then
  2034.       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
  2035.         [ VLC_ADD_PLUGIN([dvdread])
  2036.           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
  2037.         ],[
  2038.   AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
  2039.             [ VLC_ADD_PLUGIN([dvdread])
  2040.       VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
  2041.     ],[
  2042.       if test -n "${enable_dvdread}"
  2043.       then
  2044.       AC_MSG_ERROR([cannot find libdvdread headers])
  2045.      fi
  2046.    ])
  2047. ])
  2048.     else
  2049.       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
  2050.       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
  2051.       if test -z "${real_dvdread_tree}"
  2052.       then
  2053.         dnl  The given directory can't be found
  2054.         AC_MSG_RESULT(no)
  2055.         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
  2056.       fi
  2057.       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
  2058.       then
  2059.         dnl  Use a custom libdvdread
  2060.         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
  2061.         VLC_ADD_PLUGIN([dvdread])
  2062.         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
  2063.         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
  2064.       else
  2065.         dnl  The given libdvdread wasn't built
  2066.         AC_MSG_RESULT(no)
  2067.         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
  2068.       fi
  2069.     fi
  2070.   else
  2071.     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
  2072.     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
  2073.     then
  2074.       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
  2075.       AC_MSG_RESULT(yes)
  2076.       VLC_ADD_PLUGIN([dvdread])
  2077.       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
  2078.       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
  2079.     else
  2080.       dnl  No libdvdread could be found, sorry
  2081.       AC_MSG_RESULT(no)
  2082.       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
  2083.     fi
  2084.   fi
  2085. fi
  2086. dnl
  2087. dnl  libdvdnav plugin
  2088. dnl
  2089. AC_ARG_ENABLE(dvdnav,
  2090.   [  --enable-dvdnav         dvdnav input module (default enabled)])
  2091. if test "${enable_dvdnav}" != "no"
  2092. then
  2093.   dnl Same hack than dvdread
  2094.   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
  2095.       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
  2096.   fi
  2097.   DVDNAV_PATH="${PATH}"
  2098.   AC_ARG_WITH(dvdnav-config-path,
  2099.     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in $PATH)],
  2100.     [ if test "${with_dvdnav_config_path}" != "no"
  2101.       then
  2102.         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
  2103.       fi ])
  2104.   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
  2105.   if test "${DVDNAV_CONFIG}" != "no"
  2106.   then
  2107.     VLC_ADD_PLUGIN([dvdnav])
  2108.     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
  2109.     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
  2110.   fi
  2111. fi
  2112. dnl
  2113. dnl  Windows DirectShow access module
  2114. dnl
  2115. AC_ARG_ENABLE(dshow,
  2116.   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
  2117. if test "${enable_dshow}" != "no"
  2118. then
  2119.   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
  2120.   then
  2121.     AC_LANG_PUSH(C++)
  2122.       AC_CHECK_HEADERS(dshow.h,
  2123.       [ VLC_ADD_PLUGIN([dshow])
  2124.         VLC_ADD_CXXFLAGS([dshow],[])
  2125.         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
  2126.     AC_LANG_POP(C++)
  2127.   fi
  2128. fi
  2129. dnl
  2130. dnl  Windows DirectShow BDA access module
  2131. dnl
  2132. AC_ARG_ENABLE(bda,
  2133.   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
  2134.   enabled on Win32)]))
  2135. if test "${enable_bda}" != "no"
  2136. then
  2137.   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
  2138.   then
  2139.       AC_CHECK_HEADERS(dshow.h,
  2140.       [ VLC_ADD_PLUGIN([bda])
  2141.         VLC_ADD_CXXFLAGS([bda],[])
  2142.         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
  2143.   fi
  2144. fi
  2145. dnl
  2146. dnl  OpenCV wrapper and example filters
  2147. dnl
  2148. AC_ARG_ENABLE(opencv,
  2149.   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
  2150. if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
  2151. then
  2152.   AC_ARG_WITH(opencv-tree,
  2153.   [    --with-opencv-tree=PATH opencv tree for linking])
  2154.     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
  2155.     then
  2156.       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
  2157.       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
  2158.       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h 
  2159.         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
  2160.       then
  2161.         AC_MSG_RESULT(yes)
  2162.         VLC_ADD_PLUGIN([opencv_wrapper])
  2163.         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
  2164.         VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
  2165.         AC_LANG_PUSH(C++)
  2166.         VLC_ADD_PLUGIN([opencv_example])
  2167.         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
  2168.         VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
  2169.         AC_LANG_POP(C++)
  2170.   else
  2171.         dnl  No opencv could be found, sorry
  2172.         AC_MSG_RESULT(no)
  2173.         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
  2174.   fi
  2175.     else
  2176.       PKG_CHECK_MODULES(OPENCV, opencv,
  2177.         [
  2178.           VLC_ADD_PLUGIN([opencv_example])
  2179.           VLC_ADD_PLUGIN([opencv_wrapper])
  2180.           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
  2181.           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
  2182.           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
  2183.         ],
  2184.         [AC_MSG_ERROR([libopencv not found!])]
  2185.       )
  2186.     fi
  2187. fi
  2188. dnl
  2189. dnl  libsmbclient plugin
  2190. dnl
  2191. AC_ARG_ENABLE(smb,
  2192.   [  --enable-smb            smb input module (default enabled)])
  2193. if test "${enable_smb}" != "no"; then
  2194.   AC_CHECK_HEADERS(libsmbclient.h,
  2195.     [ VLC_ADD_PLUGIN([access_smb])
  2196.       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
  2197.     [ if test -n "${enable_smb}"; then
  2198.         AC_MSG_ERROR([cannot find libsmbclient headers])
  2199.      fi ])
  2200.   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
  2201.     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
  2202.     [#include <libsmbclient.h>])
  2203. fi
  2204. dnl
  2205. dnl  libdvbpsi ts demux/mux
  2206. dnl
  2207. AC_ARG_ENABLE(dvbpsi,
  2208.   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
  2209. have_dvbpsi=no
  2210. if test "${enable_dvbpsi}" != "no"
  2211. then
  2212.   AC_ARG_WITH(dvbpsi,
  2213.   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
  2214.   AC_ARG_WITH(dvbpsi,
  2215.   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
  2216.   case "${with_dvbpsi}" in
  2217.   ""|yes)
  2218.     if test -z "${with_dvbpsi_tree}"
  2219.     then
  2220.       AC_CHECK_HEADERS(dvbpsi/dr.h,
  2221.         [ VLC_ADD_PLUGIN([ts])
  2222.           if test "${enable_sout}" != "no"; then
  2223.             VLC_ADD_PLUGIN([mux_ts])
  2224.           fi
  2225.           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
  2226.   have_dvbpsi=yes],
  2227.         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
  2228.         [#if defined( HAVE_STDINT_H )
  2229. #   include <stdint.h>
  2230. #elif defined( HAVE_INTTYPES_H )
  2231. #   include <inttypes.h>
  2232. #endif
  2233. #include <dvbpsi/dvbpsi.h>
  2234. #include <dvbpsi/descriptor.h>
  2235. #include <dvbpsi/pat.h>
  2236. #include <dvbpsi/pmt.h>])
  2237.     else
  2238.       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
  2239.       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
  2240.       if test -z "${real_dvbpsi_tree}"
  2241.       then
  2242.         dnl  The given directory can't be found
  2243.         AC_MSG_RESULT(no)
  2244.         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
  2245.       fi
  2246.       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
  2247.       then
  2248.         dnl  Use a custom libdvbpsi
  2249.         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
  2250.         VLC_ADD_PLUGIN([ts])
  2251.         if test "${enable_sout}" != "no"; then
  2252.           VLC_ADD_PLUGIN([mux_ts])
  2253.         fi
  2254.         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
  2255.         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
  2256. have_dvbpsi=yes
  2257.       else
  2258.         dnl  The given libdvbpsi wasn't built
  2259.         AC_MSG_RESULT(no)
  2260.         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
  2261.       fi
  2262.     fi
  2263.   ;;
  2264.   no)
  2265.     dnl  Compile without dvbpsi
  2266.   ;;
  2267.   *)
  2268.     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
  2269.     if test -z "${with_dvbpsi}"
  2270.     then
  2271.       LDFLAGS_test=""
  2272.       CPPFLAGS_test=""
  2273.     else
  2274.       LDFLAGS_test="-L${with_dvbpsi}/lib"
  2275.       CPPFLAGS_test="-I${with_dvbpsi}/include"
  2276.     fi
  2277.     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
  2278.     AC_CHECK_HEADERS([dvbpsi/dr.h],[
  2279.       VLC_ADD_PLUGIN([ts])
  2280.       if test "${enable_sout}" != "no"; then
  2281.         VLC_ADD_PLUGIN([mux_ts])
  2282.       fi
  2283.       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
  2284.       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
  2285.       have_dvbpsi=yes
  2286.     ],[
  2287.       if test -n "${enable_dvbpsi}"
  2288.       then
  2289.         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])
  2290.       fi
  2291.     ])
  2292.     CPPFLAGS="${CPPFLAGS_save}"
  2293.   ;;
  2294.   esac
  2295.   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
  2296.     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
  2297.   ], [], [${LIBS_ts}])
  2298. fi
  2299. dnl
  2300. dnl  Video4Linux plugin
  2301. dnl
  2302. AC_ARG_ENABLE(v4l,
  2303.   [  --enable-v4l            Video4Linux input support (default disabled)])
  2304. if test "${enable_v4l}" = "yes"
  2305. then
  2306.   AC_ARG_WITH(v4l,
  2307.     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
  2308.   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
  2309.   then
  2310.     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
  2311.   fi
  2312.   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
  2313.   AC_CHECK_HEADERS(linux/videodev.h, [
  2314.     VLC_ADD_PLUGIN([v4l])
  2315.   ],[])
  2316.   CPPFLAGS="${CPPFLAGS_save}"
  2317. fi
  2318. dnl
  2319. dnl  Video4Linux2 plugin
  2320. dnl
  2321. AC_ARG_ENABLE(v4l2,
  2322.   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
  2323. if test "${enable_v4l2}" != "no"
  2324. then
  2325.   AC_ARG_WITH(v4l2,
  2326.     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
  2327.   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
  2328.   then
  2329.     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
  2330.   fi
  2331.   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
  2332.   AC_CHECK_HEADERS(linux/videodev2.h, [
  2333.     VLC_ADD_PLUGIN([v4l2])
  2334.   ],[])
  2335.   CPPFLAGS="${CPPFLAGS_save}"
  2336. fi
  2337. dnl
  2338. dnl libv4l2 support for video4linux.
  2339. dnl
  2340. AC_ARG_ENABLE( libv4l2,
  2341.   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
  2342. if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
  2343. then
  2344.     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
  2345.       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
  2346.       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
  2347.       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
  2348.       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
  2349.     )
  2350. fi
  2351. dnl
  2352. dnl  special access module for Hauppauge PVR cards
  2353. dnl
  2354. AC_ARG_ENABLE(pvr,
  2355.   [  --enable-pvr            PVR cards access module (default disabled)])
  2356. if test "${enable_pvr}" = "yes"
  2357. then
  2358.   VLC_ADD_PLUGIN([pvr])
  2359.   AC_ARG_WITH(videodev2,
  2360.     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
  2361.   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
  2362.   then
  2363.     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
  2364.   fi
  2365.   AC_CACHE_CHECK([for new linux/videodev2.h],
  2366.       [ac_cv_new_linux_videodev2_h],
  2367.       [AC_TRY_COMPILE([
  2368.           #include <sys/types.h>
  2369.           #   ifdef VIDEODEV2_H_FILE
  2370.   #   include VIDEODEV2_H_FILE
  2371.   #   else
  2372.   #   include <linux/videodev2.h>
  2373.   #   endif
  2374.   ],
  2375.           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
  2376.           ac_cv_new_linux_videodev2_h=yes,
  2377.           ac_cv_new_linux_videodev2_h=no)])
  2378.   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
  2379.     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
  2380.   fi
  2381. fi
  2382. dnl
  2383. dnl  gnomeVFS access module
  2384. dnl
  2385. AC_ARG_ENABLE(gnomevfs,
  2386.   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
  2387. if test "${enable_gnomevfs}" = "yes"
  2388. then
  2389.   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
  2390.     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
  2391.     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
  2392.     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
  2393.     VLC_ADD_PLUGIN([access_gnomevfs]),
  2394.     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
  2395. fi
  2396. dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
  2397. AC_ARG_ENABLE(libcdio,
  2398.   [  --enable-libcdio        CD input and control library support (default enabled)])
  2399. AC_ARG_ENABLE(vcdinfo,
  2400.   [  --enable-libvcdinfo     VCD information library support (default enabled)])
  2401. have_libcdio=no
  2402. have_libvcdinfo=no
  2403. if test "${enable_libcdio}" != "no"
  2404. then
  2405.   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
  2406.      have_libcdio=yes
  2407.      AC_DEFINE(HAVE_LIBCDIO, 1,
  2408.      [Define if you have libcdio 0.78.2 or greater installed]),
  2409.      [AC_MSG_WARN(CD Reading and information library not found)])
  2410.   if test "${enable_vcdinfo}" != "no"
  2411.   then
  2412.     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
  2413.        [have_libvcdinfo=yes
  2414.        AC_DEFINE(HAVE_VCDINFO, 1,
  2415.        [Define if you have libvcdinfo 0.7.22 or greater installed])],
  2416.        [AC_MSG_WARN(VCD information library not found)])
  2417.   fi
  2418. fi
  2419. dnl
  2420. dnl  VCDX and CDDAX modules
  2421. dnl
  2422. AC_ARG_ENABLE(cddax,
  2423.   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
  2424.   via libcdio (default disabled)]))
  2425. AC_ARG_ENABLE(libcddb,
  2426.   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
  2427. if test "${enable_cddax}" = "yes"
  2428. then
  2429.   if test "$have_libcdio" = "yes"
  2430.   then
  2431.     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
  2432.     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
  2433.     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
  2434.     VLC_ADD_PLUGIN([cddax])
  2435.     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
  2436.     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
  2437.     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
  2438.   else
  2439.     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
  2440.     HAVE_CDDAX=no
  2441.   fi
  2442.   if test "$enable_libcddb" != "no"; then
  2443.     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
  2444.       HAVE_LIBCDDB=yes
  2445.       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
  2446.       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
  2447.       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
  2448.       ],
  2449.       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
  2450.       HAVE_LIBCDDB=no])
  2451.   fi
  2452. fi
  2453. AC_ARG_ENABLE(vcdx,
  2454.   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
  2455. if test "${enable_vcdx}" = "yes"
  2456. then
  2457.   if test "${have_libvcdinfo}" = "yes"
  2458.   then
  2459.     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
  2460.     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
  2461.   else
  2462.     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
  2463.     HAVE_VCDX=no
  2464.   fi
  2465.   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
  2466.    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
  2467.     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
  2468.     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
  2469.     HAVE_VCDX=no])
  2470.   if test "$have_libvcdinfo" = "yes"
  2471.   then
  2472.     AC_DEFINE(HAVE_VCDX, 1,
  2473.     [Define for the VCD plugin using libcdio/libvcdinfo])
  2474.     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
  2475.     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
  2476.     VLC_ADD_PLUGIN([vcdx])
  2477.   else
  2478.     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
  2479.     HAVE_VCDX=no
  2480.   fi
  2481. fi
  2482. dnl
  2483. dnl  Built-in CD-DA and VCD module
  2484. dnl
  2485. AC_ARG_ENABLE(cdda,
  2486.   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
  2487. AC_ARG_ENABLE(vcd,
  2488.   [  --enable-vcd            built-in VCD (default enabled)])
  2489. if test "${enable_vcd}" != "no"
  2490. then
  2491.   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
  2492.   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
  2493.     AC_MSG_RESULT(yes)
  2494.     VLC_ADD_PLUGIN([vcd])
  2495.     VLC_ADD_PLUGIN([cdda])
  2496.   ],[
  2497.     AC_MSG_RESULT(no)
  2498.   ])
  2499.   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
  2500.   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
  2501.     AC_MSG_RESULT(yes)
  2502.     VLC_ADD_PLUGIN([vcd])
  2503.     VLC_ADD_PLUGIN([cdda])
  2504.     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
  2505.   ],[
  2506.     AC_MSG_RESULT(no)
  2507.   ])
  2508.   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
  2509.   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
  2510.     AC_MSG_RESULT(yes)
  2511.     VLC_ADD_PLUGIN([vcd])
  2512.     VLC_ADD_PLUGIN([cdda])
  2513.     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  2514.   ],[
  2515.     AC_MSG_RESULT(no)
  2516.   ])
  2517.   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
  2518.   then
  2519.     VLC_ADD_PLUGIN([vcd])
  2520.     VLC_ADD_PLUGIN([cdda])
  2521.   fi
  2522.   if test "${SYS}" = "darwin"
  2523.   then
  2524.     VLC_ADD_PLUGIN([vcd])
  2525.     VLC_ADD_PLUGIN([cdda])
  2526.     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
  2527.     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
  2528.   fi
  2529.   if test "$enable_libcddb" != "no"; then
  2530.     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
  2531.       HAVE_LIBCDDB=yes
  2532.       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
  2533.       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
  2534.       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
  2535.       ],:
  2536.       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
  2537.       HAVE_LIBCDDB=no])
  2538.   fi
  2539. fi
  2540. dnl
  2541. dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
  2542. dnl
  2543. AC_ARG_ENABLE(dvb,
  2544.   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
  2545. if test "${enable_dvb}" != "no"
  2546. then
  2547.     AS_IF([test "${have_dvbpsi}" = "yes" ],[
  2548.     AC_ARG_WITH(dvb,
  2549.      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
  2550.      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
  2551.      then
  2552.        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
  2553.      fi
  2554.      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
  2555.      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
  2556.      VLC_ADD_PLUGIN([dvb])
  2557.      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
  2558.      CPPFLAGS="${CPPFLAGS_save}"
  2559.    ],[
  2560.      AC_MSG_WARN([the dvb access module requires libdvbpsi])
  2561.     ])
  2562. fi
  2563. dnl
  2564. dnl  Screen capture module
  2565. dnl
  2566. AC_ARG_ENABLE(screen,
  2567.   [  --enable-screen         Screen capture support (default enabled)])
  2568. if test "${enable_screen}" != "no"; then
  2569.   if test "${SYS}" = "darwin"; then
  2570.     AC_CHECK_HEADERS(OpenGL/gl.h, [
  2571.       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
  2572.         VLC_ADD_PLUGIN([screen])
  2573.         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
  2574.       ])
  2575.     ])
  2576.   elif test "${SYS}" = "mingw32"; then
  2577.     VLC_ADD_PLUGIN([screen])
  2578.     VLC_ADD_LIBS([screen],[-lgdi32])
  2579.   elif test "${SYS}" = "mingwce"; then
  2580.     CPPFLAGS="${CPPFLAGS_save}"
  2581.   elif test "${SYS}" = "beos"; then
  2582.     VLC_ADD_PLUGIN([screen])
  2583.     VLC_ADD_CXXFLAGS([screen],[])
  2584.     VLC_ADD_LIBS([screen],[-lbe])
  2585.   fi
  2586. fi
  2587. dnl
  2588. dnl  ipv6 plugin - not for QNX yet
  2589. dnl
  2590. have_ipv6=no
  2591. AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
  2592.   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
  2593. ])
  2594. AS_IF([test "${have_ipv6}" = "yes"], [
  2595.   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
  2596. AC_CHECK_FUNCS(inet_ntop,[
  2597.   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
  2598. dnl
  2599. dnl  ogg demux plugin
  2600. dnl
  2601. AC_ARG_ENABLE(ogg,
  2602.   [  --enable-ogg            Ogg demux support (default enabled)])
  2603. if test "${enable_ogg}" != "no"
  2604. then
  2605.   AC_ARG_WITH(ogg-tree,
  2606.   [    --with-ogg-tree=PATH  ogg tree for static linking])
  2607.   if test -n "${with_ogg_tree}"
  2608.   then
  2609.     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
  2610.     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
  2611.     if test -z "${real_ogg_tree}"
  2612.     then
  2613.       dnl  The given directory can't be found
  2614.       AC_MSG_RESULT(no)
  2615.       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
  2616.     fi
  2617.     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
  2618.     then
  2619.       dnl  Use a custom ogg
  2620.       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
  2621.       VLC_ADD_PLUGIN([ogg])
  2622.       if test "${enable_sout}" != "no"; then
  2623.         VLC_ADD_PLUGIN([mux_ogg])
  2624.       fi
  2625.       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
  2626.       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
  2627.     else
  2628.       dnl  The given ogg wasn't built
  2629.       AC_MSG_RESULT(no)
  2630.       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
  2631.     fi
  2632.   else
  2633.     AC_CHECK_HEADERS(ogg/ogg.h, [
  2634.       AC_CHECK_LIB( ogg, oggpack_read, [
  2635.         VLC_ADD_PLUGIN([ogg])
  2636.         if test "${enable_sout}" != "no"; then
  2637.           VLC_ADD_PLUGIN([mux_ogg])
  2638.         fi
  2639.         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
  2640.      ],[])
  2641.   fi
  2642. fi
  2643. dnl
  2644. dnl  matroska demux plugin
  2645. dnl
  2646. AC_ARG_ENABLE(mkv,
  2647.   [  --enable-mkv            Matroska demux support (default enabled)])
  2648. if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
  2649.   AC_LANG_PUSH(C++)
  2650.   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
  2651.     AC_MSG_CHECKING(for libebml version >= 0.7.7)
  2652.     AC_EGREP_CPP(yes,
  2653.       [#include <ebml/EbmlVersion.h>
  2654.        #ifdef LIBEBML_VERSION
  2655.        #if LIBEBML_VERSION >= 0x000706
  2656.        yes
  2657.        #endif
  2658.        #endif],
  2659.       [AC_MSG_RESULT([yes])
  2660.         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
  2661.           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
  2662.           AC_EGREP_CPP(yes,
  2663.             [#include <matroska/KaxVersion.h>
  2664.              #ifdef LIBMATROSKA_VERSION
  2665.              #if LIBMATROSKA_VERSION >= 0x000705
  2666.              yes
  2667.              #endif
  2668.              #endif],
  2669.             [AC_MSG_RESULT([yes])
  2670.               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
  2671.               VLC_ADD_CXXFLAGS([mkv],[])
  2672.               if test "${SYS}" = "darwin"; then
  2673.                 VLC_ADD_CXXFLAGS([mkv],[-O1])
  2674.               fi
  2675.               AC_CHECK_LIB(ebml_pic, main, [
  2676.                 VLC_ADD_PLUGIN([mkv])
  2677.                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
  2678.               ],
  2679.                 AC_CHECK_LIB(ebml, main, [
  2680.                   VLC_ADD_PLUGIN([mkv])
  2681.                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
  2682.                 ])
  2683.       )
  2684.             ],
  2685.             [AC_MSG_RESULT([no])
  2686.               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.])
  2687.           ])
  2688.         ])
  2689.       ],
  2690.       [AC_MSG_RESULT([no])
  2691.         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.])
  2692.     ])
  2693.   ])
  2694.   AC_LANG_POP(C++)
  2695. fi
  2696. dnl
  2697. dnl  modplug demux plugin
  2698. dnl
  2699. AC_ARG_ENABLE(mod,
  2700.   [  --enable-mod            Mod demux support (default enabled)])
  2701. if test "${enable_mod}" != "no"
  2702. then
  2703.   AC_ARG_WITH(mod-tree,
  2704.   [    --with-mod-tree=PATH mod tree for static linking])
  2705.   if test -n "${with_mod_tree}"
  2706.   then
  2707.     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
  2708.     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
  2709.     if test -z "${real_mod_tree}"
  2710.     then
  2711.       dnl  The given directory can't be found
  2712.       AC_MSG_RESULT(no)
  2713.       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
  2714.     fi
  2715.     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
  2716.     then
  2717.       dnl  Use a custom mod
  2718.       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
  2719.       VLC_ADD_PLUGIN([mod])
  2720.       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
  2721.       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
  2722.     else
  2723.       dnl  The given mod wasn't built
  2724.       AC_MSG_RESULT(no)
  2725.       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
  2726.     fi
  2727.   else
  2728.     AC_CHECK_HEADERS(libmodplug/modplug.h, [
  2729.       VLC_ADD_PLUGIN([mod])
  2730.       VLC_ADD_CXXFLAGS([mod],[])
  2731.       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
  2732.   fi
  2733. fi
  2734. dnl
  2735. dnl  mpc demux plugin
  2736. dnl
  2737. AC_ARG_ENABLE(mpc,
  2738.   [  --enable-mpc            Mpc demux support (default enabled)])
  2739. if test "${enable_mpc}" != "no"
  2740. then
  2741.   AC_CHECK_HEADERS([mpc/mpcdec.h], [
  2742.     VLC_ADD_PLUGIN([mpc])
  2743.     VLC_ADD_LIBS([mpc],[-lmpcdec])],
  2744.     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
  2745.     VLC_ADD_PLUGIN([mpc])
  2746.     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
  2747. fi
  2748. dnl
  2749. dnl  game music emu demux plugin
  2750. dnl
  2751. AC_ARG_ENABLE(gme,
  2752.   [  --enable-gme            Game Music Emu demux support (default enabled)])
  2753. if test "${enable_gme}" != "no" -a "${CXX}" != "";
  2754. then
  2755.   AC_LANG_PUSH(C++)
  2756.   AC_ARG_WITH(gme-tree,
  2757.   [    --with-gme-tree=PATH gme tree for static linking])
  2758.   if test -n "${with_gme_tree}"
  2759.   then
  2760.     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
  2761.     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
  2762.     if test -z "${real_gme_tree}"
  2763.     then
  2764.       dnl  The given directory can't be found
  2765.       AC_MSG_RESULT(no)
  2766.       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
  2767.     fi
  2768.     if test -f "${real_gme_tree}/gme/libgme.a"
  2769.     then
  2770.       dnl  Use a custom gme
  2771.       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
  2772.       VLC_ADD_PLUGIN([gme])
  2773.       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
  2774.       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
  2775.     else
  2776.       dnl  The given gme wasn't built
  2777.       AC_MSG_RESULT(no)
  2778.       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
  2779.     fi
  2780.   else
  2781.       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
  2782.   fi
  2783.   AC_LANG_POP(C++)
  2784. fi
  2785. dnl
  2786. dnl  Codec plugins
  2787. dnl
  2788. AC_ARG_WITH(,[Codec plugins:])
  2789. dnl
  2790. dnl wmafixed plugin
  2791. dnl
  2792. AC_ARG_ENABLE(wma-fixed,
  2793.   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
  2794. if test "${enable_wma_fixed}" = "yes"
  2795. then
  2796.   VLC_ADD_PLUGIN([wma_fixed])
  2797. fi
  2798. dnl
  2799. dnl shine fixed point mp3 encoder
  2800. dnl
  2801. AC_ARG_ENABLE(shine,
  2802.   [  --enable-shine          shine mp3 encoding module (default disabled)])
  2803. if test "${enable_shine}" = "yes"
  2804. then
  2805.   VLC_ADD_PLUGIN([shine])
  2806. fi
  2807. dnl
  2808. dnl  mad plugin
  2809. dnl
  2810. AC_ARG_ENABLE(mad,
  2811.   [  --enable-mad            libmad module (default enabled)])
  2812. if test "${enable_mad}" != "no"
  2813. then
  2814.   AC_ARG_WITH(mad,
  2815.     [    --with-mad=PATH       path to libmad],[],[])
  2816.   if test "${with_mad}" != "no" -a -n "${with_mad}"
  2817.   then
  2818.     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
  2819.     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
  2820.   fi