X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure.ac;h=01b2b5f7bedc0acc942a4f1c2e3eac7e2d3e4ec5;hb=9dc29b4fa1e75c0fb0066f540f0ec4210e62335b;hp=0545edfd85d8ced49d47ff9dd11f5fbb936b1efe;hpb=b5b707f0bae7a95f134a3555518525568abfb310;p=vlc diff --git a/configure.ac b/configure.ac index 0545edfd85..01b2b5f7be 100644 --- a/configure.ac +++ b/configure.ac @@ -1,23 +1,21 @@ dnl Autoconf settings for vlc -dnl $Id$ -AC_INIT(vlc,0.8.5-svn) +AC_INIT(vlc,0.9.0-svn) VERSION_MAJOR="0" -VERSION_MINOR="8" -VERSION_REVISION="5" +VERSION_MINOR="9" +VERSION_REVISION="0" VERSION_EXTRA="svn" -CONFIGURE_LINE="$0 $*" -CODENAME="Janus" +CONFIGURE_LINE="$0 $ac_configure_args" +CODENAME="Grishenko" -AC_PREREQ(2.50) +AC_PREREQ(2.59) AC_CONFIG_SRCDIR(src/libvlc.c) AC_CONFIG_AUX_DIR(autotools) -AC_CANONICAL_SYSTEM +AC_CANONICAL_BUILD +AC_CANONICAL_HOST -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.5-svn) +AM_INIT_AUTOMAKE([1.7 check-news dist-bzip2]) AM_CONFIG_HEADER(config.h) dnl Too many people are not aware of maintainer mode: @@ -40,47 +38,29 @@ VLC_SAVE_FLAGS dnl dnl Check for tools dnl -AC_PROG_CC +AC_PROG_CC_C99 +AC_USE_SYSTEM_EXTENSIONS AM_PROG_CC_C_O -AC_PROG_CPP AC_PROG_CXX -eval "${CXX} --version" >/dev/null 2>&1 || CXX="" -if test "${CXX}" != ""; then - AC_PROG_CXXCPP -fi +AC_PROG_CPP +AC_PROG_OBJC +_AM_DEPENDENCIES([OBJC]) +AC_PROG_EGREP 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. -AC_EGREP_CPP(foo,foo) - -dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround -AC_MSG_CHECKING(for an Objective-C compiler) -OBJC="${CXX}" -AC_SUBST(OBJC) -OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString" -AC_SUBST(OBJCFLAGS) -dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here -#OBJCDEPMODE="depmode=gcc3" -#AC_SUBST(OBJCDEPMODE) -_AM_DEPENDENCIES(OBJC) -AC_MSG_RESULT(not implemented yet) - dnl Find the right ranlib, even when cross-compiling AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) AC_CHECK_TOOL(AR, ar, :) AC_CHECK_TOOL(LD, ld, :) - -dnl Sam, if you think I didn't see that... --Meuuh -dnl AM_PROG_LIBTOOL -AC_PROG_INSTALL +AC_CHECK_TOOL(DLLTOOL, dlltool, :) dnl Check for compiler properties AC_C_CONST AC_C_INLINE +AC_C_RESTRICT dnl dnl Check for the contrib directory @@ -88,13 +68,22 @@ dnl AC_ARG_WITH(contrib, [ --without-contrib do not use the libraries in extras/contrib],[],[]) if test "${with_contrib}" != "no"; then - + AC_MSG_CHECKING([for libs in extras/contrib]) topdir="`dirname $0`" if test "`echo \"$topdir\" | cut -c 1`" != "/"; then topdir="`pwd`/$topdir" fi - + if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then + if test "${with_contrib}" = "yes"; then + AC_MSG_RESULT([no]) + AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host]) + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host]) + fi + else if test -d ${topdir}/extras/contrib/lib; then + AC_MSG_RESULT([yes]) export PATH=${topdir}/extras/contrib/bin:$PATH CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include" CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include" @@ -104,15 +93,11 @@ AC_ARG_WITH(contrib, CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include" OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include" OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include" - if test $build = $host -o $PKG_CONFIG_LIBDIR; then + if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH else export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig fi - if test -d ${topdir}/extras/contrib/vlc-lib; then - LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib" - LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib" - fi LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib" LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib" @@ -120,12 +105,21 @@ dnl kludge because only the debian package provides a ffmpeg-config if test -z $with_ffmpeg_config_path; then with_ffmpeg_config_path=${topdir}/extras/contrib/bin; fi - if test -z $with_livedotcom_tree; then - with_livedotcom_tree=${topdir}/extras/contrib/src/live + if test -z $with_live555_tree; then + with_live555_tree=${topdir}/extras/contrib/src/live fi if test -z $with_goom_tree; then with_goom_tree=${topdir}/extras/contrib/src/goom fi + if test -z $with_mozilla_sdk_path; then + with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk + fi + if test -z $with_cyberlink_tree; then + with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc + fi + if test -z $with_libmpeg2_tree; then + with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec + fi if test ".`uname -s`" = ".Darwin"; then export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH @@ -134,6 +128,9 @@ dnl kludge because only the debian package provides a ffmpeg-config export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES fi + else + AC_MSG_RESULT([no]) + fi fi fi dnl @@ -144,7 +141,7 @@ LDFLAGS_vlc="${LDFLAGS}" dnl dnl Check the operating system dnl -case "${target_os}" in +case "${host_os}" in "") SYS=unknown ;; @@ -157,14 +154,14 @@ case "${target_os}" in VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd]) ;; *bsd*) - SYS="${target_os}" + SYS="${host_os}" CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}" - case "${target_os}" in + case "${host_os}" in freebsd*) CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include" CPPFLAGS="${CPPFLAGS_save}" LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib" - LDFLAGS="${LDLFAGS_save}" + LDFLAGS="${LDFLAGS_save}" ;; esac ;; @@ -173,26 +170,26 @@ case "${target_os}" in SYS=darwin CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}" CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}" - OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}" - VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load]) - 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,-m -Wl,-multiply_defined -Wl,suppress]) + OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}" + VLC_ADD_LDFLAGS([libvlc ffmpeg ffmpegaltivec],[-all_load]) + VLC_ADD_LDFLAGS([mkv mp4], [-framework IOKit -framework CoreFoundation]) + VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c]) + VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress]) ;; darwin*) SYS=darwin CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}" CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}" - OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}" + OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}" 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([mkv mp4], [-framework IOKit -framework CoreFoundation]) + VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c]) ;; *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*) AC_CHECK_TOOL(WINDRES, windres, :) + enable_libtool="no" - case "${target_os}" in + case "${host_os}" in *mingw32*) SYS=mingw32 ;; @@ -213,16 +210,16 @@ case "${target_os}" in if test "${SYS}" = "mingw32"; then # add ws2_32 for closesocket, select, recv 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([libvlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows]) VLC_ADD_LDFLAGS([cdda 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 stream_out_rtp vod_rtsp telnet netsync growl],[-lws2_32]) + VLC_ADD_LDFLAGS([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 growl],[-lws2_32]) fi if test "${SYS}" = "mingwce"; then # add ws2 for closesocket, select, recv CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}" - VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)]) - VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup]) - VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2]) + VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)]) + VLC_ADD_LDFLAGS([libvlc vlc],[-lws2 -e WinMainCRTStartup]) + VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2]) fi ;; *nto*) @@ -243,14 +240,16 @@ case "${target_os}" in CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}" CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}" VLC_ADD_CXXFLAGS([beos],[]) - VLC_ADD_LDFLAGS([vlc beos logger],[-lbe]) - VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame]) - + VLC_ADD_LDFLAGS([vlc libvlc logger],[-lbe]) + VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame]) + VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl]) + VLC_ADD_LDFLAGS([access_file],[-lpoll]) + LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}" dnl Check for BONE if test -f /boot/beos/system/lib/libbind.so; then - VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket]) + VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket]) else - VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet]) + VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet]) fi dnl Ugly check for Zeta @@ -259,7 +258,7 @@ case "${target_os}" in fi ;; *) - SYS="${target_os}" + SYS="${host_os}" ;; esac AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos") @@ -267,6 +266,23 @@ AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin") AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32") AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce") +dnl +dnl Libtool +dnl It's very bad, but our former custom system was worst +dnl -- Courmisch +dnl +AC_DISABLE_STATIC +AC_LIBTOOL_DLOPEN +dnl AC_LIBTOOL_WIN32_DLL - couldn't get libtool to work on Win32 so far +m4_undefine([AC_PROG_F77]) +m4_defun([AC_PROG_F77],[]) +AC_PROG_LIBTOOL + +AC_ARG_ENABLE(libtool, + [ --enable-libtool use libtool (default disabled)]) +AM_CONDITIONAL(USE_LIBTOOL, [test "x${enable_libtool}" != "xno"]) + + dnl dnl Check for Mac OS X SDK settings dnl @@ -284,19 +300,26 @@ fi dnl dnl Gettext stuff dnl -ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl oc pt_BR ro ru sv tr zh_CN zh_TW" +ALL_LINGUAS="af ar bn ca co cs da de el en_GB es eu fr fur gl he hi hu it ja ka ko lt lv ms my nb ne nl nn no oc pa pl ps pt_BR pt_PT ro ru sk sl sq sv tet th tl tr zh_CN zh_TW" AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT -if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then - AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl) - INCLUDES="${INCLUDES} -I\$(top_builddir)/intl" - INCLUDED_LIBINTL="${LIBINTL}" -else - VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]) - INCLUDED_LIBINTL= -fi +AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [ + AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl]) + AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl" + AS_IF([test "${enable_libtool}" != "no"], [ + INCLUDED_LIBINTL="${LTLIBINTL}" + ],[ + INCLUDED_LIBINTL="${LIBINTL}" + ]) +], [ + AS_IF([test "${enable_libtool}" != "no"], [ + VLC_ADD_LDFLAGS([libvlc vlc], [${LTLIBINTL}]) + ], [ + VLC_ADD_LDFLAGS([libvlc vlc], [${LIBINTL}]) + ]) +]) AC_SUBST(INCLUDED_LIBINTL) -XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" +XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" dnl dnl Iconv stuff @@ -305,15 +328,19 @@ if test "${SYS}" != "mingwce"; then AS_IF([test "$am_cv_func_iconv" != "yes"], [AC_MSG_ERROR([libiconv is needed for VLC to work properly])]) fi -VLC_ADD_CFLAGS([vlc],[${INCICONV}]) -VLC_ADD_LDFLAGS([vlc],[${LIBICONV}]) +VLC_ADD_CFLAGS([libvlc],[${INCICONV}]) +AS_IF([test "${enable_libtool}" != "no"], [ + VLC_ADD_LDFLAGS([libvlc vlc],[${LIBICONV}]) +],[ + VLC_ADD_LDFLAGS([libvlc vlc],[${LTLIBICONV}]) +]) dnl Check for the need to include the mingwex lib for mingw32 if test "${SYS}" = "mingw32" then AC_CHECK_LIB(mingwex,opendir, - AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]), - [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])]) + AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([libvlc],[]), + [VLC_ADD_LDFLAGS([libvlc gtk],[-lmingwex])]) ) fi @@ -365,6 +392,7 @@ VLC_LIBRARY_SUFFIX VLC_SYMBOL_PREFIX AC_SUBST(SYMPREF) +AS_IF([test "${enable_libtool}" = "no"], [ case "${SYS}" in mingw32|cygwin) VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}]) @@ -380,6 +408,7 @@ case "${SYS}" in VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC]) ;; esac +]) dnl The -DSYS_FOO flag CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}" @@ -387,7 +416,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 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 fork bsearch lstat) +AC_CHECK_FUNCS(gettimeofday 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 fork bsearch lstat strlcpy) dnl Check for usual libc functions AC_CHECK_FUNCS(strdup strndup atof) @@ -413,7 +442,8 @@ fi AC_CHECK_FUNCS(connect,,[ AC_CHECK_LIB(socket,connect,[ - VLC_ADD_LDFLAGS([vlc ipv4 cdda cddax],-lsocket) + VLC_ADD_LDFLAGS([libvlc cdda cddax],-lsocket) + LIBS_socket="-lsocket" ]) ]) @@ -425,10 +455,10 @@ AC_CHECK_FUNCS(send,,[ AC_CHECK_FUNCS(gethostbyname,,[ AC_CHECK_LIB(nsl,gethostbyname,[ - VLC_ADD_LDFLAGS([cdda cddax ipv4 vlc],[-lnsl]) + VLC_ADD_LDFLAGS([cdda cddax libvlc],[-lnsl]) ],[ AC_CHECK_LIB(bind,gethostbyname,[ - VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind]) + VLC_ADD_LDFLAGS([access_mms],[-lbind]) ]) ]) ]) @@ -460,16 +490,25 @@ AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage, #endif], [struct sockaddr_storage addr;], ac_cv_struct_sockaddr_storage=yes, ac_cv_struct_sockaddr_storage=no)]) -if test $ac_cv_struct_sockaddr_storage = no; then +AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [ AC_DEFINE(sockaddr_storage, sockaddr) AC_DEFINE(ss_family, sa_family) -fi +]) dnl getaddrinfo, getnameinfo and gai_strerror check -dnl -lresolv is NOT needed on Solaris +dnl -lnsl and -lsocket are 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.]) +LIBS_save="${LIBS}" +AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.]) +AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}]) + +dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro +dnl are +LIBS="${LIBS_gai}" +AC_CHECK_FUNCS([getnameinfo gai_strerror]) +LIBS="${LIBS_save}" + +AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if defines `struct addrinfo'.]) AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],, [#include #if defined( WIN32 ) || defined( UNDER_CE ) @@ -504,7 +543,7 @@ fi AC_CHECK_FUNCS(inet_aton,,[ AC_CHECK_LIB(resolv,inet_aton,[ - VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv]) + VLC_ADD_LDFLAGS([libvlc],[-lresolv]) ]) ]) @@ -517,7 +556,7 @@ AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)], [ # FreeBSD has a gnugetopt library for this: AC_CHECK_LIB([gnugetopt],[getopt_long], [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) - VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])], + VLC_ADD_LDFLAGS([libvlc],[-lgnugetopt])], [need_getopt=:])]) fi AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt}) @@ -525,13 +564,16 @@ AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt}) if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then AC_TYPE_SIGNAL AC_CHECK_LIB(m,cos,[ - VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm]) + VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise],[-lm]) ]) AC_CHECK_LIB(m,pow,[ - VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc],[-lm]) + VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm]) ]) AC_CHECK_LIB(m,sqrt,[ - VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm]) + VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex mono colorthres],[-lm]) +]) +AC_CHECK_LIB(m,ceil,[ + VLC_ADD_LDFLAGS([mosaic],[-lm]) ]) AC_CHECK_LIB(mx,sqrtf,[ VLC_ADD_LDFLAGS([x264],[-lmx]) @@ -555,7 +597,7 @@ if test "${ac_cv_have_plugins}" = "no"; then [ac_cv_my_have_shl_load=yes, AC_CHECK_LIB(dld, shl_load, [ac_cv_my_have_shl_load=yes - VLC_ADD_LDFLAGS([vlc],[-ldld])])]) + VLC_ADD_LDFLAGS([libvlc],[-ldld])])]) if test "${ac_cv_my_have_shl_load}" = "yes"; then AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API]) ac_cv_have_plugins=yes @@ -565,7 +607,7 @@ fi # Whatever style if test "${ac_cv_have_plugins}" = "no"; then AC_CHECK_LIB(dld, dld_link, - [VLC_ADD_LDFLAGS([vlc],[-ldld]) + [VLC_ADD_LDFLAGS([libvlc],[-ldld]) AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library]) ac_cv_have_plugins=yes]) fi @@ -574,7 +616,7 @@ fi if test "${ac_cv_have_plugins}" = "no"; then if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then AC_CHECK_LIB(kernel32, main, - [VLC_ADD_LDFLAGS([vlc],[-lkernel32]) + [VLC_ADD_LDFLAGS([libvlc],[-lkernel32]) AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary]) ac_cv_have_plugins=yes]) fi @@ -604,10 +646,10 @@ if test "${ac_cv_have_plugins}" = "no"; then ac_cv_my_have_dlopen=yes, AC_CHECK_LIB(dl, dlopen, ac_cv_my_have_dlopen=yes - VLC_ADD_LDFLAGS([vlc],[-ldl]), + VLC_ADD_LDFLAGS([libvlc],[-ldl]), AC_CHECK_LIB(svld, dlopen, ac_cv_my_have_dlopen=yes - VLC_ADD_LDFLAGS([vlc],[-lsvld])))) + VLC_ADD_LDFLAGS([libvlc],[-lsvld])))) if test "${ac_cv_my_have_dlopen}" = "yes"; then AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API]) ac_cv_have_plugins=yes @@ -672,19 +714,24 @@ AC_ARG_ENABLE(st, fi ]) -VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}]) +VLC_ADD_LDFLAGS([libvlc plugin],[${THREAD_LIB}]) dnl Don't link with rt when using GNU-pth if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then - dnl HP/UX port - AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])]) + AC_CHECK_LIB(rt, clock_nanosleep, [ + VLC_ADD_LDFLAGS([libvlc],[-lrt]) + AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.]) + ], [ + dnl HP/UX port + AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([libvlc],[-lrt])]) + ]) have_nanosleep=false AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[ AC_CHECK_LIB(rt,nanosleep, - [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:], + [VLC_ADD_LDFLAGS([libvlc],[-lrt]) have_nanosleep=:], [AC_CHECK_LIB(posix4,nanosleep, - [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])] + [VLC_ADD_LDFLAGS([libvlc],[-lposix4]) have_nanosleep=:])] ) ]) if ${have_nanosleep}; then @@ -728,6 +775,9 @@ fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" AC_HEADER_TIME +AC_CHECK_TYPE(ssize_t, int) +AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])]) + dnl Check for dirent need_dirent=false AC_CHECK_HEADERS(dirent.h,,[need_dirent=:]) @@ -771,25 +821,93 @@ dnl Check for hal AC_ARG_ENABLE(hal, [ --enable-hal Linux HAL services discovery (default enabled)]) -if test "${enable_hal}" != "no" -a "${SYS}" = "linux" +if test "${enable_hal}" != "no" then PKG_CHECK_MODULES(HAL, hal >= 0.5.0, [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API]) 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])], + VLC_ADD_PLUGINS([hal probe_hal]) + VLC_ADD_LDFLAGS([libvlc hal probe_hal],[$HAL_LIBS]) + VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])], dnl No hal 0.5 Test for 0.2 [ 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])], + VLC_ADD_LDFLAGS([libvlc hal],[$HAL_LIBS]) + VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])], [AC_MSG_WARN(HAL library not found)]) ] ) fi +dnl Check for dbus +AC_ARG_ENABLE(dbus, + [ --enable-dbus Linux D-BUS message bus system (default enabled)]) + +if test "${enable_dbus}" != "no" +then + dnl api stable dbus + PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0, + [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] ) + AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] ) + AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] ) + AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] ) + VLC_ADD_LDFLAGS([screensaver libvlc],[$DBUS_LIBS]) + VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS]) + dnl Check for dbus control interface + AC_ARG_ENABLE(dbus-control, [ --enable-dbus-control D-BUS control interface (default disabled)]) + if test "${enable_dbus_control}" = "yes" + then + VLC_ADD_PLUGINS([dbus]) + VLC_ADD_LDFLAGS([dbus],[$DBUS_LIBS]) + VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS]) + fi], + + if ${PKG_CONFIG} --exists dbus-1 + then + [AC_ARG_ENABLE(old-dbus, + [ --enable-old-dbus Deprecated D-Bus support (default disabled)])] + + if test "${enable_old_dbus}" != "yes" + then + echo "" + echo "****** WARNING **** WARNING ***** WARNING *************" + echo "*** Your D-Bus version is < 1.0.0" + echo "*** You are using old and buggy software and so" + echo "*** D-Bus support has been disabled." + echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org" + echo "*** Alternatively you can force the use of your old and" + echo "*** buggy D-Bus version by specifying --enable-old-dbus" + echo "*******************************************************" + echo "" + else + dnl not too old dbus + [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92, + [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] ) + AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] ) + AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] ) + VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS]) + VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])], + dnl older dbus + [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30, + [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] ) + AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] ) + VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS]) + VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])], + dnl much older dbus + [ PKG_CHECK_MODULES( DBUS, dbus-1, + [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library]) + VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS]) + VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])], + [AC_MSG_WARN(DBUS library not found)]) + ] + )] + )] + fi + fi + ) +fi + dnl Build the gtk_main plugins? NEED_GTK_MAIN=no NEED_GNOME_MAIN=no @@ -804,76 +922,28 @@ AC_CACHE_CHECK([for ntohl in sys/param.h], [ac_cv_c_ntohl_sys_param_h], [CFLAGS="${CFLAGS_save} -Wall -Werror" AC_TRY_COMPILE([#include ], - [void foo() { int meuh; ntohl(meuh); }], + [int meuh; ntohl(meuh);], ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)]) if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if defines ntohl.) fi +CFLAGS="${CFLAGS_save}" -# XXX: do this with an M4 macro? -#dnl Check for various -W flags -#for flag in "" all unreachable-code conversion sign-compare disabled-optimization -#do -# AC_CACHE_CHECK([if \$CC accepts -W${flag}], -# [ac_cv_c_W${flag}], -# [CFLAGS="-W${flag} ${CFLAGS_save}" -# AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)]) -# if test "${ac_cv_c_W${flag}}" != "no"; then -# CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}" -# CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}" -# OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}" -# fi -#done - -AC_CACHE_CHECK([if \$CC accepts -Wall], - [ac_cv_c_Wall], - [CFLAGS="-Wall ${CFLAGS_save}" - AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)]) - -AC_CACHE_CHECK([if \$CC accepts -Wconversion], - [ac_cv_c_Wconversion], - [CFLAGS="-Wconversion ${CFLAGS_save}" - AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)]) - -AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code], - [ac_cv_c_Wunreachable_code], - [CFLAGS="-Wunreachable-code ${CFLAGS_save}" - AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)]) - -AC_CACHE_CHECK([if \$CC accepts -Wsign-compare], - [ac_cv_c_Wsign_compare], - [CFLAGS="-Wsign-compare ${CFLAGS_save}" - AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)]) - -if test "${ac_cv_c_Wall}" != "no"; then - CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}" - CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}" - OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}" -fi - -if test "${ac_cv_c_Wsign_compare}" != "no"; then - CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}" - CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}" - OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}" -fi - -dnl Check for -pipe -AC_CACHE_CHECK([if \$CC accepts -pipe], - [ac_cv_c_pipe], - [CFLAGS="${CFLAGS_save} -pipe" - AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)]) -if test "${ac_cv_c_pipe}" != "no"; then - CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}" - CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}" - OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}" -fi +RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings old-style-definition missing-prototypes volatile-register-var]) +RDC_PROG_CC_FLAGS_IFELSE([-pipe]) + +dnl This helps detect broken plugins with undefined symbols +dnl Better fail loudly at build-time than silenty at run-time. +RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [ + VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs]) +]) dnl Check for various optimization flags AC_CACHE_CHECK([if \$CC accepts -Os], [ac_cv_c_os], [CFLAGS="${CFLAGS_save} -Os" AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)]) -if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then +if test "${ac_cv_c_os}" != "no" -a "${host_cpu}" = "mipsel"; then CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os" fi @@ -881,7 +951,7 @@ AC_CACHE_CHECK([if \$CC accepts -O3], [ac_cv_c_o3], [CFLAGS="${CFLAGS_save} -O3" AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)]) -if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then +if test "${ac_cv_c_o3}" != "no" -a "${host_cpu}" != "mipsel"; then CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3" fi @@ -889,7 +959,7 @@ AC_CACHE_CHECK([if \$CC accepts -O2], [ac_cv_c_o2], [CFLAGS="${CFLAGS_save} -O2" AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)]) -if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then +if test "${ac_cv_c_o2}" != "no" -a "${host_cpu}" != "mipsel"; then if test "${ac_cv_c_o3}" = "no"; then CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2" fi @@ -899,7 +969,7 @@ else [ac_cv_c_o], [CFLAGS="${CFLAGS_save} -O" AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)]) - if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then + if test "${ac_cv_c_o}" != "no" -a "${host_cpu}" != "mipsel"; then if test "${ac_cv_c_o3}" = "no"; then CFLAGS_OPTIM="${CFLAGS_OPTIM} -O" fi @@ -945,10 +1015,10 @@ AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic], [ac_cv_c_dynamic_no_pic], [CFLAGS="${CFLAGS_save} -mdynamic-no-pic" AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)]) -if test "${ac_cv_c_dynamic_no_pic}" != "no"; then +AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [ VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic]) VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic]) -fi +]) dnl Check for Darwin plugin linking flags AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error], @@ -961,17 +1031,19 @@ fi dnl Check for standard plugin linking flags dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning) -if test "${SYS}" = "beos"; then - VLC_ADD_LDFLAGS([plugin mozilla],[-nostart]) -else - AC_CACHE_CHECK([if \$CC accepts -shared], - [ac_cv_ld_plugins], - [CFLAGS="${CFLAGS_save} -shared" - AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)]) - if test "${ac_cv_ld_plugins}" != "no"; then - VLC_ADD_LDFLAGS([plugin mozilla],[-shared]) - fi -fi +AS_IF([test "${enable_libtool}" = "no"], [ + AS_IF([test "${SYS}" = "beos"], [ + VLC_ADD_LDFLAGS([plugin mozilla],[-nostart]) + ], [ + AC_CACHE_CHECK([if \$CC accepts -shared], + [ac_cv_ld_plugins], + [CFLAGS="${CFLAGS_save} -shared" + AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)]) + AS_IF([test "${ac_cv_ld_plugins}" != "no"], [ + VLC_ADD_LDFLAGS([plugin mozilla],[-shared]) + ]) + ]) +]) dnl Check for variadic macros AC_CACHE_CHECK([for variadic cpp macros], @@ -1029,12 +1101,12 @@ fi dnl dnl Check the CPU dnl -case "${target_cpu}" in +case "${host_cpu}" in "") ARCH=unknown ;; *) - ARCH="${target_cpu}" + ARCH="${host_cpu}" ;; esac @@ -1052,30 +1124,30 @@ dnl dnl default modules dnl VLC_ADD_PLUGINS([dummy logger memcpy]) -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([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flacsys tta]) +VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flac]) +VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise]) +VLC_ADD_PLUGINS([converter_fixed mono]) VLC_ADD_PLUGINS([trivial_resampler ugly_resampler]) VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer]) -VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag]) -VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify]) +VLC_ADD_PLUGINS([playlist export sgimb nsc xtag]) +VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify puzzle colorthres]) 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([access_http access_mms access_ftp]) VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264]) VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio]) + if test "${SYS}" != "mingwce"; then -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 podcast shout sap fake]) + VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump]) + VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder]) 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([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq]) - VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format]) + VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format]) fi dnl @@ -1092,7 +1164,7 @@ dnl dnl Some plugins aren't useful on some platforms dnl if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then - VLC_ADD_PLUGINS([screensaver]) + VLC_ADD_PLUGINS([screensaver motion]) elif test "${SYS}" != "mingwce"; then VLC_ADD_PLUGINS([ntservice access_smb dmo msn]) VLC_ADD_LDFLAGS([dmo],[-lole32]) @@ -1177,7 +1249,7 @@ AC_CACHE_CHECK([if \$CC groks SSE inline assembly], [CFLAGS="${CFLAGS_save}" AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));], ac_cv_sse_inline=yes, ac_cv_sse_inline=no)]) -if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then +if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.) ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}" fi @@ -1200,7 +1272,7 @@ if test "${ac_cv_altivec_inline}" != "no"; then VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}]) VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}]) VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}]) - VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}]) + VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}]) fi ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}" fi @@ -1219,12 +1291,12 @@ AC_CACHE_CHECK([if \$CC groks AltiVec C extensions], [ac_cv_c_altivec], [# OS X/PPC test (gcc 4.x) CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL" - AC_TRY_COMPILE([], + AC_TRY_COMPILE([vector unsigned char foo;], [vec_ld(0, (unsigned char *)0);], [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"], [# OS X/PPC test (gcc 3.x) CFLAGS="${CFLAGS_save} -faltivec" - AC_TRY_COMPILE([], + AC_TRY_COMPILE([vector unsigned char foo;], [vec_ld(1 * sizeof(vector float), (unsigned char *)0);], [ac_cv_c_altivec="-faltivec"], dnl Below this are the Linux tests @@ -1260,10 +1332,12 @@ CPPFLAGS="${CPPFLAGS_save}" if test "${ac_cv_c_altivec}" != "no"; then AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.) - VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}]) + VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}]) VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}]) VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}]) - ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}" + if test "${ac_cv_altivec_inline}" = "no"; then + ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}" + fi fi AC_CACHE_CHECK([if linker needs -framework vecLib], @@ -1273,7 +1347,7 @@ AC_CACHE_CHECK([if linker needs -framework vecLib], LDFLAGS="${LDFLAGS_save}" ]) if test "${ac_cv_ld_altivec}" != "no"; then - VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib]) + VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib]) fi fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" @@ -1285,18 +1359,20 @@ dnl Special arch tuning dnl AC_ARG_WITH(tuning, [ --with-tuning=ARCH enable special tuning for an architecture - (default Pentium 2 on IA-32 and 750 on PPC)]) + (default Pentium 2 on IA-32 and G4 on PPC)]) if test -n "${with_tuning}"; then if test "${with_tuning}" != "no"; then CFLAGS_TUNING="-mtune=${with_tuning}" fi else - if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then + if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then + CFLAGS_TUNING="-march=pentium-m -mtune=prescott" + elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then CFLAGS_TUNING="-mtune=pentium2" - elif test "${target_cpu}" = "x86_64"; then + elif test "${host_cpu}" = "x86_64"; then CFLAGS_TUNING="-mtune=athlon64" - elif test "${target_cpu}" = "powerpc"; then - CFLAGS_TUNING="-mtune=750"; + elif test "${host_cpu}" = "powerpc"; then + CFLAGS_TUNING="-mtune=G4"; fi fi @@ -1319,7 +1395,7 @@ AS_IF([test "${CFLAGS_TUNING}"], dnl dnl x86 accelerations dnl -if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64" +if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "x86_64" then ARCH="${ARCH} mmx" VLC_ADD_BUILTINS([${ACCEL_MODULES}]) @@ -1348,7 +1424,7 @@ AC_ARG_ENABLE(altivec, [ --disable-altivec disable AltiVec optimizations (default enabled on PPC)], [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec"; VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ], -[ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec"; +[ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec"; VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ]) dnl @@ -1359,7 +1435,7 @@ AC_ARG_ENABLE(debug, test "${enable_debug}" != "yes" && enable_debug="no" AH_TEMPLATE(NDEBUG, [Define to 1 if debug code should NOT be compiled]) -AS_IF([test "x${enable_debug}" == "xno"], [AC_DEFINE(NDEBUG)]) +AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)]) dnl dnl Enable release-specific flags @@ -1371,10 +1447,11 @@ test "${enable_release}" != "yes" && enable_release="no" dnl dnl Is the shared libvlc forced ? dnl -build_pic=no AC_ARG_ENABLE(shared-libvlc, - [ --enable-shared-libvlc shared libvlc (default disabled EXPERIMENTAL)]) - + [ --enable-shared-libvlc Win32 libvlc.dll build (default disabled)]) +AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [ + AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive]) +]) dnl dnl Stream output @@ -1388,12 +1465,17 @@ then VLC_ADD_PLUGINS([packetizer_copy]) VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp]) - VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge]) + VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel]) # VLC_ADD_PLUGINS([stream_out_transrate]) +# VLC_ADD_PLUGINS([rtcp]) + VLC_ADD_PLUGINS([profile_parser]) AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support) fi +AC_ARG_ENABLE(switcher, + [ --enable-switcher Stream-out switcher plugin (default disabled)]) + dnl Check for libshout AC_ARG_ENABLE(shout, [ --enable-shout libshout output plugin (default disabled)]) @@ -1401,8 +1483,8 @@ if test "${enable_shout}" = "yes"; then PKG_CHECK_MODULES(SHOUT, shout >= 2.1, [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library]) VLC_ADD_PLUGINS([access_output_shout]) - VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS]) - VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])], + VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS]) + VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])], [AC_MSG_WARN(libshout library not found)]) fi @@ -1431,44 +1513,66 @@ dnl dnl Growl notification plugin dnl AC_ARG_ENABLE(growl, - [ --enable-growl growl notification plugin (default enabled)]) + [ --enable-growl growl notification plugin (default enabled)]) AS_IF([test "${enable_growl}" != "no"], [ VLC_ADD_PLUGINS([growl]) ] ) +dnl +dnl Libnotify notification plugin +dnl + +AC_ARG_ENABLE(notify, + [ --enable-notify libnotify notification plugin (default enabled)]) +AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [ + PKG_CHECK_MODULES(NOTIFY, libnotify, + [ + VLC_ADD_PLUGINS([notify]) + VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS]) + VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS]) + ],[ + AS_IF([test "${enable_notify}" = "yes"],[ + AC_MSG_WARN( libnotify not found) ]) + ]) + ]) dnl -dnl TLS/SSL +dnl Audioscrobbler plugin dnl -AC_ARG_ENABLE(gnutls, - [ --enable-gnutls gnutls TLS/SSL support (default enabled)]) -AS_IF([test "${enable_gnutls}" != "no"], [ - gcrypt_LIBS="-lgpg-error" - AS_IF([test "${SYS}" = "mingw32"], - [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32" - VLC_ADD_LDFLAGS([gnutls],[-lws2_32])] - ) +AC_ARG_ENABLE(audioscrobbler, + [ --disable-audioscrobbler Last.fm submission plugin (default enabled)]) +AS_IF([test "${enable_audioscrobbler}" != "no"], [ + VLC_ADD_PLUGINS([audioscrobbler]) + ]) - gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}" +dnl +dnl Musicbrainz plugin +dnl +AC_ARG_ENABLE(musicbrainz, + [ --enable-musicbrainz MusicBrainz support (default disabled) ]) + AS_IF([test "${enable_musicbrainz}" = "yes"],[ + PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz, + [ VLC_ADD_PLUGINS([musicbrainz]) + VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) + VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS]) ], + [AC_MSG_WARN(MusicBrainz library not found)]) + ]) - 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 +dnl Taglibplugin +dnl +AC_ARG_ENABLE(taglib, + [ --enable-taglib Taglib support (default disabled) ]) + AS_IF([test "${enable_taglib}" = "yes"],[ + PKG_CHECK_MODULES(TAGLIB, taglib, + [ VLC_ADD_PLUGINS([taglib]) + VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS]) + VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ], + [AC_MSG_WARN(TagLib library not found)]) + ]) dnl @@ -1477,77 +1581,131 @@ dnl AC_ARG_WITH(,[Input plugins:]) -dnl live.com input +dnl live555 input dnl -AC_ARG_ENABLE(livedotcom, -[ --enable-livedotcom live.com RTSP input plugin (default disabled)]) -if test "${enable_livedotcom}" = "yes"; then - AC_ARG_WITH(livedotcom-tree, - [ --with-livedotcom-tree=PATH live.com tree for static linking]) +if test "${enable_livedotcom}" +then + AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.) +fi + +if test "${enable_livedotcom}" = "no" +then + enable_live555="no" +fi +AC_ARG_ENABLE(live555, +[ --enable-live555 live555 RTSP input plugin (default enabled)]) +if test "${enable_live555}" != "no"; then + AC_ARG_WITH(live555-tree, + [ --with-live555-tree=PATH live.com tree for static linking]) dnl - dnl test for --with-livedotcom-tree + dnl test for --with-live555-tree dnl - if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then + if test "${with_livedotcom_tree}" + then + AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.) + with_live555_tree="${with_livedotcom_tree}" + fi + + if test -z "${with_live555_tree}" -a "${CXX}" != ""; then AC_LANG_PUSH(C++) CPPFLAGS_save="${CPPFLAGS}" - CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment" - CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}" + CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment" + if test "${SYS}" = "solaris"; then + CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS" + fi + CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}" AC_CHECK_HEADERS(liveMedia.hh, [ - VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}]) + VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}]) AC_CHECK_LIB(liveMedia_pic, main, [ # We have -lliveMedia_pic, build plugins - VLC_ADD_PLUGINS([livedotcom]) - VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic]) + VLC_ADD_PLUGINS([live555]) + VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic]) ], [ AC_CHECK_LIB(liveMedia, main, [ # We only have -lliveMedia, do builtins - VLC_ADD_BUILTINS([livedotcom]) - VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment]) + VLC_ADD_BUILTINS([live555]) + VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment]) ]) ]) if test "${SYS}" = "mingw32"; then # add ws2_32 for closesocket, select, recv - VLC_ADD_LDFLAGS([livedotcom],[-lws2_32]) + VLC_ADD_LDFLAGS([live555],[-lws2_32]) fi ]) CPPFLAGS="${CPPFLAGS_save}" AC_LANG_POP(C++) else - AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree}) - real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`" - if test -z "${real_livedotcom_tree}"; then + AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree}) + real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`" + if test -z "${real_live555_tree}"; then dnl The given directory can't be found AC_MSG_RESULT(no) - AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}]) + AC_MSG_ERROR([cannot cd to ${with_live555_tree}]) fi - if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then - AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a) + if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then + AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a) - VLC_ADD_BUILTINS([livedotcom]) + VLC_ADD_BUILTINS([live555]) if test "${SYS}" = "mingw32"; then # add ws2_32 for closesocket, select, recv - VLC_ADD_LDFLAGS([livedotcom],[-lws2_32]) + VLC_ADD_LDFLAGS([live555],[-lws2_32]) fi - VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia]) - VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment]) - VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock]) - VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment]) - - VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include]) - VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include]) - VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include]) - VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ]) + VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia]) + VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment]) + VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock]) + VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment]) + + VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include]) + VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include]) + VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include]) + VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ]) + if test "${SYS}" = "solaris"; then + VLC_ADD_CXXFLAGS([live555],[-DSOLARIS]) + fi else - dnl The given live.com wasn't built - AC_MSG_RESULT(no) - AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}]) + dnl The given live555 wasn't built + AC_MSG_RESULT(no) + if test "${enable_live555}" = "yes"; then + AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}]) + fi fi fi fi +dnl +dnl special access module for dc1394 input +dnl +AC_ARG_ENABLE(dc1394, + [ --enable-dc1394 dc1394 access module (default disabled)]) +if test "${enable_dc1394}" = "yes" +then + AC_CHECK_HEADERS(libraw1394/raw1394.h, [ + AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [ + AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [ +dnl AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [ + VLC_ADD_PLUGINS([dc1394]) + VLC_ADD_LDFLAGS([dc1394],[-ldc1394_control -lraw1394]) +dnl ], +dnl [ +dnl AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library]) +dnl ]) + ], + [ + AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library]) + ]) + ], + [ + AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library]) + ]) + ], + [ + AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library]) + ]) +fi + dnl dnl dv module: digital video module check for libraw1394 dnl @@ -1786,6 +1944,45 @@ then fi fi + +dnl +dnl OpenCV wrapper and example filters +dnl +AC_ARG_ENABLE(opencv, + [ --enable-opencv OpenCV (computer vision) filter (default disabled)]) +if test "${enable_opencv}" = "yes" -a "${CXX}" != ""; +then + AC_ARG_WITH(opencv-tree, + [ --with-opencv-tree=PATH opencv tree for linking]) + if test -n "${with_opencv_tree}" + then + if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin" + then + AC_MSG_CHECKING(for opencv in ${with_opencv_tree}) + if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \ + -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h + then + AC_MSG_RESULT(yes) + VLC_ADD_PLUGINS([opencv_wrapper]) + VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui]) + VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui]) + AC_LANG_PUSH(C++) + VLC_ADD_PLUGINS([opencv_example]) + VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui]) + VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui]) + AC_LANG_POP(C++) + else + dnl No opencv could be found, sorry + AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}]) + fi + else + AC_MSG_WARN([--enable-opencv currently only works on windows]) + fi + fi +fi + + dnl dnl libsmbclient plugin dnl @@ -1821,7 +2018,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_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ], [ AC_MSG_WARN([cannot find libdvbpsi headers]) ], @@ -1918,6 +2115,28 @@ then CPPFLAGS="${CPPFLAGS_save}" fi +dnl +dnl Video4Linux plugin +dnl +AC_ARG_ENABLE(v4l2, + [ --enable-v4l2 Video4Linux2 input support (default disabled)]) +if test "${enable_v4l2}" = "yes" +then + AC_ARG_WITH(v4l2, + [ --with-v4l2=PATH path to a v4l2-enabled kernel tree],[],[]) + if test "${with_v4l2}" != "no" -a -n "${with_v4l2}" + then + VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include]) + fi + + CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}" + AC_CHECK_HEADERS(linux/videodev2.h, [ + VLC_ADD_PLUGINS([v4l2]) + ],[]) + CPPFLAGS="${CPPFLAGS_save}" +fi + + dnl dnl special access module for Hauppauge PVR cards dnl @@ -1933,7 +2152,7 @@ dnl gnomeVFS access module dnl AC_ARG_ENABLE(gnomevfs, [ --enable-gnomevfs GnomeVFS access module (default enabled)]) -if test "${enable_gnomevfs}" != "no" -a "${SYS}" = "linux" +if test "${enable_gnomevfs}" != "no" then PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0, VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS]) @@ -1952,16 +2171,16 @@ have_libcdio=no have_libvcdinfo=no if test "${enable_libcdio}" != "no" then - PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72, + PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2, have_libcdio=yes AC_DEFINE(HAVE_LIBCDIO, [], - [Define if you have libcdio 0.72 or greater installed]), + [Define if you have libcdio 0.78.2 or greater installed]), [AC_MSG_WARN(CD Reading and information library not found)]) - PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21, + PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22, [have_libvcdinfo=yes AC_DEFINE(HAVE_VCDINFO, [], - [Define if you have libvcdinfo 0.7.21 or greater installed])], + [Define if you have libvcdinfo 0.7.22 or greater installed])], [AC_MSG_WARN(VCD information library not found)]) fi @@ -2159,30 +2378,12 @@ 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 vlc],[-lresolv])]) + AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes]) ]) 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 - AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h) - AC_EGREP_HEADER(sockaddr_in6,netinet/in.h, - [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no]) - AS_IF([test "${have_ipv6}" != "no"], [ - VLC_ADD_PLUGINS([ipv6])]) -fi -if test "${SYS}" = "mingw32" -then - AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h) - AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes) - VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)]) -fi - dnl dnl ogg demux plugin dnl @@ -2247,7 +2448,7 @@ if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then #endif], [AC_MSG_RESULT([yes]) AC_CHECK_HEADERS(matroska/KaxVersion.h, [ - AC_MSG_CHECKING(for libmatroska version >= 0.7.5) + AC_MSG_CHECKING(for libmatroska version >= 0.7.7) AC_EGREP_CPP(yes, [#include #ifdef LIBMATROSKA_VERSION @@ -2262,16 +2463,14 @@ if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then VLC_ADD_CXXFLAGS([mkv],[-O1]) fi AC_CHECK_LIB(ebml_pic, main, [ - # We have ebml_pic, that's good, we can build an mkv.so plugin ! VLC_ADD_PLUGINS([mkv]) - VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic]) - ], [ + VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml_pic]) + ], AC_CHECK_LIB(ebml, main, [ - # We only have libebml, make mkv.a a builtin - VLC_ADD_BUILTINS([mkv]) + VLC_ADD_PLUGINS([mkv]) VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml]) - ]) - ]) + ]) + ) ], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.]) @@ -2309,8 +2508,8 @@ then dnl Use a custom mod AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a) VLC_ADD_PLUGINS([mod]) - VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a]) - VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include]) + VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++]) + VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include]) else dnl The given mod wasn't built AC_MSG_RESULT(no) @@ -2320,7 +2519,7 @@ then AC_CHECK_HEADERS(libmodplug/modplug.h, [ VLC_ADD_PLUGINS([mod]) VLC_ADD_CXXFLAGS([mod],[]) - VLC_ADD_LDFLAGS([mod],[-lmodplug])]) + VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])]) fi fi @@ -2336,6 +2535,43 @@ then VLC_ADD_LDFLAGS([mpc],[-lmpcdec])]) fi +dnl +dnl game music emu demux plugin +dnl +AC_ARG_ENABLE(gme, + [ --enable-gme Game Music Emu demux support (default enabled)]) +if test "${enable_gme}" != "no" -a "${CXX}" != ""; +then + AC_LANG_PUSH(C++) + AC_ARG_WITH(gme-tree, + [ --with-gme-tree=PATH gme tree for static linking]) + if test -n "${with_gme_tree}" + then + AC_MSG_CHECKING(for libgme.a in ${with_mod_tree}) + real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`" + if test -z "${real_gme_tree}" + then + dnl The given directory can't be found + AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot cd to ${with_gme_tree}]) + fi + if test -f "${real_gme_tree}/gme/libgme.a" + then + dnl Use a custom gme + AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a) + VLC_ADD_PLUGINS([gme]) + VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a]) + VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme]) + else + dnl The given gme wasn't built + AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}]) + fi + else + AC_MSG_WARN([only static linking is available, you must provide a gme-tree]) + fi + AC_LANG_POP(C++) +fi dnl dnl Codec plugins @@ -2497,10 +2733,13 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a]) + elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then + VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a]) + VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}]) else dnl The given libavcodec wasn't built with --enable-pp AC_MSG_RESULT(no) - AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp]) + AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp]) fi fi dnl Use a custom libffmpeg @@ -2541,7 +2780,7 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo fi VLC_ADD_BUILTINS([ffmpeg]) - if test "${enable_sout}" != "no"; then + if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then VLC_ADD_BUILTINS([stream_out_switcher]) fi @@ -2554,10 +2793,16 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo 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.]) + AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 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 stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat]) fi + + if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then + AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.]) + VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a]) + VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale]) + fi else dnl Look for a ffmpeg-config (we are on debian ) @@ -2572,10 +2817,12 @@ dnl Look for a ffmpeg-config (we are on debian ) 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) + AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] ) + AC_CHECK_HEADERS(ffmpeg/avformat.h) + AC_CHECK_HEADERS(ffmpeg/avutil.h) + AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] ) VLC_ADD_PLUGINS([ffmpeg]) - if test "${enable_sout}" != "no"; then + if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then VLC_ADD_PLUGINS([stream_out_switcher]) fi VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`]) @@ -2586,18 +2833,41 @@ dnl Look for a ffmpeg-config (we are on debian ) dnl Trying with pkg-config PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat], [ - AC_CHECK_HEADERS(ffmpeg/avcodec.h) - AC_CHECK_HEADERS(postproc/postprocess.h) - VLC_ADD_BUILTINS([ffmpeg]) - if test "${enable_sout}" != "no"; then - VLC_ADD_BUILTINS([stream_out_switcher]) - fi - VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}]) - VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}]) + VLC_SAVE_FLAGS + CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}" + CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}" + AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] ) + AC_CHECK_HEADERS(ffmpeg/avformat.h) + AC_CHECK_HEADERS(ffmpeg/avutil.h) dnl newer ffmpeg have a separate libpostproc PKG_CHECK_MODULES(POSTPROC, libpostproc,[ + VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) ],[ true ]) + CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}" + CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}" + AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] ) + if test "${SYS}" = "darwin"; then + VLC_ADD_BUILTINS([ffmpeg]) + else + VLC_ADD_PLUGINS([ffmpeg]) + fi + if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then + if test "${SYS}" = "darwin"; then + VLC_ADD_BUILTINS([stream_out_switcher]) + else + VLC_ADD_PLUGINS([stream_out_switcher]) + fi + fi + VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}]) + VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}]) + dnl even newer ffmpeg has a libswscale + PKG_CHECK_MODULES(SWSCALE, libswscale,[ + VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}]) + VLC_ADD_LDFLAGS([ffmpeg],[${SWSCALE_LIBS}]) + AC_CHECK_HEADERS(ffmpeg/swscale.h) + ],[ true ]) + VLC_RESTORE_FLAGS ],[ dnl @@ -2606,28 +2876,38 @@ dnl Trying with pkg-config CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}" LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}" AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] ) + AC_CHECK_HEADERS(ffmpeg/avformat.h) + AC_CHECK_HEADERS(ffmpeg/swscale.h) + AC_CHECK_HEADERS(ffmpeg/avutil.h) AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] ) - AC_CHECK_LIB(avutil, av_add_i, [ + AC_CHECK_LIB(avutil, av_crc_init, [ VLC_ADD_LDFLAGS([ffmpeg],[-lavutil]) LDAVUTIL="-lavutil"]) - AC_CHECK_LIB(postproc, pp_postprocess, [ - VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])]) - AC_CHECK_LIB(avcodec, avcodec_init, [ VLC_ADD_BUILTINS([ffmpeg]) VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec]) - if test "${enable_sout}" != "no"; then + if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; 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_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL]) + + + AC_CHECK_LIB(postproc, pp_postprocess, [ + VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])], + AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]), + [$LDAVUTIL]) + AC_CHECK_LIB(avformat, av_open_input_stream, [ - AC_DEFINE(HAVE_LIBAVFORMAT, 1, - [Define if you have ffmpeg's libavformat.]) VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL]) LDFLAGS="${LDFLAGS_save}" CPPFLAGS="${CPPFLAGS_save}" + + AC_CHECK_LIB(swscale, sws_getContext, [ + VLC_ADD_LDFLAGS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL]) + LDFLAGS="${LDFLAGS_save}" + CPPFLAGS="${CPPFLAGS_save}" ]) fi fi @@ -2666,7 +2946,7 @@ then VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat]) if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then - AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.]) + AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.]) VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz]) VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat]) fi @@ -2808,7 +3088,7 @@ dnl dnl MP4 module dnl AC_CHECK_HEADERS(zlib.h, [ - VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz]) + VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz]) ] ) AC_CHECK_HEADERS(sysfs/libsysfs.h, [ @@ -2887,7 +3167,9 @@ then VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}]) ],[ AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.]) - ]) + ]) + ],[ + AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.]) ]) CPPFLAGS="${CPPFLAGS_save}" LDFLAGS="${LDFLAGS_save}" @@ -2903,7 +3185,7 @@ dnl dnl DTS Coherent Acoustics decoder plugin dnl AC_ARG_ENABLE(dts, - [ --enable-dts DTS Coherent Acoustics support with libdts (default enabled)]) + [ --enable-dts DTS Coherent Acoustics support with libdca (default enabled)]) if test "${enable_dts}" != "no"; then AC_ARG_WITH(dts-tree, [ --with-dts-tree=PATH libdts tree for static linking ],[],[]) @@ -2926,7 +3208,7 @@ if test "${enable_dts}" != "no"; then LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}" AC_CHECK_LIB(dts_pic, dts_free, [ VLC_ADD_PLUGINS([dtstofloat32]) - VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic]) + VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm]) ],[ AC_CHECK_LIB(dts, dts_free, [ VLC_ADD_BUILTINS([dtstofloat32]) @@ -2939,7 +3221,7 @@ if test "${enable_dts}" != "no"; then AC_MSG_ERROR([the specified tree hasn't been compiled]) fi ]) - ]) + ], [-lm]) LDFLAGS="${LDFLAGS_save}" else AC_MSG_RESULT(no) @@ -2950,7 +3232,7 @@ if test "${enable_dts}" != "no"; then AC_CHECK_HEADERS(dts.h, [ AC_CHECK_LIB(dts_pic, dts_free, [ VLC_ADD_PLUGINS([dtstofloat32]) - VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic]) + VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm]) ],[ AC_CHECK_LIB(dts, dts_free, [ VLC_ADD_BUILTINS([dtstofloat32]) @@ -2960,7 +3242,7 @@ if test "${enable_dts}" != "no"; then AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html]) fi ]) - ]) + ], [-lm]) ]) LDFLAGS="${LDFLAGS_save}" fi @@ -2970,7 +3252,7 @@ dnl dnl Flac plugin dnl AC_ARG_ENABLE(flac, - [ --enable-flac flac decoder support (default disabled)]) + [ --enable-flac libflac decoder/encoder support (default disabled)]) if test "${enable_flac}" = "yes" then AC_ARG_WITH(flac-tree, @@ -2989,8 +3271,8 @@ then then dnl Use a custom flac AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a) - VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a]) - VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include]) + VLC_ADD_LDFLAGS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a]) + VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include]) AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC]) else dnl The given flac wasn't built @@ -2999,7 +3281,7 @@ then fi else AC_CHECK_HEADERS(FLAC/stream_decoder.h, [ - VLC_ADD_LDFLAGS([flacdec],[-lFLAC]) + VLC_ADD_LDFLAGS([flac],[-lFLAC]) ],[]) fi fi @@ -3091,10 +3373,10 @@ then else AC_CHECK_HEADERS(vorbis/codec.h, [ VLC_ADD_PLUGINS([vorbis]) - VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[]) + VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[]) AC_CHECK_HEADERS(vorbis/vorbisenc.h, [ - VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[]) + VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[]) fi fi @@ -3193,11 +3475,7 @@ if test "${enable_theora}" = "yes" then AC_CHECK_HEADERS(theora/theora.h, [ AC_CHECK_LIB(theora, theora_granule_time, [ - if test "${SYS}" = "mingw32"; then - VLC_ADD_PLUGINS([theora]) - else - VLC_ADD_BUILTINS([theora]) - fi + VLC_ADD_PLUGINS([theora]) theora_libs="-ltheora -logg" VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[ AC_MSG_ERROR([libtheora doesn't appear to be installed on your system. @@ -3220,33 +3498,6 @@ if test "${enable_dirac}" = "yes"; then ]) fi -dnl libvc1 decoder plugin -dnl -AC_ARG_ENABLE(libvc1, -[ --enable-libvc1 VC-1 codec (default disabled)]) -if test "${enable_libvc1}" = "yes" -then - AC_ARG_WITH(libvc1-tree, - [ --with-libvc1-tree=PATH libvc1 tree for static linking]) - if test -n "${with_libvc1_tree}" - then - AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree}) - real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`" - if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o" - then - VLC_ADD_BUILTINS([libvc1]) - VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src]) - VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a]) - AC_MSG_RESULT(yes) - else - dnl The given libvc1 tree wasn't built - AC_MSG_RESULT(no) - AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o, - make sure you compiled libvc1 in ${with_libvc1_tree}]) - fi - fi -fi - dnl dnl PNG decoder module dnl @@ -3363,9 +3614,9 @@ if test "${enable_x11}" != "no" && test "${enable_x11}" = "yes"); then CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}" AC_CHECK_HEADERS(X11/Xlib.h, [ - VLC_ADD_PLUGINS([x11]) - VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext]) - VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}]) + VLC_ADD_PLUGINS([x11 panoramix]) + VLC_ADD_LDFLAGS([x11 panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext]) + VLC_ADD_CPPFLAGS([x11 panoramix],[${X_CFLAGS}]) ]) CPPFLAGS="${CPPFLAGS_save}" fi @@ -3385,7 +3636,7 @@ if test "${enable_xvideo}" != "no" && AC_CHECK_LIB(Xv,XvPutImage,[ # If libXv.so is available, xvideo can be a plugin. Otherwise, we # test for libXv_pic. - if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then + if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then VLC_ADD_PLUGINS([xvideo]) VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}]) VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv]) @@ -3416,21 +3667,45 @@ if test "${enable_glx}" != "no" && (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" || test "${enable_glx}" = "yes"); then CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}" - AC_CHECK_HEADERS(X11/Xlib.h, [ - AC_CHECK_HEADERS(GL/glx.h, [ + AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h) + AC_COMPILE_IFELSE(AC_LANG_PROGRAM( + [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H) + choke me + #endif]]), + [ VLC_ADD_PLUGINS([glx]) VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU]) VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}]) - ]) ]) + ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])]) CPPFLAGS="${CPPFLAGS_save}" fi -if test "${enable_xvideo}" != "no" && +dnl +dnl XVMC module +dnl (enabled by default except on win32) +dnl +AC_ARG_ENABLE(xvmc, + [ --enable-xvmc XVMC support (default disabled)]) +if test "${enable_xvmc}" = "yes" && (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" || - test "${enable_xvideo}" = "yes"); then + test "${enable_xvmc}" = "yes"); then + CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}" + AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [ + VLC_ADD_PLUGINS([xvmc]) + VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext]) + VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}]) + ]) + CPPFLAGS="${CPPFLAGS_save}" +fi + dnl dnl Check for the Xinerama extension dnl +AC_ARG_ENABLE(xinerama, + [ --enable-xinerama Xinerama support (default enabled)]) +if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" && + (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" || + test "${enable_xvideo}" = "yes"); then ac_cv_have_xinerama="no" CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}" CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext" @@ -3497,12 +3772,12 @@ AC_ARG_ENABLE(opengl, if test "${enable_opengl}" != "no" && test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then if test "${SYS}" != "darwin"; then - AC_CHECK_HEADERS(GL/gl.h, [ + AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [ VLC_ADD_PLUGINS([opengl]) if test "${SYS}" != "mingw32"; then VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU]) else - VLC_ADD_LDFLAGS([opengl],[-lopengl32]) + VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32]) fi ]) else @@ -3704,7 +3979,7 @@ AC_ARG_ENABLE(svg, if test "${enable_svg}" = "yes" then PKG_CHECK_MODULES(SVG, - librsvg-2.0 >= 2.5.0, + librsvg-2.0 >= 2.9.0, [ VLC_ADD_LDFLAGS([svg],[$SVG_LIBS]) VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS]) @@ -3800,6 +4075,12 @@ fi dnl dnl Windows DirectX module dnl + +if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin" +then + VLC_ADD_PLUGINS([panoramix]) +fi + AC_ARG_ENABLE(directx, [ --enable-directx Win32 DirectX support (default enabled on Win32)]) if test "${enable_directx}" != "no" @@ -3813,11 +4094,15 @@ then AC_CHECK_HEADERS(ddraw.h, [ VLC_ADD_PLUGINS([vout_directx aout_directx]) VLC_ADD_LDFLAGS([vout_directx],[-lgdi32]) - dnl to be moved when dependance is removed - AC_CHECK_HEADERS(GL/gl.h, [ - VLC_ADD_PLUGINS([glwin32]) - VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32]) - ]) ]) + ]) + AC_CHECK_HEADERS(GL/gl.h, + [ VLC_ADD_PLUGINS([glwin32]) + VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32]) + ]) + AC_CHECK_HEADERS(d3d9.h, + [ VLC_ADD_PLUGINS([direct3d]) + VLC_ADD_LDFLAGS([direct3d],[-ld3d9 -lgdi32]) + ]) else AC_MSG_CHECKING(for directX headers in ${with_directx}) if test -f ${with_directx}/ddraw.h @@ -3944,7 +4229,7 @@ then ],[ AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide]) ]) - CFAGS="${CFLAGS_save}" + CFLAGS="${CFLAGS_save}" fi dnl @@ -4084,7 +4369,7 @@ 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); }], + [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]) @@ -4157,7 +4442,7 @@ dnl CyberLink for C++ UPnP stack dnl AC_ARG_ENABLE(cyberlink, [ --enable-cyberlink CyberLink for C++ UPnP stack (default disabled)]) -AS_IF([test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no")], [ + AS_IF([test "${enable_cyberlink}" = "yes" ], [ AC_ARG_WITH(cyberlink-tree, [ --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking]) @@ -4211,7 +4496,7 @@ class testclass : public SearchResponseListener, public MediaPlayer done LIBS="${LIBS_save}" dnl should not happen - otherwise this needs fixing - hence FAILURE - AS_IF([test "${LIBS_cclink}" == "no"], + AS_IF([test "${LIBS_cclink}" = "no"], [AC_MSG_FAILURE([cannot find XML parser for CyberLink])]) AC_MSG_RESULT([${LIBS_cclink}]) VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}]) @@ -4233,17 +4518,17 @@ AC_ARG_ENABLE(upnp, VLC_ADD_CXXFLAGS([upnp_intel], [ ]) AS_IF([test "x${enable_upnp}" != "xno"], [ AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread]) - AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" == "no"], [ + AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [ AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)]) ]) - AS_IF([test "${has_upnp}" == "yes"], [ - VLC_ADD_LDFLAGS([upnp_intel], [-lupnp]) + AS_IF([test "${has_upnp}" = "yes"], [ + VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml]) ]) ], [ has_upnp="no" ]) -AS_IF([test "${has_upnp}" == "yes"], [ +AS_IF([test "${has_upnp}" = "yes"], [ VLC_ADD_PLUGINS([upnp_intel]) ]) @@ -4471,9 +4756,9 @@ then 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 + if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null || expr 2.7.0 \<= `${WX_CONFIG} --version` >/dev/null then - 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.]) + AC_MSG_ERROR([You need wxWidgets of the 2.6 branch. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.]) fi AC_LANG_PUSH(C++) # Turn this error: @@ -4489,6 +4774,18 @@ then fi VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`]) VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`]) + # check if we must link against gtk2 libs + # if __WXGTK20__ && __WXGTK__ are defined + # for modules/gui/wxwidgets/video.cpp + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +#include +#ifdef __WXGTK20__ +#error ok, we need to link against gtk2 +#endif + ])],[WXGTK=no],[WXGTK=yes]) + if test "$WXGTK" = "yes"; then + ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`]) + fi if ${WX_CONFIG} --unicode then # wxwidgets should provide the following flags but does not @@ -4526,7 +4823,29 @@ then CPPFLAGS="${CPPFLAGS_save}" AC_LANG_POP(C++) fi -fi + dnl WxWidgets plugin will yield incorrect code without this + VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing]) +fi + +dnl +dnl QT 4 +dnl +enableqt4=false +AC_ARG_ENABLE(qt4, + [ --enable-qt4 QT 4 support (default disabled) ], + [if test "${enable_qt4}" = "yes"; then + PKG_CHECK_MODULES(QT4, QtCore QtGui, + [ VLC_ADD_PLUGINS([qt4]) + ALIASES="${ALIASES} qvlc" + enableqt4=true + VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS]) + VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) + MOC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/moc + RCC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/rcc + UIC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/uic], + [AC_MSG_WARN(QT4 library not found)]) + fi]) +AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true") dnl dnl WinCE GUI module @@ -4652,17 +4971,22 @@ AC_ARG_ENABLE(opie, dnl dnl MacOS X module dnl +ORIGCFLAGS=$CFLAGS +CFLAGS="$CFLAGS -x objective-c" AC_ARG_ENABLE(macosx, [ --enable-macosx MacOS X support (default enabled on MacOS X)], [if test "${enable_macosx}" = "yes" then VLC_ADD_BUILTINS([macosx]) - VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL]) + VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL]) + VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] ) fi], [AC_CHECK_HEADERS(Cocoa/Cocoa.h, VLC_ADD_BUILTINS([macosx]) - VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL]) + VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL]) + VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] ) )]) +CFLAGS=$ORIGCFLAGS dnl dnl QNX RTOS module @@ -4700,7 +5024,7 @@ then AC_CHECK_LIB(xosd,xosd_set_horizontal_offset, AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if is 2.0.x), AC_TRY_COMPILE([#include ], - [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],, + [xosd_init("foo","bar",12,XOSD_top,2,12,42);],, AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if is pre-1.0.0)))) if test "${have_xosd}" = "true" then @@ -4726,7 +5050,7 @@ AC_ARG_ENABLE(galaktos, [ --enable-galaktos OpenGL visualisation plugin (default disabled)]) if test "${enable_galaktos}" = "yes" then - AC_CHECK_HEADERS(GL/gl.h, [ + AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [ VLC_ADD_PLUGINS([galaktos]) if test "${SYS}" != "mingw32"; then VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU]) @@ -4791,20 +5115,6 @@ then fi fi -dnl -dnl DAAP access plugin and services discovery -dnl -AC_ARG_ENABLE(daap, - [ --enable-daap DAAP shares services discovery support (default enabled)]) -if test "$enable_daap" != "no" -then - PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0, - [ VLC_ADD_PLUGINS([daap]) - VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS]) - VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:, - [AC_MSG_WARN(DAAP library not found)]) -fi - dnl dnl Bonjour services discovery dnl @@ -4838,31 +5148,31 @@ then fi +AC_ARG_WITH(,[Misc options:]) + dnl -dnl corba (ORBit) plugin +dnl TLS/SSL dnl -dnl Default: do not enable corba -enablecorba=false -AC_ARG_ENABLE(corba, - [ --enable-corba corba interface support (default disabled)]) -if test "${enable_corba}" = "yes"; then - GLIB_VERSION=2.3.2 - PKG_CHECK_MODULES(CORBA, - ORBit-2.0 >= 2.8.0 \ - glib-2.0 >= $GLIB_VERSION \ - gobject-2.0 >= $GLIB_VERSION \ - gthread-2.0 >= $GLIB_VERSION, - [ - enablecorba=true - VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS]) - VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS]) - VLC_ADD_PLUGINS([corba snapshot]) ], - [ enablecorba=false - AC_MSG_WARN(corba library not found) ]) -fi -AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true") +AC_ARG_ENABLE(gnutls, + [ --enable-gnutls gnutls TLS/SSL support (default enabled)]) + +AS_IF([test "${enable_gnutls}" != "no"], [ + PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"]) + + AS_IF([test "${have_gnutls}" = "yes"], [ + VLC_ADD_PLUGINS([gnutls]) + VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS]) + VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS]) + ], [ + AS_IF([test "${enable_gnutls}" = "yes"], [ + AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)]) + ]) + ]) + AC_CHECK_LIB([gcrypt], [gcry_control], [ + VLC_ADD_LDFLAGS([gnutls], [-lgcrypt]) + ]) +]) -AC_ARG_WITH(,[Misc options:]) dnl dnl Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling @@ -4931,13 +5241,13 @@ 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_PLUGINS([dmo]) VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader]) - VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a]) + VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.la -lpthread]) VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader]) - VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a]) + VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.la -lpthread]) VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER]) - VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.a]) + VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.la -ldl -lpthread]) ]) dnl @@ -4946,11 +5256,20 @@ dnl activex=false AC_ARG_ENABLE(activex, [ --enable-activex build a vlc-based ActiveX control (default enabled on Win32)]) +AC_ARG_WITH(wine-sdk-path, + [ --with-wine-sdk-path=PATH path to wine sdk]) if test "${enable_activex}" != "no" then if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin" then - AC_CHECK_PROGS(MIDL, [midl widl], no) + AC_CHECK_PROGS(MIDL, [midl], no) + if test "${with_wine_sdk_path}" != "" + then + WINE_SDK_PATH=${with_wine_sdk_path} + AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl]) + else + WIDL=no + fi AC_LANG_PUSH(C++) AC_CHECK_HEADERS(ole2.h olectl.h, [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions]) @@ -4970,6 +5289,8 @@ then fi AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)]) AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no") +AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)]) +AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no") AM_CONDITIONAL(BUILD_ACTIVEX,${activex}) dnl @@ -4980,36 +5301,70 @@ AC_ARG_ENABLE(mozilla, [ --enable-mozilla build a vlc-based Mozilla plugin (default disabled)]) AC_ARG_WITH(mozilla-sdk-path, [ --with-mozilla-sdk-path=PATH path to mozilla sdk]) - +AC_LANG_PUSH(C++) if test "${enable_mozilla}" = "yes" then - if test "${with_mozilla_sdk_path}" = "" + dnl currently vlc plugin only needs headers, no xpcom support apis are actually used + need_xpcom_libs=false + if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no" then AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no) if test "${MOZILLA_CONFIG}" = "no" then - AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.]) - else - if test "${SYS}" != "mingw32"; then - LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}" - AC_CHECK_LIB(Xt,XtStrings, - [VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])], - [], - [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE] - ]) - LDFLAGS="${LDFLAGS_save}" + AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no) + if test "${SEAMONKEY_CONFIG}" = "no" + then + AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no) + if test "${XULRUNNER_CONFIG}" = "no" + then + AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.]) + else + have_xul=true + MOZILLA_CONFIG="${XULRUNNER_CONFIG}" + fi + else + MOZILLA_CONFIG="${SEAMONKEY_CONFIG}" fi + fi + + if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then + LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}" + AC_CHECK_LIB(Xt,XtStrings, + [ + VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}]) + VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE]) +], + [], + [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE] + ]) + LDFLAGS="${LDFLAGS_save}" + fi + mozilla=: dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490 VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]]) - VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`]) + if ${need_xpcom_libs}; then + VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`]) + else + VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`]) + fi CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}" - AC_CHECK_HEADERS(mozilla-config.h) + MOZILLA_REQUIRED_HEADERS=1 + AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0) + AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0) + AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0, + [#if HAVE_NPAPI_H + # include + #endif + ]) + if test "${MOZILLA_REQUIRED_HEADERS}" = "0" + then + AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.]) + fi + MOZILLA_REQUIRED_HEADERS= CPPFLAGS="${CPPFLAGS_save}" - XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \ - `${MOZILLA_CONFIG} --idlflags plugin xpcom java` " - xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin" - fi + MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`" + dnl End of moz_sdk = "" else dnl special case for mingw32 if test "${SYS}" = "mingw32" @@ -5023,63 +5378,63 @@ then real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`" CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include" - AC_CHECK_HEADERS(mozilla-config.h, [ - mozilla=: - VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include]) - VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue]) + MOZILLA_REQUIRED_HEADERS=1 + AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0) + AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0) + AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0, + [#if HAVE_NPAPI_H + #include + #endif + ]) + if test "${MOZILLA_REQUIRED_HEADERS}" = "0" + then + AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.]) + fi + MOZILLA_REQUIRED_HEADERS= + mozilla=: + VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include]) + if ${need_xpcom_libs}; then + VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue]) if test "${SYS}" = "mingw32"; then - LDFLAGS="${LDFLAGS_save}" - dnl latest gecko sdk does not have embedstring - if test -d "${real_mozilla_sdk}/embedstring/bin" - then - VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at]) - fi - fi - - XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl" - xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin" - - if test -n "${CYGPATH}"; then - real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`" - XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\"" - fi ]) - CPPFLAGS="${CPPFLAGS_save}" - fi + dnl latest gecko sdk does not have embedstring + if test -d "${real_mozilla_sdk}/embedstring/bin" + then + VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at]) + fi + fi + fi + MOZILLA_SDK_PATH="${real_mozilla_sdk}" - if test "${mozilla}" != "false" - then - build_pic=yes - AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path} /usr/lib/mozilla) - if test "${XPIDL}" = "no"; then - AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.]) + if test -n "${CYGPATH}"; then + real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`" fi + CPPFLAGS="${CPPFLAGS_save}" fi fi +AC_LANG_POP(C++) AM_CONDITIONAL(BUILD_MOZILLA,${mozilla}) dnl dnl Mediacontrol Python bindings dnl -AC_ARG_ENABLE(mediacontrol-python-bindings, - [ --enable-mediacontrol-python-bindings Enable Python bindings for MediaControl (default disabled)]) +AC_ARG_ENABLE(python-bindings, + [ --enable-python-bindings Enable Python bindings (default disabled)]) dnl TODO: look for python dev headers -AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_mediacontrol_python_bindings}" = "yes"]) -if test "${enable_mediacontrol_python_bindings}" = "yes" -then - build_pic=yes -fi +AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"]) dnl dnl Java bindings dnl AC_ARG_ENABLE(java-bindings, [ --enable-java-bindings Enable Java bindings (default disabled)]) -AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"]) if test "${enable_java_bindings}" = "yes" then - build_pic=yes + AS_IF([test "x${JAVA_HOME}" == "x"], + [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])]) + AC_PROG_JAVAC + AC_PROG_JAVA fi - +AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"]) dnl dnl test plugins @@ -5100,6 +5455,16 @@ then #VLC_ADD_BUILTINS([${TESTS}]) fi +dnl +dnl Microsoft Layer for Unicode for WIN9x/ME +dnl +if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin" +then + AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [ + VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows]) + ]) +fi + dnl dnl gtk_main plugin dnl @@ -5169,47 +5534,29 @@ then plugin_support=false fi -dnl Export automake variables -if ${plugin_support} -then +AS_IF([${plugin_support}], [ AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins) - for plugin in `echo ${PLUGINS}` - do - eval "${plugin}_p=yes" - done -else +], [ VLC_ADD_BUILTINS([${PLUGINS}]) PLUGINS="" -fi -AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support}) - -[if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1 -then - builtin_support=: - for builtin in `echo ${BUILTINS}` - do - eval "${builtin}_b=yes" - done -fi] -AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support}) +]) dnl dnl Pic and shared libvlc stuff dnl -AS_IF([test "x${shared_libvlc}" = "x"], [shared_libvlc=no]) -AM_CONDITIONAL(BUILD_SHARED, [test "${shared_libvlc}" != "no"]) -AM_CONDITIONAL(BUILD_PIC, [test "${build_pic}" = "yes" -o "${shared_libvlc}" != "no"] ) -AS_IF([test "${shared_libvlc}" != "no"], [ +AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no]) +AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"]) +AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [ AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.]) + FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll" + VLC_ADD_PLUGINS([${BUILTINS}]) + BUILTINS="" +], [ + LDFLAGS_vlc="${LDFLAGS_vlc} ${LDFLAGS_libvlc}" + FILE_LIBVLC_DLL="" ]) -pic=no -AS_IF([test "${shared_libvlc}" != "no" -o "${build_pic}" = "yes"], [pic=pic]) -AS_IF([test "${SYS}" = "mingw32"], [pic=no]) -AS_IF([test "${pic}" = "no"], [pic=]) -AC_SUBST(pic) - -dnl Import conditional variables generated by bootstrap + dnl Import conditional variables generated by bootstrap VLC_CONDITIONALS dnl @@ -5235,8 +5582,8 @@ 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.4 release -module_symbol="0_8_4" +dnl New definitions with value matching 0.9.0 release +module_symbol="0_9_0b" AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions]) AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions]) VLC_ENTRY="vlc_entry__${module_symbol}" @@ -5257,8 +5604,10 @@ VLC_RESTORE_FLAGS dnl dnl Create the vlc-config script dnl -LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}" -for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done +LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}" + +dnl following used to be the external libvlc target, what's replacing it now ? +dnl for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done dnl dnl Configuration is finished @@ -5268,13 +5617,16 @@ AC_SUBST(ARCH) AC_SUBST(ALIASES) AC_SUBST(ASM) AC_SUBST(MOC) +AC_SUBST(RCC) +AC_SUBST(UIC) AC_SUBST(WINDRES) -AC_SUBST(XPIDL) -AC_SUBST(XPIDL_INCL) +AC_SUBST(MOZILLA_SDK_PATH) +AC_SUBST(WINE_SDK_PATH) AC_SUBST(LIBEXT) -AC_SUBST(INCLUDES) +AC_SUBST(AM_CPPFLAGS) AC_SUBST(ALL_LINGUAS) AC_SUBST(MACOSX_DEPLOYMENT_TARGET) +AC_SUBST(FILE_LIBVLC_DLL) dnl Import substitutions generated by bootstrap VLC_SUBSTS @@ -5283,13 +5635,14 @@ dnl Create vlc-config.in VLC_OUTPUT_VLC_CONFIG_IN AC_CONFIG_FILES([ + vlc.win32.nsi Makefile activex/Makefile activex/axvlc.inf bindings/Makefile bindings/java/Makefile - bindings/mediacontrol-python/Makefile - debian/Makefile + bindings/java/src/Makefile + bindings/python/Makefile doc/Makefile intl/Makefile ipkg/Makefile @@ -5307,8 +5660,6 @@ AC_CONFIG_FILES([ modules/access/dshow/Makefile modules/access/dvb/Makefile modules/access/mms/Makefile - modules/access/pvr/Makefile - modules/access/v4l/Makefile modules/access/cdda/Makefile modules/access/rtsp/Makefile modules/access/vcd/Makefile @@ -5327,40 +5678,42 @@ AC_CONFIG_FILES([ modules/codec/dmo/Makefile modules/codec/ffmpeg/Makefile modules/codec/spudec/Makefile + modules/codec/xvmc/Makefile modules/control/Makefile modules/control/http/Makefile - modules/control/corba/Makefile modules/demux/Makefile modules/demux/asf/Makefile modules/demux/avi/Makefile modules/demux/mp4/Makefile modules/demux/mpeg/Makefile modules/demux/playlist/Makefile - modules/demux/util/Makefile modules/gui/Makefile modules/gui/beos/Makefile modules/gui/pda/Makefile modules/gui/macosx/Makefile modules/gui/qnx/Makefile + modules/gui/qt4/Makefile modules/gui/skins2/Makefile modules/gui/wxwidgets/Makefile modules/gui/wince/Makefile + modules/meta_engine/Makefile modules/misc/Makefile modules/misc/dummy/Makefile modules/misc/memcpy/Makefile - modules/misc/network/Makefile + modules/misc/notify/Makefile modules/misc/testsuite/Makefile modules/misc/playlist/Makefile modules/misc/xml/Makefile + modules/misc/probe/Makefile modules/mux/Makefile modules/mux/mpeg/Makefile + modules/mux/rtp/Makefile modules/packetizer/Makefile modules/services_discovery/Makefile modules/stream_out/Makefile modules/stream_out/transrate/Makefile modules/video_chroma/Makefile modules/video_filter/Makefile - modules/video_filter/swscale/Makefile modules/video_output/Makefile modules/video_output/directx/Makefile modules/video_output/qte/Makefile @@ -5387,7 +5740,9 @@ dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modul dnl Shortcut to nice compile message rm -f compile echo '#! /bin/sh' >compile -echo "PATH=$PATH LANG=C make \$* 2>&1| ${srcdir}/extras/make.pl" >>compile + +echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile +echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile chmod a+x compile printf "