configure.ac
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:137k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. dnl Autoconf settings for vlc
  2. dnl $Id: configure.ac 9313 2004-11-14 13:59:36Z fkuehne $
  3.  
  4. AC_INIT(vlc,0.8.1)
  5. CONFIGURE_LINE="$0 $*"
  6. CODENAME="Janus"
  7. AC_PREREQ(2.50)
  8. AC_CONFIG_SRCDIR(src/libvlc.c)
  9. AC_CONFIG_AUX_DIR(autotools)
  10. AC_CANONICAL_SYSTEM
  11. dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
  12. dnl them. And we need the comma otherwize automake will choke on it.
  13. AM_INIT_AUTOMAKE(vlc,0.8.1)
  14. AM_CONFIG_HEADER(config.h)
  15. dnl
  16. dnl  Save *FLAGS
  17. dnl
  18. VLC_SAVE_FLAGS
  19. dnl
  20. dnl Check for tools
  21. dnl
  22. AC_PROG_CC
  23. AM_PROG_CC_C_O
  24. AC_PROG_CPP
  25. AC_PROG_CXX
  26. AC_PROG_CXXCPP
  27. AC_PROG_MAKE_SET
  28. AC_PROG_INSTALL
  29. dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
  30. dnl now otherwise it might be set in an obscure if statement.
  31. AC_EGREP_CPP(foo,foo)
  32. dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
  33. AC_MSG_CHECKING(for an Objective-C compiler)
  34. OBJC="${CXX}"
  35. AC_SUBST(OBJC)
  36. OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
  37. AC_SUBST(OBJCFLAGS)
  38. dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
  39. #OBJCDEPMODE="depmode=gcc3"
  40. #AC_SUBST(OBJCDEPMODE)
  41. _AM_DEPENDENCIES(OBJC)
  42. AC_MSG_RESULT(not implemented yet)
  43. dnl Find the right ranlib, even when cross-compiling
  44. AC_CHECK_TOOL(RANLIB, ranlib, :)
  45. AC_CHECK_TOOL(STRIP, strip, :)
  46. AC_CHECK_TOOL(AR, ar, :)
  47. AC_CHECK_TOOL(LD, ld, :)
  48. dnl Sam, if you think I didn't see that... --Meuuh
  49. dnl AM_PROG_LIBTOOL
  50. AC_PROG_INSTALL
  51. dnl Check for compiler properties
  52. AC_C_CONST
  53. AC_C_INLINE
  54. dnl
  55. dnl  Check for the contrib directory
  56. dnl
  57. topdir="`pwd`"
  58. if test -d ${topdir}/extras/contrib/lib; then
  59.   export PATH=${topdir}/extras/contrib/bin:$PATH
  60.   CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
  61.   CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
  62.   CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
  63.   CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
  64.   CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
  65.   CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
  66.   OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
  67.   OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
  68.   if test -d ${topdir}/extras/contrib/vlc-lib; then
  69.     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
  70.     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
  71.   fi
  72.   LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
  73.   LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
  74.   with_livedotcom_tree=${topdir}/extras/contrib/src/live
  75.   with_goom_tree=${topdir}/extras/contrib/src/goom
  76.   if test ".`uname -s`" = ".Darwin"; then
  77.     export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
  78.     export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
  79.   elif test ".`uname -s`" = ".BeOS"; then
  80.     export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
  81.     export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
  82.   fi
  83. fi
  84. dnl
  85. dnl  Set default values
  86. dnl
  87. LDFLAGS_vlc="${LDFLAGS}"
  88. dnl
  89. dnl  Check the operating system
  90. dnl
  91. case "${target_os}" in
  92.   "")
  93.     SYS=unknown
  94.     ;;
  95.   linux*)
  96.     SYS=linux
  97.     ;;
  98.   bsdi*)
  99.     SYS=bsdi
  100.     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
  101.     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
  102.     ;;
  103.   *bsd*)
  104.     SYS="${target_os}"
  105.     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
  106.     ;;
  107.   darwin*)
  108.     SYS=darwin
  109.     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
  110.     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
  111.     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
  112.     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
  113.     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
  114.     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
  115.     VLC_ADD_CFLAGS([vlc],[-x objective-c])
  116.     VLC_ADD_LDFLAGS([vlc],[-Wl,-multiply_defined,suppress])
  117.     ;;
  118.   *mingw32* | *cygwin*)
  119.     AC_CHECK_TOOL(WINDRES, windres, :)
  120.     case "${target_os}" in
  121.       *mingw32*)
  122.         SYS=mingw32
  123.         ;;
  124.       *cygwin*)
  125.         dnl Check if we are using the mno-cygwin mode in which case we are
  126.         dnl actually dealing with a mingw32 compiler.
  127.         AC_EGREP_CPP(yes,
  128.             [#ifdef WIN32
  129.              yes
  130.              #endif],
  131.             SYS=mingw32, SYS=cygwin)
  132.         ;;
  133.     esac
  134.     if test "${SYS}" = "mingw32"; then
  135.         # add ws2_32 for closesocket, select, recv
  136.         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
  137.         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
  138.         VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
  139.         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard telnet netsync],[-lws2_32])
  140.     fi
  141.     ;;
  142.   *nto*)
  143.     SYS=nto
  144.     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
  145.     ;;
  146.   solaris*)
  147.     SYS=solaris
  148.     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
  149.     # Perhaps it is useful other places as well? 
  150.     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
  151.     ;;
  152.   hpux*)
  153.     SYS=hpux
  154.     ;;
  155.   beos)
  156.     SYS=beos
  157.     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
  158.     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
  159.     VLC_ADD_CXXFLAGS([beos],[])
  160.     VLC_ADD_LDFLAGS([vlc beos],[-lbe])
  161.     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
  162.     VLC_ADD_LDFLAGS([access_file access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
  163.     dnl Ugly check for Zeta
  164.     if test -f /boot/beos/system/lib/libzeta.so; then
  165.         VLC_ADD_LDFLAGS([beos],[-lzeta])
  166.     fi
  167.     ;;
  168.   *)
  169.     SYS="${target_os}"
  170.     ;;
  171. esac
  172. AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
  173. AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
  174. AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
  175. dnl
  176. dnl Gettext stuff
  177. dnl
  178. ALL_LINGUAS="da de en_GB es fr hu it ja nl no pl pt_BR ru sv"
  179. AM_GNU_GETTEXT_VERSION(0.11.5)
  180. AM_GNU_GETTEXT
  181. if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
  182.   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
  183.   INCLUDES="${INCLUDES} -I$(top_builddir)/intl"
  184. else
  185.   AC_CHECK_FUNCS(textdomain,,[
  186.     AC_CHECK_LIB(intl,textdomain,
  187.       VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]),,
  188.       ${LIBINTL}
  189.     )
  190.   ])
  191. fi
  192. AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
  193. XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
  194. AC_ARG_ENABLE(utf8,
  195.   [  --enable-utf8           unicode utf8 support (default enabled on darwin/beos/win32)])
  196. if test "${enable_utf8}" = "yes" || (test "${enable_utf8}" != "no" && (test "${SYS}" = "mingw32" || test "${SYS}" = "beos" || test "${SYS}" = "darwin" ) )
  197. then
  198.   AC_DEFINE(ENABLE_UTF8, 1,
  199.             Define if you want utf8 support)
  200. fi
  201. dnl
  202. dnl Iconv stuff
  203. dnl
  204. VLC_ADD_CFLAGS([vlc],[${INCICONV}])
  205. VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
  206. dnl Check for the need to include the mingwex lib for mingw32
  207. if test "${SYS}" = "mingw32"
  208. then
  209.     AC_CHECK_LIB(mingwex,opendir,
  210.         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
  211.             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
  212.     )
  213. fi
  214. dnl Check for fnative-struct or mms-bitfields support for mingw32
  215. if test "${SYS}" = "mingw32"
  216. then
  217.     AC_CACHE_CHECK([if $CC accepts -mms-bitfields],
  218.         [ac_cv_c_mms_bitfields],
  219.         [CFLAGS="${CFLAGS_save} -mms-bitfields"
  220.          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
  221.     if test "${ac_cv_c_mms_bitfields}" != "no"; then
  222.         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
  223.         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
  224.     else
  225.         AC_CACHE_CHECK([if $CC accepts -fnative-struct],
  226.             [ac_cv_c_fnative_struct],
  227.             [CFLAGS="${CFLAGS_save} -fnative-struct"
  228.              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
  229.         if test "${ac_cv_c_fnative_struct}" != "no"; then
  230.             CFLAGS_save="${CFLAGS_save} -fnative-struct";
  231.             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
  232.         fi
  233.     fi
  234.     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
  235. fi
  236. dnl Check for fvtable-thunks support for mingw32
  237. if test "${SYS}" = "mingw32"
  238. then
  239. AC_LANG_PUSH(C++)
  240.     AC_CACHE_CHECK([if $CXX accepts -fvtable-thunks],
  241.         [ac_cv_cxx_fvtable_thunks],
  242.         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
  243.          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
  244.                         ac_cv_cxx_fvtable_thunks=no)])
  245.     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
  246.         CXXFLAGS_mingw32_special="-fvtable-thunks"
  247.     fi
  248.     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
  249. AC_LANG_POP(C++)
  250. fi
  251. dnl Plugin compilation stuff
  252. VLC_LIBRARY_SUFFIX
  253. case "${SYS}" in
  254.   mingw32|cygwin)
  255.     VLC_ADD_CFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special}])
  256.     VLC_ADD_CXXFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
  257.     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special}])
  258.     ;;
  259.   *)
  260.     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
  261.     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
  262.     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
  263.     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
  264.     ;;
  265. esac
  266. dnl The -DSYS_FOO flag
  267. CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
  268. dnl Check for system libs needed
  269. need_libc=false
  270. AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon)
  271. dnl Check for usual libc functions
  272. AC_CHECK_FUNCS(strdup strndup atof lseek)
  273. AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
  274. AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
  275. AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
  276. dnl Check for setlocal and langinfo
  277. AC_CHECK_FUNCS(setlocale)
  278. AC_CHECK_HEADERS(langinfo.h)
  279. AC_CHECK_FUNCS(nl_langinfo)
  280. AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
  281.   [AC_TRY_LINK([#include <langinfo.h>],
  282.     [char* cs = nl_langinfo(CODESET);],
  283.     ac_cv_langinfo_codeset=yes,
  284.     ac_cv_langinfo_codeset=no)
  285.   ])
  286. if test ${ac_cv_langinfo_codeset} = yes; then
  287.   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
  288.     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
  289. fi
  290. AC_CHECK_FUNCS(connect,,[
  291.   AC_CHECK_LIB(socket,connect,[
  292.     VLC_ADD_LDFLAGS([vlc ipv4 cddax],-lsocket)
  293.   ])
  294. ])
  295. AC_CHECK_FUNCS(send,,[
  296.   AC_CHECK_LIB(socket,send,[
  297.     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard],[-lsocket])
  298.   ])
  299. ])
  300. AC_CHECK_FUNCS(gethostbyname,,[
  301.   AC_CHECK_LIB(nsl,gethostbyname,[
  302.     VLC_ADD_LDFLAGS([cddax ipv4 vlc],[-lnsl])
  303.   ],[
  304.     AC_CHECK_LIB(bind,gethostbyname,[
  305.       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
  306.     ])
  307.   ])
  308. ])
  309. dnl Check for socklen_t
  310. AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
  311.   [AC_TRY_COMPILE(
  312.      [#include <sys/types.h>
  313.       #include <sys/socket.h>],
  314.      [socklen_t len = 42; return len;],
  315.      ac_cv_type_socklen_t=yes,
  316.      ac_cv_type_socklen_t=no)])
  317. if test "${ac_cv_type_socklen_t}" != "no"; then
  318.   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
  319. fi
  320. dnl Check for struct sockaddr_storage
  321. AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
  322. AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
  323. AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
  324.   [AC_TRY_COMPILE(
  325.     [#include <sys/types.h>
  326.      #if defined( UNDER_CE )
  327.      # include <winsock.h>
  328.      #elif defined( WIN32 )
  329.      # include <winsock2.h>
  330.      #else
  331.      # include <sys/socket.h>
  332.      #endif], [struct sockaddr_storage addr;],
  333.      ac_cv_struct_sockaddr_storage=yes,
  334.      ac_cv_struct_sockaddr_storage=no)])
  335. if test $ac_cv_struct_sockaddr_storage = no; then
  336.   AC_DEFINE(sockaddr_storage, sockaddr)
  337.   AC_DEFINE(ss_family, sa_family)
  338. fi
  339. dnl getnameinfo, which implies {get,free}addrinfo, but not gai_strerror,
  340. dnl -lws2_32 required with Mingw32, -lresolv NOT needed on Solaris.
  341. dnl AC_SEARCH_LIBS won't work with Mingw32
  342. AH_TEMPLATE(HAVE_GETNAMEINFO,
  343.   [Define to 1 if you have the `getnameinfo' function.])
  344. ac_func_getnameinfo_save_LIBS=$LIBS
  345. AS_IF([test "${SYS}" = "mingw32"],
  346.   [LIBS="-lws2_32 $LIBS"])
  347.   AC_CACHE_CHECK([for getnameinfo], ac_cv_func_getnameinfo,
  348. [AC_LINK_IFELSE([AC_LANG_PROGRAM([
  349. [#include <sys/types.h>
  350. #if defined( UNDER_CE )
  351. # include <winsock.h>
  352. #elif defined( WIN32 )
  353. # include <winsock2.h>
  354. #else
  355. # include <sys/socket.h>
  356. # include <netdb.h>
  357. #endif]
  358. ], [[getnameinfo(0,0,0,0,0,0,0);]])],
  359. ac_cv_func_getnameinfo=yes,
  360. ac_cv_func_getnameinfo=no)])
  361. AS_IF([test $ac_cv_func_getnameinfo = yes],
  362.   [AC_DEFINE(HAVE_GETNAMEINFO)])
  363. LIBS=$ac_func_getnameinfo_save_LIBS
  364. dnl Check for va_copy
  365. AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
  366.   AC_TRY_LINK(
  367.     [#include <stdarg.h>],
  368.     [va_list ap1, ap2; va_copy(ap1,ap2);],
  369.     [ac_cv_c_va_copy="yes"],
  370.     [ac_cv_c_va_copy="no"]))
  371. if test "${ac_cv_c_va_copy}" = "yes"; then
  372.   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
  373. fi
  374. AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
  375.   AC_TRY_LINK(
  376.     [#include <stdarg.h>],
  377.     [va_list ap1, ap2; __va_copy(ap1,ap2);],
  378.     [ac_cv_c___va_copy="yes"],
  379.     [ac_cv_c___va_copy="no"]))
  380. if test "${ac_cv_c___va_copy}" = "yes"; then
  381.   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
  382. fi
  383. AC_CHECK_FUNCS(inet_aton,,[
  384.   AC_CHECK_LIB(resolv,inet_aton,[
  385.     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
  386.   ])
  387. ])
  388. dnl Check for getopt (always use builtin one on win32)
  389. if test "${SYS}" = "mingw32"; then
  390. need_getopt=:
  391. else
  392. need_getopt=false
  393. AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
  394. [ # FreeBSD has a gnugetopt library for this:
  395.   AC_CHECK_LIB([gnugetopt],[getopt_long],
  396.     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
  397.      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
  398.     [need_getopt=:])])
  399. fi
  400. AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
  401. if test "${SYS}" != "mingw32"; then
  402. AC_TYPE_SIGNAL
  403. AC_CHECK_LIB(m,cos,[
  404.   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264],[-lm])
  405. ])
  406. AC_CHECK_LIB(m,pow,[
  407.   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad toolame equalizer vlc],[-lm])
  408. ])
  409. AC_CHECK_LIB(m,sqrt,[
  410.   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol],[-lm])
  411. ])
  412. fi # end "${SYS}" != "mingw32"
  413. dnl Check for dynamic plugins
  414. ac_cv_have_plugins=no
  415. # OS X style
  416. AC_CHECK_HEADERS(mach-o/dyld.h,
  417.   [AC_CHECK_FUNCS(NSLinkModule,
  418.     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
  419.      ac_cv_have_plugins=yes])])
  420. # HP-UX style
  421. if test "${ac_cv_have_plugins}" = "no"; then
  422.   AC_CHECK_HEADERS(dl.h)
  423.   ac_cv_my_have_shl_load=no
  424.   AC_CHECK_FUNC(shl_load,
  425.    [ac_cv_my_have_shl_load=yes,
  426.     AC_CHECK_LIB(dld, shl_load,
  427.      [ac_cv_my_have_shl_load=yes
  428.       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
  429.   if test "${ac_cv_my_have_shl_load}" = "yes"; then
  430.     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
  431.     ac_cv_have_plugins=yes
  432.   fi
  433. fi
  434. # Whatever style
  435. if test "${ac_cv_have_plugins}" = "no"; then
  436.   AC_CHECK_LIB(dld, dld_link,
  437.    [VLC_ADD_LDFLAGS([vlc],[-ldld])
  438.     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
  439.     ac_cv_have_plugins=yes])
  440. fi
  441. # Win32 style
  442. if test "${ac_cv_have_plugins}" = "no"; then
  443.   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
  444.     AC_CHECK_LIB(kernel32, main,
  445.      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
  446.       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
  447.       ac_cv_have_plugins=yes])
  448.   fi
  449. fi
  450. # BeOS style
  451. if test "${ac_cv_have_plugins}" = "no"; then
  452.   AC_CHECK_HEADERS(image.h)
  453.   AC_CHECK_FUNCS(load_add_on,
  454.    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
  455.     ac_cv_have_plugins=yes])
  456. fi
  457. # Only test for dlopen() if the others didn't work
  458. if test "${ac_cv_have_plugins}" = "no"; then
  459.   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
  460.   ac_cv_my_have_dlopen=no
  461.   AC_CHECK_FUNC(dlopen,
  462.     ac_cv_my_have_dlopen=yes,
  463.     AC_CHECK_LIB(dl, dlopen,
  464.       ac_cv_my_have_dlopen=yes
  465.       VLC_ADD_LDFLAGS([vlc],[-ldl]),
  466.       AC_CHECK_LIB(svld, dlopen,
  467.         ac_cv_my_have_dlopen=yes
  468.         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
  469.   if test "${ac_cv_my_have_dlopen}" = "yes"; then
  470.     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
  471.     ac_cv_have_plugins=yes
  472.   fi
  473. fi
  474. if test "${SYS}" != "mingw32"; then
  475. dnl Check for pthreads - borrowed from XMMS
  476. THREAD_LIB=error
  477. if test "${THREAD_LIB}" = "error"; then
  478.   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
  479. fi
  480. if test "${THREAD_LIB}" = "error"; then
  481.   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
  482. fi
  483. if test "${THREAD_LIB}" = "error"; then
  484.   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
  485. fi
  486. if test "${THREAD_LIB}" = "error"; then
  487.   AC_CHECK_FUNCS(pthread_mutex_lock)
  488.   THREAD_LIB=""
  489. fi
  490. dnl Check for cthreads under GNU/Hurd for instance
  491. AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
  492. dnl
  493. dnl  GNU portable threads
  494. dnl
  495. AC_ARG_ENABLE(pth,
  496.   [  --enable-pth            GNU Pth support (default disabled)],
  497.   [ if test "${enable_pth}" = "yes"; then
  498.     AC_CHECK_LIB(pth,pth_init)
  499.     AC_MSG_CHECKING(for pth_init in pth.h)
  500.     AC_EGREP_HEADER(pth_init,pth.h,[
  501.       AC_MSG_RESULT(yes)
  502.       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
  503.                 Define if <pth.h> defines pth_init)
  504.       THREAD_LIB="-lpth"
  505.     ],[
  506.       AC_MSG_RESULT(no)
  507.     ])
  508.     fi
  509. ])
  510. dnl
  511. dnl  State Threads
  512. dnl
  513. AC_ARG_ENABLE(st,
  514.   [  --enable-st             State Threads (default disabled)],
  515.   [ if test "${enable_st}" = "yes"; then
  516.     AC_CHECK_LIB(st,st_init)
  517.     AC_MSG_CHECKING(for st_init in st.h)
  518.     AC_EGREP_HEADER(st_init,st.h,[
  519.       AC_MSG_RESULT(yes)
  520.       AC_DEFINE(ST_INIT_IN_ST_H, 1,
  521.                 Define if <st.h> defines st_init)
  522.       THREAD_LIB="-lst"
  523.     ],[
  524.       AC_MSG_RESULT(yes)
  525.     ])
  526.     fi
  527. ])
  528. VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
  529. dnl Don't link with rt when using GNU-pth
  530. if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
  531.   dnl HP/UX port
  532.   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
  533.   have_nanosleep=false
  534.   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
  535.     AC_CHECK_LIB(rt,nanosleep,
  536.       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
  537.       [AC_CHECK_LIB(posix4,nanosleep,
  538.           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
  539.     )
  540.   ])
  541.   if ${have_nanosleep}; then
  542.     AC_DEFINE(HAVE_NANOSLEEP, 1,
  543.               Define if nanosleep is available.)
  544.   fi
  545. fi
  546. dnl Check for misc headers
  547. AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
  548. AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
  549.   AC_MSG_RESULT(yes)
  550.   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
  551.             Define if <pthread.h> defines pthread_cond_t.)],[
  552.   AC_MSG_RESULT(no)])
  553. AC_MSG_CHECKING(for pthread_once in pthread.h)
  554. AC_EGREP_HEADER(pthread_once,pthread.h,[
  555.   AC_MSG_RESULT(yes)
  556.   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
  557.             Define if <pthread.h> defines pthread_once.)],[
  558.   AC_MSG_RESULT(no)])
  559. fi # end "${SYS}" != "mingw32"
  560. AC_MSG_CHECKING(for strncasecmp in strings.h)
  561. AC_EGREP_HEADER(strncasecmp,strings.h,[
  562.   AC_MSG_RESULT(yes)
  563.   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
  564.             Define if <strings.h> defines strncasecmp.)],[
  565.   AC_MSG_RESULT(no)])
  566. dnl Check for headers
  567. AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
  568. AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
  569. AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
  570. if test "${SYS}" != "mingw32"; then
  571. AC_CHECK_HEADERS(machine/param.h sys/shm.h altivec.h)
  572. AC_CHECK_HEADERS(linux/version.h)
  573. fi # end "${SYS}" != "mingw32"
  574. AC_HEADER_TIME
  575. dnl Check for dirent
  576. need_dirent=false
  577. AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
  578. AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
  579. dnl Mac OS X and other OSes don't have declaration for nanosleep
  580. if test "${SYS}" != "mingw32"; then
  581. AC_MSG_CHECKING(for nanosleep in time.h)
  582. AC_EGREP_HEADER(nanosleep,time.h,[
  583.   AC_MSG_RESULT(yes)
  584.   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
  585.             Define if <time.h> defines nanosleep.)
  586. ],[
  587.   AC_MSG_RESULT(no)
  588. ])
  589. fi # end "${SYS}" != "mingw32"
  590. dnl Make sure we have timespecs
  591. AC_MSG_CHECKING(for timespec in sys/time.h)
  592. AC_EGREP_HEADER(timespec,sys/time.h,[
  593.   AC_MSG_RESULT(yes)
  594.   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
  595.             Define if <sys/time.h> defines struct timespec.)
  596. ],[
  597.   AC_MSG_RESULT(no)
  598. ])
  599. dnl Check for threads library
  600. if test "${SYS}" != "mingw32"; then
  601. AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
  602. fi # end "${SYS}" != "mingw32"
  603. dnl Default X headers and libraries
  604. if test "${x_includes}" = "NONE"; then
  605.   x_includes="/usr/X11R6/include"
  606. fi
  607. if test "${x_libraries}" = "NONE"; then
  608.   x_libraries="/usr/X11R6/lib"
  609. fi
  610. dnl Check for hal
  611. PKG_CHECK_MODULES(HAL, hal >= 0.2.97,
  612.   [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
  613.    VLC_ADD_LDFLAGS([vlc],[$HAL_LIBS])
  614.    VLC_ADD_CFLAGS([vlc],[$HAL_CFLAGS])],
  615.   [AC_MSG_WARN(HAL library not found)])
  616. dnl Build the gtk_main plugins?
  617. NEED_GTK_MAIN=no
  618. NEED_GNOME_MAIN=no
  619. NEED_GTK2_MAIN=no
  620. NEED_GNOME2_MAIN=no
  621. dnl build the qte plugin ?
  622. NEED_QTE_MAIN=no
  623. dnl Check for ntohl, etc.
  624. AC_CACHE_CHECK([for ntohl in sys/param.h],
  625.     [ac_cv_c_ntohl_sys_param_h],
  626.     [CFLAGS="${CFLAGS_save} -Wall -Werror"
  627.      AC_TRY_COMPILE([#include <sys/param.h>],
  628.         [void foo() { int meuh; ntohl(meuh); }],
  629.         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
  630. if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
  631.     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
  632. fi
  633. # XXX: do this with an M4 macro?
  634. #dnl Check for various -W flags
  635. #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
  636. #do
  637. #    AC_CACHE_CHECK([if $CC accepts -W${flag}],
  638. #        [ac_cv_c_W${flag}],
  639. #        [CFLAGS="-W${flag} ${CFLAGS_save}"
  640. #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
  641. #    if test "${ac_cv_c_W${flag}}" != "no"; then
  642. #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
  643. #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
  644. #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
  645. #    fi
  646. #done
  647. AC_CACHE_CHECK([if $CC accepts -Wall],
  648.     [ac_cv_c_Wall],
  649.     [CFLAGS="-Wall ${CFLAGS_save}"
  650.      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
  651. AC_CACHE_CHECK([if $CC accepts -Wconversion],
  652.     [ac_cv_c_Wconversion],
  653.     [CFLAGS="-Wconversion ${CFLAGS_save}"
  654.      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
  655. AC_CACHE_CHECK([if $CC accepts -Wunreachable-code],
  656.     [ac_cv_c_Wunreachable_code],
  657.     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
  658.      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
  659. AC_CACHE_CHECK([if $CC accepts -Wsign-compare],
  660.     [ac_cv_c_Wsign_compare],
  661.     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
  662.      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
  663. if test "${ac_cv_c_Wall}" != "no"; then
  664.     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
  665.     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
  666.     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
  667. fi
  668. if test "${ac_cv_c_Wsign_compare}" != "no"; then
  669.     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
  670.     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
  671.     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
  672. fi
  673. dnl Check for -pipe
  674. AC_CACHE_CHECK([if $CC accepts -pipe],
  675.     [ac_cv_c_pipe],
  676.     [CFLAGS="${CFLAGS_save} -pipe"
  677.      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
  678. if test "${ac_cv_c_pipe}" != "no"; then
  679.     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
  680.     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
  681.     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
  682. fi
  683. dnl Check for various optimization flags
  684. AC_CACHE_CHECK([if $CC accepts -Os],
  685.     [ac_cv_c_os],
  686.     [CFLAGS="${CFLAGS_save} -Os"
  687.      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
  688. if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
  689.     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
  690. fi
  691. AC_CACHE_CHECK([if $CC accepts -O3],
  692.     [ac_cv_c_o3],
  693.     [CFLAGS="${CFLAGS_save} -O3"
  694.      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
  695. if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
  696.     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
  697. fi
  698. AC_CACHE_CHECK([if $CC accepts -O2],
  699.     [ac_cv_c_o2],
  700.     [CFLAGS="${CFLAGS_save} -O2"
  701.      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
  702. if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
  703.     if test "${ac_cv_c_o3}" = "no"; then
  704.         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
  705.     fi
  706.     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
  707. else 
  708.     AC_CACHE_CHECK([if $CC accepts -O],
  709.         [ac_cv_c_o],
  710.         [CFLAGS="${CFLAGS_save} -O"
  711.          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
  712.     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
  713.         if test "${ac_cv_c_o3}" = "no"; then
  714.             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
  715. fi
  716.         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
  717.     fi
  718. fi
  719. dnl Check for -ffast-math
  720. AC_CACHE_CHECK([if $CC accepts -ffast-math],
  721.     [ac_cv_c_fast_math],
  722.     [CFLAGS="${CFLAGS_save} -ffast-math"
  723.      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
  724. if test "${ac_cv_c_fast_math}" != "no"; then
  725.     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
  726. fi
  727. dnl Check for -funroll-loops
  728. dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
  729. if test "${SYS}" != "beos"
  730. then
  731.   AC_CACHE_CHECK([if $CC accepts -funroll-loops],
  732.       [ac_cv_c_unroll_loops],
  733.       [CFLAGS="${CFLAGS_save} -funroll-loops"
  734.        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
  735.   if test "${ac_cv_c_unroll_loops}" != "no"; then
  736.       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
  737.   fi
  738. fi
  739. dnl Check for -fomit-frame-pointer
  740. AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
  741.     [ac_cv_c_omit_frame_pointer],
  742.     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
  743.      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
  744. if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
  745.     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
  746.     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
  747.     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
  748. fi
  749. dnl Check for -mdynamic-no-pic
  750. AC_CACHE_CHECK([if $CC accepts -mdynamic-no-pic],
  751.     [ac_cv_c_dynamic_no_pic],
  752.     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
  753.      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
  754. if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
  755.     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
  756.     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
  757. fi
  758. dnl Check for Darwin plugin linking flags
  759. AC_CACHE_CHECK([if $CC accepts -bundle -undefined error -lcc_dynamic],
  760.     [ac_cv_ld_darwin],
  761.     [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
  762.      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
  763. if test "${ac_cv_ld_darwin}" != "no"; then
  764.     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error -lcc_dynamic])
  765. fi
  766. dnl Check for standard plugin linking flags
  767. dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
  768. if test "${SYS}" = "beos"; then
  769.   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
  770. else
  771.   AC_CACHE_CHECK([if $CC accepts -shared],
  772.       [ac_cv_ld_plugins],
  773.       [CFLAGS="${CFLAGS_save} -shared"
  774.        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
  775.   if test "${ac_cv_ld_plugins}" != "no"; then
  776.     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
  777.   fi
  778. fi
  779. dnl Check for variadic macros
  780. AC_CACHE_CHECK([for variadic cpp macros],
  781.     [ac_cv_cpp_variadic_macros],
  782.     [CFLAGS="${CFLAGS_save}"
  783.      AC_TRY_COMPILE(
  784.          [#include <stdio.h>
  785.           #define a(b,c...) printf(b,##c)],
  786.          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
  787.          ac_cv_cpp_variadic_macros=yes,
  788.          ac_cv_cpp_variadic_macros=no)])
  789. if test "${ac_cv_cpp_variadic_macros}" != "no"; then
  790.     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
  791. fi
  792. dnl Checks for __attribute__(aligned()) directive
  793. AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
  794.     [ac_cv_c_attribute_aligned],
  795.     [ac_cv_c_attribute_aligned=0
  796.         CFLAGS="${CFLAGS_save} -Werror"
  797.     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
  798.         AC_TRY_COMPILE([],
  799.         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
  800.         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
  801.     done
  802.         CFLAGS="${CFLAGS_save}"])
  803. if test "${ac_cv_c_attribute_aligned}" != "0"; then
  804.     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
  805.         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
  806. fi
  807. dnl Checks for __attribute__(format()) directive
  808. AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
  809.     [ac_cv_c_attribute_format],
  810.     [ac_cv_c_attribute_format=no
  811.         CFLAGS="${CFLAGS_save} -Werror"
  812.         AC_TRY_COMPILE([],
  813.         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
  814.         [ac_cv_c_attribute_format=yes])
  815.         CFLAGS="${CFLAGS_save}"])
  816. if test "${ac_cv_c_attribute_format}" != "no"; then
  817.     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
  818. fi
  819. dnl Check for __attribute__(())
  820. AC_CACHE_CHECK([for __attribute__((packed))],
  821.   [ac_cv_c_attribute_packed],
  822.   [ac_cv_c_attribute_packed=no
  823.    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
  824.                     [ac_cv_c_attribute_packed=yes])])
  825. if test "${ac_cv_c_attribute_packed}" != "no"; then
  826.   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
  827. fi
  828. dnl
  829. dnl  Check the CPU
  830. dnl
  831. case "${target_cpu}" in
  832.   "")
  833.     ARCH=unknown
  834.     ;;
  835.   *)
  836.     ARCH="${target_cpu}"
  837.     ;;
  838. esac
  839. dnl
  840. dnl  Enable profiling
  841. dnl
  842. AC_ARG_ENABLE(gprof,
  843. [  --enable-gprof          gprof profiling (default disabled)])
  844. AC_ARG_ENABLE(cprof,
  845. [  --enable-cprof          cprof profiling (default disabled)])
  846. test "${enable_gprof}" != "yes" && enable_gprof="no"
  847. test "${enable_cprof}" != "yes" && enable_cprof="no"
  848. dnl
  849. dnl  default modules
  850. dnl
  851. VLC_ADD_PLUGINS([dummy rc telnet logger gestures memcpy hotkeys netsync showintf])
  852. VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf aac mp4 rawdv nsv real aiff mjpeg demuxdump])
  853. VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak])
  854. VLC_ADD_PLUGINS([deinterlace invert adjust wall transform distort clone crop motionblur])
  855. VLC_ADD_PLUGINS([float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 s16tofixed32 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32 audio_format])
  856. VLC_ADD_PLUGINS([trivial_resampler ugly_resampler linear_resampler bandlimited_resampler])
  857. VLC_ADD_PLUGINS([trivial_channel_mixer simple_channel_mixer headphone_channel_mixer normvol])
  858. VLC_ADD_PLUGINS([trivial_mixer spdif_mixer float32_mixer])
  859. VLC_ADD_PLUGINS([aout_file equalizer])
  860. VLC_ADD_PLUGINS([i420_rgb i420_yuy2 i422_yuy2 i420_ymga])
  861. VLC_ADD_PLUGINS([m3u id3 playlist export sgimb])
  862. VLC_ADD_PLUGINS([rawvideo blend scale time marq])
  863. VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au])
  864. VLC_ADD_PLUGINS([access_file access_udp access_tcp access_http ipv4 access_mms])
  865. VLC_ADD_PLUGINS([access_ftp access_directory sap http])
  866. dnl
  867. dnl  Switch to enable a version of VLC where most modules will be builtin
  868. dnl
  869. AC_ARG_ENABLE(mostly-builtin,
  870. [  --enable-mostly-builtin most modules will be built-in (default disabled)])
  871. if test "${enable_mostly_builtin}" = "yes"; then
  872.   VLC_ADD_BUILTINS([${PLUGINS}])
  873.   PLUGINS=""
  874. fi
  875. dnl
  876. dnl Some plugins aren't useful on some platforms
  877. dnl
  878. if test "${SYS}" != "mingw32"; then
  879.     VLC_ADD_PLUGINS([screensaver])
  880. else
  881.     VLC_ADD_PLUGINS([ntservice])
  882.     VLC_ADD_PLUGINS([dmo])
  883.     VLC_ADD_LDFLAGS([dmo],[-lole32])
  884. fi
  885. dnl
  886. dnl  Accelerated modules
  887. dnl
  888. MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
  889. #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
  890. MMXEXT_MODULES="memcpymmxext"
  891. #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
  892. THREEDNOW_MODULES="memcpy3dn"
  893. SSE_MODULES=""
  894. ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
  895. #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
  896. if test "${enable_gprof}" != "yes"
  897. then
  898.   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
  899. fi
  900. AC_CACHE_CHECK([if $CC groks MMX inline assembly],
  901.     [ac_cv_mmx_inline],
  902.     [CFLAGS="${CFLAGS_save}"
  903.      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
  904.                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
  905. if test "${ac_cv_mmx_inline}" != "no"; then
  906.   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if $CC groks MMX inline assembly.)
  907.   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
  908. fi
  909. AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
  910.     [ac_cv_mmxext_inline],
  911.     [CFLAGS="${CFLAGS_save}"
  912.      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
  913.                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
  914. if test "${ac_cv_mmxext_inline}" != "no"; then
  915.   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if $CC groks MMX EXT inline assembly.)
  916.   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
  917. fi
  918. AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
  919.     [ac_cv_3dnow_inline],
  920.     [CFLAGS="${CFLAGS_save}"
  921.      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
  922.                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
  923. if test "${ac_cv_3dnow_inline}" != "no"; then
  924.   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if $CC groks 3D Now! inline assembly.)
  925.   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
  926. fi
  927. AC_CACHE_CHECK([if $CC groks SSE inline assembly],
  928.     [ac_cv_sse_inline],
  929.     [CFLAGS="${CFLAGS_save}"
  930.      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
  931.                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
  932. if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
  933.   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if $CC groks SSE inline assembly.)
  934.   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
  935. fi
  936. if test "${SYS}" != "mingw32"; then
  937. AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
  938.     [ac_cv_altivec_inline],
  939.     [CFLAGS="${CFLAGS_save}"
  940.      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
  941.          ac_cv_altivec_inline=yes,
  942.          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
  943.           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
  944.             [ac_cv_altivec_inline="-Wa,-m7400"],
  945.             ac_cv_altivec_inline=no)
  946.          ])])
  947. if test "${ac_cv_altivec_inline}" != "no"; then
  948.   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if $CC groks AltiVec inline assembly.)
  949.   if test "${ac_cv_altivec_inline}" != "yes"; then
  950.     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
  951.     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
  952.     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
  953.     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
  954.     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
  955.   fi
  956.   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
  957. fi
  958. AC_CACHE_CHECK([if $CC groks AltiVec C extensions],
  959.     [ac_cv_c_altivec],
  960.     [# Darwin test
  961.      CFLAGS="${CFLAGS_save} -faltivec"
  962.      AC_TRY_COMPILE([],
  963.        [vec_ld(0, (unsigned char *)0);],
  964.        [ac_cv_c_altivec="-faltivec"],
  965.        [# Linux/PPC test (no flags)
  966.         CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -maltivec -mabi=altivec"
  967.         AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
  968.                         #include <altivec.h>
  969.                         #endif],
  970.           [vec_ld(0, (unsigned char *)0);],
  971.           [ac_cv_c_altivec=""
  972.            ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
  973.           [# Linux/PPC test (old GCC versions)
  974.            CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
  975.            AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
  976.                            #include <altivec.h>
  977.                            #endif],
  978.              [vec_ld(0, (unsigned char *)0);],
  979.              [ac_cv_c_altivec="-fvec"],
  980.              [ac_cv_c_altivec=no])
  981.            ])
  982.         ])
  983.      CFLAGS="${CFLAGS_save}"])
  984. if test "${ac_cv_c_altivec}" != "no"; then
  985.   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
  986.   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
  987.   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
  988.   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
  989.   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
  990. fi
  991. AC_CACHE_CHECK([if linker needs -framework vecLib],
  992.     [ac_cv_ld_altivec],
  993.     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
  994.      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
  995.      LDFLAGS="${LDFLAGS_save}"
  996.     ])
  997. if test "${ac_cv_ld_altivec}" != "no"; then
  998.   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
  999. fi
  1000. fi # end "${SYS}" != "mingw32"
  1001. AC_ARG_WITH(,[])
  1002. AC_ARG_WITH(,[Optimization options:])
  1003. dnl
  1004. dnl  Special arch tuning
  1005. dnl
  1006. AC_ARG_WITH(tuning,
  1007. [  --with-tuning=ARCH      enable special tuning for an architecture
  1008.                           (default i686 on IA-32 and 750 on PPC)])
  1009. if test -n "${with_tuning}"; then
  1010.     if test "${target_cpu}" = "powerpc"; then
  1011.         CFLAGS_TUNING="-mtune=${with_tuning}"
  1012.     else
  1013.         CFLAGS_TUNING="-mcpu=${with_tuning}"
  1014.     fi
  1015. else
  1016.     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
  1017.         CFLAGS_TUNING="-mcpu=pentiumpro"
  1018.     else
  1019.         if test "${target_cpu}" = "powerpc"; then CFLAGS_TUNING="-mtune=750"; fi
  1020.     fi
  1021. fi
  1022. dnl
  1023. dnl  x86 accelerations
  1024. dnl
  1025. if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386"
  1026. then
  1027.     ARCH="${ARCH} mmx"
  1028.     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
  1029. fi
  1030. dnl
  1031. dnl  Enable/disable optimizations
  1032. dnl
  1033. AC_ARG_ENABLE(optimizations,
  1034. [  --disable-optimizations disable compiler optimizations (default enabled)])
  1035. test "${enable_optimizations}" != "no" && enable_optimizations="yes"
  1036. dnl
  1037. dnl  AltiVec acceleration
  1038. dnl
  1039. AC_ARG_ENABLE(altivec,
  1040. [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
  1041. [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
  1042.     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
  1043. [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
  1044.     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
  1045. dnl
  1046. dnl  Debugging mode
  1047. dnl
  1048. AC_ARG_ENABLE(debug,
  1049. [  --enable-debug          debug mode (default disabled)])
  1050. test "${enable_debug}" != "yes" && enable_debug="no"
  1051. dnl
  1052. dnl  Enable release-specific flags
  1053. dnl
  1054. AC_ARG_ENABLE(release,
  1055. [  --enable-release        activate extra optimizations (default disabled)])
  1056. test "${enable_release}" != "yes" && enable_release="no"
  1057. dnl
  1058. dnl Stream output
  1059. dnl
  1060. AC_ARG_ENABLE(sout,
  1061.   [  --enable-sout           Stream output modules (default enabled)])
  1062. if test "${enable_sout}" != "no"
  1063. then
  1064.   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
  1065.   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
  1066.   VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
  1067.   VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
  1068.   VLC_ADD_PLUGINS([packetizer_copy])
  1069.   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
  1070.   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode])
  1071. #  VLC_ADD_PLUGINS([stream_out_transrate])
  1072.   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
  1073. fi
  1074. dnl
  1075. dnl HTTP daemon
  1076. dnl
  1077. AC_ARG_ENABLE(httpd,
  1078.   [  --enable-httpd          HTTP daemon (default enabled)])
  1079. if test "${enable_httpd}" != "no"
  1080. then
  1081.   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
  1082. fi
  1083. dnl
  1084. dnl VideoLAN manager
  1085. dnl
  1086. AC_ARG_ENABLE(vlm,
  1087.   [  --enable-vlm            VideoLAN manager (default enabled)])
  1088. if test "${enable_vlm}" != "no"
  1089. then
  1090.   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
  1091. fi
  1092. dnl
  1093. dnl TLS/SSL
  1094. dnl
  1095. AC_ARG_ENABLE(gnutls,
  1096.   [  --enable-gnutls         gnutls TLS/SSL support (default disabled)])
  1097. AS_IF([test "${enable_gnutls}" == "yes"], VLC_ADD_PLUGINS([gnutls]))
  1098. dnl
  1099. dnl  Input plugins
  1100. dnl
  1101. AC_ARG_WITH(,[Input plugins:])
  1102. dnl
  1103. dnl  live.com input
  1104. dnl
  1105. AC_ARG_ENABLE(livedotcom,
  1106. [  --enable-livedotcom     live.com input plugin (default disabled)])
  1107. if test "${enable_livedotcom}" = "yes"; then
  1108.   AC_ARG_WITH(livedotcom-tree,
  1109.     [    --with-livedotcom-tree=PATH live.com tree for static linking])
  1110.   dnl
  1111.   dnl test for --with-livedotcom-tree
  1112.   dnl
  1113.   if test -z "${with_livedotcom_tree}"; then
  1114.     AC_LANG_PUSH(C++)
  1115.     CPPFLAGS_save="${CPPFLAGS}"
  1116.     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
  1117.     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
  1118.     AC_CHECK_HEADERS(liveMedia.hh, [
  1119.       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
  1120.       AC_CHECK_LIB(liveMedia_pic, main, [
  1121.         # We have -lliveMedia_pic, build plugins
  1122.         VLC_ADD_PLUGINS([livedotcom])
  1123.         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
  1124.       ], [
  1125.         AC_CHECK_LIB(liveMedia, main, [
  1126.           # We only have -lliveMedia, do builtins
  1127.           VLC_ADD_BUILTINS([livedotcom])
  1128.           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
  1129.         ])
  1130.       ])
  1131.       if test "${SYS}" = "mingw32"; then
  1132.         # add ws2_32 for closesocket, select, recv
  1133.         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
  1134.       fi
  1135.     ])
  1136.     CPPFLAGS="${CPPFLAGS_save}"
  1137.     AC_LANG_POP(C++)
  1138.   else
  1139.     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
  1140.     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
  1141.     if test -z "${real_livedotcom_tree}"; then
  1142.       dnl  The given directory can't be found
  1143.       AC_MSG_RESULT(no)
  1144.       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
  1145.     fi
  1146.     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
  1147.       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
  1148.       VLC_ADD_BUILTINS([livedotcom])
  1149.       if test "${SYS}" = "mingw32"; then
  1150.         # add ws2_32 for closesocket, select, recv
  1151.         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
  1152.       fi
  1153.       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
  1154.       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
  1155.       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
  1156.       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
  1157.       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
  1158.       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
  1159.       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
  1160.       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
  1161.     else
  1162.       dnl  The given live.com wasn't built
  1163.       AC_MSG_RESULT(no)
  1164.       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
  1165.     fi
  1166.   fi
  1167. fi
  1168. dnl
  1169. dnl dvdread module: check for libdvdread
  1170. dnl
  1171. AC_ARG_ENABLE(dvdread,
  1172. [  --enable-dvdread        dvdread input module (default disabled)])
  1173. if test "${enable_dvdread}" != "no"
  1174. then
  1175.   AC_ARG_WITH(dvdread,
  1176.   [    --with-dvdread=PATH    libdvdread headers and libraries])
  1177.   AC_ARG_WITH(dvdread-tree,
  1178.   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
  1179.   dnl Temporary hack (yeah, sure ;)
  1180.   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
  1181.       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
  1182.   fi
  1183.   if test -z "${with_dvdread}"
  1184.   then
  1185.     if test -z "${with_dvdread_tree}"
  1186.     then
  1187.       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
  1188.         [ VLC_ADD_PLUGINS([dvdread])
  1189.           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
  1190.         ],[
  1191.           if test -n "${enable_dvdread}"
  1192.           then
  1193.             AC_MSG_ERROR([cannot find libdvdread headers])
  1194.           fi
  1195.         ])
  1196.     else
  1197.       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
  1198.       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
  1199.       if test -z "${real_dvdread_tree}"
  1200.       then
  1201.         dnl  The given directory can't be found
  1202.         AC_MSG_RESULT(no)
  1203.         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
  1204.       fi
  1205.       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
  1206.       then
  1207.         dnl  Use a custom libdvdread
  1208.         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
  1209.         VLC_ADD_BUILTINS([dvdread])
  1210.         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
  1211.         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
  1212.       else
  1213.         dnl  The given libdvdread wasn't built
  1214.         AC_MSG_RESULT(no)
  1215.         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
  1216.       fi
  1217.     fi
  1218.   else
  1219.     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
  1220.     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
  1221.     then
  1222.       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
  1223.       AC_MSG_RESULT(yes)
  1224.       VLC_ADD_PLUGINS([dvdread])
  1225.       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
  1226.       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
  1227.     else
  1228.       dnl  No libdvdread could be found, sorry
  1229.       AC_MSG_RESULT(no)
  1230.       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
  1231.     fi
  1232.   fi
  1233. fi
  1234. dnl
  1235. dnl  libdvdnav plugin
  1236. dnl
  1237. AC_ARG_ENABLE(dvdnav,
  1238.   [  --enable-dvdnav         dvdnav input module (default enabled)])
  1239. if test "${enable_dvdnav}" != "no"
  1240. then
  1241.   dnl Same hack than dvdread
  1242.   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
  1243.       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
  1244.   fi
  1245.   DVDNAV_PATH="${PATH}"
  1246.   AC_ARG_WITH(dvdnav-config-path,
  1247.     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in $PATH)],
  1248.     [ if test "${with_dvdnav_config_path}" != "no"
  1249.       then
  1250.         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
  1251.       fi ])
  1252.   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
  1253.   if test "${DVDNAV_CONFIG}" != "no"
  1254.   then
  1255.     VLC_ADD_PLUGINS([dvdnav])
  1256.     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
  1257.     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
  1258.   fi
  1259. fi
  1260. dnl
  1261. dnl  Windows DirectShow access module
  1262. dnl
  1263. AC_ARG_ENABLE(dshow,
  1264.   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
  1265. if test "${enable_dshow}" != "no"
  1266. then
  1267.   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
  1268.   then
  1269.       AC_CHECK_HEADERS(dshow.h,
  1270.       [ VLC_ADD_PLUGINS([dshow])
  1271.         VLC_ADD_CXXFLAGS([dshow],[])
  1272.         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32]) ])
  1273.   fi
  1274. fi
  1275. dnl
  1276. dnl  libdvbpsi ts demux/mux
  1277. dnl
  1278. AC_ARG_ENABLE(dvbpsi,
  1279. [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
  1280. if test "${enable_dvbpsi}" != "no"
  1281. then
  1282.   AC_ARG_WITH(dvbpsi,
  1283.   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
  1284.   AC_ARG_WITH(dvbpsi,
  1285.   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
  1286.   case "${with_dvbpsi}" in
  1287.   ""|yes)
  1288.     if test -z "${with_dvbpsi_tree}"
  1289.     then
  1290.       AC_CHECK_HEADERS(dvbpsi/dr.h,
  1291.         [ VLC_ADD_PLUGINS([mux_ts ts])
  1292.           VLC_ADD_LDFLAGS([mux_ts ts],[-ldvbpsi]) ],
  1293.         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
  1294.         [#if defined( HAVE_STDINT_H )
  1295. #   include <stdint.h>
  1296. #elif defined( HAVE_INTTYPES_H )
  1297. #   include <inttypes.h>
  1298. #endif
  1299. #include <dvbpsi/dvbpsi.h>
  1300. #include <dvbpsi/descriptor.h>
  1301. #include <dvbpsi/pat.h>
  1302. #include <dvbpsi/pmt.h>])
  1303.     else
  1304.       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
  1305.       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
  1306.       if test -z "${real_dvbpsi_tree}"
  1307.       then
  1308.         dnl  The given directory can't be found
  1309.         AC_MSG_RESULT(no)
  1310.         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
  1311.       fi
  1312.       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
  1313.       then
  1314.         dnl  Use a custom libdvbpsi
  1315.         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
  1316.         VLC_ADD_BUILTINS([mux_ts ts])
  1317.         VLC_ADD_CPPFLAGS([mux_ts ts],[-I${real_dvbpsi_tree}/src])
  1318.         VLC_ADD_LDFLAGS([mux_ts ts],[-L${real_dvbpsi_tree}/src/.libs -ldvbpsi])
  1319.       else
  1320.         dnl  The given libdvbpsi wasn't built
  1321.         AC_MSG_RESULT(no)
  1322.         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
  1323.       fi
  1324.     fi
  1325.   ;;
  1326.   no)
  1327.     dnl  Compile without dvbpsi
  1328.   ;;
  1329.   *)
  1330.     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
  1331.     if test -z "${with_dvbpsi}"
  1332.     then
  1333.       LDFLAGS_test=""
  1334.       CPPFLAGS_test=""
  1335.     else
  1336.       LDFLAGS_test="-L${with_dvbpsi}/lib"
  1337.       CPPFLAGS_test="-I${with_dvbpsi}/include"
  1338.     fi
  1339.     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
  1340.     AC_CHECK_HEADERS([dvbpsi/dr.h],[
  1341.       VLC_ADD_PLUGINS([mux_ts ts])
  1342.       VLC_ADD_CPPFLAGS([mux_ts ts],[${CPPFLAGS_test}])
  1343.       VLC_ADD_LDFLAGS([mux_ts ts],[${LDFLAGS_test} -ldvbpsi])
  1344.     ],[
  1345.       if test -n "${enable_dvbpsi}"
  1346.       then
  1347.         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])
  1348.       fi
  1349.     ])
  1350.     CPPFLAGS="${CPPFLAGS_save}"
  1351.   ;;
  1352.   esac
  1353. fi
  1354. dnl
  1355. dnl  Video4Linux plugin
  1356. dnl
  1357. AC_ARG_ENABLE(v4l,
  1358.   [  --enable-v4l            Video4Linux input support (default disabled)])
  1359. if test "${enable_v4l}" = "yes"
  1360. then
  1361.   AC_ARG_WITH(v4l,
  1362.     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
  1363.   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
  1364.   then
  1365.     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
  1366.   fi
  1367.   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
  1368.   AC_CHECK_HEADERS(linux/videodev.h, [
  1369.     VLC_ADD_PLUGINS([v4l])
  1370.   ],[])
  1371.   CPPFLAGS="${CPPFLAGS_save}"
  1372. fi
  1373. dnl
  1374. dnl  special access module for Hauppauge PVR cards
  1375. dnl
  1376. AC_ARG_ENABLE(pvr,
  1377.   [  --enable-pvr            PVR cards access module (default disabled)])
  1378. if test "${enable_pvr}" = "yes"
  1379. then
  1380.   VLC_ADD_PLUGINS([pvr])
  1381. fi
  1382. dnl
  1383. dnl  VCDX and CDDAX modules
  1384. dnl
  1385. AC_ARG_ENABLE(libcdio,
  1386.   [  --enable-libcdio        CDDA support via libcdio (default enabled)])
  1387.  
  1388. AC_ARG_ENABLE(libcddb,
  1389.   [  --enable-libcddb        CDDB support for CDDAX (default enabled)])
  1390.  
  1391. dnl AC_ARG_ENABLE(vcdx,
  1392. dnl   [  --enable-vcdx           VCD support with Navigation (default enabled)])
  1393.  
  1394. AC_ARG_ENABLE(cdda,           
  1395.   [  --enable-cdda           CDDA plugin support (default enabled)])
  1396.  
  1397. AC_ARG_ENABLE(cddax,
  1398.   [  --enable-cddax          CDDAX plugin support (default enabled)])
  1399.  
  1400. if test "${enable_cddax}" != "no"
  1401. then
  1402.   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.70,
  1403.    [enable_cddax="no"
  1404.     AC_DEFINE(HAVE_CDDAX, [], [Define for the CD-DA plugin using libcdio])
  1405.     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
  1406.     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
  1407.     VLC_ADD_PLUGINS([cddax])], 
  1408.     [AC_MSG_WARN(libcdio library not found)
  1409.     HAVE_CDDAX=no])
  1410.   if test "$enable_libcddb" != "no"; then
  1411.     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.4, [
  1412.       HAVE_LIBCDDB=yes 
  1413.       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
  1414.       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
  1415.       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
  1416.       ],
  1417.       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
  1418.       HAVE_LIBCDDB=no])
  1419.   fi
  1420.  
  1421. dnl   if test "${enable_vcdx}" != "no"
  1422. dnl   then
  1423. dnl     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.20,
  1424. dnl      [enable_vcd="no"
  1425. dnl       AC_DEFINE(HAVE_VCDX, [], 
  1426. dnl       [Define for the VCD plugin using libcdio/libvcdinfo])
  1427. dnl       VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
  1428. dnl       VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
  1429. dnl       VLC_ADD_PLUGINS([vcdx])], 
  1430. dnl      [AC_MSG_WARN(vcdinfo library not found)
  1431. dnl      HAVE_VCDX=no])
  1432. dnl   fi
  1433. fi
  1434. dnl
  1435. dnl  VCD module
  1436. dnl
  1437. AC_ARG_ENABLE(vcd,
  1438.   [  --enable-vcd            VCD support for Linux, FreeBSD, MacOS X and Win32 (default enabled)])
  1439. if test "${enable_vcd}" != "no"
  1440. then
  1441.   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
  1442.   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
  1443.     AC_MSG_RESULT(yes)
  1444.     VLC_ADD_PLUGINS([vcd cdda])
  1445.   ],[
  1446.     AC_MSG_RESULT(no)
  1447.   ])
  1448.   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
  1449.   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
  1450.     AC_MSG_RESULT(yes)
  1451.     VLC_ADD_PLUGINS([vcd cdda])
  1452.     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
  1453.   ],[
  1454.     AC_MSG_RESULT(no)
  1455.   ])
  1456.   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
  1457.   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
  1458.     AC_MSG_RESULT(yes)
  1459.     VLC_ADD_PLUGINS([vcd cdda])
  1460.     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  1461.   ],[
  1462.     AC_MSG_RESULT(no)
  1463.   ])
  1464.   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
  1465.   then
  1466.     VLC_ADD_PLUGINS([vcd cdda])
  1467.   fi
  1468.   if test "${SYS}" = "darwin"
  1469.   then
  1470.     VLC_ADD_PLUGINS([vcd cdda])
  1471.     VLC_ADD_LDFLAGS([vcd vcdx cdda],[-framework IOKit -framework CoreFoundation])
  1472.   fi
  1473. fi
  1474. dnl
  1475. dnl  Satellite input module
  1476. dnl
  1477. AC_ARG_ENABLE(satellite,
  1478.   [  --enable-satellite      satellite card support (default disabled)],
  1479.   [ if test "${enable_satellite}" = "yes"
  1480.     then
  1481.       AC_DEFINE(HAVE_SATELLITE, [], 
  1482.       [Define for the VCD plugin using libcdio/libvcdinfo])
  1483.       VLC_ADD_PLUGINS([satellite])
  1484.     fi])
  1485. dnl
  1486. dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
  1487. dnl
  1488. AC_ARG_ENABLE(dvb,
  1489.   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
  1490. if test "${enable_dvb}" = "yes"
  1491. then
  1492.   AC_ARG_WITH(dvb,
  1493.   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
  1494.   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
  1495.   then
  1496.     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
  1497.   fi
  1498.   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
  1499.   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
  1500.     VLC_ADD_PLUGINS([dvb])
  1501.   ],[])
  1502.   CPPFLAGS="${CPPFLAGS_save}"
  1503. fi
  1504. dnl
  1505. dnl  Screen capture module
  1506. dnl
  1507. AC_ARG_ENABLE(screen,
  1508.   [  --enable-screen         Screen capture support (default enabled)])
  1509. if test "${enable_screen}" != "no"; then
  1510.   if test "${SYS}" = "darwin"; then
  1511.     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
  1512.       VLC_ADD_PLUGINS([screen])
  1513.       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
  1514.     ])
  1515.   elif test "${SYS}" = "mingw32"; then
  1516.     VLC_ADD_PLUGINS([screen])
  1517.     VLC_ADD_LDFLAGS([screen],[-lgdi32])
  1518.   elif test "${SYS}" = "beos"; then
  1519.     VLC_ADD_PLUGINS([screen])
  1520.     VLC_ADD_CXXFLAGS([screen],[])
  1521.     VLC_ADD_LDFLAGS([screen],[-lbe])
  1522.   else
  1523.     CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
  1524.     AC_CHECK_HEADERS(X11/Xlib.h, [
  1525.       VLC_ADD_PLUGINS([screen])
  1526.       VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
  1527.       VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
  1528.     ])
  1529.     CPPFLAGS="${CPPFLAGS_save}"
  1530.   fi
  1531. fi
  1532. dnl
  1533. dnl  ipv6 plugin - not for QNX yet
  1534. dnl
  1535. if test "${SYS}" != "nto" && test "${SYS}" != "mingw32"
  1536. then
  1537.   have_ipv6=false
  1538.   AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[
  1539.     AC_CHECK_LIB(resolv,inet_pton,
  1540.       [have_ipv6=:
  1541.        VLC_ADD_LDFLAGS([ipv6],[-lresolv])])
  1542.   ])
  1543.   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
  1544.   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
  1545.     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) have_ipv6=false])
  1546.   if ${have_ipv6}; then
  1547.     VLC_ADD_PLUGINS([ipv6])
  1548.   fi
  1549. fi
  1550. if test "${SYS}" = "mingw32"
  1551. then
  1552.   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
  1553.   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
  1554.     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
  1555. fi
  1556. dnl
  1557. dnl  ogg demux plugin
  1558. dnl
  1559. AC_ARG_ENABLE(ogg,
  1560.   [  --enable-ogg            Ogg demux support (default enabled)])
  1561. if test "${enable_ogg}" != "no"
  1562. then
  1563.   AC_CHECK_HEADERS(ogg/ogg.h, [
  1564.     AC_CHECK_LIB( ogg, oggpack_read, [
  1565.       VLC_ADD_PLUGINS([ogg mux_ogg])
  1566.       VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
  1567.    ],[])
  1568. fi
  1569. dnl
  1570. dnl  matroska demux plugin
  1571. dnl
  1572. AC_ARG_ENABLE(mkv,
  1573.   [  --enable-mkv            Matroska demux support (default enabled)])
  1574. if test "${enable_mkv}" != "no"; then
  1575.   AC_LANG_PUSH(C++)
  1576.   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
  1577.     AC_CHECK_HEADERS(matroska/KaxVersion.h, [
  1578.       AC_CHECK_HEADERS(matroska/KaxAttachments.h)
  1579.       VLC_ADD_CXXFLAGS([mkv],[])
  1580.       AC_CHECK_LIB(ebml_pic, main, [
  1581.         # We have ebml_pic, that's good, we can build an mkv.so plugin !
  1582.         VLC_ADD_PLUGINS([mkv])
  1583.         VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
  1584.       ], [
  1585.         AC_CHECK_LIB(ebml, main, [
  1586.           # We only have libebml, make mkv.a a builtin
  1587.           VLC_ADD_BUILTINS([mkv])
  1588.           VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
  1589.         ])
  1590.       ])
  1591.     ])
  1592.   ])
  1593.   AC_LANG_POP(C++)
  1594. fi
  1595. dnl
  1596. dnl  modplug demux plugin
  1597. dnl
  1598. AC_ARG_ENABLE(mod,
  1599.   [  --enable-mod            Mod demux support (default enabled)])
  1600. if test "${enable_mod}" != "no"
  1601. then
  1602.   AC_CHECK_HEADERS(libmodplug/modplug.h, [
  1603.     VLC_ADD_PLUGINS([mod])
  1604.     VLC_ADD_CXXFLAGS([mod],[])
  1605.     VLC_ADD_LDFLAGS([mod],[-lmodplug])])
  1606. fi
  1607. dnl
  1608. dnl  Codec plugins
  1609. dnl
  1610. AC_ARG_WITH(,[Codec plugins:])
  1611. dnl
  1612. dnl  mad plugin
  1613. dnl
  1614. AC_ARG_ENABLE(mad,
  1615.   [  --enable-mad            libmad module (default enabled)])
  1616. if test "${enable_mad}" != "no"
  1617. then
  1618.   AC_ARG_WITH(mad,
  1619.     [    --with-mad=PATH       path to libmad],[],[])
  1620.   if test "${with_mad}" != "no" -a -n "${with_mad}"
  1621.   then
  1622.     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
  1623.     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
  1624.   fi
  1625.   AC_ARG_WITH(mad-tree,
  1626.     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
  1627.   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
  1628.   then
  1629.     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
  1630.     if test -z "${real_mad_tree}"
  1631.     then
  1632.       dnl  The given directory can't be found
  1633.       AC_MSG_RESULT(no)
  1634.       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
  1635.     fi
  1636.     dnl  Use a custom libmad
  1637.     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
  1638.     if test -f ${real_mad_tree}/mad.h
  1639.     then
  1640.       AC_MSG_RESULT(yes)
  1641.       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
  1642.       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
  1643.       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
  1644.       AC_CHECK_LIB(mad, mad_bit_init, [
  1645.         VLC_ADD_BUILTINS([mpgatofixed32])
  1646.         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
  1647.         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
  1648.       ],[])
  1649.       LDFLAGS="${LDFLAGS_save}"
  1650.     else
  1651.       AC_MSG_RESULT(no)
  1652.       AC_MSG_ERROR([the specified tree doesn't have mad.h])
  1653.     fi
  1654.   else
  1655.     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
  1656.     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
  1657.     AC_CHECK_HEADERS(mad.h, ,
  1658.       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
  1659.     AC_CHECK_LIB(mad, mad_bit_init, [
  1660.       VLC_ADD_PLUGINS([mpgatofixed32])
  1661.       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
  1662.       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
  1663.     CPPFLAGS="${CPPFLAGS_save}"
  1664.     LDFLAGS="${LDFLAGS_save}"
  1665.   fi
  1666. fi
  1667. dnl
  1668. dnl   libid3tag support (FIXME!!! doesn't work with new input)
  1669. dnl
  1670. AC_CHECK_HEADERS(id3tag.h, [
  1671.   AC_CHECK_HEADERS(zlib.h, [
  1672.     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
  1673.     VLC_ADD_PLUGINS([id3tag])]) ])
  1674. dnl
  1675. dnl  ffmpeg decoder/demuxer plugin
  1676. dnl
  1677. AC_ARG_ENABLE(ffmpeg,
  1678. [  --enable-ffmpeg         ffmpeg codec (default enabled)])
  1679. if test "${enable_ffmpeg}" != "no"
  1680. then
  1681.   FFMPEG_PATH="${PATH}"
  1682.   AC_ARG_WITH(ffmpeg-config-path,
  1683.     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in $PATH)],
  1684.     [ if test "${with_ffmpeg_config_path}" != "no"
  1685.       then
  1686.         FFMPEG_PATH="${with_ffmpeg_config_path}:${PATH}"
  1687.       fi ])
  1688.   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
  1689.   if test "${FFMPEG_CONFIG}" != "no"
  1690.   then
  1691.     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
  1692.     AC_CHECK_HEADERS(postproc/postprocess.h)
  1693.     VLC_ADD_PLUGINS([ffmpeg])
  1694.     VLC_ADD_CFLAGS([ffmpeg],[`${FFMPEG_CONFIG} --cflags`])
  1695.     VLC_ADD_LDFLAGS([ffmpeg],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
  1696.   else
  1697.     AC_ARG_WITH(ffmpeg-mp3lame,
  1698.       [    --with-ffmpeg-mp3lame   if ffmpeg has been compiled with mp3lame support],
  1699.       [
  1700.         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
  1701.     AC_ARG_WITH(ffmpeg-faac,
  1702.       [    --with-ffmpeg-faac      if ffmpeg has been compiled with faac support],
  1703.       [
  1704.         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
  1705.     AC_ARG_WITH(ffmpeg-dts,
  1706.       [    --with-ffmpeg-dts   if ffmpeg has been compiled with dts support],
  1707.       [
  1708.         VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
  1709.     AC_ARG_WITH(ffmpeg-zlib,
  1710.       [    --with-ffmpeg-zlib   if ffmpeg has been compiled with zlib support],
  1711.       [
  1712.         VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
  1713.     AC_ARG_WITH(ffmpeg-tree,
  1714.       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
  1715.     dnl
  1716.     dnl test for !(--with-ffmpeg-tree)
  1717.     dnl
  1718.     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
  1719.       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
  1720.       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
  1721.       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
  1722.       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
  1723.       AC_CHECK_LIB(avcodec, avcodec_init, [
  1724.         VLC_ADD_BUILTINS([ffmpeg])
  1725.         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])],
  1726.          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ])
  1727.       AC_CHECK_LIB(avformat, av_open_input_stream, [
  1728.         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
  1729.         [Define if you have ffmpeg's libavformat.])
  1730.         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz])
  1731.       LDFLAGS="${LDFLAGS_save}"
  1732.       CPPFLAGS="${CPPFLAGS_save}"
  1733.     fi
  1734.     dnl
  1735.     dnl test for --with-ffmpeg-tree
  1736.     dnl
  1737.     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
  1738.       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
  1739.       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
  1740.       if test -z "${real_ffmpeg_tree}"; then
  1741.         dnl  The given directory can't be found
  1742.         AC_MSG_RESULT(no)
  1743.         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
  1744.       fi
  1745.       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
  1746.         dnl  The given libavcodec wasn't built
  1747.         AC_MSG_RESULT(no)
  1748.         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
  1749.       fi
  1750.       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
  1751.         dnl  The given libavcodec wasn't built with --enable-pp
  1752.         AC_MSG_RESULT(no)
  1753.         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
  1754.       fi
  1755.       dnl  Use a custom libffmpeg
  1756.       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
  1757.       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
  1758.         if test "${with_ffmpeg_zlib}" != "yes"; then
  1759.           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
  1760.         fi
  1761.       fi
  1762.       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
  1763.         if test "${with_ffmpeg_mp3lame}" != "yes"; then
  1764.           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
  1765.         fi
  1766.       fi
  1767.       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
  1768.         if test "${with_ffmpeg_faac}" != "yes"; then
  1769.           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
  1770.         fi
  1771.       fi
  1772.       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
  1773.         if test "${with_ffmpeg_dts}" != "yes"; then
  1774.           VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
  1775.         fi
  1776.       fi
  1777.       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
  1778.         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
  1779.       fi
  1780.       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
  1781.         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
  1782.       fi
  1783.       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
  1784.         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
  1785.       fi
  1786.       VLC_ADD_BUILTINS([ffmpeg])
  1787.       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
  1788.       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavcodec])
  1789.       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
  1790.         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
  1791.         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
  1792.         VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
  1793.       fi
  1794.     fi
  1795.   fi
  1796. fi
  1797. dnl
  1798. dnl  ffmpeg decoder/demuxer plugin
  1799. dnl
  1800. AC_ARG_ENABLE(ffmpegaltivec,
  1801. [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
  1802. if test "${enable_ffmpegaltivec}" == "yes"
  1803. then
  1804.   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
  1805.     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
  1806.     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
  1807.     if test -z "${real_ffmpeg_tree}"; then
  1808.       dnl  The given directory can't be found
  1809.       AC_MSG_RESULT(no)
  1810.       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
  1811.     fi
  1812.     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
  1813.       dnl  The given libavcodecaltivec wasn't built
  1814.       AC_MSG_RESULT(no)
  1815.       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
  1816.     fi
  1817.     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
  1818.       dnl  The given libavcodecaltivec wasn't built with --enable-pp
  1819.       AC_MSG_RESULT(no)
  1820.       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
  1821.     fi
  1822.     dnl  Use a custom libffmpeg
  1823.     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
  1824.     VLC_ADD_BUILTINS([ffmpegaltivec])
  1825.     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
  1826.     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
  1827.     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
  1828.     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
  1829.       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
  1830.       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
  1831.       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
  1832.     fi
  1833.   fi
  1834. fi
  1835. dnl
  1836. dnl  faad decoder plugin
  1837. dnl
  1838. AC_ARG_ENABLE(faad,
  1839. [  --enable-faad           faad codec (default disabled)])
  1840. if test "${enable_faad}" = "yes"
  1841. then
  1842.   AC_ARG_WITH(faad-tree,
  1843.   [    --with-faad-tree=PATH faad tree for static linking])
  1844.   if test -n "${with_faad_tree}"
  1845.   then
  1846.     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
  1847.     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
  1848.     if test -z "${real_faad_tree}"
  1849.     then
  1850.       dnl  The given directory can't be found
  1851.       AC_MSG_RESULT(no)
  1852.       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
  1853.     fi
  1854.     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
  1855.     then
  1856.       dnl  Use a custom faad
  1857.       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
  1858.       VLC_ADD_BUILTINS([faad])
  1859.       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
  1860.       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
  1861.     else
  1862.       dnl  The given libfaad wasn't built
  1863.       AC_MSG_RESULT(no)
  1864.       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
  1865.     fi
  1866.   else
  1867.     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
  1868.     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
  1869.     AC_CHECK_HEADERS(faad.h, ,
  1870.       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
  1871.     AC_CHECK_LIB(faad, faacDecOpen, [
  1872.       VLC_ADD_PLUGINS([faad])
  1873.       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
  1874.       AC_CHECK_LIB(faad, NeAACDecOpen, [
  1875.         VLC_ADD_PLUGINS([faad])
  1876.         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
  1877.         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
  1878.     LDFLAGS="${LDFLAGS_save}"
  1879.     CPPFLAGS="${CPPFLAGS_save}"
  1880.   fi
  1881. fi
  1882. dnl
  1883. dnl toolame encoder plugin
  1884. dnl
  1885. AC_ARG_ENABLE(toolame,
  1886. [  --enable-toolame        toolame codec (default disabled)])
  1887. if test "${enable_toolame}" = "yes"
  1888. then
  1889.   AC_ARG_WITH(toolame-tree,
  1890.   [    --with-toolame-tree=PATH toolame tree for static linking])
  1891.   if test -n "${with_toolame_tree}"
  1892.   then
  1893.     AC_MSG_CHECKING(for libtoolame.a in ${with_toolame_tree})
  1894.     real_toolame_tree="`cd ${with_toolame_tree} 2>/dev/null && pwd`"
  1895.     if test -z "${real_toolame_tree}"
  1896.     then
  1897.       dnl  The given directory can't be found
  1898.       AC_MSG_RESULT(no)
  1899.       AC_MSG_ERROR([cannot cd to ${with_toolame_tree}])
  1900.     fi
  1901.     if test -f "${real_toolame_tree}/libtoolame/libtoolame.a"
  1902.     then
  1903.       dnl  Use a custom toolame
  1904.       AC_MSG_RESULT(${real_toolame_tree}/libtoolame/libtoolame.a)
  1905.       VLC_ADD_BUILTINS([toolame])
  1906.       VLC_ADD_LDFLAGS([toolame],[${real_faad_tree}/libtoolame/libtoolame.a])
  1907.       VLC_ADD_CPPFLAGS([toolame],[-I${real_toolame_tree}/libtoolame])
  1908.     else
  1909.       dnl  The given libtoolame wasn't built
  1910.       AC_MSG_RESULT(no)
  1911.       AC_MSG_ERROR([cannot find ${real_toolame_tree}/libtoolame/libtoolame.a, make sure you compiled libtoolame in ${with_toolame_tree}])
  1912.     fi
  1913.   else
  1914.     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_toolame}"
  1915.     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_toolame}"
  1916.     AC_CHECK_HEADERS(toolame.h, ,
  1917.       [ AC_MSG_ERROR([Cannot find development header for libtoolame...]) ])
  1918.     AC_CHECK_LIB(toolame, toolame_init, [
  1919.       VLC_ADD_PLUGINS([toolame])
  1920.       VLC_ADD_LDFLAGS([toolame],[-ltoolame]) ],
  1921.         [ AC_MSG_ERROR([Cannot find libtoolame library...]) ])
  1922.     LDFLAGS="${LDFLAGS_save}"
  1923.     CPPFLAGS="${CPPFLAGS_save}"
  1924.   fi
  1925. fi
  1926. dnl dnl
  1927. dnl dnl  xvid decoder plugin
  1928. dnl dnl
  1929. dnl AC_ARG_ENABLE(xvid,
  1930. dnl [  --enable-xvid           xvid codec (default disabled)])
  1931. dnl if test "${enable_xvid}" = "yes"
  1932. dnl then
  1933. dnl   AC_ARG_WITH(xvid,
  1934. dnl     [    --with-xvid=PATH      path to xvid installation],[],[])
  1935. dnl   if test "${with_xvid}" != "no" -a -n "${with_xvid}"
  1936. dnl   then
  1937. dnl     VLC_ADD_CPPFLAGS([xvid],[-I${with_xvid}/include])
  1938. dnl     VLC_ADD_LDFLAGS([xvid],[-L${with_xvid}/lib])
  1939. dnl   fi
  1940. dnl 
  1941. dnl   AC_ARG_WITH(xvid-tree,
  1942. dnl   [    --with-xvid-tree=PATH xvid tree for static linking])
  1943. dnl   if test -n "${with_xvid_tree}"
  1944. dnl   then
  1945. dnl     AC_MSG_CHECKING(for libxvidcore.a in ${with_xvid_tree})
  1946. dnl     real_xvid_tree="`cd ${with_xvid_tree} 2>/dev/null && pwd`"
  1947. dnl     if test -z "${real_xvid_tree}"
  1948. dnl     then
  1949. dnl       dnl  The given directory can't be found
  1950. dnl       AC_MSG_RESULT(no)
  1951. dnl       AC_MSG_ERROR([cannot cd to ${with_xvid_tree}])
  1952. dnl     fi
  1953. dnl     if test -f "${real_xvid_tree}/build/generic/libxvidcore.a"
  1954. dnl     then
  1955. dnl       dnl  Use a custom xvid
  1956. dnl       AC_MSG_RESULT(${real_xvid_tree}/build/generic/libxvidcore.a)
  1957. dnl       VLC_ADD_BUILTINS([xvid])
  1958. dnl       VLC_ADD_LDFLAGS([xvid],[-L${real_xvid_tree}/build/generic -lxvidcore])
  1959. dnl       VLC_ADD_CPPFLAGS([xvid],[-I${real_xvid_tree}/src])