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