]> git.sesse.net Git - vlc/blobdiff - configure.ac
GCC 3.3.3 has strong type checking
[vlc] / configure.ac
index 04e0adb2a0b24d2023a78d6c7a13c28241c2e66a..9c1df43d8590e14092c7c6ce68d7f780f4bdad19 100644 (file)
@@ -28,7 +28,10 @@ AC_PROG_CC
 AM_PROG_CC_C_O
 AC_PROG_CPP
 AC_PROG_CXX
-AC_PROG_CXXCPP
+eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
+if test "${CXX}" != ""; then
+  AC_PROG_CXXCPP
+fi
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 
@@ -257,7 +260,7 @@ then
 fi
 
 dnl Check for fvtable-thunks support for mingw32
-if test "${SYS}" = "mingw32"
+if test "${SYS}" = "mingw32" -a "${CXX}" != ""
 then
 AC_LANG_PUSH(C++)
     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
@@ -300,7 +303,7 @@ need_libc=false
 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon)
 
 dnl Check for usual libc functions
-AC_CHECK_FUNCS(strdup strndup atof lseek)
+AC_CHECK_FUNCS(strdup strndup atof)
 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
@@ -977,8 +980,7 @@ dnl
 if test "${SYS}" != "mingw32"; then
     VLC_ADD_PLUGINS([screensaver])
 else
-    VLC_ADD_PLUGINS([ntservice])
-    VLC_ADD_PLUGINS([dmo])
+    VLC_ADD_PLUGINS([ntservice smb dmo])
     VLC_ADD_LDFLAGS([dmo],[-lole32])
 fi
 
@@ -1235,7 +1237,7 @@ if test "${enable_livedotcom}" = "yes"; then
   dnl
   dnl test for --with-livedotcom-tree
   dnl
-  if test -z "${with_livedotcom_tree}"; then
+  if test -z "${with_livedotcom_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"
@@ -1409,6 +1411,20 @@ then
   fi
 fi
 
+dnl
+dnl  libsmbclient plugin
+dnl
+AC_ARG_ENABLE(smb,
+  [  --enable-smb         smb input module (default enabled)])
+if test "${enable_smb}" != "no"; then
+  AC_CHECK_HEADERS(libsmbclient.h,
+    [ VLC_ADD_PLUGINS([access_smb])
+      VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
+    [ if test -n "${enable_smb}"; then
+        AC_MSG_ERROR([cannot find libsmbclient headers])
+     fi ])
+fi
+
 dnl
 dnl  libdvbpsi ts demux/mux
 dnl
@@ -1530,19 +1546,19 @@ AC_ARG_ENABLE(libcdio,
 AC_ARG_ENABLE(libcddb,
   [  --enable-libcddb        CDDB support for CDDAX (default enabled)])
  
-dnl AC_ARG_ENABLE(vcdx,
-dnl   [  --enable-vcdx           VCD support with Navigation (default enabled)])
+AC_ARG_ENABLE(vcdx,
+  [  --enable-vcdx           VCD support with Navigation (default disabled)])
  
 AC_ARG_ENABLE(cdda,           
   [  --enable-cdda           CDDA plugin support (default enabled)])
  
 AC_ARG_ENABLE(cddax,
-  [  --enable-cddax          CDDAX plugin support (default enabled)])
+  [  --enable-cddax          CDDA plugin with CD Text and possibly CDDB and paranoia support (default disabled)])
  
-if test "${enable_cddax}" != "no"
+if test "${enable_cddax}" = "yes"
 then
   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71,
-   [enable_cddax="no"
+   [
     AC_DEFINE(HAVE_CDDAX, [], [Define for the CD-DA plugin using libcdio])
     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
@@ -1550,6 +1566,10 @@ then
     [AC_MSG_WARN(libcdio library not found)
     HAVE_CDDAX=no])
 
+  PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
+  VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])], 
+  HAVE_CDDAX=no)
+
   if test "$enable_libcddb" != "no"; then
     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
       HAVE_LIBCDDB=yes 
@@ -1561,18 +1581,24 @@ then
       HAVE_LIBCDDB=no])
   fi
  
-dnl   if test "${enable_vcdx}" != "no"
-dnl   then
-dnl     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
-dnl      [enable_vcd="no"
-dnl       AC_DEFINE(HAVE_VCDX, [], 
-dnl       [Define for the VCD plugin using libcdio/libvcdinfo])
-dnl       VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
-dnl       VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
-dnl       VLC_ADD_PLUGINS([vcdx])], 
-dnl      [AC_MSG_WARN(vcdinfo library not found)
-dnl      HAVE_VCDX=no])
-dnl   fi
+fi
+
+if test "${enable_vcdx}" = "yes"
+then
+  PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71,
+   [VLC_ADD_LDFLAGS([vcdx],[$LIBCDIO_LIBS])
+    VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
+    [AC_MSG_WARN(libcdio library not found)
+    HAVE_VCDX=no])
+
+  PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
+   [AC_DEFINE(HAVE_VCDX, [], 
+    [Define for the VCD plugin using libcdio/libvcdinfo])
+    VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
+    VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
+    VLC_ADD_PLUGINS([vcdx])], 
+   [AC_MSG_WARN(vcdinfo library not found)
+   HAVE_VCDX=no])
 fi
 
 dnl
@@ -1727,23 +1753,49 @@ dnl  matroska demux plugin
 dnl
 AC_ARG_ENABLE(mkv,
   [  --enable-mkv            Matroska demux support (default enabled)])
-if test "${enable_mkv}" != "no"; then
+if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
   AC_LANG_PUSH(C++)
   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
-    AC_CHECK_HEADERS(matroska/KaxVersion.h, [
-      AC_CHECK_HEADERS(matroska/KaxAttachments.h)
-      VLC_ADD_CXXFLAGS([mkv],[])
-      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])
-      ], [
-        AC_CHECK_LIB(ebml, main, [
-          # We only have libebml, make mkv.a a builtin
-          VLC_ADD_BUILTINS([mkv])
-          VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
+    AC_MSG_CHECKING(for libebml version >= 0.7.3)
+    AC_EGREP_CPP(yes,
+      [#include <ebml/EbmlVersion.h>
+       #ifdef LIBEBML_VERSION
+       #if LIBEBML_VERSION >= 0x000703
+       yes
+       #endif
+       #endif],
+      [AC_MSG_RESULT([yes])
+        AC_CHECK_HEADERS(matroska/KaxVersion.h, [
+          AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
+          AC_EGREP_CPP(yes,
+            [#include <matroska/KaxVersion.h>
+             #ifdef LIBMATROSKA_VERSION
+             #if LIBMATROSKA_VERSION >= 0x000705
+             yes
+             #endif
+             #endif],
+            [AC_MSG_RESULT([yes])
+              AC_CHECK_HEADERS(matroska/KaxAttachments.h)
+              VLC_ADD_CXXFLAGS([mkv],[])
+              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])
+              ], [
+                AC_CHECK_LIB(ebml, main, [
+                  # We only have libebml, make mkv.a a builtin
+                  VLC_ADD_BUILTINS([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.])
+          ])
         ])
-      ])
+      ],
+      [AC_MSG_RESULT([no])
+        AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
     ])
   ])
   AC_LANG_POP(C++)
@@ -2912,7 +2964,7 @@ dnl Roku HD1000 Video output module
 dnl
 AC_ARG_ENABLE(hd1000v,
   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
-if test "${enable_hd1000v}" != "no" &&
+if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
   (test "${SYS}" != "mingw32" || test "${enable_hd1000v}" = "yes")
 then
   AC_LANG_PUSH([C++])
@@ -3219,7 +3271,7 @@ dnl  Roku HD1000 audio
 dnl
 AC_ARG_ENABLE(hd1000a,
   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
-if test "${enable_hd1000a}" != "no" &&
+if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
   (test "${SYS}" != "mingw32" || test "${enable_hd1000a}" = "yes")
 then
   AC_LANG_PUSH([C++])
@@ -3432,7 +3484,7 @@ then
       fi ])
   # look for wx-config
   AC_PATH_PROG(WX_CONFIG, wx-config, no, ${WXWINDOWS_PATH})
-  if test "${WX_CONFIG}" != "no"
+  if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
   then
     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
     then
@@ -3918,6 +3970,7 @@ fi
 dnl
 dnl  Microsoft ActiveX support
 dnl
+activex=false
 AC_ARG_ENABLE(activex,
   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
 if test "${enable_activex}" != "no"
@@ -3931,6 +3984,7 @@ then
         AC_CHECK_HEADERS(objsafe.h,
           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
         )
+        activex=:
       ],
       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
     )
@@ -3938,6 +3992,7 @@ then
 fi
 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
 AM_CONDITIONAL(HAS_MIDL_COMPILER, test -n "${MIDL}")
+AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
 
 dnl
 dnl  Mozilla plugin
@@ -4253,11 +4308,14 @@ AC_CONFIG_FILES([
   modules/visualization/galaktos/Makefile
 ])
 
-AC_CONFIG_FILES([vlc-config], [chmod 0755 vlc-config])
-
 dnl Generate makefiles
 AC_OUTPUT
 
+# Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
+# not provided with the source
+${SHELL} ./config.status --file=vlc-config
+chmod 0755 vlc-config
+
 printf "
 vlc configuration
 --------------------