]> git.sesse.net Git - vlc/blobdiff - configure.ac
Merge branch '0.9.0-libass' of git://git.videolan.org/vlc
[vlc] / configure.ac
index cf30d7a30ee8b8e1e1e693e0d12dbe21368b7111..b9bc30e749c95426710ff811cddd1997c1db58c8 100644 (file)
@@ -1,10 +1,10 @@
 dnl Autoconf settings for vlc
 
-AC_INIT(vlc, 0.9.0-test3)
+AC_INIT(vlc, 0.9.0)
 VERSION_MAJOR="0"
 VERSION_MINOR="9"
 VERSION_REVISION="0"
-VERSION_EXTRA="git"
+VERSION_EXTRA=""
 
 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
 CODENAME="Grishenko"
@@ -810,10 +810,13 @@ AC_CHECK_TYPE(ssize_t,, [
   AC_DEFINE(ssize_t, int)
 ])
 
-dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
-if test "${SYS}" != "darwin"; then
-  AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
+dnl Check for poll
+AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
+if test ${SYS} != "mingw32"
+then
+    AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
 fi
+])
 
 dnl Check for dirent
 need_dirent=false
@@ -851,7 +854,9 @@ dnl Find where are the X headers and libraries
 AC_PATH_XTRA()
 
 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
-
+dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
+AC_ARG_VAR(PKG_CONFIG_PATH, 
+          [Paths where to find .pc not at the default location])
 PKG_PROG_PKG_CONFIG()
 
 dnl Check for hal
@@ -1780,11 +1785,11 @@ 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
@@ -1810,7 +1815,7 @@ if test "${enable_live555}" != "no"; then
     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
 
     AC_CHECK_HEADERS(liveMedia_version.hh, [
-      AC_MSG_CHECKING(for liveMedia version < 1214895600 )
+      AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
       AC_EGREP_CPP(yes,
         [#include <liveMedia_version.hh>
          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
@@ -1818,29 +1823,24 @@ if test "${enable_live555}" != "no"; then
          yes
          #endif
          #endif],
-        [AC_MSG_RESULT([yes])
+        [AC_MSG_RESULT([no])
          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
-      ])
+      ],[
+        AC_MSG_RESULT([yes])
+        ])
     ])
-
+     other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
+      if test "${SYS}" = "mingw32"; then
+        # add ws2_32 for closesocket, select, recv
+        other_libs="$other_libs -lws2_32"
+      fi
     AC_CHECK_HEADERS(liveMedia.hh, [
       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
-      AC_CHECK_LIB(liveMedia_pic, main, [
-        # We have -lliveMedia_pic, build plugins
-        VLC_ADD_PLUGIN([live555])
-        VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
-      ], [
         AC_CHECK_LIB(liveMedia, main, [
-          # We only have -lliveMedia, do builtins
           VLC_ADD_PLUGIN([live555])
-          VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
-        ],[],[-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
-      ],[-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic] )
-      if test "${SYS}" = "mingw32"; then
-        # add ws2_32 for closesocket, select, recv
-        VLC_ADD_LIBS([live555],[-lws2_32])
-      fi
+          VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
+        ],[],[${other_libs}])
     ])
     CPPFLAGS="${CPPFLAGS_save}"
     AC_LANG_POP(C++)
@@ -1856,7 +1856,7 @@ lternatively you can use --disable-live555 to disable the liveMedia plugin.])
       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
 
       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
-        AC_MSG_CHECKING(for liveMedia version < 1214895600 )
+        AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
         AC_EGREP_CPP(yes,
           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
@@ -1864,10 +1864,12 @@ lternatively you can use --disable-live555 to disable the liveMedia plugin.])
            yes
            #endif
            #endif],
-          [AC_MSG_RESULT([yes])
+          [AC_MSG_RESULT([no])
            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
-        ])
+        ],[
+          AC_MSG_RESULT([yes])
+          ])
       ])
 
       VLC_ADD_PLUGIN([live555])
@@ -1984,7 +1986,7 @@ then
     then
       dnl  Use a custom libraw1394
       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
-      VLC_ADD_BUILTINS([access_dv])
+      VLC_ADD_PLUGIN([access_dv])
       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
     else
@@ -2101,7 +2103,7 @@ then
       then
         dnl  Use a custom libdvdread
         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
-        VLC_ADD_BUILTINS([dvdread])
+        VLC_ADD_PLUGIN([dvdread])
         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
       else
@@ -2297,9 +2299,9 @@ then
       then
         dnl  Use a custom libdvbpsi
         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
-        VLC_ADD_BUILTINS([ts])
+        VLC_ADD_PLUGIN([ts])
         if test "${enable_sout}" != "no"; then
-          VLC_ADD_BUILTINS([mux_ts])
+          VLC_ADD_PLUGIN([mux_ts])
         fi
         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
@@ -2628,12 +2630,7 @@ then
   fi
   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
-    if test -z "${with_dvbpsi_tree}"
-    then
-      VLC_ADD_PLUGIN([dvb])
-    else
-      VLC_ADD_BUILTINS([dvb])
-    fi
+  VLC_ADD_PLUGIN([dvb])
   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
   CPPFLAGS="${CPPFLAGS_save}"
 fi
@@ -2917,7 +2914,7 @@ then
       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
       AC_CHECK_LIB(mad, mad_bit_init, [
-        VLC_ADD_BUILTINS([mpgatofixed32])
+        VLC_ADD_PLUGIN([mpgatofixed32])
         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
       ],[])
@@ -2958,6 +2955,11 @@ dnl
 dnl  avcodec decoder/encoder plugin
 dnl
 
+if test "${with_ffmpeg_tree}"
+then
+  AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
+fi
+
 AC_ARG_ENABLE(avcodec,
 [  --enable-avcodec        libavcodec codec (default enabled)])
 if test "${enable_avcodec}" != "no"
@@ -3114,7 +3116,7 @@ then
     then
       dnl  Use a custom faad
       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
-      VLC_ADD_BUILTINS([faad])
+      VLC_ADD_PLUGIN([faad])
       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
     else
@@ -3162,7 +3164,7 @@ then
     then
       dnl  Use a custom twolame
       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
-      VLC_ADD_BUILTINS([twolame])
+      VLC_ADD_PLUGIN([twolame])
       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
     else
@@ -3194,7 +3196,7 @@ if test "${enable_quicktime}" != "no" &&
   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
 then
   if test "${SYS}" = "mingw32"; then
-    VLC_ADD_BUILTINS([quicktime])
+    VLC_ADD_PLUGIN([quicktime])
   else
   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
     [ VLC_ADD_PLUGIN([quicktime])
@@ -3274,7 +3276,7 @@ then
       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
       AC_CHECK_LIB(a52, a52_free, [
-        VLC_ADD_BUILTINS([a52tofloat32])
+        VLC_ADD_PLUGIN([a52tofloat32])
         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
         VLC_ADD_LIBS([a52tofloat32],[-la52])
         ],[
@@ -3565,7 +3567,7 @@ then
     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
     if test -f "${real_tarkin_tree}/tarkin.o"
     then
-      VLC_ADD_BUILTINS([tarkin])
+      VLC_ADD_PLUGIN([tarkin])
       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
       VLC_ADD_LIBS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
       AC_MSG_RESULT(yes)
@@ -3764,6 +3766,27 @@ AS_IF( [test "${enable_csri}" = "yes"], [
       ])
   ])
 
+dnl
+dnl libass subtitle rendering module
+dnl
+AC_ARG_ENABLE(libass,
+  [  --enable-libass           Subtitle support using libass (default disabled)])
+AS_IF( [test "${enable_libass}" = "yes"], [
+  PKG_CHECK_MODULES(LIBASS,
+      libass >= 0.9.5,
+      [
+        VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
+        VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
+        VLC_ADD_PLUGIN([libass])
+
+               AC_CHECK_HEADERS(fontconfig/fontconfig.h,
+                 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
+                  VLC_ADD_LIBS([libass],[-lfontconfig])])
+      ],[
+        AC_MSG_WARN([LIBASS library not found])
+      ])
+  ])
+
 dnl
 dnl asa demuxer
 dnl
@@ -3800,7 +3823,7 @@ dnl
 AC_ARG_ENABLE(kate,
 [  --enable-kate           kate codec (default enabled)])
 AS_IF([test "${enable_kate}" != "no"], [
-  PKG_CHECK_MODULES(KATE,[kate >= 0.1.2], [
+  PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
       VLC_ADD_PLUGIN([kate])
       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
@@ -3884,23 +3907,9 @@ if test "${enable_xvideo}" != "no" &&
   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
     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 /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
         VLC_ADD_PLUGIN([xvideo])
         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
-      else
-        AC_CHECK_LIB(Xv_pic,XvPutImage,[
-          VLC_ADD_PLUGIN([xvideo])
-          VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
-          VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
-        ],[
-          VLC_ADD_BUILTINS([xvideo])
-          VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
-          VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
-        ])
-      fi
     ])
     CFLAGS="${CFLAGS_save}"
   ]
@@ -4799,7 +4808,7 @@ AC_ARG_WITH(,[Interface plugins:])
 dnl special case for BeOS
 if test "${SYS}" = "beos"
 then
-    VLC_ADD_BUILTINS([beos])
+    VLC_ADD_PLUGIN([beos])
 fi
 
 dnl
@@ -4912,7 +4921,7 @@ AC_ARG_ENABLE(wince,
   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
 if test "${enable_wince}" != "no"; then
   if test "${SYS}" = "mingwce"; then
-    VLC_ADD_BUILTINS([wince])
+    VLC_ADD_PLUGIN([wince])
     VLC_ADD_CXXFLAGS([wince],[])
     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
     dnl Gross hack
@@ -4973,7 +4982,7 @@ AC_ARG_ENABLE(macosx,
   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
 if test "x${enable_macosx}" = "xyes"
 then
-#  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
+  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
@@ -4987,7 +4996,7 @@ then
   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
 
-#  VLC_ADD_PLUGIN([access_eyetv])
+  VLC_ADD_PLUGIN([access_eyetv])
   VLC_ADD_PLUGIN([qtcapture])
   VLC_ADD_PLUGIN([macosx])
   VLC_ADD_PLUGIN([minimal_macosx])
@@ -5753,7 +5762,13 @@ else
 fi
 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
-
+dnl Win32 need s a numerical version_extra.
+case $( echo ${VERSION_EXTRA}|wc -m ) in 
+       "1") VERSION_EXTRA_RC="0";;
+       "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
+       *) VERSION_EXTRA_RC="99"
+esac
+AC_SUBST(VERSION_EXTRA_RC)
 dnl
 dnl  Handle substvars that use $(top_srcdir)
 dnl
@@ -5766,6 +5781,11 @@ dnl  Restore *FLAGS
 dnl
 VLC_RESTORE_FLAGS
 
+dnl
+dnl Sort the modules list
+dnl 
+PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
+
 dnl
 dnl  Create the vlc-config script
 dnl
@@ -5811,7 +5831,11 @@ AC_CONFIG_FILES([
   projects/mozilla/Makefile
   m4/Makefile
   po/Makefile.in
+  projects/activex/axvlc_rc.rc
+  projects/mozilla/npvlc_rc.rc
   share/Makefile
+  share/vlc_win32_rc.rc
+  share/libvlc_win32_rc.rc
   src/Makefile
   test/Makefile
 ])
@@ -5902,7 +5926,7 @@ AC_OUTPUT
 ${SHELL} ./config.status --file=vlc-config
 chmod 0755 vlc-config
 
-/bin/echo -n "Enabled modules :"
+/bin/echo -n "Enabled modules"
 ./vlc-config --list plugin
 
 dnl Shortcut to nice compile message