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