]> git.sesse.net Git - vlc/blob - configure.ac
- libvlc target, removed uneeded libs target previously for for external libvlc compi...
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="$0 $ac_configure_args"
10 CODENAME="Grishenko"
11
12 AC_PREREQ(2.59)
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
17
18 AM_INIT_AUTOMAKE([1.7 check-news dist-bzip2])
19 AM_CONFIG_HEADER(config.h)
20
21 dnl Too many people are not aware of maintainer mode:
22 dnl If you want to use it, you definitely know what you are doing, so
23 dnl you can specify "--disable-maintainer-mode". But if you want the default
24 dnl automake behavior, you've likely never heard of maintainer mode, so we
25 dnl can't expect you to enable it manually.
26
27 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
28         [enable_maintainer_mode="yes"])
29
30 dnl HA! HA!
31 AM_MAINTAINER_MODE
32
33 dnl
34 dnl  Save *FLAGS
35 dnl
36 VLC_SAVE_FLAGS
37
38 dnl
39 dnl Check for tools
40 dnl
41 AC_PROG_CC_C99
42 AC_USE_SYSTEM_EXTENSIONS
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104 dnl kludge because only the debian package provides a ffmpeg-config
105     if test -z $with_ffmpeg_config_path; then 
106        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
107     fi
108     if test -z $with_live555_tree; then
109        with_live555_tree=${topdir}/extras/contrib/src/live
110     fi
111     if test -z $with_goom_tree; then
112       with_goom_tree=${topdir}/extras/contrib/src/goom
113     fi
114     if test -z $with_mozilla_sdk_path; then
115        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
116     fi
117     if test -z $with_cyberlink_tree; then
118        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
119     fi
120     if test -z $with_libmpeg2_tree; then
121         with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
122     fi
123
124     if test ".`uname -s`" = ".Darwin"; then
125       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
126       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
127     elif test ".`uname -s`" = ".BeOS"; then
128       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
129       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
130     fi
131   else
132      AC_MSG_RESULT([no])
133   fi
134   fi
135 fi
136 dnl
137 dnl  Set default values
138 dnl
139 LDFLAGS_vlc="${LDFLAGS}"
140
141 dnl
142 dnl  Check the operating system
143 dnl
144 case "${host_os}" in
145   "")
146     SYS=unknown
147     ;;
148   linux*)
149     SYS=linux
150     ;;
151   bsdi*)
152     SYS=bsdi
153     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
154     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
155     ;;
156   *bsd*)
157     SYS="${host_os}"
158     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
159     case "${host_os}" in
160       freebsd*)
161         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
162         CPPFLAGS="${CPPFLAGS_save}"
163         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
164         LDFLAGS="${LDFLAGS_save}"
165         ;;
166     esac
167     ;;
168   darwin1.[0123])
169     dnl Mac OS X < 10.3
170     SYS=darwin
171     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
172     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
173     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
174     VLC_ADD_LDFLAGS([libvlc ffmpeg ffmpegaltivec],[-all_load])
175     VLC_ADD_LDFLAGS([mkv mp4], [-framework IOKit -framework CoreFoundation])
176     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
177     VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
178     ;;
179   darwin*)
180     SYS=darwin
181     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
182     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
183     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
184     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
185     VLC_ADD_LDFLAGS([mkv mp4], [-framework IOKit -framework CoreFoundation])
186     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
187     ;;
188   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
189     AC_CHECK_TOOL(WINDRES, windres, :)
190     enable_libtool="no"
191
192     case "${host_os}" in
193       *mingw32*)
194         SYS=mingw32
195         ;;
196       *cygwin*)
197         dnl Check if we are using the mno-cygwin mode in which case we are
198         dnl actually dealing with a mingw32 compiler.
199         AC_EGREP_CPP(yes,
200             [#ifdef WIN32
201              yes
202              #endif],
203             SYS=mingw32, SYS=cygwin)
204         ;;
205       *wince* | *mingwce* | *pe*)
206         SYS=mingwce
207         ;;
208     esac
209
210     if test "${SYS}" = "mingw32"; then
211         # add ws2_32 for closesocket, select, recv
212         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
213         VLC_ADD_LDFLAGS([libvlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
214         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
215         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])
216     fi
217     if test "${SYS}" = "mingwce"; then
218         # add ws2 for closesocket, select, recv
219         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
220         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
221         VLC_ADD_LDFLAGS([libvlc vlc],[-lws2 -e WinMainCRTStartup])
222         VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
223    fi
224     ;;
225   *nto*)
226     SYS=nto
227     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
228     ;;
229   solaris*)
230     SYS=solaris
231     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
232     # Perhaps it is useful other places as well? 
233     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
234     ;;
235   hpux*)
236     SYS=hpux
237     ;;
238   beos)
239     SYS=beos
240     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
241     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
242     VLC_ADD_CXXFLAGS([beos],[])
243     VLC_ADD_LDFLAGS([vlc libvlc logger],[-lbe])
244     VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
245     VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl])
246     VLC_ADD_LDFLAGS([access_file],[-lpoll])
247     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
248     dnl Check for BONE
249     if test -f /boot/beos/system/lib/libbind.so; then
250         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
251     else
252         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
253     fi
254
255     dnl Ugly check for Zeta
256     if test -f /boot/beos/system/lib/libzeta.so; then
257         VLC_ADD_LDFLAGS([beos],[-lzeta])
258     fi
259     ;;
260   *)
261     SYS="${host_os}"
262     ;;
263 esac
264 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
265 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
266 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
267 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
268
269 dnl
270 dnl  Libtool
271 dnl  It's very bad, but our former custom system was worst
272 dnl  -- Courmisch
273 dnl
274 AC_DISABLE_STATIC
275 AC_LIBTOOL_DLOPEN
276 dnl AC_LIBTOOL_WIN32_DLL - couldn't get libtool to work on Win32 so far
277 m4_undefine([AC_PROG_F77])
278 m4_defun([AC_PROG_F77],[])
279 AC_PROG_LIBTOOL
280
281 AC_ARG_ENABLE(libtool,
282     [  --enable-libtool        use libtool (default disabled)])
283 AM_CONDITIONAL(USE_LIBTOOL, [test "x${enable_libtool}" != "xno"])
284
285
286 dnl
287 dnl  Check for Mac OS X SDK settings
288 dnl
289 AC_ARG_WITH(macosx-sdk,
290    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
291 if test "${with_macosx_sdk}" != "no" ; then
292   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
293   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
294   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
295   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
296   export MACOSX_DEPLOYMENT_TARGET=10.3
297   MACOSX_DEPLOYMENT_TARGET="10.3"
298 fi
299
300 dnl
301 dnl Gettext stuff
302 dnl
303 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"
304 AM_GNU_GETTEXT_VERSION(0.11.5)
305 AM_GNU_GETTEXT
306 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
307   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
308   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
309   AS_IF([test "${enable_libtool}" != "no"], [
310     INCLUDED_LIBINTL="${LTLIBINTL}"
311   ],[
312     INCLUDED_LIBINTL="${LIBINTL}"
313   ])
314 ], [
315   AS_IF([test "${enable_libtool}" != "no"], [
316     VLC_ADD_LDFLAGS([libvlc vlc], [${LTLIBINTL}])
317   ], [
318     VLC_ADD_LDFLAGS([libvlc vlc], [${LIBINTL}])
319   ])
320 ])
321 AC_SUBST(INCLUDED_LIBINTL)
322 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" 
323
324 dnl
325 dnl Iconv stuff
326 dnl
327 if test "${SYS}" != "mingwce"; then
328 AS_IF([test "$am_cv_func_iconv" != "yes"],
329         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
330 fi
331 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
332 AS_IF([test "${enable_libtool}" != "no"], [
333   VLC_ADD_LDFLAGS([libvlc vlc],[${LIBICONV}])
334 ],[
335   VLC_ADD_LDFLAGS([libvlc vlc],[${LTLIBICONV}])
336 ])
337
338 dnl Check for the need to include the mingwex lib for mingw32
339 if test "${SYS}" = "mingw32"
340 then
341     AC_CHECK_LIB(mingwex,opendir,
342         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([libvlc],[]),
343             [VLC_ADD_LDFLAGS([libvlc gtk],[-lmingwex])])
344     )
345 fi
346
347 dnl Check for fnative-struct or mms-bitfields support for mingw32
348 if test "${SYS}" = "mingw32"
349 then
350     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
351         [ac_cv_c_mms_bitfields],
352         [CFLAGS="${CFLAGS_save} -mms-bitfields"
353          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
354     if test "${ac_cv_c_mms_bitfields}" != "no"; then
355         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
356         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
357     else
358         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
359             [ac_cv_c_fnative_struct],
360             [CFLAGS="${CFLAGS_save} -fnative-struct"
361              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
362         if test "${ac_cv_c_fnative_struct}" != "no"; then
363             CFLAGS_save="${CFLAGS_save} -fnative-struct";
364             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
365         fi
366     fi
367
368     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
369 fi
370
371 dnl Check for fvtable-thunks support for mingw32
372 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
373 then
374 AC_LANG_PUSH(C++)
375     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
376         [ac_cv_cxx_fvtable_thunks],
377         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
378          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
379                         ac_cv_cxx_fvtable_thunks=no)])
380     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
381         CXXFLAGS_mingw32_special="-fvtable-thunks"
382     fi
383
384     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
385 AC_LANG_POP(C++)
386 fi
387
388 dnl Plugin compilation stuff
389
390 VLC_LIBRARY_SUFFIX
391
392 VLC_SYMBOL_PREFIX
393 AC_SUBST(SYMPREF)
394
395 AS_IF([test "${enable_libtool}" = "no"], [
396 case "${SYS}" in
397   mingw32|cygwin)
398     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
399     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
400     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
401     ;;
402   mingwce)
403     ;;
404   *)
405     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
406     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
407     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
408     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
409     ;;
410 esac
411 ])
412
413 dnl The -DSYS_FOO flag
414 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
415
416 dnl Check for system libs needed
417 need_libc=false
418
419 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)
420
421 dnl Check for usual libc functions
422 AC_CHECK_FUNCS(strdup strndup atof)
423 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
424 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
425 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
426
427 dnl Check for setlocal and langinfo
428 AC_CHECK_FUNCS(setlocale)
429 AC_CHECK_HEADERS(langinfo.h)
430 AC_CHECK_FUNCS(nl_langinfo)
431
432 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
433   [AC_TRY_LINK([#include <langinfo.h>],
434     [char* cs = nl_langinfo(CODESET);],
435     ac_cv_langinfo_codeset=yes,
436     ac_cv_langinfo_codeset=no)
437   ])
438 if test ${ac_cv_langinfo_codeset} = yes; then
439   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
440     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
441 fi
442
443 AC_CHECK_FUNCS(connect,,[
444   AC_CHECK_LIB(socket,connect,[
445     VLC_ADD_LDFLAGS([libvlc cdda cddax],-lsocket)
446     LIBS_socket="-lsocket"
447   ])
448 ])
449
450 AC_CHECK_FUNCS(send,,[
451   AC_CHECK_LIB(socket,send,[
452     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
453   ])
454 ])
455
456 AC_CHECK_FUNCS(gethostbyname,,[
457   AC_CHECK_LIB(nsl,gethostbyname,[
458     VLC_ADD_LDFLAGS([cdda cddax libvlc],[-lnsl])
459   ],[
460     AC_CHECK_LIB(bind,gethostbyname,[
461       VLC_ADD_LDFLAGS([access_mms],[-lbind])
462     ])
463   ])
464 ])
465
466 dnl Check for socklen_t
467 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
468   [AC_TRY_COMPILE(
469      [#include <sys/types.h>
470       #include <sys/socket.h>],
471      [socklen_t len = 42; return len;],
472      ac_cv_type_socklen_t=yes,
473      ac_cv_type_socklen_t=no)])
474 if test "${ac_cv_type_socklen_t}" != "no"; then
475   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
476 fi
477
478 dnl Check for struct sockaddr_storage
479 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
480 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
481 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
482   [AC_TRY_COMPILE(
483     [#include <sys/types.h>
484      #if defined( UNDER_CE )
485      # include <winsock.h>
486      #elif defined( WIN32 )
487      # include <winsock2.h>
488      #else
489      # include <sys/socket.h>
490      #endif], [struct sockaddr_storage addr;],
491      ac_cv_struct_sockaddr_storage=yes,
492      ac_cv_struct_sockaddr_storage=no)])
493 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
494   AC_DEFINE(sockaddr_storage, sockaddr)
495   AC_DEFINE(ss_family, sa_family)
496 ])
497
498 dnl getaddrinfo, getnameinfo and gai_strerror check
499 dnl  -lnsl and -lsocket are needed on Solaris;
500 dnl  we purposedly make the test fail on Windows
501 LIBS_save="${LIBS}"
502 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
503 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
504
505 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
506 dnl are
507 LIBS="${LIBS_gai}"
508 AC_CHECK_FUNCS([getnameinfo gai_strerror])
509 LIBS="${LIBS_save}"
510
511 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
512 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
513 [#include <sys/types.h>
514 #if defined( WIN32 ) || defined( UNDER_CE )
515 # if defined(UNDER_CE) && defined(sockaddr_storage)
516 #  undef sockaddr_storage
517 # endif
518 # include <winsock2.h>
519 # include <ws2tcpip.h>
520 #else
521 # include <netdb.h>
522 #endif])
523
524 dnl Check for va_copy
525 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
526   AC_TRY_LINK(
527     [#include <stdarg.h>],
528     [va_list ap1, ap2; va_copy(ap1,ap2);],
529     [ac_cv_c_va_copy="yes"],
530     [ac_cv_c_va_copy="no"]))
531 if test "${ac_cv_c_va_copy}" = "yes"; then
532   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
533 fi
534 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
535   AC_TRY_LINK(
536     [#include <stdarg.h>],
537     [va_list ap1, ap2; __va_copy(ap1,ap2);],
538     [ac_cv_c___va_copy="yes"],
539     [ac_cv_c___va_copy="no"]))
540 if test "${ac_cv_c___va_copy}" = "yes"; then
541   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
542 fi
543
544 AC_CHECK_FUNCS(inet_aton,,[
545   AC_CHECK_LIB(resolv,inet_aton,[
546     VLC_ADD_LDFLAGS([libvlc],[-lresolv])
547   ])
548 ])
549
550 dnl Check for getopt (always use builtin one on win32)
551 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
552 need_getopt=:
553 else
554 need_getopt=false
555 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
556 [ # FreeBSD has a gnugetopt library for this:
557   AC_CHECK_LIB([gnugetopt],[getopt_long],
558     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
559      VLC_ADD_LDFLAGS([libvlc],[-lgnugetopt])],
560     [need_getopt=:])])
561 fi
562 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
563
564 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
565 AC_TYPE_SIGNAL
566 AC_CHECK_LIB(m,cos,[
567   VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise],[-lm])
568 ])
569 AC_CHECK_LIB(m,pow,[
570   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])
571 ])
572 AC_CHECK_LIB(m,sqrt,[
573   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex mono colorthres],[-lm])
574 ])
575 AC_CHECK_LIB(m,ceil,[
576   VLC_ADD_LDFLAGS([mosaic],[-lm])
577 ])
578 AC_CHECK_LIB(mx,sqrtf,[
579   VLC_ADD_LDFLAGS([x264],[-lmx])
580 ])
581 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
582
583 dnl Check for dynamic plugins
584 ac_cv_have_plugins=no
585
586 # OS X style
587 AC_CHECK_HEADERS(mach-o/dyld.h,
588   [AC_CHECK_FUNCS(NSLinkModule,
589     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
590      ac_cv_have_plugins=yes])])
591
592 # HP-UX style
593 if test "${ac_cv_have_plugins}" = "no"; then
594   AC_CHECK_HEADERS(dl.h)
595   ac_cv_my_have_shl_load=no
596   AC_CHECK_FUNC(shl_load,
597    [ac_cv_my_have_shl_load=yes,
598     AC_CHECK_LIB(dld, shl_load,
599      [ac_cv_my_have_shl_load=yes
600       VLC_ADD_LDFLAGS([libvlc],[-ldld])])])
601   if test "${ac_cv_my_have_shl_load}" = "yes"; then
602     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
603     ac_cv_have_plugins=yes
604   fi
605 fi
606
607 # Whatever style
608 if test "${ac_cv_have_plugins}" = "no"; then
609   AC_CHECK_LIB(dld, dld_link,
610    [VLC_ADD_LDFLAGS([libvlc],[-ldld])
611     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
612     ac_cv_have_plugins=yes])
613 fi
614
615 # Win32 style
616 if test "${ac_cv_have_plugins}" = "no"; then
617   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
618     AC_CHECK_LIB(kernel32, main,
619      [VLC_ADD_LDFLAGS([libvlc],[-lkernel32])
620       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
621       ac_cv_have_plugins=yes])
622   fi
623 fi
624
625 # WinCE style
626 if test "${ac_cv_have_plugins}" = "no"; then
627   if test "${SYS}" = "mingwce"; then
628     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
629     ac_cv_have_plugins=yes
630   fi
631 fi
632
633 # BeOS style
634 if test "${ac_cv_have_plugins}" = "no"; then
635   AC_CHECK_HEADERS(image.h)
636   AC_CHECK_FUNCS(load_add_on,
637    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
638     ac_cv_have_plugins=yes])
639 fi
640
641 # Only test for dlopen() if the others didn't work
642 if test "${ac_cv_have_plugins}" = "no"; then
643   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
644   ac_cv_my_have_dlopen=no
645   AC_CHECK_FUNC(dlopen,
646     ac_cv_my_have_dlopen=yes,
647     AC_CHECK_LIB(dl, dlopen,
648       ac_cv_my_have_dlopen=yes
649       VLC_ADD_LDFLAGS([libvlc],[-ldl]),
650       AC_CHECK_LIB(svld, dlopen,
651         ac_cv_my_have_dlopen=yes
652         VLC_ADD_LDFLAGS([libvlc],[-lsvld]))))
653   if test "${ac_cv_my_have_dlopen}" = "yes"; then
654     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
655     ac_cv_have_plugins=yes
656   fi
657 fi
658
659 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
660 dnl Check for pthreads - borrowed from XMMS
661 THREAD_LIB=error
662 if test "${THREAD_LIB}" = "error"; then
663   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
664 fi
665 if test "${THREAD_LIB}" = "error"; then
666   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
667 fi
668 if test "${THREAD_LIB}" = "error"; then
669   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
670 fi
671 if test "${THREAD_LIB}" = "error"; then
672   AC_CHECK_FUNCS(pthread_mutex_lock)
673   THREAD_LIB=""
674 fi
675
676 dnl Check for cthreads under GNU/Hurd for instance
677 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
678
679 dnl
680 dnl  GNU portable threads
681 dnl
682 AC_ARG_ENABLE(pth,
683   [  --enable-pth            GNU Pth support (default disabled)],
684   [ if test "${enable_pth}" = "yes"; then
685     AC_CHECK_LIB(pth,pth_init)
686     AC_MSG_CHECKING(for pth_init in pth.h)
687     AC_EGREP_HEADER(pth_init,pth.h,[
688       AC_MSG_RESULT(yes)
689       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
690                 Define if <pth.h> defines pth_init)
691       THREAD_LIB="-lpth"
692     ],[
693       AC_MSG_RESULT(no)
694     ])
695     fi
696 ])
697
698 dnl
699 dnl  State Threads
700 dnl
701 AC_ARG_ENABLE(st,
702   [  --enable-st             State Threads (default disabled)],
703   [ if test "${enable_st}" = "yes"; then
704     AC_CHECK_LIB(st,st_init)
705     AC_MSG_CHECKING(for st_init in st.h)
706     AC_EGREP_HEADER(st_init,st.h,[
707       AC_MSG_RESULT(yes)
708       AC_DEFINE(ST_INIT_IN_ST_H, 1,
709                 Define if <st.h> defines st_init)
710       THREAD_LIB="-lst"
711     ],[
712       AC_MSG_RESULT(yes)
713     ])
714     fi
715 ])
716
717 VLC_ADD_LDFLAGS([libvlc plugin],[${THREAD_LIB}])
718
719 dnl Don't link with rt when using GNU-pth
720 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
721   AC_CHECK_LIB(rt, clock_nanosleep, [
722     VLC_ADD_LDFLAGS([libvlc],[-lrt])
723     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
724   ], [
725     dnl HP/UX port
726     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([libvlc],[-lrt])])
727   ])
728
729   have_nanosleep=false
730   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
731     AC_CHECK_LIB(rt,nanosleep,
732       [VLC_ADD_LDFLAGS([libvlc],[-lrt]) have_nanosleep=:],
733       [AC_CHECK_LIB(posix4,nanosleep,
734           [VLC_ADD_LDFLAGS([libvlc],[-lposix4]) have_nanosleep=:])]
735     )
736   ])
737   if ${have_nanosleep}; then
738     AC_DEFINE(HAVE_NANOSLEEP, 1,
739               Define if nanosleep is available.)
740   fi
741 fi
742
743 dnl Check for misc headers
744 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
745 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
746   AC_MSG_RESULT(yes)
747   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
748             Define if <pthread.h> defines pthread_cond_t.)],[
749   AC_MSG_RESULT(no)])
750
751 AC_MSG_CHECKING(for pthread_once in pthread.h)
752 AC_EGREP_HEADER(pthread_once,pthread.h,[
753   AC_MSG_RESULT(yes)
754   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
755             Define if <pthread.h> defines pthread_once.)],[
756   AC_MSG_RESULT(no)])
757 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
758
759 AC_MSG_CHECKING(for strncasecmp in strings.h)
760 AC_EGREP_HEADER(strncasecmp,strings.h,[
761   AC_MSG_RESULT(yes)
762   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
763             Define if <strings.h> defines strncasecmp.)],[
764   AC_MSG_RESULT(no)])
765
766 dnl Check for headers
767 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
768 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
769 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
770 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
771 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
772 AC_CHECK_HEADERS(linux/version.h)
773 AC_CHECK_HEADERS(syslog.h)
774 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
775
776 AC_HEADER_TIME
777
778 AC_CHECK_TYPE(ssize_t, int)
779 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
780
781 dnl Check for dirent
782 need_dirent=false
783 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
784 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
785
786 dnl Mac OS X and other OSes don't have declaration for nanosleep
787 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
788 AC_MSG_CHECKING(for nanosleep in time.h)
789 AC_EGREP_HEADER(nanosleep,time.h,[
790   AC_MSG_RESULT(yes)
791   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
792             Define if <time.h> defines nanosleep.)
793 ],[
794   AC_MSG_RESULT(no)
795 ])
796 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
797
798 dnl Make sure we have timespecs
799 AC_MSG_CHECKING(for timespec in sys/time.h)
800 AC_EGREP_HEADER(timespec,sys/time.h,[
801   AC_MSG_RESULT(yes)
802   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
803             Define if <sys/time.h> defines struct timespec.)
804 ],[
805   AC_MSG_RESULT(no)
806 ])
807
808 dnl Check for threads library
809 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
810 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
811 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
812
813 dnl Find where are the X headers and libraries
814 AC_PATH_XTRA()
815
816 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.
817
818 PKG_PROG_PKG_CONFIG()
819
820 dnl Check for hal
821 AC_ARG_ENABLE(hal,
822   [  --enable-hal            Linux HAL services discovery (default enabled)])
823  
824 if test "${enable_hal}" != "no"
825 then
826   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
827     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
828       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
829       VLC_ADD_PLUGINS([hal probe_hal]) 
830       VLC_ADD_LDFLAGS([libvlc hal probe_hal],[$HAL_LIBS])
831       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
832     dnl No hal 0.5 Test for 0.2
833     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
834        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
835         VLC_ADD_PLUGINS([hal])
836         VLC_ADD_LDFLAGS([libvlc hal],[$HAL_LIBS])
837         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
838        [AC_MSG_WARN(HAL library not found)])
839     ]
840   )
841 fi
842
843 dnl Check for dbus
844 AC_ARG_ENABLE(dbus,
845   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
846  
847 if test "${enable_dbus}" != "no"
848 then
849   dnl api stable dbus
850   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
851     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
852       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
853       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
854       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
855       VLC_ADD_LDFLAGS([screensaver libvlc],[$DBUS_LIBS])
856       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
857       dnl Check for dbus control interface
858         AC_ARG_ENABLE(dbus-control, [  --enable-dbus-control   D-BUS control interface (default disabled)])
859         if test "${enable_dbus_control}" = "yes"
860         then
861           VLC_ADD_PLUGINS([dbus])
862           VLC_ADD_LDFLAGS([dbus],[$DBUS_LIBS])
863           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
864         fi],
865
866     if ${PKG_CONFIG} --exists dbus-1
867     then
868       [AC_ARG_ENABLE(old-dbus,
869         [  --enable-old-dbus      Deprecated D-Bus support (default disabled)])]
870
871       if test "${enable_old_dbus}" != "yes"
872       then
873         echo ""
874         echo "****** WARNING **** WARNING ***** WARNING *************"
875         echo "*** Your D-Bus version is < 1.0.0"
876         echo "*** You are using old and buggy software and so"
877         echo "*** D-Bus support has been disabled."
878         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
879         echo "*** Alternatively you can force the use of your old and"
880         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
881         echo "*******************************************************"
882         echo ""
883       else
884         dnl not too old dbus
885         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
886           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
887             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
888             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
889             VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
890             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
891           dnl older dbus
892           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
893             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
894               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
895               VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
896               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
897             dnl much older dbus
898             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
899                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
900                 VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
901                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
902                [AC_MSG_WARN(DBUS library not found)])
903             ]
904           )]
905         )]
906       fi
907     fi
908   )
909 fi
910
911 dnl Build the gtk_main plugins?
912 NEED_GTK_MAIN=no
913 NEED_GNOME_MAIN=no
914 NEED_GTK2_MAIN=no
915 NEED_GNOME2_MAIN=no
916
917 dnl build the qte plugin ?
918 NEED_QTE_MAIN=no
919
920 dnl Check for ntohl, etc.
921 AC_CACHE_CHECK([for ntohl in sys/param.h],
922     [ac_cv_c_ntohl_sys_param_h],
923     [CFLAGS="${CFLAGS_save} -Wall -Werror"
924      AC_TRY_COMPILE([#include <sys/param.h>],
925         [int meuh; ntohl(meuh);],
926         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
927 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
928     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
929 fi
930 CFLAGS="${CFLAGS_save}"
931
932 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])
933 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
934
935 dnl This helps detect broken plugins with undefined symbols
936 dnl Better fail loudly at build-time than silenty at run-time.
937 RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
938   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
939 ])
940
941 dnl Check for various optimization flags
942 AC_CACHE_CHECK([if \$CC accepts -Os],
943     [ac_cv_c_os],
944     [CFLAGS="${CFLAGS_save} -Os"
945      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
946 if test "${ac_cv_c_os}" != "no" -a "${host_cpu}" = "mipsel"; then
947     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
948 fi
949
950 AC_CACHE_CHECK([if \$CC accepts -O3],
951     [ac_cv_c_o3],
952     [CFLAGS="${CFLAGS_save} -O3"
953      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
954 if test "${ac_cv_c_o3}" != "no" -a "${host_cpu}" != "mipsel"; then
955     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
956 fi
957
958 AC_CACHE_CHECK([if \$CC accepts -O2],
959     [ac_cv_c_o2],
960     [CFLAGS="${CFLAGS_save} -O2"
961      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
962 if test "${ac_cv_c_o2}" != "no" -a "${host_cpu}" != "mipsel"; then
963     if test "${ac_cv_c_o3}" = "no"; then
964         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
965     fi
966     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
967 else 
968     AC_CACHE_CHECK([if \$CC accepts -O],
969         [ac_cv_c_o],
970         [CFLAGS="${CFLAGS_save} -O"
971          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
972     if test "${ac_cv_c_o}" != "no" -a "${host_cpu}" != "mipsel"; then
973         if test "${ac_cv_c_o3}" = "no"; then
974             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
975         fi
976         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
977     fi
978 fi
979
980 dnl Check for -ffast-math
981 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
982     [ac_cv_c_fast_math],
983     [CFLAGS="${CFLAGS_save} -ffast-math"
984      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
985 if test "${ac_cv_c_fast_math}" != "no"; then
986     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
987 fi
988
989 dnl Check for -funroll-loops
990 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
991 if test "${SYS}" != "beos"
992 then
993   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
994       [ac_cv_c_unroll_loops],
995       [CFLAGS="${CFLAGS_save} -funroll-loops"
996        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
997   if test "${ac_cv_c_unroll_loops}" != "no"; then
998       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
999   fi
1000 fi
1001
1002 dnl Check for -fomit-frame-pointer
1003 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1004     [ac_cv_c_omit_frame_pointer],
1005     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1006      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1007 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1008     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1009     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
1010     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
1011 fi
1012
1013 dnl Check for -mdynamic-no-pic
1014 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1015     [ac_cv_c_dynamic_no_pic],
1016     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1017      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1018 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1019     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1020     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1021 ])
1022
1023 dnl Check for Darwin plugin linking flags
1024 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1025     [ac_cv_ld_darwin],
1026     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1027      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1028 if test "${ac_cv_ld_darwin}" != "no"; then
1029     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1030 fi
1031
1032 dnl Check for standard plugin linking flags
1033 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1034 AS_IF([test "${enable_libtool}" = "no"], [
1035   AS_IF([test "${SYS}" = "beos"], [
1036     VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1037   ], [
1038     AC_CACHE_CHECK([if \$CC accepts -shared],
1039           [ac_cv_ld_plugins],
1040           [CFLAGS="${CFLAGS_save} -shared"
1041          AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1042     AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1043       VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1044     ])
1045   ])
1046 ])
1047
1048 dnl Check for variadic macros
1049 AC_CACHE_CHECK([for variadic cpp macros],
1050     [ac_cv_cpp_variadic_macros],
1051     [CFLAGS="${CFLAGS_save}"
1052      AC_TRY_COMPILE(
1053          [#include <stdio.h>
1054           #define a(b,c...) printf(b,##c)],
1055          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1056          ac_cv_cpp_variadic_macros=yes,
1057          ac_cv_cpp_variadic_macros=no)])
1058 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1059     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1060 fi
1061
1062 dnl Checks for __attribute__(aligned()) directive
1063 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1064     [ac_cv_c_attribute_aligned],
1065     [ac_cv_c_attribute_aligned=0
1066         CFLAGS="${CFLAGS_save} -Werror"
1067     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1068         AC_TRY_COMPILE([],
1069         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1070         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1071     done
1072         CFLAGS="${CFLAGS_save}"])
1073 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1074     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1075         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1076 fi
1077
1078 dnl Checks for __attribute__(format()) directive
1079 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1080     [ac_cv_c_attribute_format],
1081     [ac_cv_c_attribute_format=no
1082         CFLAGS="${CFLAGS_save} -Werror"
1083         AC_TRY_COMPILE([],
1084         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1085         [ac_cv_c_attribute_format=yes])
1086         CFLAGS="${CFLAGS_save}"])
1087 if test "${ac_cv_c_attribute_format}" != "no"; then
1088     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1089 fi
1090
1091 dnl Check for __attribute__(())
1092 AC_CACHE_CHECK([for __attribute__((packed))],
1093   [ac_cv_c_attribute_packed],
1094   [ac_cv_c_attribute_packed=no
1095    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1096                     [ac_cv_c_attribute_packed=yes])])
1097 if test "${ac_cv_c_attribute_packed}" != "no"; then
1098   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1099 fi
1100
1101 dnl
1102 dnl  Check the CPU
1103 dnl
1104 case "${host_cpu}" in
1105   "")
1106     ARCH=unknown
1107     ;;
1108   *)
1109     ARCH="${host_cpu}"
1110     ;;
1111 esac
1112
1113 dnl
1114 dnl  Enable profiling
1115 dnl
1116 AC_ARG_ENABLE(gprof,
1117 [  --enable-gprof          gprof profiling (default disabled)])
1118 AC_ARG_ENABLE(cprof,
1119 [  --enable-cprof          cprof profiling (default disabled)])
1120 test "${enable_gprof}" != "yes" && enable_gprof="no"
1121 test "${enable_cprof}" != "yes" && enable_cprof="no"
1122
1123 dnl
1124 dnl  default modules
1125 dnl
1126 VLC_ADD_PLUGINS([dummy logger memcpy])
1127 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flacsys tta])
1128 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flac])
1129 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise])
1130 VLC_ADD_PLUGINS([converter_fixed mono])
1131 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1132 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1133 VLC_ADD_PLUGINS([playlist export sgimb nsc xtag])
1134 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify puzzle colorthres])
1135 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1136 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1137 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1138 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1139 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1140
1141
1142 if test "${SYS}" != "mingwce"; then
1143   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1144   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1145   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1146   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1147   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1148   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1149   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1150   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1151 fi
1152
1153 dnl
1154 dnl  Switch to enable a version of VLC where most modules will be builtin
1155 dnl
1156 AC_ARG_ENABLE(mostly-builtin,
1157 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1158 if test "${enable_mostly_builtin}" = "yes"; then
1159   VLC_ADD_BUILTINS([${PLUGINS}])
1160   PLUGINS=""
1161 fi
1162
1163 dnl
1164 dnl Some plugins aren't useful on some platforms
1165 dnl
1166 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1167     VLC_ADD_PLUGINS([screensaver motion])
1168 elif test "${SYS}" != "mingwce"; then
1169     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1170     VLC_ADD_LDFLAGS([dmo],[-lole32])
1171 else
1172     VLC_ADD_PLUGINS([win32text])
1173 fi
1174
1175 dnl
1176 dnl  Accelerated modules
1177 dnl
1178 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1179 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1180 MMXEXT_MODULES="memcpymmxext"
1181 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1182 THREEDNOW_MODULES="memcpy3dn"
1183 SSE_MODULES=""
1184 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1185 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1186
1187 if test "${enable_gprof}" != "yes"
1188 then
1189   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1190 fi
1191
1192 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1193     [ac_cv_mmx_inline],
1194     [CFLAGS="${CFLAGS_save}"
1195      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1196                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1197 if test "${ac_cv_mmx_inline}" != "no"; then
1198   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1199   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1200 fi
1201
1202 dnl  Check for fully workin MMX intrinsics
1203 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1204 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1205 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1206     [ac_cv_c_mmx_intrinsics],
1207     [CFLAGS="${CFLAGS_save} -O -mmmx"
1208      AC_TRY_COMPILE([#include <mmintrin.h>
1209                      #include <stdint.h>
1210                      uint64_t frobzor;],
1211                     [__m64 a, b, c;
1212                      a = b = c = (__m64)frobzor;
1213                      a = _mm_slli_pi16(a, 3);
1214                      a = _mm_adds_pi16(a, b);
1215                      c = _mm_srli_pi16(c, 8);
1216                      c = _mm_slli_pi16(c, 3);
1217                      b = _mm_adds_pi16(b, c);
1218                      a = _mm_unpacklo_pi8(a, b);
1219                      frobzor = (uint64_t)a;],
1220                     [ac_cv_c_mmx_intrinsics=yes],
1221                     [ac_cv_c_mmx_intrinsics=no])])
1222 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1223   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1224   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1225 fi
1226
1227 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1228     [ac_cv_mmxext_inline],
1229     [CFLAGS="${CFLAGS_save}"
1230      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1231                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1232 if test "${ac_cv_mmxext_inline}" != "no"; then
1233   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1234   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1235 fi
1236
1237 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1238     [ac_cv_3dnow_inline],
1239     [CFLAGS="${CFLAGS_save}"
1240      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1241                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1242 if test "${ac_cv_3dnow_inline}" != "no"; then
1243   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1244   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1245 fi
1246
1247 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1248     [ac_cv_sse_inline],
1249     [CFLAGS="${CFLAGS_save}"
1250      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1251                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1252 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1253   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1254   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1255 fi
1256
1257 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1258 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1259     [ac_cv_altivec_inline],
1260     [CFLAGS="${CFLAGS_save}"
1261      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1262          ac_cv_altivec_inline=yes,
1263          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1264           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1265             [ac_cv_altivec_inline="-Wa,-m7400"],
1266             ac_cv_altivec_inline=no)
1267          ])])
1268 if test "${ac_cv_altivec_inline}" != "no"; then
1269   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1270   if test "${ac_cv_altivec_inline}" != "yes"; then
1271     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1272     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1273     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1274     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1275     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1276   fi
1277   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1278 fi
1279
1280 dnl The AltiVec C extensions
1281 dnl
1282 dnl There are several possible cases:
1283 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1284 dnl                      need <altivec.h>
1285 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1286 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1287 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1288 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1289 dnl - Others: test should fail
1290 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1291   [ac_cv_c_altivec],
1292   [# OS X/PPC test (gcc 4.x)
1293    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1294    AC_TRY_COMPILE([vector unsigned char foo;],
1295      [vec_ld(0, (unsigned char *)0);],
1296      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1297      [# OS X/PPC test (gcc 3.x)
1298       CFLAGS="${CFLAGS_save} -faltivec"
1299       AC_TRY_COMPILE([vector unsigned char foo;],
1300         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1301         [ac_cv_c_altivec="-faltivec"],
1302         dnl Below this are the Linux tests
1303         [# Linux/PPC test (gcc 4.x)
1304          CFLAGS="${CFLAGS_save} -maltivec"
1305          AC_TRY_COMPILE([#include <altivec.h>],
1306            [vec_ld(0, (unsigned char *)0);],
1307            [ac_cv_c_altivec="-maltivec"],
1308            [# Linux/PPC test (gcc 3.3)
1309             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1310             AC_TRY_COMPILE([#include <altivec.h>],
1311               [vec_ld(0, (unsigned char *)0);],
1312               [ac_cv_c_altivec=""
1313                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1314               [# Linux/PPC test (gcc 3.3)
1315                CFLAGS="${CFLAGS_save} -fvec"
1316                AC_TRY_COMPILE([#include <altivec.h>],
1317                  [vec_ld(0, (unsigned char *)0);],
1318                  [ac_cv_c_altivec="-fvec"],
1319                  [ac_cv_c_altivec=no])
1320               ])
1321            ])
1322         ])
1323      ])
1324    CFLAGS="${CFLAGS_save}"
1325   ])
1326
1327 if test "${ac_cv_c_altivec}" != "no"; then
1328   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1329 fi
1330 AC_CHECK_HEADERS(altivec.h)
1331 CPPFLAGS="${CPPFLAGS_save}"
1332
1333 if test "${ac_cv_c_altivec}" != "no"; then
1334   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1335   VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1336   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1337   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1338   if test "${ac_cv_altivec_inline}" = "no"; then
1339     ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1340   fi
1341 fi
1342
1343 AC_CACHE_CHECK([if linker needs -framework vecLib],
1344     [ac_cv_ld_altivec],
1345     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1346      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1347      LDFLAGS="${LDFLAGS_save}"
1348     ])
1349 if test "${ac_cv_ld_altivec}" != "no"; then
1350   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1351 fi
1352 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1353
1354 AC_ARG_WITH(,[])
1355 AC_ARG_WITH(,[Optimization options:])
1356
1357 dnl
1358 dnl  Special arch tuning
1359 dnl
1360 AC_ARG_WITH(tuning,
1361 [  --with-tuning=ARCH      enable special tuning for an architecture
1362                           (default Pentium 2 on IA-32 and G4 on PPC)])
1363 if test -n "${with_tuning}"; then
1364     if test "${with_tuning}" != "no"; then
1365         CFLAGS_TUNING="-mtune=${with_tuning}"
1366     fi
1367 else
1368     if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1369         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1370     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1371         CFLAGS_TUNING="-mtune=pentium2"
1372     elif test "${host_cpu}" = "x86_64"; then
1373         CFLAGS_TUNING="-mtune=athlon64"
1374     elif test "${host_cpu}" = "powerpc"; then
1375         CFLAGS_TUNING="-mtune=G4";
1376     fi
1377 fi
1378
1379 dnl NOTE: this can't be cached cleanly
1380 AS_IF([test "${CFLAGS_TUNING}"],
1381    [CFLAGS_save="${CFLAGS}"
1382     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1383
1384     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1385     AC_COMPILE_IFELSE([ ],
1386                       [tuning="yes"],
1387                       [CFLAGS_TUNING=""; tuning="no"
1388                        AS_IF([test "${with_tuning}"],
1389                              [AC_MSG_ERROR([requested tuning not supported])])])
1390
1391     AC_MSG_RESULT([$tuning])
1392     CFLAGS="${CFLAGS_save}"
1393 ])
1394
1395 dnl
1396 dnl  x86 accelerations
1397 dnl
1398 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "x86_64"
1399 then
1400     ARCH="${ARCH} mmx"
1401     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1402 fi
1403
1404 dnl
1405 dnl  Memory usage
1406 dnl
1407 AC_ARG_ENABLE(optimize-memory,
1408 [  --enable-optimize-memory      optimize memory usage over performance])
1409 if test "${enable_optimize_memory}" = "yes"; then
1410   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1411 fi
1412
1413 dnl
1414 dnl  Enable/disable optimizations
1415 dnl
1416 AC_ARG_ENABLE(optimizations,
1417 [  --disable-optimizations disable compiler optimizations (default enabled)])
1418 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1419
1420 dnl
1421 dnl  AltiVec acceleration
1422 dnl
1423 AC_ARG_ENABLE(altivec,
1424 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1425 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1426     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1427 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1428     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1429
1430 dnl
1431 dnl  Debugging mode
1432 dnl
1433 AC_ARG_ENABLE(debug,
1434 [  --enable-debug          debug mode (default disabled)])
1435 test "${enable_debug}" != "yes" && enable_debug="no"
1436 AH_TEMPLATE(NDEBUG,
1437             [Define to 1 if debug code should NOT be compiled])
1438 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1439
1440 dnl
1441 dnl  Enable release-specific flags
1442 dnl
1443 AC_ARG_ENABLE(release,
1444 [  --enable-release        activate extra optimizations (default disabled)])
1445 test "${enable_release}" != "yes" && enable_release="no"
1446
1447 dnl
1448 dnl  Is the shared libvlc forced ?
1449 dnl
1450 AC_ARG_ENABLE(shared-libvlc,
1451   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1452 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1453   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1454 ])
1455
1456 dnl
1457 dnl Stream output
1458 dnl
1459 AC_ARG_ENABLE(sout,
1460   [  --enable-sout           Stream output modules (default enabled)])
1461 if test "${enable_sout}" != "no"
1462 then
1463   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1464   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1465   VLC_ADD_PLUGINS([packetizer_copy])
1466
1467   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1468   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])
1469 #  VLC_ADD_PLUGINS([stream_out_transrate])
1470 #  VLC_ADD_PLUGINS([rtcp])
1471   VLC_ADD_PLUGINS([profile_parser])
1472
1473   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1474 fi
1475
1476 AC_ARG_ENABLE(switcher,
1477   [  --enable-switcher       Stream-out switcher plugin (default disabled)])    
1478
1479 dnl Check for libshout
1480 AC_ARG_ENABLE(shout,
1481   [  --enable-shout          libshout output plugin (default disabled)])
1482 if test "${enable_shout}" = "yes"; then
1483   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1484     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1485      VLC_ADD_PLUGINS([access_output_shout])
1486      VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS])
1487      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1488     [AC_MSG_WARN(libshout library not found)])
1489 fi
1490
1491 dnl
1492 dnl HTTP daemon
1493 dnl
1494 AC_ARG_ENABLE(httpd,
1495   [  --enable-httpd          HTTP daemon (default enabled)])
1496 if test "${enable_httpd}" != "no"
1497 then
1498   VLC_ADD_PLUGINS([http])
1499   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1500 fi
1501
1502 dnl
1503 dnl VideoLAN manager
1504 dnl
1505 AC_ARG_ENABLE(vlm,
1506   [  --enable-vlm            VideoLAN manager (default enabled)])
1507 if test "${enable_vlm}" != "no"
1508 then
1509   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1510 fi
1511
1512 dnl
1513 dnl Growl notification plugin
1514 dnl
1515 AC_ARG_ENABLE(growl,
1516   [  --enable-growl          growl notification plugin (default enabled)])
1517 AS_IF([test "${enable_growl}" != "no"], [
1518     VLC_ADD_PLUGINS([growl])
1519   ]
1520 )
1521
1522 dnl
1523 dnl Libnotify notification plugin
1524 dnl
1525
1526 AC_ARG_ENABLE(notify,
1527   [  --enable-notify         libnotify notification plugin (default enabled)])
1528 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1529     PKG_CHECK_MODULES(NOTIFY, libnotify,
1530       [
1531         VLC_ADD_PLUGINS([notify])
1532         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1533         VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS])
1534       ],[
1535         AS_IF([test "${enable_notify}" = "yes"],[
1536                AC_MSG_WARN( libnotify not found) ])
1537       ])
1538   ])
1539
1540 dnl
1541 dnl Audioscrobbler plugin
1542 dnl
1543
1544 AC_ARG_ENABLE(audioscrobbler,
1545   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1546 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1547         VLC_ADD_PLUGINS([audioscrobbler])
1548   ])
1549
1550 dnl
1551 dnl Musicbrainz plugin
1552 dnl
1553 AC_ARG_ENABLE(musicbrainz,
1554   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1555   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1556       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1557         [ VLC_ADD_PLUGINS([musicbrainz])
1558           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1559           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1560        [AC_MSG_WARN(MusicBrainz library not found)])
1561    ])
1562
1563
1564 dnl
1565 dnl Taglibplugin
1566 dnl
1567 AC_ARG_ENABLE(taglib,
1568   [  --enable-taglib Taglib support (default disabled) ])
1569   AS_IF([test "${enable_taglib}" = "yes"],[
1570     PKG_CHECK_MODULES(TAGLIB, taglib,
1571       [ VLC_ADD_PLUGINS([taglib])
1572         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS])
1573        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1574       [AC_MSG_WARN(TagLib library not found)])
1575   ])
1576
1577
1578 dnl
1579 dnl  Input plugins
1580 dnl
1581
1582 AC_ARG_WITH(,[Input plugins:])
1583
1584 dnl  live555 input
1585 dnl
1586 if test "${enable_livedotcom}" 
1587 then
1588   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1589 fi
1590
1591 if test "${enable_livedotcom}" = "no"
1592 then
1593   enable_live555="no"
1594 fi
1595 AC_ARG_ENABLE(live555,
1596 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1597 if test "${enable_live555}" != "no"; then
1598   AC_ARG_WITH(live555-tree,
1599     [    --with-live555-tree=PATH live.com tree for static linking])
1600
1601   dnl
1602   dnl test for --with-live555-tree
1603   dnl
1604   if test "${with_livedotcom_tree}" 
1605   then
1606     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1607   with_live555_tree="${with_livedotcom_tree}"
1608   fi
1609   
1610   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1611     AC_LANG_PUSH(C++)
1612     CPPFLAGS_save="${CPPFLAGS}"
1613     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1614     if test "${SYS}" = "solaris"; then
1615       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1616     fi
1617     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1618     AC_CHECK_HEADERS(liveMedia.hh, [
1619       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1620       AC_CHECK_LIB(liveMedia_pic, main, [
1621         # We have -lliveMedia_pic, build plugins
1622         VLC_ADD_PLUGINS([live555])
1623         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1624       ], [
1625         AC_CHECK_LIB(liveMedia, main, [
1626           # We only have -lliveMedia, do builtins
1627           VLC_ADD_BUILTINS([live555])
1628           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1629         ])
1630       ])
1631       if test "${SYS}" = "mingw32"; then
1632         # add ws2_32 for closesocket, select, recv
1633         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1634       fi
1635     ])
1636     CPPFLAGS="${CPPFLAGS_save}"
1637     AC_LANG_POP(C++)
1638   else
1639     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1640     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1641     if test -z "${real_live555_tree}"; then
1642       dnl  The given directory can't be found
1643       AC_MSG_RESULT(no)
1644       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1645     fi
1646     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1647       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1648
1649       VLC_ADD_BUILTINS([live555])
1650
1651       if test "${SYS}" = "mingw32"; then
1652         # add ws2_32 for closesocket, select, recv
1653         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1654       fi
1655
1656       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1657       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1658       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1659       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1660
1661       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1662       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1663       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1664       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1665       if test "${SYS}" = "solaris"; then
1666         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1667       fi
1668     else
1669       dnl  The given live555 wasn't built
1670         AC_MSG_RESULT(no)
1671       if test "${enable_live555}" = "yes"; then
1672         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1673       fi        
1674     fi
1675   fi
1676 fi
1677
1678 dnl
1679 dnl  special access module for dc1394 input
1680 dnl
1681 AC_ARG_ENABLE(dc1394,
1682   [  --enable-dc1394       dc1394 access module (default disabled)])
1683 if test "${enable_dc1394}" = "yes"
1684 then
1685   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1686     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1687         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1688 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1689               VLC_ADD_PLUGINS([dc1394])
1690               VLC_ADD_LDFLAGS([dc1394],[-ldc1394_control -lraw1394])
1691 dnl         ],
1692 dnl         [
1693 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1694 dnl         ])
1695       ],
1696       [
1697         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1698       ])
1699     ],
1700     [
1701       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1702     ])
1703   ],
1704   [
1705     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1706   ])
1707 fi
1708
1709 dnl
1710 dnl dv module: digital video module check for libraw1394
1711 dnl
1712 AC_ARG_ENABLE(dv,
1713 [  --enable-dv             dv input module (default disabled)])
1714 if test "${enable_dv}" = "yes"
1715 then
1716   AC_ARG_WITH(dv-raw1394,
1717   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1718   AC_ARG_WITH(dv-raw1394-tree,
1719   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1720
1721   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1722   then
1723     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1724     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1725     then
1726       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1727       AC_MSG_RESULT(yes)
1728       VLC_ADD_PLUGINS([access_dv])
1729       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1730       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1731     else
1732       dnl  No libraw1394 could be found, sorry
1733       AC_MSG_RESULT(no)
1734       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1735     fi
1736   else
1737     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1738     [ VLC_ADD_PLUGINS([access_dv])
1739         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1740     ],[
1741         if test -n "${enable_dv}"
1742         then
1743           AC_MSG_ERROR([cannot find libraw1394 headers])
1744         fi
1745     ])
1746   fi
1747
1748   dnl Check for static linking of libraw1394
1749   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1750   then
1751     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1752     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1753     if test -z "${real_dv_raw1394_tree}"
1754     then
1755       dnl  The given directory can't be found
1756       AC_MSG_RESULT(no)
1757       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1758     fi
1759     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1760     then
1761       dnl  Use a custom libraw1394
1762       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1763       VLC_ADD_BUILTINS([access_dv])
1764       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1765       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1766     else
1767       dnl  The given libraw1394 wasn't built
1768       AC_MSG_RESULT(no)
1769       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1770     fi
1771   fi
1772
1773   dnl
1774   dnl Check for libavc1394
1775   dnl
1776
1777   AC_ARG_WITH(dv-avc1394,
1778   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1779   AC_ARG_WITH(dv-avc1394-tree,
1780   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1781
1782   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1783   then
1784     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1785     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1786     then
1787       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1788       AC_MSG_RESULT(yes)
1789       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1790       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1791     else
1792       dnl  No libavc1394 could be found, sorry
1793       AC_MSG_RESULT(no)
1794       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1795     fi
1796   else
1797     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1798     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1799     ],[
1800         if test -n "${enable_dv}"
1801         then
1802           AC_MSG_ERROR([cannot find libavc1394 headers])
1803         fi
1804     ])
1805   fi
1806
1807   dnl Check for static linking of libavc1394
1808   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1809   then
1810     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1811     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1812     if test -z "${real_dv_avc1394_tree}"
1813     then
1814       dnl  The given directory can't be found
1815       AC_MSG_RESULT(no)
1816       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1817     fi
1818     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1819     then
1820       dnl  Use a custom libavc1394
1821       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1822       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1823       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1824     else
1825       dnl  The given libavc1394 wasn't built
1826       AC_MSG_RESULT(no)
1827       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1828     fi
1829   fi
1830 fi
1831
1832 dnl
1833 dnl dvdread module: check for libdvdread
1834 dnl
1835 AC_ARG_ENABLE(dvdread,
1836 [  --enable-dvdread        dvdread input module (default disabled)])
1837 if test "${enable_dvdread}" != "no"
1838 then
1839   AC_ARG_WITH(dvdread,
1840   [    --with-dvdread=PATH   libdvdread headers and libraries])
1841   AC_ARG_WITH(dvdread-tree,
1842   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1843
1844   dnl Temporary hack (yeah, sure ;)
1845   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1846       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1847   fi
1848
1849   if test -z "${with_dvdread}"
1850   then
1851     if test -z "${with_dvdread_tree}"
1852     then
1853       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1854         [ VLC_ADD_PLUGINS([dvdread])
1855           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1856         ],[
1857           if test -n "${enable_dvdread}"
1858           then
1859             AC_MSG_ERROR([cannot find libdvdread headers])
1860           fi
1861         ])
1862     else
1863       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1864       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1865       if test -z "${real_dvdread_tree}"
1866       then
1867         dnl  The given directory can't be found
1868         AC_MSG_RESULT(no)
1869         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1870       fi
1871       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1872       then
1873         dnl  Use a custom libdvdread
1874         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1875         VLC_ADD_BUILTINS([dvdread])
1876         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1877         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1878       else
1879         dnl  The given libdvdread wasn't built
1880         AC_MSG_RESULT(no)
1881         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1882       fi
1883     fi
1884   else
1885     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1886     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1887     then
1888       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1889       AC_MSG_RESULT(yes)
1890       VLC_ADD_PLUGINS([dvdread])
1891       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1892       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1893     else
1894       dnl  No libdvdread could be found, sorry
1895       AC_MSG_RESULT(no)
1896       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1897     fi
1898   fi
1899 fi
1900
1901 dnl
1902 dnl  libdvdnav plugin
1903 dnl
1904 AC_ARG_ENABLE(dvdnav,
1905   [  --enable-dvdnav         dvdnav input module (default enabled)])
1906 if test "${enable_dvdnav}" != "no"
1907 then
1908   dnl Same hack than dvdread
1909   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1910       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1911   fi
1912
1913   DVDNAV_PATH="${PATH}"
1914   AC_ARG_WITH(dvdnav-config-path,
1915     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1916     [ if test "${with_dvdnav_config_path}" != "no"
1917       then
1918         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1919       fi ])
1920   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1921   if test "${DVDNAV_CONFIG}" != "no"
1922   then
1923     VLC_ADD_PLUGINS([dvdnav])
1924     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1925     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1926   fi
1927 fi
1928
1929 dnl
1930 dnl  Windows DirectShow access module
1931 dnl
1932 AC_ARG_ENABLE(dshow,
1933   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1934 if test "${enable_dshow}" != "no"
1935 then
1936   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1937   then
1938     AC_LANG_PUSH(C++)
1939       AC_CHECK_HEADERS(dshow.h,
1940       [ VLC_ADD_PLUGINS([dshow])
1941         VLC_ADD_CXXFLAGS([dshow],[])
1942         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1943     AC_LANG_POP(C++)
1944   fi
1945 fi
1946
1947
1948 dnl
1949 dnl  OpenCV wrapper and example filters
1950 dnl
1951 AC_ARG_ENABLE(opencv,
1952   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
1953 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
1954 then
1955   AC_ARG_WITH(opencv-tree,
1956   [    --with-opencv-tree=PATH opencv tree for linking])
1957   if test -n "${with_opencv_tree}"
1958   then
1959     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1960     then
1961           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
1962           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
1963             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
1964       then
1965         AC_MSG_RESULT(yes)
1966         VLC_ADD_PLUGINS([opencv_wrapper])
1967         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1968         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])
1969         AC_LANG_PUSH(C++)
1970         VLC_ADD_PLUGINS([opencv_example])
1971         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1972         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])
1973         AC_LANG_POP(C++)        
1974           else
1975         dnl  No opencv could be found, sorry
1976         AC_MSG_RESULT(no)
1977         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
1978           fi
1979     else
1980           AC_MSG_WARN([--enable-opencv currently only works on windows])
1981     fi
1982   fi  
1983 fi
1984
1985
1986 dnl
1987 dnl  libsmbclient plugin
1988 dnl
1989 AC_ARG_ENABLE(smb,
1990   [  --enable-smb            smb input module (default enabled)])
1991 if test "${enable_smb}" != "no"; then
1992   AC_CHECK_HEADERS(libsmbclient.h,
1993     [ VLC_ADD_PLUGINS([access_smb])
1994       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1995     [ if test -n "${enable_smb}"; then
1996         AC_MSG_ERROR([cannot find libsmbclient headers])
1997      fi ])
1998   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1999     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
2000     [#include <libsmbclient.h>])
2001 fi
2002
2003 dnl
2004 dnl  libdvbpsi ts demux/mux
2005 dnl
2006 AC_ARG_ENABLE(dvbpsi,
2007   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2008 if test "${enable_dvbpsi}" != "no"
2009 then
2010   AC_ARG_WITH(dvbpsi,
2011   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2012   AC_ARG_WITH(dvbpsi,
2013   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2014   case "${with_dvbpsi}" in
2015   ""|yes)
2016     if test -z "${with_dvbpsi_tree}"
2017     then
2018       AC_CHECK_HEADERS(dvbpsi/dr.h,
2019         [ VLC_ADD_PLUGINS([ts])
2020           if test "${enable_sout}" != "no"; then
2021             VLC_ADD_PLUGINS([mux_ts])
2022           fi
2023           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
2024         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2025         [#if defined( HAVE_STDINT_H )
2026 #   include <stdint.h>
2027 #elif defined( HAVE_INTTYPES_H )
2028 #   include <inttypes.h>
2029 #endif
2030 #include <dvbpsi/dvbpsi.h>
2031 #include <dvbpsi/descriptor.h>
2032 #include <dvbpsi/pat.h>
2033 #include <dvbpsi/pmt.h>])
2034     else
2035       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2036       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2037       if test -z "${real_dvbpsi_tree}"
2038       then
2039         dnl  The given directory can't be found
2040         AC_MSG_RESULT(no)
2041         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2042       fi
2043       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2044       then
2045         dnl  Use a custom libdvbpsi
2046         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2047         VLC_ADD_BUILTINS([ts])
2048         if test "${enable_sout}" != "no"; then
2049           VLC_ADD_BUILTINS([mux_ts])
2050         fi
2051         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2052         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2053       else
2054         dnl  The given libdvbpsi wasn't built
2055         AC_MSG_RESULT(no)
2056         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2057       fi
2058     fi
2059   ;;
2060   no)
2061     dnl  Compile without dvbpsi
2062   ;;
2063   *)
2064     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2065     if test -z "${with_dvbpsi}"
2066     then
2067       LDFLAGS_test=""
2068       CPPFLAGS_test=""
2069     else
2070       LDFLAGS_test="-L${with_dvbpsi}/lib"
2071       CPPFLAGS_test="-I${with_dvbpsi}/include"
2072     fi
2073     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2074     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2075       VLC_ADD_PLUGINS([ts])
2076       if test "${enable_sout}" != "no"; then
2077         VLC_ADD_PLUGINS([mux_ts])
2078       fi
2079       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2080       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2081
2082     ],[
2083       if test -n "${enable_dvbpsi}"
2084       then
2085         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
2086       fi
2087     ])
2088     CPPFLAGS="${CPPFLAGS_save}"
2089   ;;
2090   esac
2091   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2092     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2093   ], [], [${LDFLAGS_ts}])
2094
2095 fi
2096
2097 dnl
2098 dnl  Video4Linux plugin
2099 dnl
2100 AC_ARG_ENABLE(v4l,
2101   [  --enable-v4l            Video4Linux input support (default disabled)])
2102 if test "${enable_v4l}" = "yes"
2103 then
2104   AC_ARG_WITH(v4l,
2105     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2106   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2107   then
2108     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2109   fi
2110
2111   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2112   AC_CHECK_HEADERS(linux/videodev.h, [
2113     VLC_ADD_PLUGINS([v4l])
2114   ],[])
2115   CPPFLAGS="${CPPFLAGS_save}"
2116 fi
2117
2118 dnl
2119 dnl  Video4Linux plugin
2120 dnl
2121 AC_ARG_ENABLE(v4l2,
2122   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2123 if test "${enable_v4l2}" = "yes"
2124 then
2125   AC_ARG_WITH(v4l2,
2126     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2127   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2128   then
2129     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2130   fi
2131
2132   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2133   AC_CHECK_HEADERS(linux/videodev2.h, [
2134     VLC_ADD_PLUGINS([v4l2])
2135   ],[])
2136   CPPFLAGS="${CPPFLAGS_save}"
2137 fi
2138
2139
2140 dnl
2141 dnl  special access module for Hauppauge PVR cards
2142 dnl
2143 AC_ARG_ENABLE(pvr,
2144   [  --enable-pvr            PVR cards access module (default disabled)])
2145 if test "${enable_pvr}" = "yes"
2146 then
2147   VLC_ADD_PLUGINS([pvr])
2148 fi
2149
2150 dnl
2151 dnl  gnomeVFS access module
2152 dnl
2153 AC_ARG_ENABLE(gnomevfs,
2154   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
2155 if test "${enable_gnomevfs}" != "no" 
2156 then
2157   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2158     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2159     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2160     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2161     VLC_ADD_PLUGINS([access_gnomevfs]),
2162     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2163 fi
2164
2165 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2166 AC_ARG_ENABLE(libcdio,
2167   [  --enable-libcdio        CD input and control library support (default enabled)])
2168
2169
2170 have_libcdio=no
2171 have_libvcdinfo=no
2172 if test "${enable_libcdio}" != "no"
2173 then
2174   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2175      have_libcdio=yes
2176      AC_DEFINE(HAVE_LIBCDIO, [], 
2177      [Define if you have libcdio 0.78.2 or greater installed]),
2178      [AC_MSG_WARN(CD Reading and information library not found)])
2179
2180   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2181      [have_libvcdinfo=yes
2182      AC_DEFINE(HAVE_VCDINFO, [], 
2183      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2184      [AC_MSG_WARN(VCD information library not found)])
2185 fi
2186
2187 dnl
2188 dnl  VCDX and CDDAX modules
2189 dnl
2190 AC_ARG_ENABLE(cddax,
2191   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2192  
2193 AC_ARG_ENABLE(libcddb,
2194   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2195  
2196 if test "${enable_cddax}" = "yes"
2197 then
2198   if test "$have_libcdio" = "yes"
2199   then
2200     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2201     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2202     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2203     VLC_ADD_PLUGINS([cddax])
2204     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2205     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2206     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2207   else 
2208     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2209     HAVE_CDDAX=no
2210   fi
2211
2212   if test "$enable_libcddb" != "no"; then
2213     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2214       HAVE_LIBCDDB=yes 
2215       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2216       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2217       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2218       ],
2219       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2220       HAVE_LIBCDDB=no])
2221   fi
2222  
2223 fi
2224
2225 AC_ARG_ENABLE(vcdx,
2226   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2227  
2228 if test "${enable_vcdx}" = "yes"
2229 then
2230   if test "${have_libvcdinfo}" = "yes"
2231   then
2232     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2233     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2234   else 
2235     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2236     HAVE_VCDX=no
2237   fi
2238
2239   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2240    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2241     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2242     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2243     HAVE_VCDX=no])
2244
2245   if test "$have_libvcdinfo" = "yes"
2246   then
2247     AC_DEFINE(HAVE_VCDX, [], 
2248     [Define for the VCD plugin using libcdio/libvcdinfo])
2249     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2250     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2251     VLC_ADD_PLUGINS([vcdx])
2252   else 
2253     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2254     HAVE_VCDX=no
2255   fi
2256 fi
2257
2258 dnl
2259 dnl  Built-in CD-DA and VCD module
2260 dnl
2261 AC_ARG_ENABLE(cdda,           
2262   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2263  
2264 AC_ARG_ENABLE(vcd,
2265   [  --enable-vcd            built-in VCD (default enabled)])
2266
2267 if test "${enable_vcd}" != "no"
2268 then
2269   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2270   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2271     AC_MSG_RESULT(yes)
2272     VLC_ADD_PLUGINS([vcd cdda])
2273   ],[
2274     AC_MSG_RESULT(no)
2275   ])
2276
2277   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2278   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2279     AC_MSG_RESULT(yes)
2280     VLC_ADD_PLUGINS([vcd cdda])
2281     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2282   ],[
2283     AC_MSG_RESULT(no)
2284   ])
2285
2286   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2287   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2288     AC_MSG_RESULT(yes)
2289     VLC_ADD_PLUGINS([vcd cdda])
2290     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2291   ],[
2292     AC_MSG_RESULT(no)
2293   ])
2294
2295   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2296   then
2297     VLC_ADD_PLUGINS([vcd cdda])
2298   fi
2299
2300   if test "${SYS}" = "darwin"
2301   then
2302     VLC_ADD_PLUGINS([vcd cdda])
2303     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2304     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2305   fi
2306
2307   if test "$enable_libcddb" != "no"; then
2308     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2309       HAVE_LIBCDDB=yes 
2310       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2311       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2312       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2313       ],:
2314       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2315       HAVE_LIBCDDB=no])
2316   fi
2317 fi
2318
2319 dnl
2320 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2321 dnl
2322 AC_ARG_ENABLE(dvb,
2323   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2324
2325 if test "${enable_dvb}" = "yes"
2326 then
2327   AC_ARG_WITH(dvb,
2328   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2329   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2330   then
2331     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2332   fi
2333   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2334   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2335     if test -z "${with_dvbpsi_tree}"
2336     then
2337       VLC_ADD_PLUGINS([dvb])
2338     else
2339       VLC_ADD_BUILTINS([dvb])
2340     fi
2341   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2342   CPPFLAGS="${CPPFLAGS_save}"
2343 fi
2344
2345 dnl
2346 dnl  Screen capture module
2347 dnl
2348 AC_ARG_ENABLE(screen,
2349   [  --enable-screen         Screen capture support (default enabled)])
2350 if test "${enable_screen}" != "no"; then
2351   if test "${SYS}" = "darwin"; then
2352     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2353       VLC_ADD_PLUGINS([screen])
2354       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2355     ])
2356   elif test "${SYS}" = "mingw32"; then
2357     VLC_ADD_PLUGINS([screen])
2358     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2359   elif test "${SYS}" = "mingwce"; then
2360     CPPFLAGS="${CPPFLAGS_save}"
2361   elif test "${SYS}" = "beos"; then
2362     VLC_ADD_PLUGINS([screen])
2363     VLC_ADD_CXXFLAGS([screen],[])
2364     VLC_ADD_LDFLAGS([screen],[-lbe])
2365   else
2366     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2367     AC_CHECK_HEADERS(X11/Xlib.h, [
2368       VLC_ADD_PLUGINS([screen])
2369       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2370       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2371     ])
2372     CPPFLAGS="${CPPFLAGS_save}"
2373   fi
2374 fi
2375
2376 dnl
2377 dnl  ipv6 plugin - not for QNX yet
2378 dnl
2379 have_ipv6=no
2380 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2381   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2382 ])
2383
2384 AS_IF([test "${have_ipv6}" = "yes"], [
2385   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2386
2387 dnl
2388 dnl  ogg demux plugin
2389 dnl
2390 AC_ARG_ENABLE(ogg,
2391   [  --enable-ogg            Ogg demux support (default enabled)])
2392 if test "${enable_ogg}" != "no"
2393 then
2394   AC_ARG_WITH(ogg-tree,
2395   [    --with-ogg-tree=PATH  ogg tree for static linking])
2396   if test -n "${with_ogg_tree}"
2397   then
2398     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2399     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2400     if test -z "${real_ogg_tree}"
2401     then
2402       dnl  The given directory can't be found
2403       AC_MSG_RESULT(no)
2404       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2405     fi
2406     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2407     then
2408       dnl  Use a custom ogg
2409       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2410       VLC_ADD_PLUGINS([ogg])
2411       if test "${enable_sout}" != "no"; then
2412         VLC_ADD_PLUGINS([mux_ogg])
2413       fi
2414       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2415       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2416     else
2417       dnl  The given ogg wasn't built
2418       AC_MSG_RESULT(no)
2419       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2420     fi
2421   else
2422     AC_CHECK_HEADERS(ogg/ogg.h, [
2423       AC_CHECK_LIB( ogg, oggpack_read, [
2424         VLC_ADD_PLUGINS([ogg])
2425         if test "${enable_sout}" != "no"; then
2426           VLC_ADD_PLUGINS([mux_ogg])
2427         fi
2428         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2429      ],[])
2430   fi
2431 fi
2432
2433 dnl
2434 dnl  matroska demux plugin
2435 dnl
2436 AC_ARG_ENABLE(mkv,
2437   [  --enable-mkv            Matroska demux support (default enabled)])
2438 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2439   AC_LANG_PUSH(C++)
2440   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2441     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2442     AC_EGREP_CPP(yes,
2443       [#include <ebml/EbmlVersion.h>
2444        #ifdef LIBEBML_VERSION
2445        #if LIBEBML_VERSION >= 0x000706
2446        yes
2447        #endif
2448        #endif],
2449       [AC_MSG_RESULT([yes])
2450         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2451           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2452           AC_EGREP_CPP(yes,
2453             [#include <matroska/KaxVersion.h>
2454              #ifdef LIBMATROSKA_VERSION
2455              #if LIBMATROSKA_VERSION >= 0x000705
2456              yes
2457              #endif
2458              #endif],
2459             [AC_MSG_RESULT([yes])
2460               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2461               VLC_ADD_CXXFLAGS([mkv],[])
2462               if test "${SYS}" = "darwin"; then
2463                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2464               fi
2465               AC_CHECK_LIB(ebml_pic, main, [
2466                 VLC_ADD_PLUGINS([mkv])
2467                 VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml_pic])
2468               ],
2469                 AC_CHECK_LIB(ebml, main, [
2470                   VLC_ADD_PLUGINS([mkv])
2471                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2472                 ]) 
2473               )
2474             ],
2475             [AC_MSG_RESULT([no])
2476               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.])
2477           ])
2478         ])
2479       ],
2480       [AC_MSG_RESULT([no])
2481         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.])
2482     ])
2483   ])
2484   AC_LANG_POP(C++)
2485 fi
2486
2487 dnl
2488 dnl  modplug demux plugin
2489 dnl
2490 AC_ARG_ENABLE(mod,
2491   [  --enable-mod            Mod demux support (default enabled)])
2492 if test "${enable_mod}" != "no"
2493 then
2494   AC_ARG_WITH(mod-tree,
2495   [    --with-mod-tree=PATH mod tree for static linking])
2496   if test -n "${with_mod_tree}"
2497   then
2498     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2499     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2500     if test -z "${real_mod_tree}"
2501     then
2502       dnl  The given directory can't be found
2503       AC_MSG_RESULT(no)
2504       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2505     fi
2506     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2507     then
2508       dnl  Use a custom mod
2509       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2510       VLC_ADD_PLUGINS([mod])
2511       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2512       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2513     else
2514       dnl  The given mod wasn't built
2515       AC_MSG_RESULT(no)
2516       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2517     fi
2518   else
2519     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2520       VLC_ADD_PLUGINS([mod])
2521       VLC_ADD_CXXFLAGS([mod],[])
2522       VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])])
2523   fi
2524 fi
2525
2526 dnl
2527 dnl  mpc demux plugin
2528 dnl
2529 AC_ARG_ENABLE(mpc,
2530   [  --enable-mpc            Mpc demux support (default enabled)])
2531 if test "${enable_mpc}" != "no"
2532 then
2533   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2534     VLC_ADD_PLUGINS([mpc])
2535     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2536 fi
2537
2538 dnl
2539 dnl  game music emu demux plugin
2540 dnl
2541 AC_ARG_ENABLE(gme,
2542   [  --enable-gme            Game Music Emu demux support (default enabled)])
2543 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2544 then
2545   AC_LANG_PUSH(C++)
2546   AC_ARG_WITH(gme-tree,
2547   [    --with-gme-tree=PATH gme tree for static linking])
2548   if test -n "${with_gme_tree}"
2549   then
2550     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2551     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2552     if test -z "${real_gme_tree}"
2553     then
2554       dnl  The given directory can't be found
2555       AC_MSG_RESULT(no)
2556       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2557     fi
2558     if test -f "${real_gme_tree}/gme/libgme.a"
2559     then
2560       dnl  Use a custom gme
2561       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2562       VLC_ADD_PLUGINS([gme])
2563       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2564       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2565     else
2566       dnl  The given gme wasn't built
2567       AC_MSG_RESULT(no)
2568       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2569     fi
2570   else
2571       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2572   fi
2573   AC_LANG_POP(C++)
2574 fi
2575
2576 dnl
2577 dnl  Codec plugins
2578 dnl
2579
2580 AC_ARG_WITH(,[Codec plugins:])
2581
2582 dnl
2583 dnl  mad plugin
2584 dnl
2585 AC_ARG_ENABLE(mad,
2586   [  --enable-mad            libmad module (default enabled)])
2587 if test "${enable_mad}" != "no"
2588 then
2589   AC_ARG_WITH(mad,
2590     [    --with-mad=PATH       path to libmad],[],[])
2591   if test "${with_mad}" != "no" -a -n "${with_mad}"
2592   then
2593     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2594     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2595   fi
2596
2597   AC_ARG_WITH(mad-tree,
2598     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2599   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2600   then
2601     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2602     if test -z "${real_mad_tree}"
2603     then
2604       dnl  The given directory can't be found
2605       AC_MSG_RESULT(no)
2606       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2607     fi
2608     dnl  Use a custom libmad
2609     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2610     if test -f ${real_mad_tree}/mad.h
2611     then
2612       AC_MSG_RESULT(yes)
2613       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2614       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2615       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2616       AC_CHECK_LIB(mad, mad_bit_init, [
2617         VLC_ADD_BUILTINS([mpgatofixed32])
2618         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2619         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2620       ],[])
2621       LDFLAGS="${LDFLAGS_save}"
2622     else
2623       AC_MSG_RESULT(no)
2624       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2625     fi
2626   else
2627     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2628     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2629     AC_CHECK_HEADERS(mad.h, ,
2630       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2631     AC_CHECK_LIB(mad, mad_bit_init, [
2632       VLC_ADD_PLUGINS([mpgatofixed32])
2633       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2634       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2635     CPPFLAGS="${CPPFLAGS_save}"
2636     LDFLAGS="${LDFLAGS_save}"
2637   fi
2638 fi
2639
2640 dnl
2641 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2642 dnl
2643 AC_CHECK_HEADERS(id3tag.h, [
2644   AC_CHECK_HEADERS(zlib.h, [
2645     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2646     VLC_ADD_PLUGINS([id3tag])]) ])
2647
2648 dnl
2649 dnl  ffmpeg decoder/demuxer plugin
2650 dnl
2651 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2652 dnl                             4- default place, 
2653
2654 AC_ARG_ENABLE(ffmpeg,
2655 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2656 if test "${enable_ffmpeg}" != "no"
2657 then
2658
2659 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2660
2661  AC_ARG_WITH(ffmpeg-mp3lame,
2662    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2663    [
2664      if test "$with_ffmpeg_mp3lame" = "yes";    then
2665         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2666      fi])
2667
2668  AC_ARG_WITH(ffmpeg-faac,
2669    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2670    [
2671      if test "$with_ffmpeg_faac" = "yes"; then
2672         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2673      fi])
2674
2675  AC_ARG_WITH(ffmpeg-dts,
2676    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2677    [
2678      if test "$with_ffmpeg_dts" = "yes"; then
2679              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2680              AC_CHECK_LIB(dts_pic, dts_free, 
2681                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2682                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2683              LDFLAGS="${LDFLAGS_save}"
2684      fi])
2685
2686  AC_ARG_WITH(ffmpeg-vorbis,
2687    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2688    [
2689      if test "$with_ffmpeg_vorbis" = "yes"; then
2690         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2691      fi])
2692
2693  AC_ARG_WITH(ffmpeg-theora,
2694    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2695    [
2696      if test "$with_ffmpeg_theora" = "yes"; then
2697         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2698      fi])
2699
2700  AC_ARG_WITH(ffmpeg-ogg,
2701    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2702    [
2703      if test "$with_ffmpeg_ogg" = "yes"; then
2704         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2705      fi])
2706
2707  AC_ARG_WITH(ffmpeg-zlib,
2708    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2709    [
2710      if test "$with_ffmpeg_zlib" = "yes"; then
2711                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2712      fi])
2713
2714  dnl
2715  dnl test for --with-ffmpeg-tree
2716  dnl
2717  AC_ARG_WITH(ffmpeg-tree,
2718    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2719
2720  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2721    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2722    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2723    if test -z "${real_ffmpeg_tree}"; then
2724      dnl  The given directory can't be found
2725      AC_MSG_RESULT(no)
2726      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2727    fi
2728    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2729      dnl  The given libavcodec wasn't built
2730      AC_MSG_RESULT(no)
2731      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2732    fi
2733    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2734      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2735        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2736      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2737         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2738         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2739      else
2740        dnl  The given libavcodec wasn't built with --enable-pp
2741        AC_MSG_RESULT(no)
2742        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2743      fi
2744    fi
2745    dnl  Use a custom libffmpeg
2746    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2747
2748    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2749      if test "${with_ffmpeg_zlib}" != "yes"; then
2750        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2751      fi
2752    fi
2753    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2754      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2755        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2756      fi
2757    fi
2758    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2759      if test "${with_ffmpeg_faac}" != "yes"; then
2760        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2761      fi
2762    fi
2763    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2764      if test "${with_ffmpeg_dts}" != "yes"; then
2765        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2766        AC_CHECK_LIB(dts_pic, dts_free, 
2767          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2768          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2769        LDFLAGS="${LDFLAGS_save}"
2770      fi
2771    fi
2772    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2773      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2774    fi
2775    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2776      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2777    fi
2778    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2779      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2780    fi
2781
2782    VLC_ADD_BUILTINS([ffmpeg])
2783    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
2784      VLC_ADD_BUILTINS([stream_out_switcher])
2785    fi
2786
2787    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2788      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2789      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2790    fi
2791
2792    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2793    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2794
2795    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2796      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2797      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2798      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2799    fi
2800
2801    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
2802      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
2803      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
2804      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
2805    fi
2806 else    
2807     
2808 dnl Look for a ffmpeg-config (we are on debian )
2809  
2810   FFMPEG_PATH="${PATH}"
2811   AC_ARG_WITH(ffmpeg-config-path,
2812     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2813     [ if test "${with_ffmpeg_config_path}" != "no"
2814       then
2815         FFMPEG_PATH="${with_ffmpeg_config_path}"
2816       fi ])
2817   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2818   if test "${FFMPEG_CONFIG}" != "no"
2819   then
2820     AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2821     AC_CHECK_HEADERS(ffmpeg/avformat.h)
2822     AC_CHECK_HEADERS(ffmpeg/avutil.h)
2823     AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2824     VLC_ADD_PLUGINS([ffmpeg])
2825     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2826         VLC_ADD_PLUGINS([stream_out_switcher])
2827     fi
2828     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2829     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2830  
2831  else
2832
2833 dnl Trying with pkg-config
2834    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2835     [
2836      VLC_SAVE_FLAGS
2837      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
2838      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
2839      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2840      AC_CHECK_HEADERS(ffmpeg/avformat.h)
2841      AC_CHECK_HEADERS(ffmpeg/avutil.h)
2842      dnl newer ffmpeg have a separate libpostproc
2843      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2844        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
2845        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2846        ],[ true ])
2847      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2848      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2849      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2850      if test "${SYS}" = "darwin"; then
2851         VLC_ADD_BUILTINS([ffmpeg])
2852      else
2853         VLC_ADD_PLUGINS([ffmpeg])
2854      fi
2855      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2856         if test "${SYS}" = "darwin"; then
2857             VLC_ADD_BUILTINS([stream_out_switcher])
2858         else
2859             VLC_ADD_PLUGINS([stream_out_switcher])
2860         fi
2861      fi
2862      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2863      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
2864      dnl even newer ffmpeg has a libswscale
2865      PKG_CHECK_MODULES(SWSCALE, libswscale,[
2866        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}]) 
2867        VLC_ADD_LDFLAGS([ffmpeg],[${SWSCALE_LIBS}]) 
2868        AC_CHECK_HEADERS(ffmpeg/swscale.h)
2869        ],[ true ])
2870      VLC_RESTORE_FLAGS
2871     ],[
2872      
2873     dnl
2874     dnl last chance: at the default place
2875     dnl
2876       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2877       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2878       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2879       AC_CHECK_HEADERS(ffmpeg/avformat.h)
2880       AC_CHECK_HEADERS(ffmpeg/swscale.h)
2881       AC_CHECK_HEADERS(ffmpeg/avutil.h)
2882       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2883
2884       AC_CHECK_LIB(avutil, av_crc_init, [
2885         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2886         LDAVUTIL="-lavutil"])
2887
2888       AC_CHECK_LIB(avcodec, avcodec_init, [
2889         VLC_ADD_BUILTINS([ffmpeg])
2890         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2891         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2892             VLC_ADD_BUILTINS([stream_out_switcher])
2893         fi],
2894          [ 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])
2895
2896       
2897       AC_CHECK_LIB(postproc, pp_postprocess, [
2898         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])],
2899         AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
2900         [$LDAVUTIL])
2901
2902       AC_CHECK_LIB(avformat, av_open_input_stream, [
2903         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2904       LDFLAGS="${LDFLAGS_save}"
2905       CPPFLAGS="${CPPFLAGS_save}"
2906
2907       AC_CHECK_LIB(swscale, sws_getContext, [
2908         VLC_ADD_LDFLAGS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
2909       LDFLAGS="${LDFLAGS_save}"
2910       CPPFLAGS="${CPPFLAGS_save}"
2911     ])
2912   fi
2913  fi 
2914 fi
2915
2916 dnl
2917 dnl  ffmpegaltivec plugin
2918 dnl
2919 AC_ARG_ENABLE(ffmpegaltivec,
2920 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2921 if test "${enable_ffmpegaltivec}" = "yes"
2922 then
2923   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2924     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2925     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2926     if test -z "${real_ffmpeg_tree}"; then
2927       dnl  The given directory can't be found
2928       AC_MSG_RESULT(no)
2929       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2930     fi
2931     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2932       dnl  The given libavcodecaltivec wasn't built
2933       AC_MSG_RESULT(no)
2934       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2935     fi
2936     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2937       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2938       AC_MSG_RESULT(no)
2939       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2940     fi
2941     dnl  Use a custom libffmpeg
2942     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2943     VLC_ADD_BUILTINS([ffmpegaltivec])
2944     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2945     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2946     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2947
2948     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2949       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2950       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2951       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2952     fi
2953     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2954     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2955   fi
2956 fi
2957
2958 dnl
2959 dnl  faad decoder plugin
2960 dnl
2961 AC_ARG_ENABLE(faad,
2962 [  --enable-faad           faad codec (default disabled)])
2963 if test "${enable_faad}" = "yes"
2964 then
2965   AC_ARG_WITH(faad-tree,
2966   [    --with-faad-tree=PATH faad tree for static linking])
2967   if test -n "${with_faad_tree}"
2968   then
2969     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2970     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2971     if test -z "${real_faad_tree}"
2972     then
2973       dnl  The given directory can't be found
2974       AC_MSG_RESULT(no)
2975       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2976     fi
2977     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2978     then
2979       dnl  Use a custom faad
2980       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2981       VLC_ADD_BUILTINS([faad])
2982       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2983       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2984     else
2985       dnl  The given libfaad wasn't built
2986       AC_MSG_RESULT(no)
2987       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2988     fi
2989   else
2990     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2991     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2992     AC_CHECK_HEADERS(faad.h, ,
2993       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2994     AC_CHECK_LIB(faad, faacDecOpen, [
2995       VLC_ADD_PLUGINS([faad])
2996       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2997       AC_CHECK_LIB(faad, NeAACDecOpen, [
2998         VLC_ADD_PLUGINS([faad])
2999         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
3000         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3001     LDFLAGS="${LDFLAGS_save}"
3002     CPPFLAGS="${CPPFLAGS_save}"
3003   fi
3004 fi
3005
3006 dnl
3007 dnl twolame encoder plugin
3008 dnl
3009 AC_ARG_ENABLE(twolame,
3010 [  --enable-twolame        twolame codec (default disabled)])
3011 if test "${enable_twolame}" = "yes"
3012 then
3013   AC_ARG_WITH(twolame-tree,
3014   [    --with-twolame-tree=PATH twolame tree for static linking])
3015   if test -n "${with_twolame_tree}"
3016   then
3017     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3018     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3019     if test -z "${real_twolame_tree}"
3020     then
3021       dnl  The given directory can't be found
3022       AC_MSG_RESULT(no)
3023       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3024     fi
3025     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
3026     then
3027       dnl  Use a custom twolame
3028       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
3029       VLC_ADD_BUILTINS([twolame])
3030       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
3031       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
3032     else
3033       dnl  The given libtwolame wasn't built
3034       AC_MSG_RESULT(no)
3035       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3036     fi
3037   else
3038     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
3039     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3040     AC_CHECK_HEADERS(twolame.h, ,
3041       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3042     AC_CHECK_LIB(twolame, twolame_init, [
3043       VLC_ADD_PLUGINS([twolame])
3044       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
3045         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3046     LDFLAGS="${LDFLAGS_save}"  
3047     CPPFLAGS="${CPPFLAGS_save}"
3048   fi
3049 fi
3050
3051 dnl
3052 dnl  QuickTime plugin
3053 dnl
3054 AC_ARG_ENABLE(quicktime,
3055   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3056 if test "${enable_quicktime}" != "no" &&
3057   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3058 then
3059   if test "${SYS}" = "mingw32"; then
3060     VLC_ADD_BUILTINS([quicktime])
3061   else
3062   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3063     [ VLC_ADD_BUILTINS([quicktime])
3064       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
3065     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3066   fi
3067 fi
3068
3069 dnl
3070 dnl  Real plugin
3071 dnl
3072 AC_ARG_ENABLE(real,
3073   [  --enable-real           Real audio module (default disabled)])
3074 if test "${enable_real}" = "yes"; then
3075   VLC_ADD_PLUGINS([realaudio])
3076 fi
3077
3078 dnl
3079 dnl  Real RTSP plugin
3080 dnl
3081 AC_ARG_ENABLE(realrtsp,
3082   [  --enable-realrtsp       Real RTSP module (default disabled)])
3083 if test "${enable_realrtsp}" = "yes"; then
3084   VLC_ADD_PLUGINS([access_realrtsp])
3085 fi
3086
3087 dnl
3088 dnl MP4 module
3089 dnl
3090 AC_CHECK_HEADERS(zlib.h, [
3091   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3092 ] )
3093
3094 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3095   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3096 ] )
3097
3098 dnl
3099 dnl skins2 module
3100 dnl
3101 AC_CHECK_HEADERS(libtar.h, [
3102   VLC_ADD_LDFLAGS([skins2],[-ltar])
3103 ] )
3104
3105
3106
3107 dnl
3108 dnl A52/AC3 decoder plugin
3109 dnl
3110 AC_ARG_ENABLE(a52,
3111   [  --enable-a52            A/52 support with liba52 (default enabled)])
3112 if test "${enable_a52}" != "no"
3113 then
3114   AC_ARG_WITH(a52,
3115     [    --with-a52=PATH       a52 headers and libraries])
3116   AC_ARG_WITH(a52-tree,
3117     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3118   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3119   then
3120     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3121     if test -z "${real_a52_tree}"
3122     then
3123       dnl  The given directory can't be found
3124       AC_MSG_RESULT(no)
3125       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3126     fi
3127     dnl  Use a custom a52dec
3128     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3129     if test -f ${real_a52_tree}/include/a52.h
3130     then
3131       AC_MSG_RESULT(yes)
3132       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3133       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3134       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3135       AC_CHECK_LIB(a52, a52_free, [
3136         VLC_ADD_BUILTINS([a52tofloat32])
3137         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3138         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3139         ],[
3140         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3141         then
3142           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3143         else
3144           AC_MSG_ERROR([the specified tree hasn't been compiled])
3145         fi
3146       ])
3147       LDFLAGS="${LDFLAGS_save}"
3148     else
3149       AC_MSG_RESULT(no)
3150       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3151     fi
3152   else
3153     if test -z "${with_a52}"
3154     then
3155       LDFLAGS_test=""
3156       CPPFLAGS_test=""
3157     else
3158       LDFLAGS_test="-L${with_a52}/lib"
3159       CPPFLAGS_test="-I${with_a52}/include"
3160     fi
3161     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3162     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3163     AC_CHECK_HEADERS(a52dec/a52.h, [
3164       AC_CHECK_LIB(a52, a52_free, [
3165         VLC_ADD_PLUGINS([a52tofloat32])
3166         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3167         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3168       ],[
3169         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.])
3170         ])
3171     ],[
3172       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.])
3173     ])
3174     CPPFLAGS="${CPPFLAGS_save}"
3175     LDFLAGS="${LDFLAGS_save}"
3176   fi
3177 fi
3178
3179 AC_ARG_WITH(a52-fixed,
3180       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3181       [
3182         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3183
3184 dnl
3185 dnl DTS Coherent Acoustics decoder plugin
3186 dnl
3187 AC_ARG_ENABLE(dts,
3188   [  --enable-dts            DTS Coherent Acoustics support with libdca (default enabled)])
3189 if test "${enable_dts}" != "no"; then
3190   AC_ARG_WITH(dts-tree,
3191     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
3192   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
3193   then
3194     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
3195     if test -z "${real_dts_tree}"
3196     then
3197       dnl  The given directory can't be found
3198       AC_MSG_RESULT(no)
3199       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
3200     fi
3201     dnl  Use a custom libdts
3202     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
3203     if test -f ${real_dts_tree}/include/dts.h
3204     then
3205       AC_MSG_RESULT(yes)
3206       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
3207       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
3208       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3209       AC_CHECK_LIB(dts_pic, dts_free, [
3210         VLC_ADD_PLUGINS([dtstofloat32])
3211         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3212         ],[
3213         AC_CHECK_LIB(dts, dts_free, [
3214           VLC_ADD_BUILTINS([dtstofloat32])
3215           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3216           ],[
3217           if test -f ${real_dts_tree}/libdts/libdts.a
3218           then
3219             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
3220           else
3221             AC_MSG_ERROR([the specified tree hasn't been compiled])
3222           fi
3223         ])
3224       ], [-lm])
3225       LDFLAGS="${LDFLAGS_save}"
3226     else
3227       AC_MSG_RESULT(no)
3228       AC_MSG_ERROR([the specified tree doesn't have dts.h])
3229     fi
3230   else
3231     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3232     AC_CHECK_HEADERS(dts.h, [
3233       AC_CHECK_LIB(dts_pic, dts_free, [
3234         VLC_ADD_PLUGINS([dtstofloat32])
3235         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3236       ],[
3237         AC_CHECK_LIB(dts, dts_free, [
3238           VLC_ADD_BUILTINS([dtstofloat32])
3239           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3240         ],[
3241           if test "${enable_dts}" = "yes"; then
3242             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
3243           fi
3244         ])
3245       ], [-lm])
3246     ])
3247     LDFLAGS="${LDFLAGS_save}"
3248   fi
3249 fi
3250
3251 dnl
3252 dnl  Flac plugin
3253 dnl
3254 AC_ARG_ENABLE(flac,
3255   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3256 if test "${enable_flac}" = "yes"
3257 then
3258   AC_ARG_WITH(flac-tree,
3259   [    --with-flac-tree=PATH flac tree for static linking])
3260   if test -n "${with_flac_tree}"
3261   then
3262     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3263     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3264     if test -z "${real_flac_tree}"
3265     then
3266       dnl  The given directory can't be found
3267       AC_MSG_RESULT(no)
3268       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3269     fi
3270     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3271     then
3272       dnl  Use a custom flac
3273       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3274       VLC_ADD_LDFLAGS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3275       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3276       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3277     else
3278       dnl  The given flac wasn't built
3279       AC_MSG_RESULT(no)
3280       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3281     fi
3282   else
3283     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3284       VLC_ADD_LDFLAGS([flac],[-lFLAC])
3285      ],[])
3286   fi
3287 fi
3288
3289 dnl
3290 dnl  Libmpeg2 plugin
3291 dnl
3292 AC_ARG_ENABLE(libmpeg2,
3293   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3294 if test "${enable_libmpeg2}" != "no"
3295 then
3296   AC_ARG_WITH(libmpeg2-tree,
3297   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3298   if test -n "${with_libmpeg2_tree}"
3299   then
3300     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3301     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3302     if test -z "${real_libmpeg2_tree}"
3303     then
3304       dnl  The given directory can't be found
3305       AC_MSG_RESULT(no)
3306       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3307     fi
3308     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3309     then
3310       dnl  Use a custom libmpeg2
3311       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3312       VLC_ADD_BUILTINS([libmpeg2])
3313       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3314       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3315       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3316     else
3317       dnl  The given libmpeg2 wasn't built
3318       AC_MSG_RESULT(no)
3319       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3320     fi
3321   else
3322     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3323       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3324       AC_EGREP_CPP(yes,
3325         [#include <mpeg2dec/mpeg2.h>
3326          #ifdef MPEG2_RELEASE
3327          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3328          yes
3329          #endif
3330          #endif],
3331         [AC_MSG_RESULT([yes])
3332           VLC_ADD_PLUGINS([libmpeg2])
3333           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3334         [AC_MSG_RESULT([no])
3335           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3336
3337       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3338     )
3339   fi
3340 fi
3341
3342 dnl
3343 dnl  Vorbis plugin
3344 dnl
3345 AC_ARG_ENABLE(vorbis,
3346   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3347 if test "${enable_vorbis}" != "no"
3348 then
3349   AC_ARG_WITH(vorbis-tree,
3350   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3351   if test -n "${with_vorbis_tree}"
3352   then
3353     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3354     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3355     if test -z "${real_vorbis_tree}"
3356     then
3357       dnl  The given directory can't be found
3358       AC_MSG_RESULT(no)
3359       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3360     fi
3361     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3362     then
3363       dnl  Use a custom vorbis 
3364       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3365       VLC_ADD_PLUGINS([vorbis])
3366       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3367       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3368     else
3369       dnl  The given vorbis wasn't built
3370       AC_MSG_RESULT(no)
3371       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3372     fi
3373   else
3374     AC_CHECK_HEADERS(vorbis/codec.h, [
3375       VLC_ADD_PLUGINS([vorbis])
3376       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[])
3377
3378     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3379       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[])
3380   fi
3381 fi
3382
3383 dnl
3384 dnl  Tremor plugin
3385 dnl
3386 AC_ARG_ENABLE(tremor,
3387   [  --enable-tremor         Tremor decoder support (default disabled)])
3388 if test "${enable_tremor}" = "yes"
3389 then
3390   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3391     VLC_ADD_PLUGINS([tremor])
3392     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3393    ],[])
3394 fi
3395
3396 dnl
3397 dnl  Speex plugin
3398 dnl
3399 AC_ARG_ENABLE(speex,
3400   [  --enable-speex          Speex decoder support (default enabled)])
3401 if test "${enable_speex}" != "no"
3402 then
3403   AC_ARG_WITH(speex-tree,
3404   [    --with-speex-tree=PATH speex tree for static linking])
3405   if test -n "${with_speex_tree}"
3406   then
3407     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3408     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3409     if test -z "${real_speex_tree}"
3410     then
3411       dnl  The given directory can't be found
3412       AC_MSG_RESULT(no)
3413       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3414     fi
3415     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3416     then
3417       dnl  Use a custom speex
3418       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3419       VLC_ADD_PLUGINS([speex])
3420       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3421       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3422     else
3423       dnl  The given speex wasn't built
3424       AC_MSG_RESULT(no)
3425       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3426     fi
3427   else
3428     AC_CHECK_HEADERS(speex/speex.h, [
3429       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3430       AC_CHECK_LIB(speex, speex_decode_int, [
3431         VLC_ADD_PLUGINS([speex])
3432         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3433         [ AC_MSG_RESULT([no])
3434           AC_MSG_WARN([Your libspeex is too old, please get the development
3435                        version.]) ],[])
3436       LDFLAGS="${LDFLAGS_save}"
3437       ],[])
3438   fi
3439 fi
3440
3441 dnl
3442 dnl  tarkin decoder plugin
3443 dnl
3444 AC_ARG_ENABLE(tarkin,
3445 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3446 if test "${enable_tarkin}" = "yes"
3447 then
3448   AC_ARG_WITH(tarkin-tree,
3449   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3450   if test -n "${with_tarkin_tree}"
3451   then
3452     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3453     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3454     if test -f "${real_tarkin_tree}/tarkin.o"
3455     then
3456       VLC_ADD_BUILTINS([tarkin])
3457       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3458       VLC_ADD_LDFLAGS([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])
3459       AC_MSG_RESULT(yes)
3460     else
3461       dnl  The given tarkin tree wasn't built
3462       AC_MSG_RESULT(no)
3463       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3464                     make sure you compiled tarkin in ${with_tarkin_tree}])
3465     fi
3466   fi
3467 fi
3468
3469 dnl
3470 dnl  theora decoder plugin
3471 dnl
3472 AC_ARG_ENABLE(theora,
3473 [  --enable-theora         experimental theora codec (default disabled)])
3474 if test "${enable_theora}" = "yes"
3475 then
3476   AC_CHECK_HEADERS(theora/theora.h, [
3477     AC_CHECK_LIB(theora, theora_granule_time, [
3478       VLC_ADD_PLUGINS([theora])
3479       theora_libs="-ltheora -logg"
3480       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3481       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3482 You also need to check that you have a libogg posterior to the 1.0 release.])],
3483       [-logg])
3484   ])
3485 fi
3486
3487 dnl
3488 dnl  dirac decoder plugin
3489 dnl
3490 AC_ARG_ENABLE(dirac,
3491 [  --enable-dirac          experimental dirac codec (default disabled)])
3492 if test "${enable_dirac}" = "yes"; then
3493   PKG_CHECK_MODULES(DIRAC,dirac, [
3494       VLC_ADD_PLUGINS([dirac])
3495       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3496       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3497       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3498   ])
3499 fi
3500
3501 dnl
3502 dnl  PNG decoder module
3503 dnl
3504 AC_ARG_ENABLE(png,
3505   [  --enable-png            PNG support (default enabled)])
3506 if test "${enable_png}" != "no"; then
3507 AC_CHECK_HEADERS(png.h, [
3508   LDFLAGS="${LDFLAGS_save} -lz"
3509   AC_CHECK_LIB(png, png_set_rows, [
3510     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3511     VLC_ADD_PLUGINS([png])
3512     VLC_ADD_PLUGINS([osdmenu])
3513     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3514     [],[-lz])
3515   LDFLAGS="${LDFLAGS_save}"
3516   ])
3517 fi
3518
3519 dnl
3520 dnl H264 encoder plugin (using libx264)
3521 dnl
3522 AC_ARG_ENABLE(x264,
3523   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3524 if test "${enable_x264}" != "no"; then
3525   AC_ARG_WITH(x264-tree,
3526     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3527   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3528   then
3529     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3530     if test -z "${real_x264_tree}"
3531     then
3532       dnl  The given directory can't be found
3533       AC_MSG_RESULT(no)
3534       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3535     fi
3536     dnl  Use a custom libx264
3537     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3538     if test -f ${real_x264_tree}/x264.h
3539     then
3540       AC_MSG_RESULT(yes)
3541       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3542       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3543       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3544       AC_CHECK_LIB(x264, x264_encoder_open, [
3545         VLC_ADD_BUILTINS([x264])
3546         VLC_ADD_LDFLAGS([x264],[-lx264])
3547       ],[
3548         AC_MSG_ERROR([the specified tree hasn't been compiled])
3549       ])
3550       LDFLAGS="${LDFLAGS_save}"
3551     else
3552       AC_MSG_RESULT(no)
3553       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3554     fi
3555   else
3556     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3557     AC_CHECK_HEADERS(x264.h, [
3558       AC_CHECK_LIB(x264, x264_encoder_open, [
3559         VLC_ADD_PLUGINS([x264])
3560         VLC_ADD_LDFLAGS([x264],[-lx264])
3561       ],[
3562         if test "${enable_x264}" = "yes"; then
3563             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3564           fi
3565       ])
3566     ])
3567     LDFLAGS="${LDFLAGS_save}"
3568   fi
3569 fi
3570
3571 dnl
3572 dnl  CMML plugin
3573 dnl
3574 AC_ARG_ENABLE(cmml,
3575   [  --enable-cmml           CMML support (default enabled)])
3576 if test "${enable_cmml}" != "no"
3577 then
3578   VLC_ADD_PLUGINS([cmml])
3579 fi
3580
3581
3582 dnl
3583 dnl  Video plugins
3584 dnl
3585
3586 AC_ARG_WITH(,[Video plugins:])
3587
3588 dnl Check for DPMS
3589 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3590   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3591   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3592     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3593     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3594       AC_MSG_RESULT(yes)
3595       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3596                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3597     ],[
3598       AC_MSG_RESULT(no)
3599     ])
3600   ],,[
3601     #include <X11/Xlib.h>
3602   ])
3603   CPPFLAGS="${CPPFLAGS_save}"
3604 fi
3605
3606 dnl
3607 dnl  X11 module
3608 dnl  (enabled by default except on win32)
3609 dnl
3610 AC_ARG_ENABLE(x11,
3611   [  --enable-x11            X11 support (default enabled)])
3612 if test "${enable_x11}" != "no" &&
3613   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3614    test "${enable_x11}" = "yes"); then
3615   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3616   AC_CHECK_HEADERS(X11/Xlib.h, [
3617     VLC_ADD_PLUGINS([x11 panoramix])
3618     VLC_ADD_LDFLAGS([x11 panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3619     VLC_ADD_CPPFLAGS([x11 panoramix],[${X_CFLAGS}])
3620   ])
3621   CPPFLAGS="${CPPFLAGS_save}"
3622 fi
3623
3624 dnl
3625 dnl  XVideo module
3626 dnl  (enabled by default except on win32)
3627 dnl
3628 AC_ARG_ENABLE(xvideo,
3629   [  --enable-xvideo         XVideo support (default enabled)])
3630 if test "${enable_xvideo}" != "no" &&
3631   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3632    test "${enable_xvideo}" = "yes"); then
3633   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3634   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3635     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3636     AC_CHECK_LIB(Xv,XvPutImage,[
3637       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3638       # test for libXv_pic.
3639       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3640         VLC_ADD_PLUGINS([xvideo])
3641         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3642         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3643       else
3644         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3645           VLC_ADD_PLUGINS([xvideo])
3646           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3647           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3648         ],[
3649           VLC_ADD_BUILTINS([xvideo])
3650           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3651           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3652         ])
3653       fi
3654     ])
3655     CFLAGS="${CFLAGS_save}"
3656   ]
3657   CPPFLAGS="${CPPFLAGS_save}")
3658 fi
3659
3660 dnl
3661 dnl  GLX module
3662 dnl  (enabled by default except on win32)
3663 dnl
3664 AC_ARG_ENABLE(glx,
3665   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3666 if test "${enable_glx}" != "no" &&
3667   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3668    test "${enable_glx}" = "yes"); then
3669   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3670   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3671   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3672     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3673     choke me
3674     #endif]]),
3675     [
3676       VLC_ADD_PLUGINS([glx])
3677       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3678       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3679     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3680   CPPFLAGS="${CPPFLAGS_save}"
3681 fi
3682
3683 dnl
3684 dnl  XVMC module
3685 dnl  (enabled by default except on win32)
3686 dnl
3687 AC_ARG_ENABLE(xvmc,
3688   [  --enable-xvmc            XVMC support (default disabled)])
3689 if test "${enable_xvmc}" = "yes" &&
3690   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3691    test "${enable_xvmc}" = "yes"); then
3692   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3693   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3694     VLC_ADD_PLUGINS([xvmc])
3695     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3696     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3697   ])
3698   CPPFLAGS="${CPPFLAGS_save}"
3699 fi
3700
3701 dnl
3702 dnl  Check for the Xinerama extension
3703 dnl
3704 AC_ARG_ENABLE(xinerama,
3705   [  --enable-xinerama       Xinerama support (default enabled)])
3706 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3707   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3708    test "${enable_xvideo}" = "yes"); then
3709   ac_cv_have_xinerama="no"
3710   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3711   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3712   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3713     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3714       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3715       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3716       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3717       ac_cv_have_xinerama="yes"
3718     ],[
3719       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3720         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3721         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3722         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3723         ac_cv_have_xinerama="yes"
3724       ])
3725     ])
3726   ])
3727   if test "${ac_cv_have_xinerama}" = "yes"; then
3728     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3729   fi
3730   CFLAGS="${CFLAGS_save}"
3731   CPPFLAGS="${CPPFLAGS_save}"
3732
3733 dnl
3734 dnl  Check for XF86VidMode extension
3735 dnl
3736   ac_cv_have_xf86vidmode="no"
3737   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3738   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3739   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3740     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3741       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3742       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3743       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3744       ac_cv_have_xf86vidmode="yes"
3745     ],[
3746       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3747         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3748         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3749         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3750         ac_cv_have_xf86vidmode="yes"
3751       ])
3752     ])
3753   ],[true],
3754 [#ifdef HAVE_X11_XLIB_H
3755 # include <X11/Xlib.h>
3756 #endif]
3757    )
3758   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3759     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3760   ])
3761   CFLAGS="${CFLAGS_save}"
3762   CPPFLAGS="${CPPFLAGS_save}"
3763
3764 fi
3765
3766 dnl
3767 dnl  OpenGL module
3768 dnl  (enabled by default except on beos)
3769 dnl
3770 AC_ARG_ENABLE(opengl,
3771   [  --enable-opengl         OpenGL support (default enabled)])
3772 if test "${enable_opengl}" != "no" &&
3773    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3774   if test "${SYS}" != "darwin"; then
3775     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3776       VLC_ADD_PLUGINS([opengl])
3777       if test "${SYS}" != "mingw32"; then
3778         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3779       else
3780         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
3781       fi
3782     ])
3783   else
3784     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3785     VLC_ADD_PLUGINS([opengl])
3786     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3787   fi
3788 fi
3789
3790 dnl
3791 dnl  SDL module
3792 dnl
3793 AC_ARG_ENABLE(sdl,
3794   [  --enable-sdl            SDL support (default enabled)])
3795 if test "${enable_sdl}" != "no"
3796 then
3797   SDL_PATH="${PATH}"
3798   AC_ARG_WITH(sdl-config-path,
3799     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3800     [ if test "${with_sdl_config_path}" != "no"
3801       then
3802         SDL_PATH="${with_sdl_config_path}:${PATH}"
3803       fi ])
3804   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3805   SDL_CONFIG="${SDL12_CONFIG}"
3806   SDL_HEADER="SDL12/SDL.h"
3807   SDL_IMAGE="SDL12/SDL_image.h"
3808   if test "${SDL_CONFIG}" = "no"
3809   then
3810     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3811     SDL_CONFIG=${SDL11_CONFIG}
3812     SDL_HEADER="SDL11/SDL.h"
3813     SDL_IMAGE="SDL11/SDL_image.h"
3814   fi
3815   if test "${SDL_CONFIG}" = "no"
3816   then
3817     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3818     SDL_HEADER="SDL/SDL.h"
3819     SDL_IMAGE="SDL/SDL_image.h"
3820   fi
3821   # check for cross-compiling
3822   SDL_PREFIX=
3823   AC_ARG_WITH(sdl-prefix,
3824     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3825                                e.g use as:
3826                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3827   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3828   then
3829     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3830   fi
3831   if test "${SDL_CONFIG}" != "no"
3832   then
3833     # SDL on Darwin is heavily patched and can only run SDL_image
3834     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3835       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3836     fi
3837     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3838     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3839     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3840     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3841       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3842       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3843           As a last resort we also test for SDL.h presence),
3844       [ AC_MSG_ERROR([The development package for SDL is not installed.
3845 Please install it and try again. Alternatively you can also configure with
3846 --disable-sdl.])
3847       ])])
3848     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3849       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3850       VLC_ADD_PLUGINS([sdl_image])
3851       AC_CHECK_LIB(png, png_set_rows,
3852         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3853       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3854         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3855       AC_CHECK_LIB(tiff, TIFFClientOpen,
3856         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3857       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3858       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3859           As a last resort we also test for SDL_image.h presence),
3860       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3861 You should install it alongside your SDL package.])
3862       ])])
3863     CPPFLAGS="${CPPFLAGS_save}"
3864     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3865     then
3866       AC_MSG_ERROR([The development package for SDL is not installed.
3867 Please install it and try again. Alternatively you can also configure with
3868 --disable-sdl.])
3869     fi
3870
3871   elif test "${enable_sdl}" =  "yes"
3872   then
3873     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3874 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3875     ])
3876   fi
3877 fi
3878
3879 dnl
3880 dnl  freetype module
3881 dnl
3882 AC_ARG_ENABLE(freetype,
3883   [  --enable-freetype       freetype support (default enabled)])
3884 AC_ARG_ENABLE(fribidi,
3885   [  --enable-fribidi        fribidi support (default enabled)])
3886 if test "${enable_freetype}" != "no"
3887 then
3888   FREETYPE_PATH="${PATH}"
3889   AC_ARG_WITH(freetype-config-path,
3890     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3891     [ if test "${with_freetype_config_path}" != "no"
3892       then
3893         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3894       fi ])
3895   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3896
3897   if test "${FREETYPE_CONFIG}" != "no"
3898   then
3899     VLC_ADD_PLUGINS([freetype])
3900     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3901     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3902     AC_CHECK_HEADERS(Carbon/Carbon.h,
3903       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3904   elif test "${enable_freetype}" =  "yes"
3905   then
3906     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3907 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3908     ])
3909   fi
3910
3911   dnl fribidi support
3912   if test "${enable_fribidi}" != "no"
3913   then
3914     FRIBIDI_PATH="${PATH}"
3915     AC_ARG_WITH(fribidi-config-path,
3916       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3917       [ if test "${with_fribidi_config_path}" != "no"
3918         then
3919           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3920         fi ])
3921     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3922
3923     if test "${FRIBIDI_CONFIG}" != "no"
3924     then
3925       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3926       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3927       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3928       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3929     fi
3930   fi
3931 fi
3932
3933 dnl
3934 dnl  libxml2 module
3935 dnl
3936 AC_ARG_ENABLE(libxml2,
3937   [  --enable-libxml2        libxml2 support (default enabled)])
3938 if test "${enable_libxml2}" != "no"
3939 then
3940   XML2_PATH="${PATH}"
3941   AC_ARG_WITH(xml2-config-path,
3942     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3943     [ if test "${with_xml2_config_path}" != "no"; then
3944         XML2_PATH="${with_xml2_config_path}:${PATH}"
3945       fi ])
3946   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3947   if test "${XML2_CONFIG}" != "no"; then
3948     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3949     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3950     dnl depends on the xmlTextReader extension
3951     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3952     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3953     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3954       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3955         VLC_ADD_PLUGINS([xml]) ],[
3956           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3957           if test "${enable_xml2}" = "yes"; then
3958             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3959           fi])
3960        ],[
3961       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3962       if test "${enable_xml2}" = "yes"; then
3963         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3964       fi])
3965     LDFLAGS="${LDFLAGS_save}"
3966     CPPFLAGS="${CPPFLAGS_save}"
3967   else
3968     if test "${enable_xml2}" = "yes"; then
3969       AC_MSG_ERROR([Could not find libxml2])
3970     fi
3971   fi
3972 fi
3973
3974 dnl
3975 dnl  SVG module
3976 dnl
3977 AC_ARG_ENABLE(svg,
3978   [  --enable-svg            SVG support (default disabled)])
3979 if test "${enable_svg}" = "yes"
3980 then
3981   PKG_CHECK_MODULES(SVG, 
3982         librsvg-2.0 >= 2.9.0,
3983         [
3984           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3985           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3986           VLC_ADD_PLUGINS([svg]) ],
3987         [AC_MSG_WARN(SVG library not found)])
3988 fi
3989
3990 dnl
3991 dnl Snapshot vout module (with cache)
3992 dnl
3993 AC_ARG_ENABLE(snapshot,
3994   [  --enable-snapshot       snapshot module (default disabled)])
3995 if test "${enable_snapshot}" = "yes"
3996 then
3997   VLC_ADD_PLUGINS([snapshot])
3998 fi
3999
4000 dnl
4001 dnl  Qt Embedded module
4002 dnl  (disabled by default)
4003 dnl
4004 AC_ARG_ENABLE(qte,
4005   [  --enable-qte            QT Embedded support (default disabled)])
4006 if test "${enable_qte}" = "yes"
4007 then
4008   AC_ARG_WITH(qte,
4009   [    --with-qte=PATH       Qt Embedded headers and libraries])
4010   if test "${with_qte}" != "no" -a -n "${with_qte}"
4011   then
4012     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4013     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4014   else
4015     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4016     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4017   fi
4018   VLC_ADD_PLUGINS([qte])
4019   NEED_QTE_MAIN=yes
4020   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4021   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4022     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4023   ] )
4024   CPPFLAGS="${CPPFLAGS_save}"
4025 fi
4026
4027 dnl
4028 dnl  Qt Video output module
4029 dnl  (disabled by default)
4030 dnl
4031 dnl AC_ARG_ENABLE(qt_video,
4032 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4033 dnl if test "${enable_qt_video}" = "yes"
4034 dnl then
4035 dnl  VLC_ADD_PLUGINS([qt_video])
4036 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
4037 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4038 dnl   AC_CHECK_LIB(qt-mt,main,[
4039 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4040 dnl  ],[
4041 dnl    AC_CHECK_LIB(qt,main,[
4042 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4043 dnl    ])
4044 dnl  ])
4045 dnl  NEED_QTE_MAIN=yes
4046 dnl  LDFLAGS="${LDFLAGS_save}"
4047 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4048 dnl fi
4049
4050 dnl
4051 dnl Roku HD1000 Video output module
4052 dnl
4053 AC_ARG_ENABLE(hd1000v,
4054   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4055 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4056   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4057    test "${enable_hd1000v}" = "yes"); then
4058   AC_LANG_PUSH([C++])
4059   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4060   [
4061     can_build_roku="yes"
4062   ],
4063   [
4064     can_build_roku="no"
4065     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4066   ])
4067   if test "$can_build_roku" = "yes"
4068   then
4069     VLC_ADD_PLUGINS([hd1000v])
4070     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4071   fi
4072   AC_LANG_POP([C++])
4073 fi
4074
4075 dnl
4076 dnl  Windows DirectX module
4077 dnl
4078
4079 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4080 then
4081   VLC_ADD_PLUGINS([panoramix])
4082 fi
4083
4084 AC_ARG_ENABLE(directx,
4085   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4086 if test "${enable_directx}" != "no"
4087 then
4088   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4089   then
4090     AC_ARG_WITH(directx,
4091     [    --with-directx=PATH   Win32 DirectX headers])
4092     if test -z "${with_directx}"
4093     then
4094       AC_CHECK_HEADERS(ddraw.h,
4095       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4096         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4097       ])
4098       AC_CHECK_HEADERS(GL/gl.h,
4099       [ VLC_ADD_PLUGINS([glwin32])
4100         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4101       ])
4102       AC_CHECK_HEADERS(d3d9.h,
4103       [ VLC_ADD_PLUGINS([direct3d])
4104         VLC_ADD_LDFLAGS([direct3d],[-ld3d9 -lgdi32])
4105       ])
4106     else
4107       AC_MSG_CHECKING(for directX headers in ${with_directx})
4108       if test -f ${with_directx}/ddraw.h
4109       then
4110         VLC_ADD_PLUGINS([vout_directx aout_directx])
4111         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4112         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4113         AC_MSG_RESULT(yes)
4114       else
4115         AC_MSG_RESULT(no)
4116         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4117       fi
4118     fi
4119   fi
4120 fi
4121
4122 dnl
4123 dnl  Linux framebuffer module
4124 dnl
4125 AC_ARG_ENABLE(fb,
4126   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4127     if test "${enable_fb}" != "no"
4128     then
4129       AC_CHECK_HEADERS(linux/fb.h, [
4130         VLC_ADD_PLUGINS([fb])
4131       ])
4132     fi
4133
4134 dnl
4135 dnl  Linux MGA module
4136 dnl
4137 AC_ARG_ENABLE(mga,
4138   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4139   [ if test "${enable_mga}" = "yes"
4140     then
4141       VLC_ADD_PLUGINS([mga])
4142     fi ])
4143
4144 dnl
4145 dnl  SVGAlib module
4146 dnl
4147 AC_ARG_ENABLE(svgalib,
4148   [  --enable-svgalib        SVGAlib support (default disabled)])
4149 if test "${enable_svgalib}" = "yes"
4150 then
4151   VLC_ADD_PLUGINS([svgalib])
4152   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4153 fi
4154
4155 dnl
4156 dnl  DirectFB module
4157 dnl
4158 AC_ARG_ENABLE(directfb,
4159   [  --enable-directfb       DirectFB support (default disabled)])
4160 if test "${enable_directfb}" = "yes"
4161 then
4162   if test "${with_directfb}" = "no"
4163   then
4164     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4165     if test "${have_directfb}"= "true"
4166     then
4167         VLC_ADD_PLUGINS([directfb])
4168         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4169         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4170     else
4171         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4172     fi
4173   else
4174     CPPFLAGS_save="${CPPFLAGS}"
4175     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4176     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4177     CPPFLAGS="${CPPFLAGS_save}"
4178     AC_ARG_WITH(directfb,
4179         [    --with-directfb=PATH  path to directfb],
4180         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4181         then
4182             VLC_ADD_PLUGINS([directfb])
4183             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4184             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4185         fi ],
4186         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4187   fi
4188 fi
4189
4190 dnl
4191 dnl  GGI module
4192 dnl
4193 AC_ARG_ENABLE(ggi,
4194   [  --enable-ggi            GGI support (default disabled)])
4195 if test "${enable_ggi}" = "yes"
4196 then
4197   VLC_ADD_PLUGINS([ggi])
4198   VLC_ADD_LDFLAGS([ggi],[-lggi])
4199   AC_ARG_WITH(ggi,
4200     [    --with-ggi=PATH       path to libggi],
4201     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4202       then
4203         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4204         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4205       fi ])
4206 fi
4207
4208 dnl
4209 dnl  Glide module
4210 dnl
4211 AC_ARG_ENABLE(glide,
4212   [  --enable-glide          Glide (3dfx) support (default disabled)])
4213 if test "${enable_glide}" = "yes"
4214 then
4215   CFLAGS_save="${CFLAGS}"
4216   AC_ARG_WITH(glide,
4217     [    --with-glide=PATH     path to libglide],
4218     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4219       then
4220         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4221         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4222         CFLAGS="$CFLAGS -I${with_glide}/include"
4223     fi ])
4224    CFLAGS="$CFLAGS -I/usr/include/glide"
4225    AC_CHECK_HEADER(glide.h,[   
4226       VLC_ADD_PLUGINS([glide])
4227       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4228       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4229     ],[
4230       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4231      ])
4232    CFLAGS="${CFLAGS_save}"
4233 fi
4234
4235 dnl
4236 dnl  AA plugin
4237 dnl
4238 AC_ARG_ENABLE(aa,
4239   [  --enable-aa             aalib output (default disabled)])
4240 if test "${enable_aa}" = "yes"
4241 then
4242   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4243   if test "${have_aa}" = "true"
4244   then
4245     VLC_ADD_PLUGINS([aa])
4246     VLC_ADD_LDFLAGS([aa],[-laa])
4247   fi
4248 fi
4249
4250 dnl
4251 dnl  libcaca plugin
4252 dnl
4253 AC_ARG_ENABLE(caca,
4254   [  --enable-caca           libcaca output (default disabled)])
4255 if test "${enable_caca}" = "yes"
4256 then
4257   CACA_PATH="${PATH}"
4258   AC_ARG_WITH(caca-config-path,
4259     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4260     [ if test "${with_caca_config_path}" != "no"
4261       then
4262         CACA_PATH="${with_caca_config_path}:${PATH}"
4263       fi ])
4264   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4265   if test "${CACA_CONFIG}" != "no"
4266   then
4267     VLC_ADD_PLUGINS([caca])
4268     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4269     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4270   fi
4271 fi
4272
4273 dnl
4274 dnl  win32 GDI plugin
4275 dnl
4276 AC_ARG_ENABLE(wingdi,
4277   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4278 if test "${enable_wingdi}" != "no"; then
4279   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4280     VLC_ADD_PLUGINS([wingdi])
4281     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4282   fi
4283   if test "${SYS}" = "mingwce"; then
4284     VLC_ADD_PLUGINS([wingdi wingapi])
4285   fi
4286 fi
4287
4288 dnl
4289 dnl  Audio plugins
4290 dnl
4291
4292 AC_ARG_WITH(,[Audio plugins:])
4293
4294 dnl
4295 dnl  OSS /dev/dsp module (enabled by default except on win32)
4296 dnl
4297 AC_ARG_ENABLE(oss,
4298   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4299
4300 if test "${enable_oss}" != "no" &&
4301   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4302    test "${enable_oss}" = "yes")
4303 then
4304   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4305     VLC_ADD_PLUGINS([oss])
4306     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4307   ])
4308 fi
4309
4310 dnl
4311 dnl  Esound module
4312 dnl
4313 AC_ARG_ENABLE(esd,
4314   [  --enable-esd            Esound library support (default disabled)],
4315   [if test "${enable_esd}" = "yes"
4316    then
4317      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4318      if test "${ESD_CONFIG}" != "no"
4319      then
4320        VLC_ADD_PLUGINS([esd])
4321        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4322        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4323      fi
4324    fi])
4325
4326 dnl
4327 dnl  Portaudio module
4328 dnl
4329 AC_ARG_ENABLE(portaudio,
4330   [  --enable-portaudio      Portaudio library support (default disabled)],
4331   [if test "${enable_portaudio}" = "yes"
4332    then
4333      VLC_ADD_PLUGINS([portaudio])
4334      VLC_ADD_CXXFLAGS([portaudio],[])
4335      if test "${SYS}" = "mingw32"; then
4336         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4337      else
4338         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4339      fi
4340    fi])
4341
4342 dnl
4343 dnl  aRts module -- broken (freeze wxWidgets)
4344 dnl
4345 AC_ARG_ENABLE(arts,
4346  [  --enable-arts           aRts sound server (default disabled)],
4347  [if test "${enable_arts}" = "yes"
4348   then
4349     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4350     if test "${ARTS_CONFIG}" != "no"
4351     then
4352       VLC_ADD_PLUGINS([arts])
4353       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4354       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4355     fi
4356   fi])
4357
4358 dnl
4359 dnl  ALSA module
4360 dnl
4361 AC_ARG_ENABLE(alsa,
4362   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4363 if test "${enable_alsa}" != "no"
4364 then
4365   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4366   if test "${have_alsa}" = "true"
4367   then
4368     CFLAGS="${CFLAGS_save}"
4369     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4370                     #define ALSA_PCM_NEW_SW_PARAMS_API
4371                     #include <alsa/asoundlib.h>],
4372        [snd_pcm_hw_params_get_period_time(0,0,0);],
4373         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4374     VLC_ADD_PLUGINS([alsa])
4375     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4376   else
4377     if test "${enable_alsa}" = "yes"; then
4378       AC_MSG_ERROR([Could not find ALSA development headers])
4379     fi
4380   fi
4381 fi
4382
4383 dnl
4384 dnl  win32 waveOut plugin
4385 dnl
4386 AC_ARG_ENABLE(waveout,
4387   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4388 if test "${enable_waveout}" != "no"; then
4389   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4390     VLC_ADD_PLUGINS([waveout])
4391     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4392   fi
4393   if test "${SYS}" = "mingwce"; then
4394     VLC_ADD_PLUGINS([waveout])
4395   fi
4396 fi
4397
4398 dnl
4399 dnl  CoreAudio plugin
4400 dnl
4401 AC_ARG_ENABLE(macosx-audio,
4402   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4403 if test "${enable_macosx-audio}" != "no" &&
4404   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4405 then
4406   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4407     [ VLC_ADD_BUILTINS([auhal])
4408       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4409     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4410 fi
4411
4412 dnl
4413 dnl  Roku HD1000 audio
4414 dnl
4415 AC_ARG_ENABLE(hd1000a,
4416   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4417 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4418   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4419    test "${enable_hd1000a}" = "yes")
4420 then
4421   AC_LANG_PUSH([C++])
4422   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4423     VLC_ADD_PLUGINS([hd1000a])
4424     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4425   AC_LANG_POP([C++])
4426 fi
4427
4428 dnl
4429 dnl  JACK module
4430 dnl
4431 AC_ARG_ENABLE(jack,
4432  [  --enable-jack           JACK audio module (default disabled)],
4433  [if test "${enable_jack}" = "yes"
4434   then
4435     AC_CHECK_HEADERS(jack/jack.h, [
4436       VLC_ADD_PLUGINS([jack])
4437       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4438   fi])
4439
4440 dnl
4441 dnl  CyberLink for C++ UPnP stack
4442 dnl
4443 AC_ARG_ENABLE(cyberlink,
4444   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4445   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4446   AC_ARG_WITH(cyberlink-tree,
4447     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4448
4449   dnl
4450   dnl test for --with-cyberlink-tree
4451   dnl
4452   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4453     AC_LANG_PUSH(C++)
4454     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4455     AS_IF([test -z "${real_cyberlink_tree}"], [
4456       dnl  The given directory can't be found
4457       AC_MSG_RESULT(no)
4458       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4459     ])
4460     CPPFLAGS_save="${CPPFLAGS}"
4461     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4462     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4463     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4464       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4465         VLC_ADD_PLUGINS([upnp_cc]) 
4466       ],[
4467         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4468       ])
4469     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4470     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4471       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4472       dnl The mere fact that we have to make such an ugly check sucks
4473       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4474       LIBS_save="$LIBS"
4475       LIBS_cclink="no"
4476       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4477         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4478         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4479 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4480 using namespace CyberLink;
4481
4482 class testclass : public SearchResponseListener, public MediaPlayer
4483 {
4484     virtual void deviceSearchResponseReceived( SSDPPacket *)
4485     {
4486     }
4487
4488     public:
4489       testclass (void)
4490       {
4491         addSearchResponseListener (this);
4492         start ();
4493       }
4494 };
4495 ],[testclass l;])],[LIBS_cclink="$l"])
4496       done
4497       LIBS="${LIBS_save}"
4498       dnl should not happen - otherwise this needs fixing - hence FAILURE
4499       AS_IF([test "${LIBS_cclink}" = "no"],
4500         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4501       AC_MSG_RESULT([${LIBS_cclink}])
4502       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4503     ], [
4504       AC_MSG_RESULT(no)
4505       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4506     ])
4507     CPPFLAGS="${CPPFLAGS_save}"
4508     AC_LANG_POP([C++])
4509   ])
4510 ])
4511
4512 dnl
4513 dnl UPnP Plugin (Intel SDK)
4514 dnl
4515 AC_ARG_ENABLE(upnp,
4516   [  --enable-upnp           Intel UPnP SDK (default auto)])
4517
4518 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4519 AS_IF([test "x${enable_upnp}" != "xno"], [
4520   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4521   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4522     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4523   ])
4524   AS_IF([test "${has_upnp}" = "yes"], [
4525     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4526   ])
4527 ], [
4528   has_upnp="no"
4529 ])
4530
4531 AS_IF([test "${has_upnp}" = "yes"], [
4532   VLC_ADD_PLUGINS([upnp_intel])
4533 ])
4534
4535
4536 dnl
4537 dnl  Interface plugins
4538 dnl
4539
4540 AC_ARG_WITH(,[Interface plugins:])
4541
4542 dnl special case for BeOS
4543 if test "${SYS}" = "beos"
4544 then
4545     VLC_ADD_BUILTINS([beos])
4546 fi
4547
4548 dnl
4549 dnl Skins2 module
4550 dnl
4551 AC_ARG_ENABLE(skins2,
4552   [  --enable-skins2         Skins2 interface module (experimental)])
4553 if test "${enable_skins2}" = "yes" ||
4554   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4555    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4556
4557   dnl test for the required libraries
4558   skins2_missing_lib="no"
4559
4560   dnl freetype
4561   if test "${FREETYPE_CONFIG}" != "no"; then
4562     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4563     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4564   else
4565     skins2_missing_lib="yes"
4566     if test "${enable_skins2}" = "yes"; then
4567       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4568     fi
4569   fi
4570
4571   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4572     VLC_ADD_PLUGINS([skins2])
4573     ALIASES="${ALIASES} svlc"
4574     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4575     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4576     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4577
4578   else if test "${skins2_missing_lib}" = "no"; then
4579     VLC_ADD_PLUGINS([skins2])
4580     ALIASES="${ALIASES} svlc"
4581     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4582     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4583     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4584   fi fi
4585 fi
4586
4587
4588 dnl dnl
4589 dnl dnl  Gtk+ module
4590 dnl dnl
4591 dnl AC_ARG_ENABLE(gtk,
4592 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4593 dnl if test "${enable_gtk}" != "no"
4594 dnl then
4595 dnl   GTK_PATH="${PATH}"
4596 dnl   AC_ARG_WITH(gtk-config-path,
4597 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4598 dnl     [ if test "${with_gtk_config_path}" != "no"
4599 dnl       then
4600 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4601 dnl       fi ])
4602 dnl   # look for gtk-config
4603 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4604 dnl   GTK_CONFIG=${GTK12_CONFIG}
4605 dnl   if test "${GTK_CONFIG}" = "no"
4606 dnl   then
4607 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4608 dnl   fi
4609 dnl   if test "${GTK_CONFIG}" != "no"
4610 dnl   then
4611 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4612 dnl     then
4613 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
4614 dnl     fi
4615 dnl     if test "${SYS}" != "mingw32"; then
4616 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4617 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4618 dnl     else
4619 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4620 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4621 dnl     fi
4622 dnl     # now look for the gtk.h header
4623 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4624 dnl     ac_cv_gtk_headers=yes
4625 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4626 dnl       ac_cv_gtk_headers=no
4627 dnl       echo "Cannot find gtk development headers."
4628 dnl     ])
4629 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4630 dnl     then
4631 dnl       VLC_ADD_PLUGINS([gtk])
4632 dnl       if test "${SYS}" != "mingw32"; then
4633 dnl         NEED_GTK_MAIN=yes
4634 dnl       fi
4635 dnl       ALIASES="${ALIASES} gvlc"
4636 dnl     fi
4637 dnl     CPPFLAGS="${CPPFLAGS_save}"
4638 dnl   fi
4639 dnl fi
4640 dnl 
4641 dnl
4642 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4643 dnl
4644 dnl AC_ARG_ENABLE(gtk2,
4645 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4646 dnl if test "${enable_gtk2}" = "yes"
4647 dnl then
4648 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4649 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4650 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4651 dnl   VLC_ADD_PLUGINS([gtk2])
4652 dnl   if test "${SYS}" != "mingw32"; then
4653 dnl     NEED_GTK2_MAIN=yes
4654 dnl   fi
4655 dnl fi
4656
4657 dnl
4658 dnl  PDA Gtk+2 module
4659 dnl
4660 AC_ARG_ENABLE(pda,
4661   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4662 if test "${enable_pda}" = "yes"
4663 then
4664   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4665   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4666   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4667   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4668   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4669   VLC_ADD_PLUGINS([pda])
4670   if test "${SYS}" != "mingw32"; then
4671     NEED_GTK2_MAIN=yes
4672   fi
4673 fi
4674
4675 dnl dnl
4676 dnl dnl  Gnome module
4677 dnl dnl
4678 dnl AC_ARG_ENABLE(gnome,
4679 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4680 dnl   [if test "${enable_gnome}" = "yes"; then
4681 dnl     # look for gnome-config
4682 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4683 dnl     if test -x ${GNOME_CONFIG}
4684 dnl     then
4685 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4686 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4687 dnl     fi
4688 dnl     # now look for the gnome.h header
4689 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4690 dnl     AC_CHECK_HEADERS(gnome.h, [
4691 dnl       VLC_ADD_PLUGINS([gnome])
4692 dnl       NEED_GTK_MAIN=yes
4693 dnl       NEED_GNOME_MAIN=yes
4694 dnl       ALIASES="${ALIASES} gnome-vlc"
4695 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4696 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4697 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4698 dnl         AC_MSG_RESULT(yes)
4699 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4700 dnl                   Define if <gnome.h> defines strndup.)],[
4701 dnl         AC_MSG_RESULT(no)])
4702 dnl      ],[
4703 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4704 dnl developement tools or remove the --enable-gnome option])
4705 dnl      ])
4706 dnl     CPPFLAGS="${CPPFLAGS_save}"
4707 dnl   fi])
4708
4709 dnl
4710 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4711 dnl
4712 dnl AC_ARG_ENABLE(gnome2,
4713 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4714 dnl if test "${enable_gnome2}" = "yes"
4715 dnl then
4716 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4717 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4718 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4719 dnl   VLC_ADD_PLUGINS([gnome2])
4720 dnl   if test "${SYS}" != "mingw32"; then
4721 dnl     NEED_GNOME2_MAIN=yes
4722 dnl   fi
4723 dnl fi
4724
4725 dnl
4726 dnl  wxWidgets module
4727 dnl
4728 AC_ARG_ENABLE(wxwidgets,
4729   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4730 if test "${enable_wxwindows}" 
4731 then
4732   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4733 fi
4734
4735 if test "${enable_wxwindows}" = "no"
4736 then
4737   enable_wxwidgets="no"
4738 fi
4739 if test "${enable_wxwidgets}" != "no"
4740 then
4741   WXWIDGETS_PATH="${PATH}"
4742   AC_ARG_WITH(wx-config-path,
4743     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4744     [ if test "${with_wx_config_path}" != "no"
4745       then
4746         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4747       fi ])
4748   WXWIDGETS_NAME="wx-config"
4749   AC_ARG_WITH(wx-config,
4750     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4751     [ if test "${with_wx_config}" != "no"
4752       then
4753         WXWIDGETS_NAME="${with_wx_config}"
4754       fi ])
4755   # look for wx-config
4756   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4757   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4758   then
4759     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null ||  expr 2.7.0 \<= `${WX_CONFIG} --version` >/dev/null
4760     then
4761       AC_MSG_ERROR([You need wxWidgets of the 2.6 branch. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.])
4762     fi
4763     AC_LANG_PUSH(C++)
4764     # Turn this error:
4765     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4766     # into a warning. However better would be to fix playlist.cpp
4767     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4768         [ac_cv_cxx_fpermissive],
4769         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4770          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4771                         ac_cv_cxx_fpermissive=no)])
4772     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4773       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4774     fi
4775     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4776     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4777     # check if we must link against gtk2 libs
4778     # if __WXGTK20__ && __WXGTK__ are defined
4779     # for modules/gui/wxwidgets/video.cpp
4780     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4781 #include <wx/wx.h>
4782 #ifdef __WXGTK20__
4783 #error ok, we need to link against gtk2
4784 #endif
4785         ])],[WXGTK=no],[WXGTK=yes])
4786     if test "$WXGTK" = "yes"; then
4787       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
4788     fi
4789     if ${WX_CONFIG} --unicode
4790     then 
4791       # wxwidgets should provide the following flags but does not
4792       # the following is required to compile for win32
4793       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4794     fi
4795     if test "$have_libcdio" = "yes"
4796     then 
4797       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4798       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4799     else 
4800       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4801     fi
4802
4803     if test "$have_libvcdinfo" = "yes"
4804     then 
4805       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4806       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4807     else 
4808       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4809     fi
4810
4811     # now look for the wxprec.h header
4812     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4813     ac_cv_wx_headers=yes
4814     AC_CHECK_HEADERS(wx/wxprec.h, , [
4815       ac_cv_wx_headers=no
4816       echo "Cannot find wxWidgets development headers."
4817     ])
4818     if test "${ac_cv_wx_headers}" = "yes"
4819     then
4820       VLC_ADD_PLUGINS([wxwidgets])
4821       ALIASES="${ALIASES} wxvlc"
4822     fi
4823     CPPFLAGS="${CPPFLAGS_save}"
4824     AC_LANG_POP(C++)
4825   fi
4826   dnl WxWidgets plugin will yield incorrect code without this
4827   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
4828 fi
4829
4830 dnl
4831 dnl QT 4
4832 dnl
4833 enableqt4=false
4834 AC_ARG_ENABLE(qt4,
4835   [  --enable-qt4            QT 4 support (default disabled) ],
4836   [if test "${enable_qt4}" = "yes"; then
4837       PKG_CHECK_MODULES(QT4, QtCore QtGui,
4838         [ VLC_ADD_PLUGINS([qt4])
4839           ALIASES="${ALIASES} qvlc"
4840           enableqt4=true
4841           VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
4842           VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
4843           MOC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/moc
4844           RCC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/rcc
4845           UIC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/uic],
4846        [AC_MSG_WARN(QT4 library not found)])
4847    fi])
4848 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
4849
4850 dnl
4851 dnl  WinCE GUI module
4852 dnl
4853 if test "${SYS}" = "mingwce"; then
4854   VLC_ADD_BUILTINS([wince])
4855   VLC_ADD_CXXFLAGS([wince],[])
4856   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4857   dnl Gross hack
4858   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4859 elif test "${SYS}" = "mingw32"; then
4860   VLC_ADD_CXXFLAGS([wince],[])
4861   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4862   dnl Gross hack
4863   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4864 fi
4865
4866 dnl
4867 dnl Simple test for skins2 dependency
4868 dnl
4869 if test "${enable_skins2}" != "no"
4870 then
4871   if test "${WX_CONFIG}" = "no"
4872   then
4873     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
4874   fi
4875 fi
4876
4877 dnl dnl
4878 dnl dnl  Qt module
4879 dnl dnl
4880 dnl AC_ARG_ENABLE(qt,
4881 dnl   [  --enable-qt             Qt interface support (default disabled)],
4882 dnl   [if test "${enable_qt}" = "yes"; then
4883 dnl      VLC_ADD_PLUGINS([qt])
4884 dnl      ALIASES="${ALIASES} qvlc"
4885 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4886 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4887 dnl      AC_CHECK_LIB(qt-mt,main,[
4888 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4889 dnl      ],[
4890 dnl        AC_CHECK_LIB(qt,main,[
4891 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4892 dnl        ])
4893 dnl      ])
4894 dnl      LDFLAGS="${LDFLAGS_save}"
4895 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4896 dnl      if test -x ${QTDIR}/bin/moc
4897 dnl      then
4898 dnl        MOC=${QTDIR}/bin/moc
4899 dnl      else
4900 dnl        MOC=moc
4901 dnl      fi
4902 dnl    fi])
4903 dnl 
4904 dnl dnl
4905 dnl dnl  KDE module
4906 dnl dnl
4907 dnl AC_ARG_ENABLE(kde,
4908 dnl   [  --enable-kde            KDE interface support (default disabled)],
4909 dnl   [if test "${enable_kde}" = "yes"; then
4910 dnl      VLC_ADD_PLUGINS([kde])
4911 dnl      ALIASES="${ALIASES} kvlc"
4912 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4913 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4914 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4915 dnl      AC_CHECK_LIB(kfile,main,[
4916 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4917 dnl      ])
4918 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4919 dnl      AC_CHECK_LIB(kdeui,main,[
4920 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4921 dnl      ])
4922 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4923 dnl      AC_CHECK_LIB(kio,main,[
4924 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4925 dnl      ])
4926 dnl      LDFLAGS="${LDFLAGS_save}"
4927 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4928 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4929 dnl      if test -x ${QTDIR}/bin/moc
4930 dnl      then
4931 dnl        MOC=${QTDIR}/bin/moc
4932 dnl      else
4933 dnl        MOC=moc
4934 dnl      fi
4935 dnl    fi])
4936
4937 dnl
4938 dnl  Opie QT embedded module
4939 dnl
4940 AC_ARG_ENABLE(opie,
4941   [  --enable-opie           Qt embedded interface support (default disabled)],
4942   [if test "${enable_opie}" = "yes"; then
4943      AC_ARG_WITH(qte,
4944      [    --with-qte=PATH       Qt Embedded headers and libraries])
4945      if test "${with_qte}" != "no" -a -n "${with_qte}"
4946      then
4947        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4948        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4949      else
4950        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4951        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4952      fi
4953      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4954      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4955        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4956      ] )
4957      CPPFLAGS="${CPPFLAGS_save}"
4958
4959      VLC_ADD_PLUGINS([opie])
4960      NEED_QTE_MAIN=yes
4961      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4962      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4963      if test "${with_qte}" != "no" -a -n "${with_qte}"
4964      then
4965        MOC=${with_qte}/bin/moc
4966      else
4967        MOC=${QTDIR}/bin/moc
4968      fi
4969    fi])
4970
4971 dnl
4972 dnl  MacOS X module
4973 dnl
4974 ORIGCFLAGS=$CFLAGS
4975 CFLAGS="$CFLAGS -x objective-c"
4976 AC_ARG_ENABLE(macosx,
4977   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4978   [if test "${enable_macosx}" = "yes"
4979    then
4980      VLC_ADD_BUILTINS([macosx])
4981      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4982      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4983    fi],
4984   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4985      VLC_ADD_BUILTINS([macosx])
4986      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4987      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4988    )])
4989 CFLAGS=$ORIGCFLAGS
4990
4991 dnl
4992 dnl  QNX RTOS module
4993 dnl
4994 AC_ARG_ENABLE(qnx,
4995   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4996     if test "${enable_qnx}" != "no"
4997     then
4998       AC_CHECK_HEADERS(Ph.h, [
4999         VLC_ADD_PLUGINS([qnx])
5000         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
5001       ])
5002     fi
5003
5004 dnl
5005 dnl  ncurses module
5006 dnl
5007 AC_ARG_ENABLE(ncurses,
5008   [  --enable-ncurses        ncurses interface support (default disabled)],
5009   [if test "${enable_ncurses}" = "yes"; then
5010      VLC_ADD_PLUGINS([ncurses])
5011      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
5012    fi])
5013
5014 dnl
5015 dnl  XOSD plugin
5016 dnl
5017 AC_ARG_ENABLE(xosd,
5018   [  --enable-xosd           xosd interface support (default disabled)])
5019 if test "${enable_xosd}" = "yes"
5020 then
5021   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5022   AC_CHECK_LIB(xosd,xosd_set_offset,
5023       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5024     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5025         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5026       AC_TRY_COMPILE([#include <xosd.h>],
5027          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5028           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5029   if test "${have_xosd}" = "true"
5030   then
5031     VLC_ADD_PLUGINS([xosd])
5032     VLC_ADD_LDFLAGS([xosd],[-lxosd])
5033   fi
5034 fi
5035
5036 dnl
5037 dnl Visualisation plugin
5038 dnl
5039 AC_ARG_ENABLE(visual,
5040   [  --enable-visual         visualisation plugin (default enabled)])
5041 if test "${enable_visual}" != "no"
5042 then
5043     VLC_ADD_PLUGINS([visual])
5044 fi
5045
5046 dnl
5047 dnl OpenGL visualisation plugin
5048 dnl
5049 AC_ARG_ENABLE(galaktos,
5050   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5051 if test "${enable_galaktos}" = "yes"
5052 then
5053   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5054     VLC_ADD_PLUGINS([galaktos])
5055     if test "${SYS}" != "mingw32"; then
5056       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
5057     else
5058       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
5059     fi
5060   ])
5061 fi
5062
5063 dnl
5064 dnl  goom visualization plugin
5065 dnl
5066 AC_ARG_ENABLE(goom,
5067 [  --enable-goom           goom visualisation plugin (default disabled)])
5068 if test "${enable_goom}" = "yes"
5069 then
5070   AC_ARG_WITH(goom-tree,
5071     [    --with-goom-tree=PATH goom tree for static linking (required)])
5072
5073   dnl
5074   dnl test for --with-goom-tree
5075   dnl
5076   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5077     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5078     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5079     if test -z "${real_goom_tree}"; then
5080       dnl  The given directory can't be found
5081       AC_MSG_RESULT(no)
5082       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5083     fi
5084     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5085       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5086       VLC_ADD_BUILTINS([goom])
5087       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5088       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5089     else
5090       dnl  The given libgoom2 wasn't built, try to look for the old goom
5091       AC_MSG_RESULT(no)
5092       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5093       if test -f "${real_goom_tree}/libgoom.a"; then
5094         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5095         VLC_ADD_BUILTINS([goom])
5096         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5097         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5098       else
5099         dnl  The given libgoom wasn't built
5100         AC_MSG_RESULT(no)
5101         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5102       fi
5103     fi
5104   else
5105     AC_CHECK_HEADERS(goom/goom.h, [
5106       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5107       AC_CHECK_LIB(goom2, goom_init, [
5108         VLC_ADD_PLUGINS([goom])
5109         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5110       ],[
5111         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5112       ])
5113       LDFLAGS="${LDFLAGS_save}"
5114     ])
5115   fi
5116 fi
5117
5118 dnl
5119 dnl  Bonjour services discovery
5120 dnl
5121 AC_ARG_ENABLE(bonjour,
5122   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5123 if test "${enable_bonjour}" != "no"
5124 then
5125   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5126     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5127        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5128       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5129       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5130       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5131       VLC_ADD_PLUGINS([bonjour]) ],
5132     [AC_MSG_WARN(avahi-client library not found)])
5133 fi
5134
5135 dnl
5136 dnl  Lirc plugin
5137 dnl
5138 AC_ARG_ENABLE(lirc,
5139   [  --enable-lirc           lirc support (default disabled)])
5140 if test "${enable_lirc}" = "yes"
5141 then
5142   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5143   if test "${have_lirc}" = "true"
5144   then
5145     VLC_ADD_PLUGINS([lirc])
5146     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5147   fi
5148 fi
5149
5150
5151 AC_ARG_WITH(,[Misc options:])
5152
5153 dnl
5154 dnl TLS/SSL
5155 dnl
5156 AC_ARG_ENABLE(gnutls,
5157   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5158
5159 AS_IF([test "${enable_gnutls}" != "no"], [
5160   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"])
5161
5162   AS_IF([test "${have_gnutls}" = "yes"], [
5163     VLC_ADD_PLUGINS([gnutls])
5164     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5165     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5166   ], [
5167     AS_IF([test "${enable_gnutls}" = "yes"], [
5168       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5169     ])
5170   ])
5171   AC_CHECK_LIB([gcrypt], [gcry_control], [
5172     VLC_ADD_LDFLAGS([gnutls], [-lgcrypt])
5173   ])
5174 ])
5175
5176
5177 dnl
5178 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5179 dnl
5180 dnl  We give the user the opportunity to specify
5181 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5182 dnl
5183 AC_ARG_WITH(words,
5184   [    --with-words=endianness set endianness (big or little)])
5185   case "${with_words}" in
5186     big)
5187       ac_cv_c_bigendian=yes
5188       ;;
5189     little)
5190       ac_cv_c_bigendian=no
5191       ;;
5192     *)
5193       dnl  Try to guess endianness by matching patterns on a compiled
5194       dnl  binary, by looking for an ASCII or EBCDIC string
5195       AC_CACHE_CHECK([whether the byte order is big-endian],
5196         [ac_cv_c_bigendian],
5197         [ac_cv_c_bigendian="unknown"
5198         [cat >conftest.c <<EOF
5199         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5200         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5201         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5202         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5203         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5204         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5205         int main(void) { _a(); _e(); return 0; }
5206 EOF
5207         ]
5208         if test -f conftest.c
5209         then
5210           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5211               && test -f conftest.o
5212           then
5213             if test "`strings conftest.o | grep BIGenDianSyS`"
5214             then
5215               ac_cv_c_bigendian="yes"
5216             fi
5217             if test "`strings conftest.o | grep LiTTleEnDian`"
5218             then
5219               ac_cv_c_bigendian="no"
5220             fi
5221           fi
5222         fi
5223       ])
5224       if test "${ac_cv_c_bigendian}" = "unknown"
5225       then
5226         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5227       fi
5228       ;;
5229   esac
5230 dnl  Now we know what to use for endianness, just put it in the header
5231 if test "${ac_cv_c_bigendian}" = "yes"
5232 then
5233   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5234 fi
5235
5236 dnl
5237 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5238 dnl
5239 loader=false
5240 AC_ARG_ENABLE(loader,
5241   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5242 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5243 AS_IF([test "${enable_loader}" = "yes"],
5244   [ VLC_ADD_PLUGINS([dmo])
5245     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
5246     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.la -lpthread])
5247     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
5248     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.la -lpthread])
5249     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
5250     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.la -ldl -lpthread])
5251   ])
5252
5253 dnl
5254 dnl  Microsoft ActiveX support
5255 dnl
5256 activex=false
5257 AC_ARG_ENABLE(activex,
5258   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5259 AC_ARG_WITH(wine-sdk-path,
5260   [    --with-wine-sdk-path=PATH path to wine sdk])
5261 if test "${enable_activex}" != "no"
5262 then
5263   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5264   then
5265     AC_CHECK_PROGS(MIDL, [midl], no)
5266     if test "${with_wine_sdk_path}" != ""
5267     then
5268        WINE_SDK_PATH=${with_wine_sdk_path}
5269        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5270     else
5271        WIDL=no
5272     fi
5273     AC_LANG_PUSH(C++)
5274     AC_CHECK_HEADERS(ole2.h olectl.h,
5275       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5276         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5277         AC_CHECK_HEADERS(objsafe.h,
5278           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5279           [#if HAVE_OLE2_H
5280            #   include <ole2.h>
5281            #endif]
5282         )
5283         activex=:
5284       ],
5285       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5286     )
5287     AC_LANG_POP(C++)
5288   fi
5289 fi
5290 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5291 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5292 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5293 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5294 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5295
5296 dnl
5297 dnl  Mozilla plugin
5298 dnl
5299 mozilla=false
5300 AC_ARG_ENABLE(mozilla,
5301   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
5302 AC_ARG_WITH(mozilla-sdk-path,
5303   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5304 AC_LANG_PUSH(C++)
5305 if test "${enable_mozilla}" = "yes" 
5306 then
5307   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5308   need_xpcom_libs=false
5309   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5310   then
5311     AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5312     if test "${MOZILLA_CONFIG}" = "no"
5313     then
5314       AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5315       if test "${SEAMONKEY_CONFIG}" = "no"
5316       then
5317         AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5318         if test "${XULRUNNER_CONFIG}" = "no"
5319         then
5320           AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5321         else
5322           have_xul=true
5323           MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5324         fi
5325       else
5326         MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5327       fi
5328     fi
5329     
5330     if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5331       LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5332       AC_CHECK_LIB(Xt,XtStrings,
5333        [
5334          VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5335          VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5336 ],
5337        [],
5338        [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5339       ])
5340       LDFLAGS="${LDFLAGS_save}"
5341     fi
5342     
5343       mozilla=:
5344       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5345       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5346       if ${need_xpcom_libs}; then
5347          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5348       else
5349          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5350       fi
5351       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5352       MOZILLA_REQUIRED_HEADERS=1
5353       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5354       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5355       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5356         [#if HAVE_NPAPI_H
5357          # include <npapi.h>
5358          #endif
5359         ])
5360       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5361       then
5362         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5363       fi
5364       MOZILLA_REQUIRED_HEADERS=
5365       CPPFLAGS="${CPPFLAGS_save}"
5366       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5367     dnl End of moz_sdk = ""
5368   else
5369     dnl special case for mingw32
5370     if test "${SYS}" = "mingw32"
5371     then
5372       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5373       dnl latest gecko sdk does not have an xpcom directory
5374       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5375           mozilla_sdk_xpcom="/xpcom"
5376       fi
5377     fi
5378   
5379     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5380     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5381     MOZILLA_REQUIRED_HEADERS=1
5382     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5383     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5384     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5385         [#if HAVE_NPAPI_H
5386           #include <npapi.h>
5387           #endif
5388         ])
5389     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5390     then
5391         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5392     fi
5393     MOZILLA_REQUIRED_HEADERS=
5394     mozilla=:
5395     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])
5396     if ${need_xpcom_libs}; then
5397        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])
5398       if test "${SYS}" = "mingw32"; then
5399             dnl latest gecko sdk does not have embedstring
5400             if test -d "${real_mozilla_sdk}/embedstring/bin"
5401             then
5402               VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5403             fi
5404           fi
5405     fi
5406     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5407   
5408     if test -n "${CYGPATH}"; then
5409       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5410     fi
5411     CPPFLAGS="${CPPFLAGS_save}"
5412   fi
5413 fi
5414 AC_LANG_POP(C++)
5415 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5416
5417 dnl
5418 dnl  Mediacontrol Python bindings
5419 dnl
5420 AC_ARG_ENABLE(python-bindings,
5421   [  --enable-python-bindings    Enable Python bindings (default disabled)])
5422 dnl TODO: look for python dev headers
5423 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5424
5425 dnl
5426 dnl  Java bindings
5427 dnl
5428 AC_ARG_ENABLE(java-bindings,
5429   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5430 if test "${enable_java_bindings}" = "yes"
5431 then
5432   AS_IF([test "x${JAVA_HOME}" == "x"],
5433         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5434   AC_PROG_JAVAC
5435   AC_PROG_JAVA
5436 fi
5437 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5438
5439 dnl
5440 dnl  test plugins
5441 dnl
5442 AC_ARG_ENABLE(testsuite,
5443   [  --enable-testsuite      build test modules (default disabled)])
5444 if test "${enable_testsuite}" = "yes"
5445 then
5446   TESTS="test1 test2 test3 test4"
5447
5448   dnl  we define those so that bootstrap sets the right linker
5449   VLC_ADD_CXXFLAGS([test2],[])
5450   VLC_ADD_OBJCFLAGS([test3],[])
5451   dnl  this one is needed until automake knows what to do
5452   VLC_ADD_LDFLAGS([test3],[-lobjc])
5453
5454   VLC_ADD_PLUGINS([${TESTS}])
5455   #VLC_ADD_BUILTINS([${TESTS}])
5456 fi
5457
5458 dnl
5459 dnl Microsoft Layer for Unicode for WIN9x/ME
5460 dnl
5461 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5462 then
5463     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5464         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5465     ])
5466 fi
5467
5468 dnl
5469 dnl  gtk_main plugin
5470 dnl
5471 if test "${NEED_GTK_MAIN}" != "no"
5472 then
5473     VLC_ADD_PLUGINS([gtk_main])
5474     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5475     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5476 fi
5477
5478 if test "${NEED_GNOME_MAIN}" != "no"
5479 then
5480     VLC_ADD_PLUGINS([gnome_main])
5481     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5482     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5483 fi
5484
5485 if test "${NEED_GTK2_MAIN}" != "no"
5486 then
5487     VLC_ADD_PLUGINS([gtk2_main])
5488     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5489     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5490     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5491     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5492 fi
5493
5494 if test "${NEED_GNOME2_MAIN}" != "no"
5495 then
5496     VLC_ADD_PLUGINS([gnome2_main])
5497     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5498     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5499 fi
5500
5501 dnl
5502 dnl  qte_main plugin
5503 dnl
5504 if test "${NEED_QTE_MAIN}" != "no"
5505 then
5506     VLC_ADD_PLUGINS([qte_main])
5507     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5508     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5509     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5510 fi
5511
5512
5513 dnl
5514 dnl  Plugin and builtin checks
5515 dnl
5516 builtin_support=false
5517 plugin_support=:
5518
5519 dnl Support for plugins - this must be AT THE END
5520 AC_ARG_ENABLE(plugins,
5521   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5522   [if test "${enable_plugins}" = "no"
5523    then
5524      plugin_support=false
5525    fi])
5526
5527 dnl Automagically disable plugins if there is no system support for
5528 dnl dynamically loadable files (.so, .dll, .dylib).
5529 dnl don't forget vlc-win32 still can load .dll as plugins
5530 if test "${ac_cv_have_plugins}" = "no"
5531 then
5532   echo "*** Your system doesn't have plugin support. All plugins will be built"
5533   echo "statically."
5534   plugin_support=false
5535 fi
5536
5537 AS_IF([${plugin_support}], [
5538   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5539 ], [
5540   VLC_ADD_BUILTINS([${PLUGINS}])
5541   PLUGINS=""
5542 ])
5543
5544 dnl
5545 dnl Pic and shared libvlc stuff
5546 dnl
5547 AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no])
5548 AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"])
5549 AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [
5550   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5551   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5552   VLC_ADD_PLUGINS([${BUILTINS}])
5553   BUILTINS=""
5554 ], [
5555   LDFLAGS_vlc="${LDFLAGS_vlc} ${LDFLAGS_libvlc}"
5556   FILE_LIBVLC_DLL=""
5557 ])
5558
5559  dnl Import conditional variables generated by bootstrap
5560 VLC_CONDITIONALS
5561
5562 dnl
5563 dnl  Stuff used by the program
5564 dnl
5565 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5566 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5567 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5568 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5569 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5570 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5571 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5572 AC_SUBST(VERSION_MAJOR)
5573 AC_SUBST(VERSION_MINOR)
5574 AC_SUBST(VERSION_REVISION)
5575 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5576 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5577 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5578 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5579
5580 dnl Old definitions for version-dependant plugins
5581 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5582 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5583 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5584
5585 dnl New definitions with value matching 0.9.0 release
5586 module_symbol="0_9_0b"
5587 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5588 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5589 VLC_ENTRY="vlc_entry__${module_symbol}"
5590 AC_SUBST(VLC_ENTRY)
5591
5592 dnl
5593 dnl  Handle substvars that use $(top_srcdir)
5594 dnl
5595 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5596 AC_SUBST(VLC_CONFIG)
5597 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5598
5599 dnl
5600 dnl  Restore *FLAGS
5601 dnl
5602 VLC_RESTORE_FLAGS
5603
5604 dnl
5605 dnl  Create the vlc-config script
5606 dnl
5607 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5608
5609 dnl following used to be the external libvlc target, what's replacing it now ?
5610 dnl for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5611
5612 dnl
5613 dnl  Configuration is finished
5614 dnl
5615 AC_SUBST(SYS)
5616 AC_SUBST(ARCH)
5617 AC_SUBST(ALIASES)
5618 AC_SUBST(ASM)
5619 AC_SUBST(MOC)
5620 AC_SUBST(RCC)
5621 AC_SUBST(UIC)
5622 AC_SUBST(WINDRES)
5623 AC_SUBST(MOZILLA_SDK_PATH)
5624 AC_SUBST(WINE_SDK_PATH)
5625 AC_SUBST(LIBEXT)
5626 AC_SUBST(AM_CPPFLAGS)
5627 AC_SUBST(ALL_LINGUAS)
5628 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5629 AC_SUBST(FILE_LIBVLC_DLL)
5630
5631 dnl Import substitutions generated by bootstrap
5632 VLC_SUBSTS
5633
5634 dnl Create vlc-config.in
5635 VLC_OUTPUT_VLC_CONFIG_IN
5636
5637 AC_CONFIG_FILES([
5638   vlc.win32.nsi
5639   Makefile
5640   activex/Makefile
5641   activex/axvlc.inf
5642   bindings/Makefile
5643   bindings/java/Makefile
5644   bindings/java/src/Makefile
5645   bindings/python/Makefile
5646   doc/Makefile
5647   intl/Makefile
5648   ipkg/Makefile
5649   loader/Makefile
5650   modules/Makefile
5651   mozilla/Makefile
5652   m4/Makefile
5653   po/Makefile.in
5654   share/Makefile
5655   src/Makefile
5656 ])
5657
5658 AC_CONFIG_FILES([
5659   modules/access/Makefile
5660   modules/access/dshow/Makefile
5661   modules/access/dvb/Makefile
5662   modules/access/mms/Makefile
5663   modules/access/cdda/Makefile
5664   modules/access/rtsp/Makefile
5665   modules/access/vcd/Makefile
5666   modules/access/vcdx/Makefile
5667   modules/access/screen/Makefile
5668   modules/access_filter/Makefile
5669   modules/access_output/Makefile
5670   modules/audio_filter/Makefile
5671   modules/audio_filter/channel_mixer/Makefile
5672   modules/audio_filter/converter/Makefile
5673   modules/audio_filter/resampler/Makefile
5674   modules/audio_mixer/Makefile
5675   modules/audio_output/Makefile
5676   modules/codec/Makefile
5677   modules/codec/cmml/Makefile
5678   modules/codec/dmo/Makefile
5679   modules/codec/ffmpeg/Makefile
5680   modules/codec/spudec/Makefile
5681   modules/codec/xvmc/Makefile
5682   modules/control/Makefile
5683   modules/control/http/Makefile
5684   modules/demux/Makefile
5685   modules/demux/asf/Makefile
5686   modules/demux/avi/Makefile
5687   modules/demux/mp4/Makefile
5688   modules/demux/mpeg/Makefile
5689   modules/demux/playlist/Makefile
5690   modules/gui/Makefile
5691   modules/gui/beos/Makefile
5692   modules/gui/pda/Makefile
5693   modules/gui/macosx/Makefile
5694   modules/gui/qnx/Makefile
5695   modules/gui/qt4/Makefile
5696   modules/gui/skins2/Makefile
5697   modules/gui/wxwidgets/Makefile
5698   modules/gui/wince/Makefile
5699   modules/meta_engine/Makefile
5700   modules/misc/Makefile
5701   modules/misc/dummy/Makefile
5702   modules/misc/memcpy/Makefile
5703   modules/misc/notify/Makefile
5704   modules/misc/testsuite/Makefile
5705   modules/misc/playlist/Makefile
5706   modules/misc/xml/Makefile
5707   modules/misc/probe/Makefile
5708   modules/mux/Makefile
5709   modules/mux/mpeg/Makefile
5710   modules/mux/rtp/Makefile
5711   modules/packetizer/Makefile
5712   modules/services_discovery/Makefile
5713   modules/stream_out/Makefile
5714   modules/stream_out/transrate/Makefile
5715   modules/video_chroma/Makefile
5716   modules/video_filter/Makefile
5717   modules/video_output/Makefile
5718   modules/video_output/directx/Makefile
5719   modules/video_output/qte/Makefile
5720   modules/video_output/x11/Makefile
5721   modules/visualization/Makefile
5722   modules/visualization/visual/Makefile
5723   modules/visualization/galaktos/Makefile
5724 ])
5725
5726 dnl Generate makefiles
5727 AC_OUTPUT
5728
5729 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5730 # not provided with the source
5731 ${SHELL} ./config.status --file=vlc-config
5732 chmod 0755 vlc-config
5733
5734 dnl echo "Enabled builtin modules :"
5735 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5736
5737 dnl echo "Enabled plugin modules :"
5738 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5739
5740 dnl Shortcut to nice compile message
5741 rm -f compile
5742 echo '#! /bin/sh' >compile
5743
5744 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
5745 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5746 chmod a+x compile
5747
5748 printf "
5749 vlc configuration
5750 --------------------
5751 vlc version           : ${VERSION}
5752 system                : ${SYS}
5753 architecture          : ${ARCH}
5754 build flavour         : "
5755 test "${enable_debug}" = "yes" && printf "debug "
5756 test "${enable_cprof}" = "yes" && printf "cprof "
5757 test "${enable_gprof}" = "yes" && printf "gprof "
5758 test "${enable_optimizations}" = "yes" && printf "optim "
5759 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5760 echo "
5761 vlc aliases           :${ALIASES}
5762
5763 You can tune the compiler flags in vlc-config.
5764 To build vlc and its plugins, type \`./compile' or \`make'.
5765 "
5766