X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure.ac;h=b4bd31e18a223838092e8e3a6d31eb51c948f2b8;hb=79adc41babc05e9770fb33b2615cea7e5de1ec6c;hp=092cc494fa41ebd625c2c34d94de4c7208ccbf1d;hpb=ce1647fa1324d99f7ff13354f85b3b6fa13a2b2e;p=vlc diff --git a/configure.ac b/configure.ac index 092cc494fa..b4bd31e18a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,11 @@ dnl Autoconf settings for vlc dnl $Id$ - -AC_INIT(vlc,0.8.2-svn) + +AC_INIT(vlc,0.8.4-svn) +VERSION_MAJOR="0" +VERSION_MINOR="8" +VERSION_REVISION="4" +VERSION_EXTRA="svn" CONFIGURE_LINE="$0 $*" CODENAME="Janus" @@ -13,7 +17,7 @@ AC_CANONICAL_SYSTEM dnl XXX: we don't put any flags here, because automake 1.5 doesn't support dnl them. And we need the comma otherwize automake will choke on it. -AM_INIT_AUTOMAKE(vlc,0.8.2-svn) +AM_INIT_AUTOMAKE(vlc,0.8.4-svn) AM_CONFIG_HEADER(config.h) dnl @@ -34,6 +38,7 @@ if test "${CXX}" != ""; then fi AC_PROG_MAKE_SET AC_PROG_INSTALL +AM_PROG_AS dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right dnl now otherwise it might be set in an obscure if statement. @@ -68,7 +73,11 @@ AC_C_INLINE dnl dnl Check for the contrib directory dnl -topdir="`pwd`" +topdir="`dirname $0`" +if test "`echo \"$topdir\" | cut -c 1`" != "/"; then + topdir="`pwd`/$topdir" +fi + if test -d ${topdir}/extras/contrib/lib; then export PATH=${topdir}/extras/contrib/bin:$PATH CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include" @@ -129,7 +138,7 @@ case "${target_os}" in VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation]) VLC_ADD_CFLAGS([libvlc],[-x objective-c]) VLC_ADD_CFLAGS([vlc],[-x objective-c]) - VLC_ADD_LDFLAGS([vlc],[-Wl,-multiply_defined,suppress]) + VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress]) ;; *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*) AC_CHECK_TOOL(WINDRES, windres, :) @@ -157,7 +166,7 @@ case "${target_os}" in CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}" VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows]) VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm]) - 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]) + VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync],[-lws2_32]) fi if test "${SYS}" = "mingwce"; then # add ws2 for closesocket, select, recv @@ -187,7 +196,7 @@ case "${target_os}" in VLC_ADD_CXXFLAGS([beos],[]) VLC_ADD_LDFLAGS([vlc beos],[-lbe]) VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame]) - VLC_ADD_LDFLAGS([access_file access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet]) + VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet]) dnl Ugly check for Zeta if test -f /boot/beos/system/lib/libzeta.so; then @@ -206,7 +215,7 @@ AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce") dnl dnl Gettext stuff dnl -ALL_LINGUAS="bn da de el en_GB es fr hi hu it ja my ne nl no pl ps pt_BR ru sv tet tl" +ALL_LINGUAS="ca da de en_GB es fr it ja nl pt_BR ro ru tr zh_TW" AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then @@ -223,17 +232,11 @@ fi AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes") XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" -AC_ARG_ENABLE(utf8, - [ --enable-utf8 unicode utf8 support (default enabled on darwin/beos/win32)]) -if test "${enable_utf8}" = "yes" || (test "${enable_utf8}" != "no" && (test "${SYS}" = "mingw32" || test "${SYS}" = "beos" || test "${SYS}" = "darwin" ) ) -then - AC_DEFINE(ENABLE_UTF8, 1, - Define if you want utf8 support) -fi - dnl dnl Iconv stuff dnl +AS_IF([test "$am_cv_func_iconv" != "yes"], + [AC_MSG_ERROR([libiconv is needed for VLC to work properly])]) VLC_ADD_CFLAGS([vlc],[${INCICONV}]) VLC_ADD_LDFLAGS([vlc],[${LIBICONV}]) @@ -313,7 +316,7 @@ CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcd dnl Check for system libs needed need_libc=false -AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon) +AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir) dnl Check for usual libc functions AC_CHECK_FUNCS(strdup strndup atof) @@ -391,31 +394,22 @@ if test $ac_cv_struct_sockaddr_storage = no; then AC_DEFINE(ss_family, sa_family) fi -dnl getnameinfo, which implies {get,free}addrinfo, but not gai_strerror, -dnl -lws2_32 required with Mingw32, -lresolv NOT needed on Solaris. -dnl AC_SEARCH_LIBS won't work with Mingw32 -AH_TEMPLATE(HAVE_GETNAMEINFO, - [Define to 1 if you have the `getnameinfo' function.]) -ac_func_getnameinfo_save_LIBS=$LIBS -AS_IF([test "${SYS}" = "mingw32"], - [LIBS="-lws2_32 $LIBS"]) - AC_CACHE_CHECK([for getnameinfo], ac_cv_func_getnameinfo, -[AC_LINK_IFELSE([AC_LANG_PROGRAM([ +dnl getaddrinfo, getnameinfo and gai_strerror check +dnl -lresolv is NOT needed on Solaris +dnl we purposedly make the test fail on Windows +AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror]) +AH_TEMPLATE(HAVE_ADDRINFO, [Define to `1' if defines struct addrinfo.]) +AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],, [#include -#if defined( UNDER_CE ) -# include -#elif defined( WIN32 ) +#if defined( WIN32 ) || defined( UNDER_CE ) +# if defined(UNDER_CE) && defined(sockaddr_storage) +# undef sockaddr_storage +# endif # include +# include #else -# include # include -#endif] -], [[getnameinfo(0,0,0,0,0,0,0);]])], -ac_cv_func_getnameinfo=yes, -ac_cv_func_getnameinfo=no)]) -AS_IF([test $ac_cv_func_getnameinfo = yes], - [AC_DEFINE(HAVE_GETNAMEINFO)]) -LIBS=$ac_func_getnameinfo_save_LIBS +#endif]) dnl Check for va_copy AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy, @@ -463,11 +457,14 @@ AC_CHECK_LIB(m,cos,[ VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm]) ]) AC_CHECK_LIB(m,pow,[ - VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad toolame equalizer vlc freetype],[-lm]) + VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer vlc freetype],[-lm]) ]) AC_CHECK_LIB(m,sqrt,[ VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm]) ]) +AC_CHECK_LIB(mx,sqrtf,[ + VLC_ADD_LDFLAGS([x264],[-lmx]) +]) fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" dnl Check for dynamic plugins @@ -700,12 +697,18 @@ if test "${x_libraries}" = "NONE"; then fi dnl Check for hal -PKG_CHECK_MODULES(HAL, hal >= 0.2.97, - [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library]) - VLC_ADD_PLUGINS([hal]) - VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS]) - VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])], - [AC_MSG_WARN(HAL library not found)]) +AC_ARG_ENABLE(hal, + [ --enable-hal Linux HAL services discovery (default enabled)]) + +if test "${enable_hal}" != "no" +then + PKG_CHECK_MODULES(HAL, hal >= 0.2.97, + [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library]) + VLC_ADD_PLUGINS([hal]) + VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS]) + VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])], + [AC_MSG_WARN(HAL library not found)]) +fi dnl Build the gtk_main plugins? NEED_GTK_MAIN=no @@ -873,7 +876,10 @@ AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic], [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic" AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)]) if test "${ac_cv_ld_darwin}" != "no"; then - VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error -lcc_dynamic]) + VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error]) + AC_CHECK_LIB(cc_dynamic, main,[ + VLC_ADD_LDFLAGS([plugin],[-lcc_dynamic]) + ]) fi dnl Check for standard plugin linking flags @@ -969,24 +975,30 @@ dnl dnl default modules dnl VLC_ADD_PLUGINS([dummy logger memcpy]) -VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf aac mp4 rawdv nsv real aiff mjpeg demuxdump]) -VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak]) -VLC_ADD_PLUGINS([deinterlace invert adjust wall transform distort clone crop motionblur motiondetect]) -VLC_ADD_PLUGINS([float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 s16tofixed32 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32 audio_format]) -VLC_ADD_PLUGINS([trivial_resampler ugly_resampler linear_resampler bandlimited_resampler]) -VLC_ADD_PLUGINS([trivial_channel_mixer simple_channel_mixer headphone_channel_mixer normvol]) -VLC_ADD_PLUGINS([trivial_mixer spdif_mixer float32_mixer]) -VLC_ADD_PLUGINS([aout_file equalizer]) -VLC_ADD_PLUGINS([i420_rgb i420_yuy2 i422_yuy2 i420_ymga]) -VLC_ADD_PLUGINS([id3 playlist export sgimb m3u xtag]) -VLC_ADD_PLUGINS([rawvideo blend scale image logo]) -VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au]) -VLC_ADD_PLUGINS([access_file access_udp access_tcp access_http access_mms]) -VLC_ADD_PLUGINS([access_ftp ipv4]) +VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac]) +VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec]) +VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32]) +VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32]) +VLC_ADD_PLUGINS([trivial_resampler ugly_resampler]) +VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer]) +VLC_ADD_PLUGINS([playlist export sgimb m3u xtag]) +VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo]) +VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv]) +VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp]) +VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4]) +VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264]) +VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio]) if test "${SYS}" != "mingwce"; then - VLC_ADD_PLUGINS([access_directory sap http]) - VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq]) +dnl VLC_ADD_PLUGINS([externrun]) + VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record]) + VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout fake]) + VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop]) + VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga]) + VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler]) + VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer]) + VLC_ADD_PLUGINS([headphone_channel_mixer normvol equalizer]) + VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format]) fi dnl @@ -1005,8 +1017,10 @@ dnl if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then VLC_ADD_PLUGINS([screensaver]) elif test "${SYS}" != "mingwce"; then - VLC_ADD_PLUGINS([ntservice smb dmo]) + VLC_ADD_PLUGINS([ntservice access_smb dmo]) VLC_ADD_LDFLAGS([dmo],[-lole32]) +else + VLC_ADD_PLUGINS([win32text]) fi dnl @@ -1142,30 +1156,50 @@ dnl Special arch tuning dnl AC_ARG_WITH(tuning, [ --with-tuning=ARCH enable special tuning for an architecture - (default i686 on IA-32 and 750 on PPC)]) + (default Pentium 2 on IA-32 and 750 on PPC)]) if test -n "${with_tuning}"; then - if test "${target_cpu}" = "powerpc"; then - CFLAGS_TUNING="-mtune=${with_tuning}" - else - CFLAGS_TUNING="-mcpu=${with_tuning}" - fi + CFLAGS_TUNING="-mtune=${with_tuning}" else if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then - CFLAGS_TUNING="-mcpu=pentiumpro" - else - if test "${target_cpu}" = "powerpc"; then CFLAGS_TUNING="-mtune=750"; fi + CFLAGS_TUNING="-mtune=pentium2" + elif test "${target_cpu}" = "x86_64"; then + CFLAGS_TUNING="-mtune=athlon64" + elif test "${target_cpu}" = "powerpc"; then + CFLAGS_TUNING="-mtune=750"; fi + + dnl NOTE: this can't be cached cleanly + AS_IF([test "${CFLAGS_TUNING}"], + [CFLAGS_save="${CFLAGS}" + CFLAGS="${CFLAGS} ${CFLAGS_TUNING}" + + AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}]) + AC_COMPILE_IFELSE([ ], [tuning="yes"], + [CFLAGS_TUNING=""; tuning="no"]) + + AC_MSG_RESULT([$tuning]) + CFLAGS="${CFLAGS_save}" + ]) fi dnl dnl x86 accelerations dnl -if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" +if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64" then ARCH="${ARCH} mmx" VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi +dnl +dnl Memory usage +dnl +AC_ARG_ENABLE(optimize-memory, +[ --enable-optimize-memory optimize memory usage over performance]) +if test "${enable_optimize_memory}" = "yes"; then + AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance) +fi + dnl dnl Enable/disable optimizations dnl @@ -1206,12 +1240,10 @@ if test "${enable_sout}" != "no" then VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http]) VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg]) - VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264]) - VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio]) VLC_ADD_PLUGINS([packetizer_copy]) VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp]) - VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode]) + VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge]) # VLC_ADD_PLUGINS([stream_out_transrate]) AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support) @@ -1224,6 +1256,7 @@ AC_ARG_ENABLE(httpd, [ --enable-httpd HTTP daemon (default enabled)]) if test "${enable_httpd}" != "no" then + VLC_ADD_PLUGINS([http]) AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support) fi @@ -1241,8 +1274,33 @@ dnl dnl TLS/SSL dnl AC_ARG_ENABLE(gnutls, - [ --enable-gnutls gnutls TLS/SSL support (default disabled)]) -AS_IF([test "${enable_gnutls}" == "yes"], VLC_ADD_PLUGINS([gnutls])) + [ --enable-gnutls gnutls TLS/SSL support (default enabled)]) +AS_IF([test "${enable_gnutls}" != "no"], [ + + gcrypt_LIBS="-lgpg-error" + AS_IF([test "${SYS}" = "mingw32"], + [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32" + VLC_ADD_LDFLAGS([gnutls],[-lws2_32])] + ) + + gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}" + + AC_CHECK_HEADER(gcrypt.h, + [AC_CHECK_LIB(gcrypt, gcry_control, + [AC_CHECK_HEADER(gnutls/gnutls.h, + [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2, + [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],, + ${gcrypt_LIBS})]) + + AS_IF([test "${have_gnutls}" = "yes"], [ + VLC_ADD_PLUGINS([gnutls]) + VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}]) + ], [ + AS_IF([test "${enable_gnutls}" = "yes"], [ + AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])] + )] + )] +) dnl @@ -1432,7 +1490,7 @@ then AC_CHECK_HEADERS(dshow.h, [ VLC_ADD_PLUGINS([dshow]) VLC_ADD_CXXFLAGS([dshow],[]) - VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32]) ]) + VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ]) fi fi @@ -1440,7 +1498,7 @@ dnl dnl libsmbclient plugin dnl AC_ARG_ENABLE(smb, - [ --enable-smb smb input module (default enabled)]) + [ --enable-smb smb input module (default enabled)]) if test "${enable_smb}" != "no"; then AC_CHECK_HEADERS(libsmbclient.h, [ VLC_ADD_PLUGINS([access_smb]) @@ -1524,7 +1582,7 @@ then AC_CHECK_HEADERS([dvbpsi/dr.h],[ VLC_ADD_PLUGINS([ts]) if test "${enable_sout}" != "no"; then - VLC_ADD_BUILTINS([mux_ts]) + VLC_ADD_PLUGINS([mux_ts]) fi VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}]) VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi]) @@ -1571,38 +1629,51 @@ then VLC_ADD_PLUGINS([pvr]) fi +dnl Need to test libcdio and libvcdinfo for a number of things. Do it now. +AC_ARG_ENABLE(libcdio, + [ --enable-libcdio CD input and control library support (default enabled)]) + +have_libcdio=no +have_libvcdinfo=no +if test "${enable_libcdio}" != "no" +then + PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72, + have_libcdio=yes + AC_DEFINE(HAVE_LIBCDIO, [], + [Define if you have libcdio 0.72 or greater installed]), + [AC_MSG_WARN(CD Reading and information library not found)]) + + PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21, + [have_libvcdinfo=yes + AC_DEFINE(HAVE_VCDINFO, [], + [Define if you have libvcdinfo 0.7.21 or greater installed])], + [AC_MSG_WARN(VCD information library not found)]) +fi + dnl dnl VCDX and CDDAX modules dnl -AC_ARG_ENABLE(libcdio, - [ --enable-libcdio CDDA support via libcdio (default enabled)]) +AC_ARG_ENABLE(cddax, + [ --enable-cddax audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)]) AC_ARG_ENABLE(libcddb, - [ --enable-libcddb CDDB support for CDDAX (default enabled)]) - -AC_ARG_ENABLE(vcdx, - [ --enable-vcdx VCD support with Navigation (default disabled)]) - -AC_ARG_ENABLE(cdda, - [ --enable-cdda CDDA plugin support (default enabled)]) - -AC_ARG_ENABLE(cddax, - [ --enable-cddax CDDA plugin with CD Text and possibly CDDB and paranoia support (default disabled)]) + [ --enable-libcddb CDDB support for libcdio audio CD (default enabled)]) if test "${enable_cddax}" = "yes" then - PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71, - [ - AC_DEFINE(HAVE_CDDAX, [], [Define for the CD-DA plugin using libcdio]) + if test "$have_libcdio" = "yes" + then + AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio]) VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS]) VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS]) - VLC_ADD_PLUGINS([cddax])], - [AC_MSG_WARN(libcdio library not found) - HAVE_CDDAX=no]) - - PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [ - VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])], - HAVE_CDDAX=no) + VLC_ADD_PLUGINS([cddax]) + PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [ + VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])], + AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found])) + else + AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled]) + HAVE_CDDAX=no + fi if test "$enable_libcddb" != "no"; then PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [ @@ -1617,29 +1688,47 @@ then fi +AC_ARG_ENABLE(vcdx, + [ --enable-vcdx VCD with navigation via libvcdinfo (default disabled)]) + if test "${enable_vcdx}" = "yes" then - PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71, - [VLC_ADD_LDFLAGS([vcdx],[$LIBCDIO_LIBS]) - VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])], - [AC_MSG_WARN(libcdio library not found) + if test "${have_libvcdinfo}" = "yes" + then + VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS]) + VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS]) + else + AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled]) + HAVE_VCDX=no + fi + + PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72, + [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS]) + VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])], + [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found]) HAVE_VCDX=no]) - PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21, - [AC_DEFINE(HAVE_VCDX, [], + if test "$have_libvcdinfo" = "yes" + then + AC_DEFINE(HAVE_VCDX, [], [Define for the VCD plugin using libcdio/libvcdinfo]) VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS]) VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS]) - VLC_ADD_PLUGINS([vcdx])], - [AC_MSG_WARN(vcdinfo library not found) - HAVE_VCDX=no]) + VLC_ADD_PLUGINS([vcdx]) + else + AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found]) + HAVE_VCDX=no + fi fi dnl -dnl VCD module +dnl Built-in CD-DA and VCD module dnl +AC_ARG_ENABLE(cdda, + [ --enable-cdda audio CD via built-in VCD (default enabled)]) + AC_ARG_ENABLE(vcd, - [ --enable-vcd VCD support for Linux, FreeBSD, MacOS X and Win32 (default enabled)]) + [ --enable-vcd built-in VCD (default enabled)]) if test "${enable_vcd}" != "no" then @@ -1677,22 +1766,11 @@ then if test "${SYS}" = "darwin" then VLC_ADD_PLUGINS([vcd cdda]) - VLC_ADD_LDFLAGS([vcd vcdx cdda],[-framework IOKit -framework CoreFoundation]) + VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation]) + VLC_ADD_LDFLAGS([vcdx cddax],[-liconv]) fi fi -dnl -dnl Satellite input module -dnl -AC_ARG_ENABLE(satellite, - [ --enable-satellite satellite card support (default disabled)], - [ if test "${enable_satellite}" = "yes" - then - AC_DEFINE(HAVE_SATELLITE, [], - [Define for the VCD plugin using libcdio/libvcdinfo]) - VLC_ADD_PLUGINS([satellite]) - fi]) - dnl dnl DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2 dnl @@ -1709,7 +1787,12 @@ then fi CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include" AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [ - VLC_ADD_PLUGINS([dvb]) + if test -z "${with_dvbpsi_tree}" + then + VLC_ADD_PLUGINS([dvb]) + else + VLC_ADD_BUILTINS([dvb]) + fi ],[]) CPPFLAGS="${CPPFLAGS_save}" fi @@ -1748,21 +1831,24 @@ fi dnl dnl ipv6 plugin - not for QNX yet dnl +have_ipv6=no +AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[ + AC_CHECK_LIB(resolv,inet_pton, + [have_ipv6=yes + VLC_ADD_LDFLAGS([ipv6],[-lresolv])]) +]) + +AS_IF([test "${have_ipv6}" == "yes"], [ + AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])]) + if test "${SYS}" != "nto" && test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" then - have_ipv6=false - AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[ - AC_CHECK_LIB(resolv,inet_pton, - [have_ipv6=: - VLC_ADD_LDFLAGS([ipv6],[-lresolv])]) - ]) AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h) AC_EGREP_HEADER(sockaddr_in6,netinet/in.h, - [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) have_ipv6=false]) - if ${have_ipv6}; then - VLC_ADD_PLUGINS([ipv6]) - fi + [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no]) + AS_IF([test "${have_ipv6}" != "no"], [ + VLC_ADD_PLUGINS([ipv6])]) fi if test "${SYS}" = "mingw32" then @@ -1817,6 +1903,9 @@ if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then [AC_MSG_RESULT([yes]) AC_CHECK_HEADERS(matroska/KaxAttachments.h) VLC_ADD_CXXFLAGS([mkv],[]) + if test "${SYS}" = "darwin"; then + VLC_ADD_CXXFLAGS([mkv],[-O1]) + fi AC_CHECK_LIB(ebml_pic, main, [ # We have ebml_pic, that's good, we can build an mkv.so plugin ! VLC_ADD_PLUGINS([mkv]) @@ -1933,21 +2022,27 @@ AC_ARG_ENABLE(ffmpeg, [ --enable-ffmpeg ffmpeg codec (default enabled)]) if test "${enable_ffmpeg}" != "no" then - FFMPEG_PATH="${PATH}" - AC_ARG_WITH(ffmpeg-config-path, - [ --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)], - [ if test "${with_ffmpeg_config_path}" != "no" - then - FFMPEG_PATH="${with_ffmpeg_config_path}:${PATH}" - fi ]) - AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH}) - if test "${FFMPEG_CONFIG}" != "no" - then - AC_CHECK_HEADERS(ffmpeg/avcodec.h) - AC_CHECK_HEADERS(postproc/postprocess.h) - VLC_ADD_PLUGINS([ffmpeg]) - VLC_ADD_CFLAGS([ffmpeg],[`${FFMPEG_CONFIG} --cflags`]) - VLC_ADD_LDFLAGS([ffmpeg],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`]) +dnl Look for a ffmpeg-config (we are on debian ) + + FFMPEG_PATH="${PATH}" + AC_ARG_WITH(ffmpeg-config-path, + [ --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)], + [ if test "${with_ffmpeg_config_path}" != "no" + then + FFMPEG_PATH="${with_ffmpeg_config_path}" + fi ]) + AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH}) + if test "${FFMPEG_CONFIG}" != "no" + then + AC_CHECK_HEADERS(ffmpeg/avcodec.h) + AC_CHECK_HEADERS(postproc/postprocess.h) + VLC_ADD_PLUGINS([ffmpeg]) + if test "${enable_sout}" != "no"; then + VLC_ADD_PLUGINS([stream_out_switcher]) + fi + VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`]) + VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`]) + else AC_ARG_WITH(ffmpeg-mp3lame, [ --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support], @@ -1980,10 +2075,18 @@ then LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}" AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] ) AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] ) + + AC_CHECK_LIB(avutil, av_add_i, [ + VLC_ADD_LDFLAGS([ffmpeg],[-lavutil]) + LDAVUTIL="-lavutil"]) + AC_CHECK_LIB(avcodec, avcodec_init, [ VLC_ADD_BUILTINS([ffmpeg]) - VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])], - [ 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.]) ]) + VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec]) + if test "${enable_sout}" != "no"; then + VLC_ADD_BUILTINS([stream_out_switcher]) + fi], + [ 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.]) ], [$LDAVUTIL]) AC_CHECK_LIB(avformat, av_open_input_stream, [ AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.]) @@ -2047,13 +2150,22 @@ then fi VLC_ADD_BUILTINS([ffmpeg]) + if test "${enable_sout}" != "no"; then + VLC_ADD_BUILTINS([stream_out_switcher]) + fi + + if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then + VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a]) + VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil]) + fi + VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a]) - VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavcodec]) + VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec]) if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.]) VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a]) - VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat]) + VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat]) fi fi fi @@ -2096,6 +2208,8 @@ then VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz]) VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat]) fi + VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec]) + VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat]) fi fi @@ -2148,46 +2262,46 @@ then fi dnl -dnl toolame encoder plugin +dnl twolame encoder plugin dnl -AC_ARG_ENABLE(toolame, -[ --enable-toolame toolame codec (default disabled)]) -if test "${enable_toolame}" = "yes" +AC_ARG_ENABLE(twolame, +[ --enable-twolame twolame codec (default disabled)]) +if test "${enable_twolame}" = "yes" then - AC_ARG_WITH(toolame-tree, - [ --with-toolame-tree=PATH toolame tree for static linking]) - if test -n "${with_toolame_tree}" + AC_ARG_WITH(twolame-tree, + [ --with-twolame-tree=PATH twolame tree for static linking]) + if test -n "${with_twolame_tree}" then - AC_MSG_CHECKING(for libtoolame.a in ${with_toolame_tree}) - real_toolame_tree="`cd ${with_toolame_tree} 2>/dev/null && pwd`" - if test -z "${real_toolame_tree}" + AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree}) + real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`" + if test -z "${real_twolame_tree}" then dnl The given directory can't be found AC_MSG_RESULT(no) - AC_MSG_ERROR([cannot cd to ${with_toolame_tree}]) + AC_MSG_ERROR([cannot cd to ${with_twolame_tree}]) fi - if test -f "${real_toolame_tree}/libtoolame/libtoolame.a" + if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a" then - dnl Use a custom toolame - AC_MSG_RESULT(${real_toolame_tree}/libtoolame/libtoolame.a) - VLC_ADD_BUILTINS([toolame]) - VLC_ADD_LDFLAGS([toolame],[${real_faad_tree}/libtoolame/libtoolame.a]) - VLC_ADD_CPPFLAGS([toolame],[-I${real_toolame_tree}/libtoolame]) + dnl Use a custom twolame + AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a) + VLC_ADD_BUILTINS([twolame]) + VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a]) + VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame]) else - dnl The given libtoolame wasn't built + dnl The given libtwolame wasn't built AC_MSG_RESULT(no) - AC_MSG_ERROR([cannot find ${real_toolame_tree}/libtoolame/libtoolame.a, make sure you compiled libtoolame in ${with_toolame_tree}]) + AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}]) fi else - CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_toolame}" - LDFLAGS="${LDFLAGS_save} ${LDFLAGS_toolame}" - AC_CHECK_HEADERS(toolame.h, , - [ AC_MSG_ERROR([Cannot find development header for libtoolame...]) ]) - AC_CHECK_LIB(toolame, toolame_init, [ - VLC_ADD_PLUGINS([toolame]) - VLC_ADD_LDFLAGS([toolame],[-ltoolame]) ], - [ AC_MSG_ERROR([Cannot find libtoolame library...]) ]) - LDFLAGS="${LDFLAGS_save}" + CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}" + LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}" + AC_CHECK_HEADERS(twolame.h, , + [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ]) + AC_CHECK_LIB(twolame, twolame_init, [ + VLC_ADD_PLUGINS([twolame]) + VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ], + [ AC_MSG_ERROR([Cannot find libtwolame library...]) ]) + LDFLAGS="${LDFLAGS_save}" CPPFLAGS="${CPPFLAGS_save}" fi fi @@ -2300,6 +2414,11 @@ then fi fi +AC_ARG_WITH(a52-fixed, + [ --with-a52-fixed specify if liba52 has been compiled with fixed point support], + [ + VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ]) + dnl dnl DTS Coherent Acoustics decoder plugin dnl @@ -2375,7 +2494,6 @@ AC_ARG_ENABLE(flac, if test "${enable_flac}" = "yes" then AC_CHECK_HEADERS(FLAC/stream_decoder.h, [ - VLC_ADD_PLUGINS([flac flacdec]) VLC_ADD_LDFLAGS([flacdec],[-lFLAC]) ],[]) fi @@ -2403,7 +2521,7 @@ then then dnl Use a custom libmpeg2 AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a) - VLC_ADD_PLUGINS([libmpeg2]) + VLC_ADD_BUILTINS([libmpeg2]) VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2]) VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include]) eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`" @@ -2469,7 +2587,7 @@ AC_ARG_ENABLE(speex, if test "${enable_speex}" != "no" then AC_CHECK_HEADERS(speex/speex.h, [ - LDFLAGS="${LDFLAGS_save} ${LDFLAGS_toolame}" + LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}" AC_CHECK_LIB(speex, speex_decode_int, [ VLC_ADD_PLUGINS([speex]) VLC_ADD_LDFLAGS([speex],[-lspeex]) ], @@ -2556,6 +2674,7 @@ AC_CHECK_HEADERS(png.h, [ AC_CHECK_LIB(png, png_set_rows, [ VLC_ADD_LDFLAGS([png],[-lpng -lz]) VLC_ADD_PLUGINS([png]) + VLC_ADD_PLUGINS([osdmenu]) AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])], [],[-lz]) LDFLAGS="${LDFLAGS_save}" @@ -2794,16 +2913,19 @@ then AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH}) SDL_CONFIG="${SDL12_CONFIG}" SDL_HEADER="SDL12/SDL.h" + SDL_IMAGE="SDL12/SDL_image.h" if test "${SDL_CONFIG}" = "no" then AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH}) SDL_CONFIG=${SDL11_CONFIG} SDL_HEADER="SDL11/SDL.h" + SDL_IMAGE="SDL11/SDL_image.h" fi if test "${SDL_CONFIG}" = "no" then AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH}) SDL_HEADER="SDL/SDL.h" + SDL_IMAGE="SDL/SDL_image.h" fi # check for cross-compiling SDL_PREFIX= @@ -2817,9 +2939,12 @@ then fi if test "${SDL_CONFIG}" != "no" then - VLC_ADD_PLUGINS([vout_sdl aout_sdl]) - VLC_ADD_CFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`]) - VLC_ADD_LDFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`]) + # SDL on Darwin is heavily patched and can only run SDL_image + if test "${SYS}" != "darwin"; then + VLC_ADD_PLUGINS([vout_sdl aout_sdl]) + fi + VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`]) + VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`]) CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}" AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE, <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h), @@ -2829,6 +2954,15 @@ then Please install it and try again. Alternatively you can also configure with --disable-sdl.]) ])]) + AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE, + <${SDL_IMAGE}>, Indicate the path of SDL_image.h) + VLC_ADD_PLUGINS([sdl_image]) + VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])], + [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, , + As a last resort we also test for SDL_image.h presence), + [ AC_MSG_WARN([The development package for SDL_image is not installed. +You should install it alongside your SDL package.]) + ])]) CPPFLAGS="${CPPFLAGS_save}" if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null then @@ -2891,7 +3025,9 @@ from http://www.freetype.org/, or configure with --disable-freetype. Have a nice if test "${FRIBIDI_CONFIG}" != "no" then VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI]) + VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI]) VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`]) + VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`]) fi fi fi @@ -3262,25 +3398,25 @@ dnl dnl ALSA module dnl AC_ARG_ENABLE(alsa, - [ --enable-alsa ALSA sound support for Linux (default enabled)], - [if test "${enable_alsa}" != "no" - then - AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false") - if test "${have_alsa}" = "true" - then - AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API - #define ALSA_PCM_NEW_SW_PARAMS_API - #include ], - [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }], - AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4)) - VLC_ADD_PLUGINS([alsa]) - VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl]) - else - if test "${enable_alsa}" = "yes"; then - AC_MSG_ERROR([Could not find ALSA development headers]) - fi - fi - fi]) + [ --enable-alsa ALSA sound support for Linux (default enabled)]) +if test "${enable_alsa}" != "no" +then + AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false") + if test "${have_alsa}" = "true" + then + AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API + #define ALSA_PCM_NEW_SW_PARAMS_API + #include ], + [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }], + AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4)) + VLC_ADD_PLUGINS([alsa]) + VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl]) + else + if test "${enable_alsa}" = "yes"; then + AC_MSG_ERROR([Could not find ALSA development headers]) + fi + fi +fi dnl dnl win32 waveOut plugin @@ -3306,14 +3442,8 @@ if test "${enable_coreaudio}" != "no" && (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes") then AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, - [ VLC_ADD_BUILTINS([coreaudio]) - VLC_ADD_LDFLAGS([coreaudio],[-framework CoreAudio]) - AC_MSG_CHECKING(for kAudioConverterPrimeMethod in AudioToolbox/AudioConverter.h) - AC_EGREP_HEADER(kAudioConverterPrimeMethod,AudioToolbox/AudioConverter.h,[ - AC_MSG_RESULT(yes) - VLC_ADD_PLUGINS([coreaudio_resampler]) - VLC_ADD_LDFLAGS([coreaudio_resampler],[-framework AudioToolbox]) - ],[ AC_MSG_RESULT(no) ]) + [ VLC_ADD_BUILTINS([coreaudio auhal]) + VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox]) ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ]) fi @@ -3333,6 +3463,50 @@ then AC_LANG_POP([C++]) fi +dnl +dnl CyberLink for C++ UPnP stack +dnl +AC_ARG_ENABLE(cyberlink, + [ --enable-cyberlink CyberLink for C++ UPnP stack (default disabled)]) +if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then + AC_ARG_WITH(cyberlink-tree, + [ --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking]) + + dnl + dnl test for --with-cyberlink-tree + dnl + if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then + AC_LANG_PUSH(C++) + real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`" + if test -z "${real_cyberlink_tree}" + then + dnl The given directory can't be found + AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}]) + fi + CXXFLAGS_save="${CXXFLAGS}" + CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include" + CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}" + AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h], + [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}]) + VLC_ADD_PLUGINS([upnp]) + ],[ + AC_MSG_ERROR([cannot find CyberLink for C++ headers]) + ]) + AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree}) + if test -f "${real_cyberlink_tree}/lib/unix/libclink.a" + then + AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a) + VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat]) + else + AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}]) + fi + CXXFLAGS="${CXXFLAGS_save}" + AC_LANG_POP([C++]) + fi +fi + dnl dnl Interface plugins dnl @@ -3523,26 +3697,42 @@ dnl fi dnl fi dnl -dnl wxWindows module +dnl wxWidgets module dnl -AC_ARG_ENABLE(wxwindows, - [ --enable-wxwindows wxWindows support (default enabled)]) -if test "${enable_wxwindows}" != "no" +AC_ARG_ENABLE(wxwidgets, + [ --enable-wxwidgets wxWidgets support (default enabled)]) +if test "${enable_wxwindows}" +then + AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.) +fi + +if test "${enable_wxwindows}" = "no" then - WXWINDOWS_PATH="${PATH}" + enable_wxwidgets="no" +fi +if test "${enable_wxwidgets}" != "no" +then + WXWIDGETS_PATH="${PATH}" AC_ARG_WITH(wx-config-path, [ --with-wx-config-path=PATH wx-config path (default search in \$PATH)], [ if test "${with_wx_config_path}" != "no" then - WXWINDOWS_PATH="${with_wx_config_path}:${PATH}" + WXWIDGETS_PATH="${with_wx_config_path}:${PATH}" + fi ]) + WXWIDGETS_NAME="wx-config" + AC_ARG_WITH(wx-config, + [ --with-wx-config=NAME wx-config name (default is wx-config)], + [ if test "${with_wx_config}" != "no" + then + WXWIDGETS_NAME="${with_wx_config}" fi ]) # look for wx-config - AC_PATH_PROG(WX_CONFIG, wx-config, no, ${WXWINDOWS_PATH}) + AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH}) if test "${WX_CONFIG}" != "no" -a "${CXX}" != "" then if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null then - AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.]) + AC_MSG_ERROR([Your development package for wxWidgets is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.]) fi AC_LANG_PUSH(C++) # Turn this error: @@ -3554,20 +3744,36 @@ then AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes, ac_cv_cxx_fpermissive=no)]) if test "${ac_cv_cxx_fpermissive}" = "yes"; then - VLC_ADD_CXXFLAGS([wxwindows],-fpermissive) + VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive) + fi + VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`]) + VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`]) + if test "$have_libcdio" = "yes" + then + VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS]) + VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS]) + else + AC_MSG_WARN([Probe disc disabled because ok libcdio library not found]) fi - VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags`]) - VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`]) + + if test "$have_libvcdinfo" = "yes" + then + VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS]) + VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS]) + else + AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found]) + fi + # now look for the wxprec.h header - CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}" + CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}" ac_cv_wx_headers=yes AC_CHECK_HEADERS(wx/wxprec.h, , [ ac_cv_wx_headers=no - echo "Cannot find wxWindows development headers." + echo "Cannot find wxWidgets development headers." ]) if test "${ac_cv_wx_headers}" = "yes" then - VLC_ADD_PLUGINS([wxwindows]) + VLC_ADD_PLUGINS([wxwidgets]) ALIASES="${ALIASES} wxvlc" fi CPPFLAGS="${CPPFLAGS_save}" @@ -3579,9 +3785,16 @@ dnl dnl WinCE GUI module dnl if test "${SYS}" = "mingwce"; then - VLC_ADD_PLUGINS([wince]) + VLC_ADD_BUILTINS([wince]) VLC_ADD_CXXFLAGS([wince],[]) VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell]) + dnl Gross hack + VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o]) +elif test "${SYS}" = "mingw32"; then + VLC_ADD_CXXFLAGS([wince],[]) + VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32]) + dnl Gross hack + VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o]) fi dnl @@ -3591,7 +3804,7 @@ if test "${enable_skins2}" != "no" then if test "${WX_CONFIG}" = "no" then - AC_MSG_ERROR([The skins2 module depends on the wxWindows development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWindows development package or alternatively you can also configure with: --disable-wxwindows --disable-skins2.]) + AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.]) fi fi @@ -3932,45 +4145,6 @@ AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true") AC_ARG_WITH(,[Misc options:]) -dnl -dnl GnuTLS-based TLS/SSL support -dnl -AC_ARG_WITH(libgnutls-prefix, - [ --with-libgnutls-prefix=PREFIX set prefix where libgnutls is installed], - libgnutls_config_prefix="$withval", libgnutls_config_prefix="") - -AS_IF([test x$libgnutls_config_prefix != x], - AS_IF([test x${LIBGNUTLS_CONFIG+set} != xset], - LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config - ) -) - -if test "x$enable_gnutls" == "xyes"; then - AC_PATH_PROG(LIBGNUTLS_CONFIG, libgnutls-config, no) - no_libgnutls="" - - AC_MSG_CHECKING(for libgnutls - version >= 1.0.0) - AS_IF([test "$LIBGNUTLS_CONFIG" = "no"], - no_libgnutls=yes - , - LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` - LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` - libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` - ) - - AS_IF([test "x$no_libgnutls" = x], - AC_MSG_RESULT(yes) - VLC_ADD_CFLAGS([gnutls], [$LIBGNUTLS_CFLAGS]) - VLC_ADD_LDFLAGS([gnutls], [$LIBGNUTLS_LIBS]) - AC_DEFINE(HAVE_GNUTLS, 1, Define to 1 if you have libgnutls) - , - AC_MSG_RESULT(no) - LIBGNUTLS_CFLAGS="" - LIBGNUTLS_LIBS="" - AC_MSG_ERROR(gnutls TLS/SSL support cannot be compiled) - ) -fi - dnl dnl Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling dnl @@ -4030,6 +4204,21 @@ then AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system) fi +dnl +dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?) +dnl +loader=false +AC_ARG_ENABLE(loader, + [ --enable-loader build DLL loader for ELF i386 platforms (default disabled)]) +AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"]) +AS_IF([test "${enable_loader}" = "yes"], + [ VLC_ADD_PLUGINS([dmo quicktime]) + VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader]) + VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a]) + VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader]) + VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a]) + ]) + dnl dnl Microsoft ActiveX support dnl @@ -4040,10 +4229,10 @@ if test "${enable_activex}" != "no" then if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin" then - AC_CHECK_PROG(MIDL, midl, :) + AC_CHECK_PROGS(MIDL, [midl widl], no) AC_CHECK_HEADERS(ole2.h olectl.h, [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions]) - VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid]) + VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) AC_CHECK_HEADERS(objsafe.h, VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]) ) @@ -4054,7 +4243,7 @@ then fi fi AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)]) -AM_CONDITIONAL(HAS_MIDL_COMPILER, test -n "${MIDL}") +AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no") AM_CONDITIONAL(BUILD_ACTIVEX,${activex}) dnl @@ -4114,6 +4303,12 @@ dnl Not necessarily in ${PATH} if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then XPIDL="/usr/lib/mozilla/xpidl" fi +AS_IF([test "${MOZILLA_CONFIG}"], [ + if test -z "${XPIDL_INCL}"; then + XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \ + `${MOZILLA_CONFIG} --idlflags plugin xpcom java` " + fi +]) AM_CONDITIONAL(BUILD_MOZILLA,${mozilla}) dnl @@ -4207,6 +4402,7 @@ fi dnl Export automake variables if ${plugin_support} then + AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins) for plugin in `echo ${PLUGINS}` do eval "${plugin}_p=yes" @@ -4234,12 +4430,26 @@ dnl dnl Stuff used by the program dnl AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string]) -AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 VideoLAN", [Copyright string]) +AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 the VideoLAN team", [Copyright string]) AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line]) +AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number]) +AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number]) +AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number]) +AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number]) -VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`" -AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions]) -AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions]) +dnl Old definitions for version-dependant plugins +dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`" +dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions]) +dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions]) + +dnl New definitions with value matching 0.8.2 release +AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__0_8_2", [String suffix for module functions]) +AC_DEFINE_UNQUOTED(MODULE_SYMBOL, 0_8_2, [Symbol suffix for module functions]) + +dnl Version number for ActiveX INF +VERSION32="`echo -n ${VERSION} | sed -e 's/@<:@a-z\-@:>@//g' | sed -e 'y/./,/'`" +VERSION32="`echo -n ${VERSION32}',0'`" +AC_SUBST(VERSION32) DATA_PATH="${ac_tool_prefix}/share/vlc" AC_SUBST(DATA_PATH) @@ -4288,11 +4498,13 @@ VLC_OUTPUT_VLC_CONFIG_IN AC_CONFIG_FILES([ Makefile activex/Makefile + activex/axvlc.inf debian/Makefile doc/Makefile intl/Makefile ipkg/Makefile lib/Makefile + loader/Makefile modules/Makefile mozilla/Makefile m4/Makefile @@ -4307,12 +4519,12 @@ AC_CONFIG_FILES([ modules/access/dvb/Makefile modules/access/mms/Makefile modules/access/pvr/Makefile - modules/access/satellite/Makefile modules/access/v4l/Makefile modules/access/cdda/Makefile modules/access/vcd/Makefile modules/access/vcdx/Makefile modules/access/screen/Makefile + modules/access_filter/Makefile modules/access_output/Makefile modules/audio_filter/Makefile modules/audio_filter/channel_mixer/Makefile @@ -4337,14 +4549,10 @@ AC_CONFIG_FILES([ modules/gui/Makefile modules/gui/beos/Makefile modules/gui/pda/Makefile - modules/gui/gtk/Makefile - modules/gui/gtk2/Makefile - modules/gui/kde/Makefile modules/gui/macosx/Makefile modules/gui/qnx/Makefile - modules/gui/qt/Makefile modules/gui/skins2/Makefile - modules/gui/wxwindows/Makefile + modules/gui/wxwidgets/Makefile modules/gui/wince/Makefile modules/misc/Makefile modules/misc/dummy/Makefile @@ -4379,6 +4587,12 @@ AC_OUTPUT ${SHELL} ./config.status --file=vlc-config chmod 0755 vlc-config +dnl echo "Enabled builtin modules :" +dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),' + +dnl echo "Enabled plugin modules :" +dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),' + printf " vlc configuration --------------------