]> git.sesse.net Git - vlc/blob - configure.ac
* HA! HA! I ARE USING TEH AM_MAINTAINER_MODE!!!1!
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2 dnl $Id$
3
4 AC_INIT(vlc,0.8.4-svn)
5 VERSION_MAJOR="0"
6 VERSION_MINOR="8"
7 VERSION_REVISION="4"
8 VERSION_EXTRA="svn"
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-svn)
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_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],[-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([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 i422_yuy2_mmx i420_ymga_mmx"
1048 if test "${target_cpu}" != "x86_64"; then
1049   MMX_MODULES="${MMX_MODULES} i420_rgb_mmx"
1050 fi
1051 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1052 MMXEXT_MODULES="memcpymmxext"
1053 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1054 THREEDNOW_MODULES="memcpy3dn"
1055 SSE_MODULES=""
1056 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1057 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1058
1059 if test "${enable_gprof}" != "yes"
1060 then
1061   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1062 fi
1063
1064 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1065     [ac_cv_mmx_inline],
1066     [CFLAGS="${CFLAGS_save}"
1067      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1068                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1069 if test "${ac_cv_mmx_inline}" != "no"; then
1070   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1071   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1072 fi
1073
1074 dnl  Check for fully workin MMX intrinsics
1075 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1076 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1077 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1078     [ac_cv_c_mmx_intrinsics],
1079     [CFLAGS="${CFLAGS_save} -O -mmmx"
1080      AC_TRY_COMPILE([#include <mmintrin.h>
1081                      #include <stdint.h>
1082                      uint64_t frobzor;],
1083                     [__m64 a, b, c;
1084                      a = b = c = (__m64)frobzor;
1085                      a = _mm_slli_pi16(a, 3);
1086                      a = _mm_adds_pi16(a, b);
1087                      c = _mm_srli_pi16(c, 8);
1088                      c = _mm_slli_pi16(c, 3);
1089                      b = _mm_adds_pi16(b, c);
1090                      a = _mm_unpacklo_pi8(a, b);
1091                      frobzor = (uint64_t)a;],
1092                     [ac_cv_c_mmx_intrinsics=yes],
1093                     [ac_cv_c_mmx_intrinsics=no])])
1094 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1095   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1096   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1097 fi
1098
1099 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1100     [ac_cv_mmxext_inline],
1101     [CFLAGS="${CFLAGS_save}"
1102      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1103                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1104 if test "${ac_cv_mmxext_inline}" != "no"; then
1105   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1106   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1107 fi
1108
1109 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1110     [ac_cv_3dnow_inline],
1111     [CFLAGS="${CFLAGS_save}"
1112      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1113                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1114 if test "${ac_cv_3dnow_inline}" != "no"; then
1115   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1116   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1117 fi
1118
1119 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1120     [ac_cv_sse_inline],
1121     [CFLAGS="${CFLAGS_save}"
1122      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1123                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1124 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1125   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1126   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1127 fi
1128
1129 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1130 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1131     [ac_cv_altivec_inline],
1132     [CFLAGS="${CFLAGS_save}"
1133      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1134          ac_cv_altivec_inline=yes,
1135          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1136           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1137             [ac_cv_altivec_inline="-Wa,-m7400"],
1138             ac_cv_altivec_inline=no)
1139          ])])
1140 if test "${ac_cv_altivec_inline}" != "no"; then
1141   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1142   if test "${ac_cv_altivec_inline}" != "yes"; then
1143     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1144     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1145     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1146     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1147     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1148   fi
1149   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1150 fi
1151
1152 dnl The AltiVec C extensions
1153 dnl
1154 dnl There are several possible cases:
1155 dnl - OS X PPC, gcc 4.x: use -mpim-altivec, don't need <altivec.h>
1156 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1157 dnl - Linux PPC, gcc 4.x: need <altivec.h> which itself requires -maltivec
1158 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1159 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1160 dnl - Others: test should fail
1161 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1162   [ac_cv_c_altivec],
1163   [# OS X/PPC test (gcc 4.x)
1164    CFLAGS="${CFLAGS_save} -mpim-altivec"
1165    AC_TRY_COMPILE([],
1166      [vec_ld(0, (unsigned char *)0);],
1167      [ac_cv_c_altivec="-mpim-altivec"],
1168      [# OS X/PPC test (gcc 3.x)
1169       CFLAGS="${CFLAGS_save} -faltivec"
1170       AC_TRY_COMPILE([],
1171         [vec_ld(0, (unsigned char *)0);],
1172         [ac_cv_c_altivec="-faltivec"],
1173         dnl Below this are the Linux tests
1174         [# Linux/PPC test (gcc 4.x)
1175          CFLAGS="${CFLAGS_save} -maltivec"
1176          AC_TRY_COMPILE([#include <altivec.h>],
1177            [vec_ld(0, (unsigned char *)0);],
1178            [ac_cv_c_altivec="-maltivec"],
1179            [# Linux/PPC test (gcc 3.3)
1180             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1181             AC_TRY_COMPILE([#include <altivec.h>],
1182               [vec_ld(0, (unsigned char *)0);],
1183               [ac_cv_c_altivec=""
1184                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1185               [# Linux/PPC test (gcc 3.3)
1186                CFLAGS="${CFLAGS_save} -fvec"
1187                AC_TRY_COMPILE([#include <altivec.h>],
1188                  [vec_ld(0, (unsigned char *)0);],
1189                  [ac_cv_c_altivec="-fvec"],
1190                  [ac_cv_c_altivec=no])
1191               ])
1192            ])
1193         ])
1194      ])
1195    CFLAGS="${CFLAGS_save}"
1196   ])
1197
1198 if test "${ac_cv_c_altivec}" != "no"; then
1199   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1200 fi
1201 AC_CHECK_HEADERS(altivec.h)
1202 CPPFLAGS="${CPPFLAGS_save}"
1203
1204 if test "${ac_cv_c_altivec}" != "no"; then
1205   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1206   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1207   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1208   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1209   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1210 fi
1211
1212 AC_CACHE_CHECK([if linker needs -framework vecLib],
1213     [ac_cv_ld_altivec],
1214     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1215      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1216      LDFLAGS="${LDFLAGS_save}"
1217     ])
1218 if test "${ac_cv_ld_altivec}" != "no"; then
1219   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1220 fi
1221 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1222
1223 AC_ARG_WITH(,[])
1224 AC_ARG_WITH(,[Optimization options:])
1225
1226 dnl
1227 dnl  Special arch tuning
1228 dnl
1229 AC_ARG_WITH(tuning,
1230 [  --with-tuning=ARCH      enable special tuning for an architecture
1231                           (default Pentium 2 on IA-32 and 750 on PPC)])
1232 if test -n "${with_tuning}"; then
1233     CFLAGS_TUNING="-mtune=${with_tuning}"
1234 else
1235     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1236         CFLAGS_TUNING="-mtune=pentium2"
1237     elif test "${target_cpu}" = "x86_64"; then
1238         CFLAGS_TUNING="-mtune=athlon64"
1239     elif test "${target_cpu}" = "powerpc"; then
1240         CFLAGS_TUNING="-mtune=750";
1241     fi
1242 fi
1243
1244 dnl NOTE: this can't be cached cleanly
1245 AS_IF([test "${CFLAGS_TUNING}"],
1246    [CFLAGS_save="${CFLAGS}"
1247     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1248
1249     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1250     AC_COMPILE_IFELSE([ ],
1251                       [tuning="yes"],
1252                       [CFLAGS_TUNING=""; tuning="no"
1253                        AS_IF([test "${with_tuning}"],
1254                              [AC_MSG_ERROR([requested tuning not supported])])])
1255
1256     AC_MSG_RESULT([$tuning])
1257     CFLAGS="${CFLAGS_save}"
1258 ])
1259
1260 dnl
1261 dnl  x86 accelerations
1262 dnl
1263 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1264 then
1265     ARCH="${ARCH} mmx"
1266     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1267 fi
1268
1269 dnl
1270 dnl  Memory usage
1271 dnl
1272 AC_ARG_ENABLE(optimize-memory,
1273 [  --enable-optimize-memory      optimize memory usage over performance])
1274 if test "${enable_optimize_memory}" = "yes"; then
1275   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1276 fi
1277
1278 dnl
1279 dnl  Enable/disable optimizations
1280 dnl
1281 AC_ARG_ENABLE(optimizations,
1282 [  --disable-optimizations disable compiler optimizations (default enabled)])
1283 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1284
1285 dnl
1286 dnl  AltiVec acceleration
1287 dnl
1288 AC_ARG_ENABLE(altivec,
1289 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1290 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1291     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1292 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1293     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1294
1295 dnl
1296 dnl  Debugging mode
1297 dnl
1298 AC_ARG_ENABLE(debug,
1299 [  --enable-debug          debug mode (default disabled)])
1300 test "${enable_debug}" != "yes" && enable_debug="no"
1301
1302 dnl
1303 dnl  Enable release-specific flags
1304 dnl
1305 AC_ARG_ENABLE(release,
1306 [  --enable-release        activate extra optimizations (default disabled)])
1307 test "${enable_release}" != "yes" && enable_release="no"
1308
1309 dnl
1310 dnl Stream output
1311 dnl
1312 AC_ARG_ENABLE(sout,
1313   [  --enable-sout           Stream output modules (default enabled)])
1314 if test "${enable_sout}" != "no"
1315 then
1316   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1317   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1318   VLC_ADD_PLUGINS([packetizer_copy])
1319
1320   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1321   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1322 #  VLC_ADD_PLUGINS([stream_out_transrate])
1323
1324   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1325 fi
1326
1327 dnl Check for libshout
1328 AC_ARG_ENABLE(shout,
1329   [  --enable-shout          libshout output plugin (default disabled)])
1330 if test "${enable_shout}" = "yes"; then
1331   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1332     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1333      VLC_ADD_PLUGINS([access_output_shout])
1334      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1335      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1336     [AC_MSG_WARN(libshout library not found)])
1337 fi
1338
1339 dnl
1340 dnl HTTP daemon
1341 dnl
1342 AC_ARG_ENABLE(httpd,
1343   [  --enable-httpd          HTTP daemon (default enabled)])
1344 if test "${enable_httpd}" != "no"
1345 then
1346   VLC_ADD_PLUGINS([http])
1347   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1348 fi
1349
1350 dnl
1351 dnl VideoLAN manager
1352 dnl
1353 AC_ARG_ENABLE(vlm,
1354   [  --enable-vlm            VideoLAN manager (default enabled)])
1355 if test "${enable_vlm}" != "no"
1356 then
1357   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1358 fi
1359
1360 dnl
1361 dnl TLS/SSL
1362 dnl
1363 AC_ARG_ENABLE(gnutls,
1364   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1365 AS_IF([test "${enable_gnutls}" != "no"], [
1366
1367   gcrypt_LIBS="-lgpg-error"
1368   AS_IF([test "${SYS}" = "mingw32"],
1369     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1370      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1371   )
1372
1373   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
1374
1375   AC_CHECK_HEADER(gcrypt.h,
1376     [AC_CHECK_LIB(gcrypt, gcry_control,
1377       [AC_CHECK_HEADER(gnutls/gnutls.h,
1378         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1379           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1380      ${gcrypt_LIBS})])
1381
1382   AS_IF([test "${have_gnutls}" = "yes"], [
1383     VLC_ADD_PLUGINS([gnutls])
1384     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
1385   ], [
1386     AS_IF([test "${enable_gnutls}" = "yes"], [
1387       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1388     )]
1389   )]
1390 )
1391
1392
1393 dnl
1394 dnl  Input plugins
1395 dnl
1396
1397 AC_ARG_WITH(,[Input plugins:])
1398
1399 dnl  live.com input
1400 dnl
1401 AC_ARG_ENABLE(livedotcom,
1402 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1403 if test "${enable_livedotcom}" = "yes"; then
1404   AC_ARG_WITH(livedotcom-tree,
1405     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1406
1407   dnl
1408   dnl test for --with-livedotcom-tree
1409   dnl
1410   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1411     AC_LANG_PUSH(C++)
1412     CPPFLAGS_save="${CPPFLAGS}"
1413     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1414     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1415     AC_CHECK_HEADERS(liveMedia.hh, [
1416       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1417       AC_CHECK_LIB(liveMedia_pic, main, [
1418         # We have -lliveMedia_pic, build plugins
1419         VLC_ADD_PLUGINS([livedotcom])
1420         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1421       ], [
1422         AC_CHECK_LIB(liveMedia, main, [
1423           # We only have -lliveMedia, do builtins
1424           VLC_ADD_BUILTINS([livedotcom])
1425           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1426         ])
1427       ])
1428       if test "${SYS}" = "mingw32"; then
1429         # add ws2_32 for closesocket, select, recv
1430         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1431       fi
1432     ])
1433     CPPFLAGS="${CPPFLAGS_save}"
1434     AC_LANG_POP(C++)
1435   else
1436     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1437     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1438     if test -z "${real_livedotcom_tree}"; then
1439       dnl  The given directory can't be found
1440       AC_MSG_RESULT(no)
1441       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1442     fi
1443     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1444       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1445
1446       VLC_ADD_BUILTINS([livedotcom])
1447
1448       if test "${SYS}" = "mingw32"; then
1449         # add ws2_32 for closesocket, select, recv
1450         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1451       fi
1452
1453       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1454       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1455       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1456       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1457
1458       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1459       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1460       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1461       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1462     else
1463       dnl  The given live.com wasn't built
1464       AC_MSG_RESULT(no)
1465       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1466     fi
1467   fi
1468 fi
1469
1470
1471 dnl
1472 dnl dvdread module: check for libdvdread
1473 dnl
1474 AC_ARG_ENABLE(dvdread,
1475 [  --enable-dvdread        dvdread input module (default disabled)])
1476 if test "${enable_dvdread}" != "no"
1477 then
1478   AC_ARG_WITH(dvdread,
1479   [    --with-dvdread=PATH   libdvdread headers and libraries])
1480   AC_ARG_WITH(dvdread-tree,
1481   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1482
1483   dnl Temporary hack (yeah, sure ;)
1484   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1485       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1486   fi
1487
1488   if test -z "${with_dvdread}"
1489   then
1490     if test -z "${with_dvdread_tree}"
1491     then
1492       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1493         [ VLC_ADD_PLUGINS([dvdread])
1494           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1495         ],[
1496           if test -n "${enable_dvdread}"
1497           then
1498             AC_MSG_ERROR([cannot find libdvdread headers])
1499           fi
1500         ])
1501     else
1502       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1503       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1504       if test -z "${real_dvdread_tree}"
1505       then
1506         dnl  The given directory can't be found
1507         AC_MSG_RESULT(no)
1508         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1509       fi
1510       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1511       then
1512         dnl  Use a custom libdvdread
1513         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1514         VLC_ADD_BUILTINS([dvdread])
1515         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1516         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1517       else
1518         dnl  The given libdvdread wasn't built
1519         AC_MSG_RESULT(no)
1520         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1521       fi
1522     fi
1523   else
1524     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1525     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1526     then
1527       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1528       AC_MSG_RESULT(yes)
1529       VLC_ADD_PLUGINS([dvdread])
1530       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1531       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1532     else
1533       dnl  No libdvdread could be found, sorry
1534       AC_MSG_RESULT(no)
1535       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1536     fi
1537   fi
1538 fi
1539
1540 dnl
1541 dnl  libdvdnav plugin
1542 dnl
1543 AC_ARG_ENABLE(dvdnav,
1544   [  --enable-dvdnav         dvdnav input module (default enabled)])
1545 if test "${enable_dvdnav}" != "no"
1546 then
1547   dnl Same hack than dvdread
1548   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1549       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1550   fi
1551
1552   DVDNAV_PATH="${PATH}"
1553   AC_ARG_WITH(dvdnav-config-path,
1554     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1555     [ if test "${with_dvdnav_config_path}" != "no"
1556       then
1557         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1558       fi ])
1559   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1560   if test "${DVDNAV_CONFIG}" != "no"
1561   then
1562     VLC_ADD_PLUGINS([dvdnav])
1563     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1564     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1565   fi
1566 fi
1567
1568 dnl
1569 dnl  Windows DirectShow access module
1570 dnl
1571 AC_ARG_ENABLE(dshow,
1572   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1573 if test "${enable_dshow}" != "no"
1574 then
1575   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1576   then
1577       AC_CHECK_HEADERS(dshow.h,
1578       [ VLC_ADD_PLUGINS([dshow])
1579         VLC_ADD_CXXFLAGS([dshow],[])
1580         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1581   fi
1582 fi
1583
1584 dnl
1585 dnl  libsmbclient plugin
1586 dnl
1587 AC_ARG_ENABLE(smb,
1588   [  --enable-smb            smb input module (default enabled)])
1589 if test "${enable_smb}" != "no"; then
1590   AC_CHECK_HEADERS(libsmbclient.h,
1591     [ VLC_ADD_PLUGINS([access_smb])
1592       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1593     [ if test -n "${enable_smb}"; then
1594         AC_MSG_ERROR([cannot find libsmbclient headers])
1595      fi ])
1596   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1597     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1598     [#include <libsmbclient.h>])
1599 fi
1600
1601 dnl
1602 dnl  libdvbpsi ts demux/mux
1603 dnl
1604 AC_ARG_ENABLE(dvbpsi,
1605 [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1606 if test "${enable_dvbpsi}" != "no"
1607 then
1608   AC_ARG_WITH(dvbpsi,
1609   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1610   AC_ARG_WITH(dvbpsi,
1611   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1612   case "${with_dvbpsi}" in
1613   ""|yes)
1614     if test -z "${with_dvbpsi_tree}"
1615     then
1616       AC_CHECK_HEADERS(dvbpsi/dr.h,
1617         [ VLC_ADD_PLUGINS([ts])
1618           if test "${enable_sout}" != "no"; then
1619             VLC_ADD_BUILTINS([mux_ts])
1620           fi
1621           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1622         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1623         [#if defined( HAVE_STDINT_H )
1624 #   include <stdint.h>
1625 #elif defined( HAVE_INTTYPES_H )
1626 #   include <inttypes.h>
1627 #endif
1628 #include <dvbpsi/dvbpsi.h>
1629 #include <dvbpsi/descriptor.h>
1630 #include <dvbpsi/pat.h>
1631 #include <dvbpsi/pmt.h>])
1632     else
1633       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1634       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1635       if test -z "${real_dvbpsi_tree}"
1636       then
1637         dnl  The given directory can't be found
1638         AC_MSG_RESULT(no)
1639         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1640       fi
1641       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1642       then
1643         dnl  Use a custom libdvbpsi
1644         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1645         VLC_ADD_BUILTINS([ts])
1646         if test "${enable_sout}" != "no"; then
1647           VLC_ADD_BUILTINS([mux_ts])
1648         fi
1649         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1650         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1651       else
1652         dnl  The given libdvbpsi wasn't built
1653         AC_MSG_RESULT(no)
1654         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1655       fi
1656     fi
1657   ;;
1658   no)
1659     dnl  Compile without dvbpsi
1660   ;;
1661   *)
1662     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1663     if test -z "${with_dvbpsi}"
1664     then
1665       LDFLAGS_test=""
1666       CPPFLAGS_test=""
1667     else
1668       LDFLAGS_test="-L${with_dvbpsi}/lib"
1669       CPPFLAGS_test="-I${with_dvbpsi}/include"
1670     fi
1671     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1672     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1673       VLC_ADD_PLUGINS([ts])
1674       if test "${enable_sout}" != "no"; then
1675         VLC_ADD_PLUGINS([mux_ts])
1676       fi
1677       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1678       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1679
1680     ],[
1681       if test -n "${enable_dvbpsi}"
1682       then
1683         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])
1684       fi
1685     ])
1686     CPPFLAGS="${CPPFLAGS_save}"
1687   ;;
1688   esac
1689   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1690     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1691   ], [], [${LDFLAGS_ts}])
1692
1693 fi
1694
1695 dnl
1696 dnl  Video4Linux plugin
1697 dnl
1698 AC_ARG_ENABLE(v4l,
1699   [  --enable-v4l            Video4Linux input support (default disabled)])
1700 if test "${enable_v4l}" = "yes"
1701 then
1702   AC_ARG_WITH(v4l,
1703     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1704   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1705   then
1706     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1707   fi
1708
1709   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1710   AC_CHECK_HEADERS(linux/videodev.h, [
1711     VLC_ADD_PLUGINS([v4l])
1712   ],[])
1713   CPPFLAGS="${CPPFLAGS_save}"
1714 fi
1715
1716 dnl
1717 dnl  special access module for Hauppauge PVR cards
1718 dnl
1719 AC_ARG_ENABLE(pvr,
1720   [  --enable-pvr            PVR cards access module (default disabled)])
1721 if test "${enable_pvr}" = "yes"
1722 then
1723   VLC_ADD_PLUGINS([pvr])
1724 fi
1725
1726 dnl
1727 dnl  gnomeVFS access module
1728 dnl
1729 AC_ARG_ENABLE(gnomevfs,
1730   [  --enable-gnomevfs      GnomeVFS access module (default enables)])
1731 if test "${enable_gnomevfs}" != "no"
1732 then
1733   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1734     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1735     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1736     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1737     VLC_ADD_PLUGINS([access_gnomevfs]),
1738     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1739 fi
1740
1741 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1742 AC_ARG_ENABLE(libcdio,
1743   [  --enable-libcdio        CD input and control library support (default enabled)])
1744
1745
1746 have_libcdio=no
1747 have_libvcdinfo=no
1748 if test "${enable_libcdio}" != "no"
1749 then
1750   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1751      have_libcdio=yes
1752      AC_DEFINE(HAVE_LIBCDIO, [], 
1753      [Define if you have libcdio 0.72 or greater installed]),
1754      [AC_MSG_WARN(CD Reading and information library not found)])
1755
1756   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1757      [have_libvcdinfo=yes
1758      AC_DEFINE(HAVE_VCDINFO, [], 
1759      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1760      [AC_MSG_WARN(VCD information library not found)])
1761 fi
1762
1763 dnl
1764 dnl  VCDX and CDDAX modules
1765 dnl
1766 AC_ARG_ENABLE(cddax,
1767   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1768  
1769 AC_ARG_ENABLE(libcddb,
1770   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1771  
1772 if test "${enable_cddax}" = "yes"
1773 then
1774   if test "$have_libcdio" = "yes"
1775   then
1776     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1777     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1778     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1779     VLC_ADD_PLUGINS([cddax])
1780     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1781     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1782     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1783   else 
1784     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1785     HAVE_CDDAX=no
1786   fi
1787
1788   if test "$enable_libcddb" != "no"; then
1789     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1790       HAVE_LIBCDDB=yes 
1791       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1792       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1793       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1794       ],
1795       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
1796       HAVE_LIBCDDB=no])
1797   fi
1798  
1799 fi
1800
1801 AC_ARG_ENABLE(vcdx,
1802   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
1803  
1804 if test "${enable_vcdx}" = "yes"
1805 then
1806   if test "${have_libvcdinfo}" = "yes"
1807   then
1808     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1809     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1810   else 
1811     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
1812     HAVE_VCDX=no
1813   fi
1814
1815   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
1816    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
1817     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
1818     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
1819     HAVE_VCDX=no])
1820
1821   if test "$have_libvcdinfo" = "yes"
1822   then
1823     AC_DEFINE(HAVE_VCDX, [], 
1824     [Define for the VCD plugin using libcdio/libvcdinfo])
1825     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1826     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1827     VLC_ADD_PLUGINS([vcdx])
1828   else 
1829     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
1830     HAVE_VCDX=no
1831   fi
1832 fi
1833
1834 dnl
1835 dnl  Built-in CD-DA and VCD module
1836 dnl
1837 AC_ARG_ENABLE(cdda,           
1838   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
1839  
1840 AC_ARG_ENABLE(vcd,
1841   [  --enable-vcd            built-in VCD (default enabled)])
1842
1843 if test "${enable_vcd}" != "no"
1844 then
1845   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1846   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1847     AC_MSG_RESULT(yes)
1848     VLC_ADD_PLUGINS([vcd cdda])
1849   ],[
1850     AC_MSG_RESULT(no)
1851   ])
1852
1853   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1854   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1855     AC_MSG_RESULT(yes)
1856     VLC_ADD_PLUGINS([vcd cdda])
1857     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1858   ],[
1859     AC_MSG_RESULT(no)
1860   ])
1861
1862   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1863   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1864     AC_MSG_RESULT(yes)
1865     VLC_ADD_PLUGINS([vcd cdda])
1866     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1867   ],[
1868     AC_MSG_RESULT(no)
1869   ])
1870
1871   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
1872   then
1873     VLC_ADD_PLUGINS([vcd cdda])
1874   fi
1875
1876   if test "${SYS}" = "darwin"
1877   then
1878     VLC_ADD_PLUGINS([vcd cdda])
1879     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
1880     VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
1881   fi
1882 fi
1883
1884 dnl
1885 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
1886 dnl
1887 AC_ARG_ENABLE(dvb,
1888   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
1889
1890 if test "${enable_dvb}" = "yes"
1891 then
1892   AC_ARG_WITH(dvb,
1893   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
1894   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
1895   then
1896     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
1897   fi
1898   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
1899   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
1900     if test -z "${with_dvbpsi_tree}"
1901     then
1902       VLC_ADD_PLUGINS([dvb])
1903     else
1904       VLC_ADD_BUILTINS([dvb])
1905     fi
1906   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
1907   CPPFLAGS="${CPPFLAGS_save}"
1908 fi
1909
1910 dnl
1911 dnl  Screen capture module
1912 dnl
1913 AC_ARG_ENABLE(screen,
1914   [  --enable-screen         Screen capture support (default enabled)])
1915 if test "${enable_screen}" != "no"; then
1916   if test "${SYS}" = "darwin"; then
1917     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1918       VLC_ADD_PLUGINS([screen])
1919       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
1920     ])
1921   elif test "${SYS}" = "mingw32"; then
1922     VLC_ADD_PLUGINS([screen])
1923     VLC_ADD_LDFLAGS([screen],[-lgdi32])
1924   elif test "${SYS}" = "mingwce"; then
1925     CPPFLAGS="${CPPFLAGS_save}"
1926   elif test "${SYS}" = "beos"; then
1927     VLC_ADD_PLUGINS([screen])
1928     VLC_ADD_CXXFLAGS([screen],[])
1929     VLC_ADD_LDFLAGS([screen],[-lbe])
1930   else
1931     CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
1932     AC_CHECK_HEADERS(X11/Xlib.h, [
1933       VLC_ADD_PLUGINS([screen])
1934       VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
1935       VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
1936     ])
1937     CPPFLAGS="${CPPFLAGS_save}"
1938   fi
1939 fi
1940
1941 dnl
1942 dnl  ipv6 plugin - not for QNX yet
1943 dnl
1944 have_ipv6=no
1945 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
1946   AC_CHECK_LIB(resolv,inet_pton,
1947     [have_ipv6=yes
1948      VLC_ADD_LDFLAGS([ipv6 vlc],[-lresolv])])
1949 ])
1950
1951 AS_IF([test "${have_ipv6}" == "yes"], [
1952   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
1953
1954 if test "${SYS}" != "nto" &&
1955    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1956 then
1957   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
1958   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
1959     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
1960   AS_IF([test "${have_ipv6}" != "no"], [
1961     VLC_ADD_PLUGINS([ipv6])])
1962 fi
1963 if test "${SYS}" = "mingw32"
1964 then
1965   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
1966   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
1967     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
1968 fi
1969
1970 dnl
1971 dnl  ogg demux plugin
1972 dnl
1973 AC_ARG_ENABLE(ogg,
1974   [  --enable-ogg            Ogg demux support (default enabled)])
1975 if test "${enable_ogg}" != "no"
1976 then
1977   AC_CHECK_HEADERS(ogg/ogg.h, [
1978     AC_CHECK_LIB( ogg, oggpack_read, [
1979       VLC_ADD_PLUGINS([ogg])
1980       if test "${enable_sout}" != "no"; then
1981         VLC_ADD_PLUGINS([mux_ogg])
1982       fi
1983       VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
1984    ],[])
1985 fi
1986
1987 dnl
1988 dnl  matroska demux plugin
1989 dnl
1990 AC_ARG_ENABLE(mkv,
1991   [  --enable-mkv            Matroska demux support (default enabled)])
1992 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
1993   AC_LANG_PUSH(C++)
1994   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
1995     AC_MSG_CHECKING(for libebml version >= 0.7.3)
1996     AC_EGREP_CPP(yes,
1997       [#include <ebml/EbmlVersion.h>
1998        #ifdef LIBEBML_VERSION
1999        #if LIBEBML_VERSION >= 0x000703
2000        yes
2001        #endif
2002        #endif],
2003       [AC_MSG_RESULT([yes])
2004         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2005           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2006           AC_EGREP_CPP(yes,
2007             [#include <matroska/KaxVersion.h>
2008              #ifdef LIBMATROSKA_VERSION
2009              #if LIBMATROSKA_VERSION >= 0x000705
2010              yes
2011              #endif
2012              #endif],
2013             [AC_MSG_RESULT([yes])
2014               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2015               VLC_ADD_CXXFLAGS([mkv],[])
2016               if test "${SYS}" = "darwin"; then
2017                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2018               fi
2019               AC_CHECK_LIB(ebml_pic, main, [
2020                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2021                 VLC_ADD_PLUGINS([mkv])
2022                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2023               ], [
2024                 AC_CHECK_LIB(ebml, main, [
2025                   # We only have libebml, make mkv.a a builtin
2026                   VLC_ADD_BUILTINS([mkv])
2027                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2028                 ])
2029               ])
2030             ],
2031             [AC_MSG_RESULT([no])
2032               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.])
2033           ])
2034         ])
2035       ],
2036       [AC_MSG_RESULT([no])
2037         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.])
2038     ])
2039   ])
2040   AC_LANG_POP(C++)
2041 fi
2042
2043 dnl
2044 dnl  modplug demux plugin
2045 dnl
2046 AC_ARG_ENABLE(mod,
2047   [  --enable-mod            Mod demux support (default enabled)])
2048 if test "${enable_mod}" != "no"
2049 then
2050   AC_CHECK_HEADERS(libmodplug/modplug.h, [
2051     VLC_ADD_PLUGINS([mod])
2052     VLC_ADD_CXXFLAGS([mod],[])
2053     VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2054 fi
2055
2056 dnl
2057 dnl  Codec plugins
2058 dnl
2059
2060 AC_ARG_WITH(,[Codec plugins:])
2061
2062 dnl
2063 dnl  mad plugin
2064 dnl
2065 AC_ARG_ENABLE(mad,
2066   [  --enable-mad            libmad module (default enabled)])
2067 if test "${enable_mad}" != "no"
2068 then
2069   AC_ARG_WITH(mad,
2070     [    --with-mad=PATH       path to libmad],[],[])
2071   if test "${with_mad}" != "no" -a -n "${with_mad}"
2072   then
2073     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2074     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2075   fi
2076
2077   AC_ARG_WITH(mad-tree,
2078     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
2079   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2080   then
2081     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2082     if test -z "${real_mad_tree}"
2083     then
2084       dnl  The given directory can't be found
2085       AC_MSG_RESULT(no)
2086       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2087     fi
2088     dnl  Use a custom libmad
2089     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2090     if test -f ${real_mad_tree}/mad.h
2091     then
2092       AC_MSG_RESULT(yes)
2093       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2094       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2095       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2096       AC_CHECK_LIB(mad, mad_bit_init, [
2097         VLC_ADD_BUILTINS([mpgatofixed32])
2098         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2099         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2100       ],[])
2101       LDFLAGS="${LDFLAGS_save}"
2102     else
2103       AC_MSG_RESULT(no)
2104       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2105     fi
2106   else
2107     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2108     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2109     AC_CHECK_HEADERS(mad.h, ,
2110       [ 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.]) ])
2111     AC_CHECK_LIB(mad, mad_bit_init, [
2112       VLC_ADD_PLUGINS([mpgatofixed32])
2113       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2114       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2115     CPPFLAGS="${CPPFLAGS_save}"
2116     LDFLAGS="${LDFLAGS_save}"
2117   fi
2118 fi
2119
2120 dnl
2121 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2122 dnl
2123 AC_CHECK_HEADERS(id3tag.h, [
2124   AC_CHECK_HEADERS(zlib.h, [
2125     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2126     VLC_ADD_PLUGINS([id3tag])]) ])
2127
2128 dnl
2129 dnl  ffmpeg decoder/demuxer plugin
2130 dnl
2131 AC_ARG_ENABLE(ffmpeg,
2132 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2133 if test "${enable_ffmpeg}" != "no"
2134 then
2135 dnl Look for a ffmpeg-config (we are on debian )
2136  
2137    FFMPEG_PATH="${PATH}"
2138    AC_ARG_WITH(ffmpeg-config-path,
2139      [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2140      [ if test "${with_ffmpeg_config_path}" != "no"
2141        then
2142          FFMPEG_PATH="${with_ffmpeg_config_path}"
2143        fi ])
2144    AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2145    if test "${FFMPEG_CONFIG}" != "no"
2146    then
2147      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2148      AC_CHECK_HEADERS(postproc/postprocess.h)
2149      VLC_ADD_PLUGINS([ffmpeg])
2150      if test "${enable_sout}" != "no"; then
2151          VLC_ADD_PLUGINS([stream_out_switcher])
2152      fi
2153      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2154      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2155   
2156   else
2157     AC_ARG_WITH(ffmpeg-mp3lame,
2158       [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2159       [
2160         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
2161
2162     AC_ARG_WITH(ffmpeg-faac,
2163       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2164       [
2165         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
2166
2167     AC_ARG_WITH(ffmpeg-dts,
2168       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2169       [
2170         VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2171
2172     AC_ARG_WITH(ffmpeg-zlib,
2173       [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2174       [
2175         VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
2176
2177     AC_ARG_WITH(ffmpeg-tree,
2178       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2179
2180     dnl
2181     dnl test for !(--with-ffmpeg-tree)
2182     dnl
2183     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
2184       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2185       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2186       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2187       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2188
2189       AC_CHECK_LIB(avutil, av_add_i, [
2190         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2191         LDAVUTIL="-lavutil"])
2192
2193       AC_CHECK_LIB(avcodec, avcodec_init, [
2194         VLC_ADD_BUILTINS([ffmpeg])
2195         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2196         if test "${enable_sout}" != "no"; then
2197             VLC_ADD_BUILTINS([stream_out_switcher])
2198         fi],
2199          [ 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])
2200       AC_CHECK_LIB(avformat, av_open_input_stream, [
2201         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2202         [Define if you have ffmpeg's libavformat.])
2203         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2204       LDFLAGS="${LDFLAGS_save}"
2205       CPPFLAGS="${CPPFLAGS_save}"
2206     fi
2207
2208     dnl
2209     dnl test for --with-ffmpeg-tree
2210     dnl
2211     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2212       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2213       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2214       if test -z "${real_ffmpeg_tree}"; then
2215         dnl  The given directory can't be found
2216         AC_MSG_RESULT(no)
2217         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2218       fi
2219       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2220         dnl  The given libavcodec wasn't built
2221         AC_MSG_RESULT(no)
2222         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2223       fi
2224       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2225         dnl  The given libavcodec wasn't built with --enable-pp
2226         AC_MSG_RESULT(no)
2227         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2228       fi
2229       dnl  Use a custom libffmpeg
2230       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2231
2232       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2233         if test "${with_ffmpeg_zlib}" != "yes"; then
2234           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2235         fi
2236       fi
2237       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2238         if test "${with_ffmpeg_mp3lame}" != "yes"; then
2239           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2240         fi
2241       fi
2242       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2243         if test "${with_ffmpeg_faac}" != "yes"; then
2244           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2245         fi
2246       fi
2247       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2248         if test "${with_ffmpeg_dts}" != "yes"; then
2249           VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
2250         fi
2251       fi
2252       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2253         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2254       fi
2255       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2256         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2257       fi
2258       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2259         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2260       fi
2261
2262       VLC_ADD_BUILTINS([ffmpeg])
2263       if test "${enable_sout}" != "no"; then
2264         VLC_ADD_BUILTINS([stream_out_switcher])
2265       fi
2266
2267       if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2268         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2269         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2270       fi
2271
2272       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2273       VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2274
2275       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2276         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2277         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2278         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2279       fi
2280     fi
2281   fi
2282 fi
2283
2284 dnl
2285 dnl  ffmpeg decoder/demuxer plugin
2286 dnl
2287 AC_ARG_ENABLE(ffmpegaltivec,
2288 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2289 if test "${enable_ffmpegaltivec}" == "yes"
2290 then
2291   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2292     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2293     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2294     if test -z "${real_ffmpeg_tree}"; then
2295       dnl  The given directory can't be found
2296       AC_MSG_RESULT(no)
2297       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2298     fi
2299     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2300       dnl  The given libavcodecaltivec wasn't built
2301       AC_MSG_RESULT(no)
2302       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2303     fi
2304     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2305       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2306       AC_MSG_RESULT(no)
2307       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2308     fi
2309     dnl  Use a custom libffmpeg
2310     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2311     VLC_ADD_BUILTINS([ffmpegaltivec])
2312     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2313     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2314     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2315
2316     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2317       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2318       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2319       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2320     fi
2321     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2322     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2323   fi
2324 fi
2325
2326 dnl
2327 dnl  faad decoder plugin
2328 dnl
2329 AC_ARG_ENABLE(faad,
2330 [  --enable-faad           faad codec (default disabled)])
2331 if test "${enable_faad}" = "yes"
2332 then
2333   AC_ARG_WITH(faad-tree,
2334   [    --with-faad-tree=PATH faad tree for static linking])
2335   if test -n "${with_faad_tree}"
2336   then
2337     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2338     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2339     if test -z "${real_faad_tree}"
2340     then
2341       dnl  The given directory can't be found
2342       AC_MSG_RESULT(no)
2343       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2344     fi
2345     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2346     then
2347       dnl  Use a custom faad
2348       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2349       VLC_ADD_BUILTINS([faad])
2350       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2351       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2352     else
2353       dnl  The given libfaad wasn't built
2354       AC_MSG_RESULT(no)
2355       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2356     fi
2357   else
2358     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2359     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2360     AC_CHECK_HEADERS(faad.h, ,
2361       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2362     AC_CHECK_LIB(faad, faacDecOpen, [
2363       VLC_ADD_PLUGINS([faad])
2364       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2365       AC_CHECK_LIB(faad, NeAACDecOpen, [
2366         VLC_ADD_PLUGINS([faad])
2367         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2368         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2369     LDFLAGS="${LDFLAGS_save}"
2370     CPPFLAGS="${CPPFLAGS_save}"
2371   fi
2372 fi
2373
2374 dnl
2375 dnl twolame encoder plugin
2376 dnl
2377 AC_ARG_ENABLE(twolame,
2378 [  --enable-twolame        twolame codec (default disabled)])
2379 if test "${enable_twolame}" = "yes"
2380 then
2381   AC_ARG_WITH(twolame-tree,
2382   [    --with-twolame-tree=PATH twolame tree for static linking])
2383   if test -n "${with_twolame_tree}"
2384   then
2385     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2386     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2387     if test -z "${real_twolame_tree}"
2388     then
2389       dnl  The given directory can't be found
2390       AC_MSG_RESULT(no)
2391       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2392     fi
2393     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2394     then
2395       dnl  Use a custom twolame
2396       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2397       VLC_ADD_BUILTINS([twolame])
2398       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2399       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2400     else
2401       dnl  The given libtwolame wasn't built
2402       AC_MSG_RESULT(no)
2403       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2404     fi
2405   else
2406     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2407     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2408     AC_CHECK_HEADERS(twolame.h, ,
2409       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2410     AC_CHECK_LIB(twolame, twolame_init, [
2411       VLC_ADD_PLUGINS([twolame])
2412       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2413         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2414     LDFLAGS="${LDFLAGS_save}"  
2415     CPPFLAGS="${CPPFLAGS_save}"
2416   fi
2417 fi
2418
2419 dnl
2420 dnl  QuickTime plugin
2421 dnl
2422 AC_ARG_ENABLE(quicktime,
2423   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2424 if test "${enable_quicktime}" != "no" &&
2425   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2426 then
2427   if test "${SYS}" = "mingw32"; then
2428     VLC_ADD_BUILTINS([quicktime])
2429   else
2430   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2431     [ VLC_ADD_BUILTINS([quicktime])
2432       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2433     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2434   fi
2435 fi
2436
2437 dnl
2438 dnl  Real plugin
2439 dnl
2440 AC_ARG_ENABLE(real,
2441   [  --enable-real           Real audio module (default disabled)])
2442 if test "${enable_real}" = "yes"; then
2443   VLC_ADD_PLUGINS([realaudio])
2444 fi
2445
2446 dnl
2447 dnl  Real RTSP plugin
2448 dnl
2449 AC_ARG_ENABLE(realrtsp,
2450   [  --enable-realrtsp       Real RTSP module (default disabled)])
2451 if test "${enable_realrtsp}" = "yes"; then
2452   VLC_ADD_PLUGINS([access_realrtsp])
2453 fi
2454
2455 dnl
2456 dnl MP4 module
2457 dnl
2458 AC_CHECK_HEADERS(zlib.h, [
2459   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2460 ] )
2461
2462 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2463   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2464 ] )
2465
2466 dnl
2467 dnl skins2 module
2468 dnl
2469 AC_CHECK_HEADERS(libtar.h, [
2470   VLC_ADD_LDFLAGS([skins2],[-ltar])
2471 ] )
2472
2473
2474
2475 dnl
2476 dnl A52/AC3 decoder plugin
2477 dnl
2478 AC_ARG_ENABLE(a52,
2479   [  --enable-a52            A/52 support with liba52 (default enabled)])
2480 if test "${enable_a52}" != "no"
2481 then
2482   AC_ARG_WITH(a52,
2483     [    --with-a52=PATH       a52 headers and libraries])
2484   AC_ARG_WITH(a52-tree,
2485     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2486   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2487   then
2488     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2489     if test -z "${real_a52_tree}"
2490     then
2491       dnl  The given directory can't be found
2492       AC_MSG_RESULT(no)
2493       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2494     fi
2495     dnl  Use a custom a52dec
2496     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2497     if test -f ${real_a52_tree}/include/a52.h
2498     then
2499       AC_MSG_RESULT(yes)
2500       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2501       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2502       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2503       AC_CHECK_LIB(a52, a52_free, [
2504         VLC_ADD_BUILTINS([a52tofloat32])
2505         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2506         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2507         ],[
2508         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2509         then
2510           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2511         else
2512           AC_MSG_ERROR([the specified tree hasn't been compiled])
2513         fi
2514       ])
2515       LDFLAGS="${LDFLAGS_save}"
2516     else
2517       AC_MSG_RESULT(no)
2518       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2519     fi
2520   else
2521     if test -z "${with_a52}"
2522     then
2523       LDFLAGS_test=""
2524       CPPFLAGS_test=""
2525     else
2526       LDFLAGS_test="-L${with_a52}/lib"
2527       CPPFLAGS_test="-I${with_a52}/include"
2528     fi
2529     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2530     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2531     AC_CHECK_HEADERS(a52dec/a52.h, [
2532       AC_CHECK_LIB(a52, a52_free, [
2533         VLC_ADD_PLUGINS([a52tofloat32])
2534         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2535         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2536       ],[
2537         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.])
2538       ])
2539     ])
2540     CPPFLAGS="${CPPFLAGS_save}"
2541     LDFLAGS="${LDFLAGS_save}"
2542   fi
2543 fi
2544
2545 AC_ARG_WITH(a52-fixed,
2546       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2547       [
2548         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2549
2550 dnl
2551 dnl DTS Coherent Acoustics decoder plugin
2552 dnl
2553 AC_ARG_ENABLE(dts,
2554   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2555 if test "${enable_dts}" != "no"; then
2556   AC_ARG_WITH(dts-tree,
2557     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2558   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2559   then
2560     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2561     if test -z "${real_dts_tree}"
2562     then
2563       dnl  The given directory can't be found
2564       AC_MSG_RESULT(no)
2565       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2566     fi
2567     dnl  Use a custom libdts
2568     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2569     if test -f ${real_dts_tree}/include/dts.h
2570     then
2571       AC_MSG_RESULT(yes)
2572       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2573       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2574       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2575       AC_CHECK_LIB(dts_pic, dts_free, [
2576         VLC_ADD_PLUGINS([dtstofloat32])
2577         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2578         ],[
2579         AC_CHECK_LIB(dts, dts_free, [
2580           VLC_ADD_BUILTINS([dtstofloat32])
2581           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2582           ],[
2583           if test -f ${real_dts_tree}/libdts/libdts.a
2584           then
2585             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2586           else
2587             AC_MSG_ERROR([the specified tree hasn't been compiled])
2588           fi
2589         ])
2590       ])
2591       LDFLAGS="${LDFLAGS_save}"
2592     else
2593       AC_MSG_RESULT(no)
2594       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2595     fi
2596   else
2597     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2598     AC_CHECK_HEADERS(dts.h, [
2599       AC_CHECK_LIB(dts_pic, dts_free, [
2600         VLC_ADD_PLUGINS([dtstofloat32])
2601         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2602       ],[
2603         AC_CHECK_LIB(dts, dts_free, [
2604           VLC_ADD_BUILTINS([dtstofloat32])
2605           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2606         ],[
2607           if test "${enable_dts}" = "yes"; then
2608             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2609           fi
2610         ])
2611       ])
2612     ])
2613     LDFLAGS="${LDFLAGS_save}"
2614   fi
2615 fi
2616
2617 dnl
2618 dnl  Flac plugin
2619 dnl
2620 AC_ARG_ENABLE(flac,
2621   [  --enable-flac           flac decoder support (default disabled)])
2622 if test "${enable_flac}" = "yes"
2623 then
2624   AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2625     VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2626    ],[])
2627 fi
2628
2629 dnl
2630 dnl  Libmpeg2 plugin
2631 dnl
2632 AC_ARG_ENABLE(libmpeg2,
2633   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2634 if test "${enable_libmpeg2}" != "no"
2635 then
2636   AC_ARG_WITH(libmpeg2-tree,
2637   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2638   if test -n "${with_libmpeg2_tree}"
2639   then
2640     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2641     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2642     if test -z "${real_libmpeg2_tree}"
2643     then
2644       dnl  The given directory can't be found
2645       AC_MSG_RESULT(no)
2646       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2647     fi
2648     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2649     then
2650       dnl  Use a custom libmpeg2
2651       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2652       VLC_ADD_BUILTINS([libmpeg2])
2653       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2654       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2655       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2656     else
2657       dnl  The given libmpeg2 wasn't built
2658       AC_MSG_RESULT(no)
2659       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2660     fi
2661   else
2662     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2663       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2664       AC_EGREP_CPP(yes,
2665         [#include <mpeg2dec/mpeg2.h>
2666          #ifdef MPEG2_RELEASE
2667          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
2668          yes
2669          #endif
2670          #endif],
2671         [AC_MSG_RESULT([yes])
2672           VLC_ADD_PLUGINS([libmpeg2])
2673           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
2674         [AC_MSG_RESULT([no])
2675           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.])])],
2676
2677       [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.])]
2678     )
2679   fi
2680 fi
2681
2682 dnl
2683 dnl  Vorbis plugin
2684 dnl
2685 AC_ARG_ENABLE(vorbis,
2686   [  --enable-vorbis         Vorbis decoder support (default enabled)])
2687 if test "${enable_vorbis}" != "no"
2688 then
2689   AC_CHECK_HEADERS(vorbis/codec.h, [
2690     VLC_ADD_PLUGINS([vorbis])
2691     VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
2692
2693   AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
2694     VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
2695 fi
2696
2697 dnl
2698 dnl  Tremor plugin
2699 dnl
2700 AC_ARG_ENABLE(tremor,
2701   [  --enable-tremor         Tremor decoder support (default disabled)])
2702 if test "${enable_tremor}" = "yes"
2703 then
2704   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2705     VLC_ADD_PLUGINS([tremor])
2706     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
2707    ],[])
2708 fi
2709
2710 dnl
2711 dnl  Speex plugin
2712 dnl
2713 AC_ARG_ENABLE(speex,
2714   [  --enable-speex          Speex decoder support (default enabled)])
2715 if test "${enable_speex}" != "no"
2716 then
2717   AC_CHECK_HEADERS(speex/speex.h, [
2718     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
2719     AC_CHECK_LIB(speex, speex_decode_int, [
2720       VLC_ADD_PLUGINS([speex])
2721       VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
2722       [ AC_MSG_RESULT([no])
2723         AC_MSG_WARN([Your libspeex is too old, please get the development
2724                      version.]) ],[])
2725     LDFLAGS="${LDFLAGS_save}"
2726     ],[])
2727 fi
2728
2729 dnl
2730 dnl  tarkin decoder plugin
2731 dnl
2732 AC_ARG_ENABLE(tarkin,
2733 [  --enable-tarkin         experimental tarkin codec (default disabled)])
2734 if test "${enable_tarkin}" = "yes"
2735 then
2736   AC_ARG_WITH(tarkin-tree,
2737   [    --with-tarkin-tree=PATH tarkin tree for static linking])
2738   if test -n "${with_tarkin_tree}"
2739   then
2740     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
2741     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
2742     if test -f "${real_tarkin_tree}/tarkin.o"
2743     then
2744       VLC_ADD_BUILTINS([tarkin])
2745       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
2746       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])
2747       AC_MSG_RESULT(yes)
2748     else
2749       dnl  The given tarkin tree wasn't built
2750       AC_MSG_RESULT(no)
2751       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
2752                     make sure you compiled tarkin in ${with_tarkin_tree}])
2753     fi
2754   fi
2755 fi
2756
2757 dnl
2758 dnl  theora decoder plugin
2759 dnl
2760 AC_ARG_ENABLE(theora,
2761 [  --enable-theora         experimental theora codec (default disabled)])
2762 if test "${enable_theora}" = "yes"
2763 then
2764   AC_CHECK_HEADERS(theora/theora.h, [
2765     AC_CHECK_LIB(theora, theora_granule_time, [
2766       if test "${SYS}" = "mingw32"; then
2767         VLC_ADD_PLUGINS([theora])
2768       else
2769         VLC_ADD_BUILTINS([theora])
2770       fi
2771       theora_libs="-ltheora -logg"
2772       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
2773       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
2774 You also need to check that you have a libogg posterior to the 1.0 release.])],
2775       [-logg])
2776   ])
2777 fi
2778
2779 dnl
2780 dnl  dirac decoder plugin
2781 dnl
2782 AC_ARG_ENABLE(dirac,
2783 [  --enable-dirac          experimental dirac codec (default disabled)])
2784 if test "${enable_dirac}" = "yes"; then
2785   AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
2786     AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
2787       VLC_ADD_PLUGINS([dirac])
2788       VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
2789       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
2790       [-lstdc++])
2791   ])
2792 fi
2793
2794 dnl
2795 dnl  PNG decoder module
2796 dnl
2797 AC_ARG_ENABLE(png,
2798   [  --enable-png            PNG support (default enabled)])
2799 if test "${enable_png}" != "no"; then
2800 AC_CHECK_HEADERS(png.h, [
2801   LDFLAGS="${LDFLAGS_save} -lz"
2802   AC_CHECK_LIB(png, png_set_rows, [
2803     VLC_ADD_LDFLAGS([png],[-lpng -lz])
2804     VLC_ADD_PLUGINS([png])
2805     VLC_ADD_PLUGINS([osdmenu])
2806     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
2807     [],[-lz])
2808   LDFLAGS="${LDFLAGS_save}"
2809   ])
2810 fi
2811
2812 dnl
2813 dnl H264 encoder plugin (using libx264)
2814 dnl
2815 AC_ARG_ENABLE(x264,
2816   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2817 if test "${enable_x264}" != "no"; then
2818   AC_ARG_WITH(x264-tree,
2819     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
2820   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2821   then
2822     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2823     if test -z "${real_x264_tree}"
2824     then
2825       dnl  The given directory can't be found
2826       AC_MSG_RESULT(no)
2827       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
2828     fi
2829     dnl  Use a custom libx264
2830     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2831     if test -f ${real_x264_tree}/x264.h
2832     then
2833       AC_MSG_RESULT(yes)
2834       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2835       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
2836       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2837       AC_CHECK_LIB(x264, x264_encoder_open, [
2838         VLC_ADD_BUILTINS([x264])
2839         VLC_ADD_LDFLAGS([x264],[-lx264])
2840       ],[
2841         AC_MSG_ERROR([the specified tree hasn't been compiled])
2842       ])
2843       LDFLAGS="${LDFLAGS_save}"
2844     else
2845       AC_MSG_RESULT(no)
2846       AC_MSG_ERROR([the specified tree doesn't have x264.h])
2847     fi
2848   else
2849     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2850     AC_CHECK_HEADERS(x264.h, [
2851       AC_CHECK_LIB(x264, x264_encoder_open, [
2852         VLC_ADD_PLUGINS([x264])
2853         VLC_ADD_LDFLAGS([x264],[-lx264])
2854       ],[
2855         if test "${enable_x264}" = "yes"; then
2856             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
2857           fi
2858       ])
2859     ])
2860     LDFLAGS="${LDFLAGS_save}"
2861   fi
2862 fi
2863
2864 dnl
2865 dnl  CMML plugin
2866 dnl
2867 AC_ARG_ENABLE(cmml,
2868   [  --enable-cmml           CMML support (default enabled)])
2869 if test "${enable_cmml}" != "no"
2870 then
2871   VLC_ADD_PLUGINS([cmml])
2872 fi
2873
2874
2875 dnl
2876 dnl  Video plugins
2877 dnl
2878
2879 AC_ARG_WITH(,[Video plugins:])
2880
2881 dnl Check for DPMS
2882 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
2883   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2884   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
2885     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
2886     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
2887       AC_MSG_RESULT(yes)
2888       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
2889                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
2890     ],[
2891       AC_MSG_RESULT(no)
2892     ])
2893   ],,[
2894     #include <X11/Xlib.h>
2895   ])
2896   CPPFLAGS="${CPPFLAGS_save}"
2897 fi
2898
2899 dnl
2900 dnl  X11 module
2901 dnl  (enabled by default except on win32)
2902 dnl
2903 AC_ARG_ENABLE(x11,
2904   [  --enable-x11            X11 support (default enabled)])
2905 if test "${enable_x11}" != "no" &&
2906   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2907    test "${enable_x11}" = "yes"); then
2908   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2909   AC_CHECK_HEADERS(X11/Xlib.h, [
2910     VLC_ADD_PLUGINS([x11])
2911     VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
2912     VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
2913   ])
2914   CPPFLAGS="${CPPFLAGS_save}"
2915 fi
2916
2917 dnl
2918 dnl  XVideo module
2919 dnl  (enabled by default except on win32)
2920 dnl
2921 AC_ARG_ENABLE(xvideo,
2922   [  --enable-xvideo         XVideo support (default enabled)])
2923 if test "${enable_xvideo}" != "no" &&
2924   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2925    test "${enable_xvideo}" = "yes"); then
2926   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2927   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
2928     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2929     AC_CHECK_LIB(Xv,XvPutImage,[
2930       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
2931       # test for libXv_pic.
2932       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
2933         VLC_ADD_PLUGINS([xvideo])
2934         VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2935         VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2936       else
2937         AC_CHECK_LIB(Xv_pic,XvPutImage,[
2938           VLC_ADD_PLUGINS([xvideo])
2939           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2940           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
2941         ],[
2942           VLC_ADD_BUILTINS([xvideo])
2943           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2944           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2945         ])
2946       fi
2947     ])
2948     CFLAGS="${CFLAGS_save}"
2949   ]
2950   CPPFLAGS="${CPPFLAGS_save}")
2951 fi
2952
2953 dnl
2954 dnl  GLX module
2955 dnl  (enabled by default except on win32)
2956 dnl
2957 AC_ARG_ENABLE(glx,
2958   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
2959 if test "${enable_glx}" != "no" &&
2960   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2961    test "${enable_glx}" = "yes"); then
2962   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2963   AC_CHECK_HEADERS(X11/Xlib.h, [
2964     AC_CHECK_HEADERS(GL/glx.h, [
2965       VLC_ADD_PLUGINS([glx])
2966       VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
2967       VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
2968   ]) ])
2969   CPPFLAGS="${CPPFLAGS_save}"
2970 fi
2971
2972 dnl
2973 dnl  Check for the Xinerama extension
2974 dnl
2975 if test "${enable_xvideo}" != "no" &&
2976   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2977    test "${enable_xvideo}" = "yes"); then
2978   ac_cv_have_xinerama="no"
2979   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2980   CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2981   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
2982     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
2983       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
2984       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
2985       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
2986       ac_cv_have_xinerama="yes"
2987     ],[
2988       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
2989         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
2990         VLC_ADD_LDFLAGS([x11],[-lXinerama])
2991         VLC_ADD_LDFLAGS([glx],[-lXinerama])
2992         ac_cv_have_xinerama="yes"
2993       ])
2994     ])
2995   ])
2996   if test "${ac_cv_have_xinerama}" = "yes"; then
2997     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
2998   fi
2999   CFLAGS="${CFLAGS_save}"
3000   CPPFLAGS="${CPPFLAGS_save}"
3001 fi
3002
3003 dnl
3004 dnl  OpenGL module
3005 dnl  (enabled by default except on beos)
3006 dnl
3007 AC_ARG_ENABLE(opengl,
3008   [  --enable-opengl         OpenGL support (default enabled)])
3009 if test "${enable_opengl}" != "no" &&
3010    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3011   if test "${SYS}" != "darwin"; then
3012     AC_CHECK_HEADERS(GL/gl.h, [
3013       VLC_ADD_PLUGINS([opengl])
3014       if test "${SYS}" != "mingw32"; then
3015         VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
3016       else
3017         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3018       fi
3019     ])
3020   else
3021     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3022     VLC_ADD_PLUGINS([opengl])
3023     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3024   fi
3025 fi
3026
3027 dnl
3028 dnl  SDL module
3029 dnl
3030 AC_ARG_ENABLE(sdl,
3031   [  --enable-sdl            SDL support (default enabled)])
3032 if test "${enable_sdl}" != "no"
3033 then
3034   SDL_PATH="${PATH}"
3035   AC_ARG_WITH(sdl-config-path,
3036     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3037     [ if test "${with_sdl_config_path}" != "no"
3038       then
3039         SDL_PATH="${with_sdl_config_path}:${PATH}"
3040       fi ])
3041   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3042   SDL_CONFIG="${SDL12_CONFIG}"
3043   SDL_HEADER="SDL12/SDL.h"
3044   SDL_IMAGE="SDL12/SDL_image.h"
3045   if test "${SDL_CONFIG}" = "no"
3046   then
3047     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3048     SDL_CONFIG=${SDL11_CONFIG}
3049     SDL_HEADER="SDL11/SDL.h"
3050     SDL_IMAGE="SDL11/SDL_image.h"
3051   fi
3052   if test "${SDL_CONFIG}" = "no"
3053   then
3054     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3055     SDL_HEADER="SDL/SDL.h"
3056     SDL_IMAGE="SDL/SDL_image.h"
3057   fi
3058   # check for cross-compiling
3059   SDL_PREFIX=
3060   AC_ARG_WITH(sdl-prefix,
3061     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3062                                e.g use as:
3063                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3064   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3065   then
3066     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3067   fi
3068   if test "${SDL_CONFIG}" != "no"
3069   then
3070     # SDL on Darwin is heavily patched and can only run SDL_image
3071     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3072       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3073     fi
3074     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3075     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3076     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3077     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3078       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3079       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3080           As a last resort we also test for SDL.h presence),
3081       [ AC_MSG_ERROR([The development package for SDL is not installed.
3082 Please install it and try again. Alternatively you can also configure with
3083 --disable-sdl.])
3084       ])])
3085     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3086       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3087       VLC_ADD_PLUGINS([sdl_image])
3088       AC_CHECK_LIB(png, png_set_rows,
3089         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3090       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3091         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3092       AC_CHECK_LIB(tiff, TIFFClientOpen,
3093         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3094       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3095       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3096           As a last resort we also test for SDL_image.h presence),
3097       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3098 You should install it alongside your SDL package.])
3099       ])])
3100     CPPFLAGS="${CPPFLAGS_save}"
3101     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3102     then
3103       AC_MSG_ERROR([The development package for SDL is not installed.
3104 Please install it and try again. Alternatively you can also configure with
3105 --disable-sdl.])
3106     fi
3107
3108   elif test "${enable_sdl}" =  "yes"
3109   then
3110     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3111 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3112     ])
3113   fi
3114 fi
3115
3116 dnl
3117 dnl  freetype module
3118 dnl
3119 AC_ARG_ENABLE(freetype,
3120   [  --enable-freetype       freetype support (default enabled)])
3121 AC_ARG_ENABLE(fribidi,
3122   [  --enable-fribidi        fribidi support (default enabled)])
3123 if test "${enable_freetype}" != "no"
3124 then
3125   FREETYPE_PATH="${PATH}"
3126   AC_ARG_WITH(freetype-config-path,
3127     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3128     [ if test "${with_freetype_config_path}" != "no"
3129       then
3130         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3131       fi ])
3132   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3133
3134   if test "${FREETYPE_CONFIG}" != "no"
3135   then
3136     VLC_ADD_PLUGINS([freetype])
3137     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3138     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3139     AC_CHECK_HEADERS(Carbon/Carbon.h,
3140       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3141   elif test "${enable_freetype}" =  "yes"
3142   then
3143     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3144 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3145     ])
3146   fi
3147
3148   dnl fribidi support
3149   if test "${enable_fribidi}" != "no"
3150   then
3151     FRIBIDI_PATH="${PATH}"
3152     AC_ARG_WITH(fribidi-config-path,
3153       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3154       [ if test "${with_fribidi_config_path}" != "no"
3155         then
3156           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3157         fi ])
3158     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3159
3160     if test "${FRIBIDI_CONFIG}" != "no"
3161     then
3162       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3163       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3164       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3165       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3166     fi
3167   fi
3168 fi
3169
3170 dnl
3171 dnl  libxml2 module
3172 dnl
3173 AC_ARG_ENABLE(libxml2,
3174   [  --enable-libxml2        libxml2 support (default enabled)])
3175 if test "${enable_libxml2}" != "no"
3176 then
3177   XML2_PATH="${PATH}"
3178   AC_ARG_WITH(xml2-config-path,
3179     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3180     [ if test "${with_xml2_config_path}" != "no"; then
3181         XML2_PATH="${with_xml2_config_path}:${PATH}"
3182       fi ])
3183   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3184   if test "${XML2_CONFIG}" != "no"; then
3185     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3186     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3187     dnl depends on the xmlTextReader extension
3188     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3189     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3190     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3191       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3192         VLC_ADD_PLUGINS([xml]) ],[
3193           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3194           if test "${enable_xml2}" = "yes"; then
3195             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3196           fi])
3197        ],[
3198       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3199       if test "${enable_xml2}" = "yes"; then
3200         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3201       fi])
3202     LDFLAGS="${LDFLAGS_save}"
3203     CPPFLAGS="${CPPFLAGS_save}"
3204   else
3205     if test "${enable_xml2}" = "yes"; then
3206       AC_MSG_ERROR([Could not find libxml2])
3207     fi
3208   fi
3209 fi
3210
3211 dnl
3212 dnl  SVG module
3213 dnl
3214 AC_ARG_ENABLE(svg,
3215   [  --enable-svg            SVG support (default disabled)])
3216 if test "${enable_svg}" == "yes"
3217 then
3218   PKG_CHECK_MODULES(SVG, 
3219         librsvg-2.0 >= 2.5.0,
3220         [
3221           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3222           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3223           VLC_ADD_PLUGINS([svg]) ],
3224         [AC_MSG_WARN(SVG library not found)])
3225 fi
3226
3227 dnl
3228 dnl  Qt Embedded module
3229 dnl  (disabled by default)
3230 dnl
3231 AC_ARG_ENABLE(qte,
3232   [  --enable-qte            QT Embedded support (default disabled)])
3233 if test "${enable_qte}" = "yes"
3234 then
3235   AC_ARG_WITH(qte,
3236   [    --with-qte=PATH       Qt Embedded headers and libraries])
3237   if test "${with_qte}" != "no" -a -n "${with_qte}"
3238   then
3239     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3240     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])
3241   else
3242     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3243     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3244   fi
3245   VLC_ADD_PLUGINS([qte])
3246   NEED_QTE_MAIN=yes
3247   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3248   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3249     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3250   ] )
3251   CPPFLAGS="${CPPFLAGS_save}"
3252 fi
3253
3254 dnl
3255 dnl  Qt Video output module
3256 dnl  (disabled by default)
3257 dnl
3258 dnl AC_ARG_ENABLE(qt_video,
3259 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3260 dnl if test "${enable_qt_video}" = "yes"
3261 dnl then
3262 dnl  VLC_ADD_PLUGINS([qt_video])
3263 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3264 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3265 dnl   AC_CHECK_LIB(qt-mt,main,[
3266 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3267 dnl  ],[
3268 dnl    AC_CHECK_LIB(qt,main,[
3269 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3270 dnl    ])
3271 dnl  ])
3272 dnl  NEED_QTE_MAIN=yes
3273 dnl  LDFLAGS="${LDFLAGS_save}"
3274 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3275 dnl fi
3276
3277 dnl
3278 dnl Roku HD1000 Video output module
3279 dnl
3280 AC_ARG_ENABLE(hd1000v,
3281   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3282 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3283   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3284    test "${enable_hd1000v}" = "yes"); then
3285   AC_LANG_PUSH([C++])
3286   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3287   [
3288     can_build_roku="yes"
3289   ],
3290   [
3291     can_build_roku="no"
3292     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3293   ])
3294   if test "$can_build_roku" = "yes"
3295   then
3296     VLC_ADD_PLUGINS([hd1000v])
3297     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3298   fi
3299   AC_LANG_POP([C++])
3300 fi
3301
3302 dnl
3303 dnl  Windows DirectX module
3304 dnl
3305 AC_ARG_ENABLE(directx,
3306   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3307 if test "${enable_directx}" != "no"
3308 then
3309   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3310   then
3311     AC_ARG_WITH(directx,
3312     [    --with-directx=PATH   Win32 DirectX headers])
3313     if test -z "${with_directx}"
3314     then
3315       AC_CHECK_HEADERS(ddraw.h,
3316       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3317         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3318         dnl to be moved when dependance is removed
3319         AC_CHECK_HEADERS(GL/gl.h, [
3320             VLC_ADD_PLUGINS([glwin32])
3321             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3322         ]) ])
3323     else
3324       AC_MSG_CHECKING(for directX headers in ${with_directx})
3325       if test -f ${with_directx}/ddraw.h
3326       then
3327         VLC_ADD_PLUGINS([vout_directx aout_directx])
3328         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3329         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3330         AC_MSG_RESULT(yes)
3331       else
3332         AC_MSG_RESULT(no)
3333         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3334       fi
3335     fi
3336   fi
3337 fi
3338
3339 dnl
3340 dnl  Linux framebuffer module
3341 dnl
3342 AC_ARG_ENABLE(fb,
3343   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3344     if test "${enable_fb}" != "no"
3345     then
3346       AC_CHECK_HEADERS(linux/fb.h, [
3347         VLC_ADD_PLUGINS([fb])
3348       ])
3349     fi
3350
3351 dnl
3352 dnl  Linux MGA module
3353 dnl
3354 AC_ARG_ENABLE(mga,
3355   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3356   [ if test "${enable_mga}" = "yes"
3357     then
3358       VLC_ADD_PLUGINS([mga])
3359     fi ])
3360
3361 dnl
3362 dnl  SVGAlib module
3363 dnl
3364 AC_ARG_ENABLE(svgalib,
3365   [  --enable-svgalib        SVGAlib support (default disabled)])
3366 if test "${enable_svgalib}" = "yes"
3367 then
3368   VLC_ADD_PLUGINS([svgalib])
3369   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3370 fi
3371
3372 dnl
3373 dnl  GGI module
3374 dnl
3375 AC_ARG_ENABLE(ggi,
3376   [  --enable-ggi            GGI support (default disabled)])
3377 if test "${enable_ggi}" = "yes"
3378 then
3379   VLC_ADD_PLUGINS([ggi])
3380   VLC_ADD_LDFLAGS([ggi],[-lggi])
3381   AC_ARG_WITH(ggi,
3382     [    --with-ggi=PATH       path to libggi],
3383     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3384       then
3385         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3386         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3387       fi ])
3388 fi
3389
3390 dnl
3391 dnl  Glide module
3392 dnl
3393 AC_ARG_ENABLE(glide,
3394   [  --enable-glide          Glide (3dfx) support (default disabled)])
3395 if test "${enable_glide}" = "yes"
3396 then
3397   VLC_ADD_PLUGINS([glide])
3398   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3399   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3400   AC_ARG_WITH(glide,
3401     [    --with-glide=PATH     path to libglide],
3402     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3403       then
3404         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3405         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3406       fi ])
3407 fi
3408
3409 dnl
3410 dnl  AA plugin
3411 dnl
3412 AC_ARG_ENABLE(aa,
3413   [  --enable-aa             aalib output (default disabled)])
3414 if test "${enable_aa}" = "yes"
3415 then
3416   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3417   if test "${have_aa}" = "true"
3418   then
3419     VLC_ADD_PLUGINS([aa])
3420     VLC_ADD_LDFLAGS([aa],[-laa])
3421   fi
3422 fi
3423
3424 dnl
3425 dnl  libcaca plugin
3426 dnl
3427 AC_ARG_ENABLE(caca,
3428   [  --enable-caca           libcaca output (default disabled)])
3429 if test "${enable_caca}" = "yes"
3430 then
3431   CACA_PATH="${PATH}"
3432   AC_ARG_WITH(caca-config-path,
3433     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3434     [ if test "${with_caca_config_path}" != "no"
3435       then
3436         CACA_PATH="${with_caca_config_path}:${PATH}"
3437       fi ])
3438   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3439   if test "${CACA_CONFIG}" != "no"
3440   then
3441     VLC_ADD_PLUGINS([caca])
3442     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3443     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3444   fi
3445 fi
3446
3447 dnl
3448 dnl  win32 GDI plugin
3449 dnl
3450 AC_ARG_ENABLE(wingdi,
3451   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3452 if test "${enable_wingdi}" != "no"; then
3453   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3454     VLC_ADD_PLUGINS([wingdi])
3455     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3456   fi
3457   if test "${SYS}" = "mingwce"; then
3458     VLC_ADD_PLUGINS([wingdi wingapi])
3459   fi
3460 fi
3461
3462 dnl
3463 dnl  Audio plugins
3464 dnl
3465
3466 AC_ARG_WITH(,[Audio plugins:])
3467
3468 dnl
3469 dnl  OSS /dev/dsp module (enabled by default except on win32)
3470 dnl
3471 AC_ARG_ENABLE(oss,
3472   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3473
3474 if test "${enable_oss}" != "no" &&
3475   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3476    test "${enable_oss}" = "yes")
3477 then
3478   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3479     VLC_ADD_PLUGINS([oss])
3480     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3481   ])
3482 fi
3483
3484 dnl
3485 dnl  Esound module
3486 dnl
3487 AC_ARG_ENABLE(esd,
3488   [  --enable-esd            Esound library support (default disabled)],
3489   [if test "${enable_esd}" = "yes"
3490    then
3491      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3492      if test "${ESD_CONFIG}" != "no"
3493      then
3494        VLC_ADD_PLUGINS([esd])
3495        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3496        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3497      fi
3498    fi])
3499
3500 dnl
3501 dnl  Portaudio module
3502 dnl
3503 AC_ARG_ENABLE(portaudio,
3504   [  --enable-portaudio      Portaudio library support (default disabled)],
3505   [if test "${enable_portaudio}" = "yes"
3506    then
3507      VLC_ADD_PLUGINS([portaudio])
3508      VLC_ADD_CXXFLAGS([portaudio],[])
3509      if test "${SYS}" = "mingw32"; then
3510         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3511      else
3512         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3513      fi
3514    fi])
3515
3516 dnl
3517 dnl  aRts module -- broken (freeze wxWidgets)
3518 dnl
3519 AC_ARG_ENABLE(arts,
3520  [  --enable-arts           aRts sound server (default disabled)],
3521  [if test "${enable_arts}" = "yes"
3522   then
3523     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3524     if test "${ARTS_CONFIG}" != "no"
3525     then
3526       VLC_ADD_PLUGINS([arts])
3527       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3528       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3529     fi
3530   fi])
3531
3532 dnl
3533 dnl  ALSA module
3534 dnl
3535 AC_ARG_ENABLE(alsa,
3536   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3537 if test "${enable_alsa}" != "no"
3538 then
3539   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3540   if test "${have_alsa}" = "true"
3541   then
3542     CFLAGS="${CFLAGS_save}"
3543     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
3544                     #define ALSA_PCM_NEW_SW_PARAMS_API
3545                     #include <alsa/asoundlib.h>],
3546        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
3547         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
3548     VLC_ADD_PLUGINS([alsa])
3549     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
3550   else
3551     if test "${enable_alsa}" = "yes"; then
3552       AC_MSG_ERROR([Could not find ALSA development headers])
3553     fi
3554   fi
3555 fi
3556
3557 dnl
3558 dnl  win32 waveOut plugin
3559 dnl
3560 AC_ARG_ENABLE(waveout,
3561   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3562 if test "${enable_waveout}" != "no"; then
3563   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3564     VLC_ADD_PLUGINS([waveout])
3565     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
3566   fi
3567   if test "${SYS}" = "mingwce"; then
3568     VLC_ADD_PLUGINS([waveout])
3569   fi
3570 fi
3571
3572 dnl
3573 dnl  CoreAudio plugin
3574 dnl
3575 AC_ARG_ENABLE(coreaudio,
3576   [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
3577 if test "${enable_coreaudio}" != "no" &&
3578   (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
3579 then
3580   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
3581     [ VLC_ADD_BUILTINS([coreaudio auhal])
3582       VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
3583     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3584 fi
3585
3586 dnl
3587 dnl  Roku HD1000 audio
3588 dnl
3589 AC_ARG_ENABLE(hd1000a,
3590   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3591 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3592   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3593    test "${enable_hd1000a}" = "yes")
3594 then
3595   AC_LANG_PUSH([C++])
3596   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3597     VLC_ADD_PLUGINS([hd1000a])
3598     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
3599   AC_LANG_POP([C++])
3600 fi
3601
3602 dnl
3603 dnl  CyberLink for C++ UPnP stack
3604 dnl
3605 AC_ARG_ENABLE(cyberlink,
3606   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3607 if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then
3608   AC_ARG_WITH(cyberlink-tree,
3609     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3610
3611   dnl
3612   dnl test for --with-cyberlink-tree
3613   dnl
3614   if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then
3615     AC_LANG_PUSH(C++)
3616     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3617     if test -z "${real_cyberlink_tree}"
3618     then
3619       dnl  The given directory can't be found
3620       AC_MSG_RESULT(no)
3621       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3622     fi
3623     CXXFLAGS_save="${CXXFLAGS}"
3624     CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3625     CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}"
3626     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3627       [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}])
3628         VLC_ADD_PLUGINS([upnp]) 
3629       ],[
3630         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3631       ])
3632     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3633     if test -f "${real_cyberlink_tree}/lib/unix/libclink.a"
3634     then
3635       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3636       VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat])
3637     else
3638       AC_MSG_RESULT(no)
3639        AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3640     fi
3641     CXXFLAGS="${CXXFLAGS_save}"
3642     AC_LANG_POP([C++])
3643   fi
3644 fi
3645
3646 dnl
3647 dnl  Interface plugins
3648 dnl
3649
3650 AC_ARG_WITH(,[Interface plugins:])
3651
3652 dnl special case for BeOS
3653 if test "${SYS}" = "beos"
3654 then
3655     VLC_ADD_BUILTINS([beos])
3656 fi
3657
3658 dnl
3659 dnl Skins2 module
3660 dnl
3661 AC_ARG_ENABLE(skins2,
3662   [  --enable-skins2         Skins2 interface module (experimental)])
3663 if test "${enable_skins2}" = "yes" ||
3664   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3665    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3666
3667   dnl test for the required libraries
3668   skins2_missing_lib="no"
3669
3670   dnl freetype
3671   if test "${FREETYPE_CONFIG}" != "no"; then
3672     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
3673     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
3674   else
3675     skins2_missing_lib="yes"
3676     if test "${enable_skins2}" = "yes"; then
3677       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3678     fi
3679   fi
3680
3681   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
3682     VLC_ADD_PLUGINS([skins2])
3683     ALIASES="${ALIASES} svlc"
3684     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3685     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3686     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3687
3688   else if test "${skins2_missing_lib}" = "no"; then
3689     VLC_ADD_PLUGINS([skins2])
3690     ALIASES="${ALIASES} svlc"
3691     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
3692     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3693     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
3694   fi fi
3695 fi
3696
3697
3698 dnl dnl
3699 dnl dnl  Gtk+ module
3700 dnl dnl
3701 dnl AC_ARG_ENABLE(gtk,
3702 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
3703 dnl if test "${enable_gtk}" != "no"
3704 dnl then
3705 dnl   GTK_PATH="${PATH}"
3706 dnl   AC_ARG_WITH(gtk-config-path,
3707 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
3708 dnl     [ if test "${with_gtk_config_path}" != "no"
3709 dnl       then
3710 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
3711 dnl       fi ])
3712 dnl   # look for gtk-config
3713 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
3714 dnl   GTK_CONFIG=${GTK12_CONFIG}
3715 dnl   if test "${GTK_CONFIG}" = "no"
3716 dnl   then
3717 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
3718 dnl   fi
3719 dnl   if test "${GTK_CONFIG}" != "no"
3720 dnl   then
3721 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
3722 dnl     then
3723 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.])
3724 dnl     fi
3725 dnl     if test "${SYS}" != "mingw32"; then
3726 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
3727 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
3728 dnl     else
3729 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
3730 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
3731 dnl     fi
3732 dnl     # now look for the gtk.h header
3733 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
3734 dnl     ac_cv_gtk_headers=yes
3735 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
3736 dnl       ac_cv_gtk_headers=no
3737 dnl       echo "Cannot find gtk development headers."
3738 dnl     ])
3739 dnl     if test "${ac_cv_gtk_headers}" = "yes"
3740 dnl     then
3741 dnl       VLC_ADD_PLUGINS([gtk])
3742 dnl       if test "${SYS}" != "mingw32"; then
3743 dnl         NEED_GTK_MAIN=yes
3744 dnl       fi
3745 dnl       ALIASES="${ALIASES} gvlc"
3746 dnl     fi
3747 dnl     CPPFLAGS="${CPPFLAGS_save}"
3748 dnl   fi
3749 dnl fi
3750 dnl 
3751 dnl
3752 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
3753 dnl
3754 dnl AC_ARG_ENABLE(gtk2,
3755 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
3756 dnl if test "${enable_gtk2}" = "yes"
3757 dnl then
3758 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3759 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3760 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3761 dnl   VLC_ADD_PLUGINS([gtk2])
3762 dnl   if test "${SYS}" != "mingw32"; then
3763 dnl     NEED_GTK2_MAIN=yes
3764 dnl   fi
3765 dnl fi
3766
3767 dnl
3768 dnl  PDA Gtk+2 module
3769 dnl
3770 AC_ARG_ENABLE(pda,
3771   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
3772 if test "${enable_pda}" = "yes"
3773 then
3774   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3775   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3776   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3777   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
3778   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
3779   VLC_ADD_PLUGINS([pda])
3780   if test "${SYS}" != "mingw32"; then
3781     NEED_GTK2_MAIN=yes
3782   fi
3783 fi
3784
3785 dnl dnl
3786 dnl dnl  Gnome module
3787 dnl dnl
3788 dnl AC_ARG_ENABLE(gnome,
3789 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
3790 dnl   [if test "${enable_gnome}" = "yes"; then
3791 dnl     # look for gnome-config
3792 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
3793 dnl     if test -x ${GNOME_CONFIG}
3794 dnl     then
3795 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
3796 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
3797 dnl     fi
3798 dnl     # now look for the gnome.h header
3799 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
3800 dnl     AC_CHECK_HEADERS(gnome.h, [
3801 dnl       VLC_ADD_PLUGINS([gnome])
3802 dnl       NEED_GTK_MAIN=yes
3803 dnl       NEED_GNOME_MAIN=yes
3804 dnl       ALIASES="${ALIASES} gnome-vlc"
3805 dnl       dnl We need this because of some moronic gnomesupport.h flavours
3806 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
3807 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
3808 dnl         AC_MSG_RESULT(yes)
3809 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
3810 dnl                   Define if <gnome.h> defines strndup.)],[
3811 dnl         AC_MSG_RESULT(no)])
3812 dnl      ],[
3813 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
3814 dnl developement tools or remove the --enable-gnome option])
3815 dnl      ])
3816 dnl     CPPFLAGS="${CPPFLAGS_save}"
3817 dnl   fi])
3818
3819 dnl
3820 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
3821 dnl
3822 dnl AC_ARG_ENABLE(gnome2,
3823 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
3824 dnl if test "${enable_gnome2}" = "yes"
3825 dnl then
3826 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
3827 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
3828 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
3829 dnl   VLC_ADD_PLUGINS([gnome2])
3830 dnl   if test "${SYS}" != "mingw32"; then
3831 dnl     NEED_GNOME2_MAIN=yes
3832 dnl   fi
3833 dnl fi
3834
3835 dnl
3836 dnl  wxWidgets module
3837 dnl
3838 AC_ARG_ENABLE(wxwidgets,
3839   [  --enable-wxwidgets      wxWidgets support (default enabled)])
3840 if test "${enable_wxwindows}" 
3841 then
3842   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
3843 fi
3844
3845 if test "${enable_wxwindows}" = "no"
3846 then
3847   enable_wxwidgets="no"
3848 fi
3849 if test "${enable_wxwidgets}" != "no"
3850 then
3851   WXWIDGETS_PATH="${PATH}"
3852   AC_ARG_WITH(wx-config-path,
3853     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
3854     [ if test "${with_wx_config_path}" != "no"
3855       then
3856         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
3857       fi ])
3858   WXWIDGETS_NAME="wx-config"
3859   AC_ARG_WITH(wx-config,
3860     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
3861     [ if test "${with_wx_config}" != "no"
3862       then
3863         WXWIDGETS_NAME="${with_wx_config}"
3864       fi ])
3865   # look for wx-config
3866   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
3867   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
3868   then
3869     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
3870     then
3871       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.])
3872     fi
3873     AC_LANG_PUSH(C++)
3874     # Turn this error:
3875     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
3876     # into a warning. However better would be to fix playlist.cpp
3877     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
3878         [ac_cv_cxx_fpermissive],
3879         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
3880          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
3881                         ac_cv_cxx_fpermissive=no)])
3882     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
3883       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
3884     fi
3885     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
3886     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
3887     if test "$have_libcdio" = "yes"
3888     then 
3889       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
3890       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
3891     else 
3892       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
3893     fi
3894
3895     if test "$have_libvcdinfo" = "yes"
3896     then 
3897       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
3898       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
3899     else 
3900       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
3901     fi
3902
3903     # now look for the wxprec.h header
3904     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
3905     ac_cv_wx_headers=yes
3906     AC_CHECK_HEADERS(wx/wxprec.h, , [
3907       ac_cv_wx_headers=no
3908       echo "Cannot find wxWidgets development headers."
3909     ])
3910     if test "${ac_cv_wx_headers}" = "yes"
3911     then
3912       VLC_ADD_PLUGINS([wxwidgets])
3913       ALIASES="${ALIASES} wxvlc"
3914     fi
3915     CPPFLAGS="${CPPFLAGS_save}"
3916     AC_LANG_POP(C++)
3917   fi
3918 fi
3919
3920 dnl
3921 dnl  WinCE GUI module
3922 dnl
3923 if test "${SYS}" = "mingwce"; then
3924   VLC_ADD_BUILTINS([wince])
3925   VLC_ADD_CXXFLAGS([wince],[])
3926   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
3927   dnl Gross hack
3928   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3929 elif test "${SYS}" = "mingw32"; then
3930   VLC_ADD_CXXFLAGS([wince],[])
3931   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
3932   dnl Gross hack
3933   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3934 fi
3935
3936 dnl
3937 dnl Simple test for skins2 dependency
3938 dnl
3939 if test "${enable_skins2}" != "no"
3940 then
3941   if test "${WX_CONFIG}" = "no"
3942   then
3943     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.])
3944   fi
3945 fi
3946
3947 dnl dnl
3948 dnl dnl  Qt module
3949 dnl dnl
3950 dnl AC_ARG_ENABLE(qt,
3951 dnl   [  --enable-qt             Qt interface support (default disabled)],
3952 dnl   [if test "${enable_qt}" = "yes"; then
3953 dnl      VLC_ADD_PLUGINS([qt])
3954 dnl      ALIASES="${ALIASES} qvlc"
3955 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
3956 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
3957 dnl      AC_CHECK_LIB(qt-mt,main,[
3958 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
3959 dnl      ],[
3960 dnl        AC_CHECK_LIB(qt,main,[
3961 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
3962 dnl        ])
3963 dnl      ])
3964 dnl      LDFLAGS="${LDFLAGS_save}"
3965 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3966 dnl      if test -x ${QTDIR}/bin/moc
3967 dnl      then
3968 dnl        MOC=${QTDIR}/bin/moc
3969 dnl      else
3970 dnl        MOC=moc
3971 dnl      fi
3972 dnl    fi])
3973 dnl 
3974 dnl dnl
3975 dnl dnl  KDE module
3976 dnl dnl
3977 dnl AC_ARG_ENABLE(kde,
3978 dnl   [  --enable-kde            KDE interface support (default disabled)],
3979 dnl   [if test "${enable_kde}" = "yes"; then
3980 dnl      VLC_ADD_PLUGINS([kde])
3981 dnl      ALIASES="${ALIASES} kvlc"
3982 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
3983 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
3984 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3985 dnl      AC_CHECK_LIB(kfile,main,[
3986 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
3987 dnl      ])
3988 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3989 dnl      AC_CHECK_LIB(kdeui,main,[
3990 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
3991 dnl      ])
3992 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3993 dnl      AC_CHECK_LIB(kio,main,[
3994 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
3995 dnl      ])
3996 dnl      LDFLAGS="${LDFLAGS_save}"
3997 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
3998 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
3999 dnl      if test -x ${QTDIR}/bin/moc
4000 dnl      then
4001 dnl        MOC=${QTDIR}/bin/moc
4002 dnl      else
4003 dnl        MOC=moc
4004 dnl      fi
4005 dnl    fi])
4006
4007 dnl
4008 dnl  Opie QT embedded module
4009 dnl
4010 AC_ARG_ENABLE(opie,
4011   [  --enable-opie           Qt embedded interface support (default disabled)],
4012   [if test "${enable_opie}" = "yes"; then
4013      AC_ARG_WITH(qte,
4014      [    --with-qte=PATH       Qt Embedded headers and libraries])
4015      if test "${with_qte}" != "no" -a -n "${with_qte}"
4016      then
4017        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4018        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])
4019      else
4020        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4021        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4022      fi
4023      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4024      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4025        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4026      ] )
4027      CPPFLAGS="${CPPFLAGS_save}"
4028
4029      VLC_ADD_PLUGINS([opie])
4030      NEED_QTE_MAIN=yes
4031      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4032      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4033      if test "${with_qte}" != "no" -a -n "${with_qte}"
4034      then
4035        MOC=${with_qte}/bin/moc
4036      else
4037        MOC=${QTDIR}/bin/moc
4038      fi
4039    fi])
4040
4041 dnl
4042 dnl  MacOS X module
4043 dnl
4044 AC_ARG_ENABLE(macosx,
4045   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4046   [if test "${enable_macosx}" = "yes"
4047    then
4048      VLC_ADD_BUILTINS([macosx])
4049      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4050    fi],
4051   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4052      VLC_ADD_BUILTINS([macosx])
4053      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4054    )])
4055
4056 dnl
4057 dnl  QNX RTOS module
4058 dnl
4059 AC_ARG_ENABLE(qnx,
4060   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4061     if test "${enable_qnx}" != "no"
4062     then
4063       AC_CHECK_HEADERS(Ph.h, [
4064         VLC_ADD_PLUGINS([qnx])
4065         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4066       ])
4067     fi
4068
4069 dnl
4070 dnl  ncurses module
4071 dnl
4072 AC_ARG_ENABLE(ncurses,
4073   [  --enable-ncurses        ncurses interface support (default disabled)],
4074   [if test "${enable_ncurses}" = "yes"; then
4075      VLC_ADD_PLUGINS([ncurses])
4076      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4077    fi])
4078
4079 dnl
4080 dnl  XOSD plugin
4081 dnl
4082 AC_ARG_ENABLE(xosd,
4083   [  --enable-xosd           xosd interface support (default disabled)])
4084 if test "${enable_xosd}" = "yes"
4085 then
4086   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4087   AC_CHECK_LIB(xosd,xosd_set_offset,
4088       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4089     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4090         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4091       AC_TRY_COMPILE([#include <xosd.h>],
4092          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
4093           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4094   if test "${have_xosd}" = "true"
4095   then
4096     VLC_ADD_PLUGINS([xosd])
4097     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4098   fi
4099 fi
4100
4101 dnl
4102 dnl Visualisation plugin
4103 dnl
4104 AC_ARG_ENABLE(visual,
4105   [  --enable-visual         visualisation plugin (default enabled)])
4106 if test "${enable_visual}" != "no"
4107 then
4108     VLC_ADD_PLUGINS([visual])
4109 fi
4110
4111 dnl
4112 dnl OpenGL visualisation plugin
4113 dnl
4114 AC_ARG_ENABLE(galaktos,
4115   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4116 if test "${enable_galaktos}" = "yes"
4117 then
4118   AC_CHECK_HEADERS(GL/gl.h, [
4119     VLC_ADD_PLUGINS([galaktos])
4120     if test "${SYS}" != "mingw32"; then
4121       VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
4122     else
4123       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4124     fi
4125   ])
4126 fi
4127
4128 dnl
4129 dnl  goom visualization plugin
4130 dnl
4131 AC_ARG_ENABLE(goom,
4132 [  --enable-goom           goom visualisation plugin (default disabled)])
4133 if test "${enable_goom}" = "yes"
4134 then
4135   AC_ARG_WITH(goom-tree,
4136     [    --with-goom-tree=PATH goom tree for static linking (required)])
4137
4138   dnl
4139   dnl test for --with-goom-tree
4140   dnl
4141   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4142     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4143     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4144     if test -z "${real_goom_tree}"; then
4145       dnl  The given directory can't be found
4146       AC_MSG_RESULT(no)
4147       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4148     fi
4149     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4150       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4151       VLC_ADD_BUILTINS([goom])
4152       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4153       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4154     else
4155       dnl  The given libgoom2 wasn't built, try to look for the old goom
4156       AC_MSG_RESULT(no)
4157       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4158       if test -f "${real_goom_tree}/libgoom.a"; then
4159         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4160         VLC_ADD_BUILTINS([goom])
4161         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
4162         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4163       else
4164         dnl  The given libgoom wasn't built
4165         AC_MSG_RESULT(no)
4166         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4167       fi
4168     fi
4169   else
4170     AC_CHECK_HEADERS(goom/goom.h, [
4171       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
4172       AC_CHECK_LIB(goom2, goom_init, [
4173         VLC_ADD_PLUGINS([goom])
4174         VLC_ADD_LDFLAGS([goom],[-lgoom2])
4175       ],[
4176         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4177       ])
4178       LDFLAGS="${LDFLAGS_save}"
4179     ])
4180   fi
4181 fi
4182
4183 dnl
4184 dnl  SLP access plugin
4185 dnl
4186 AC_ARG_ENABLE(slp,
4187   [  --enable-slp            SLP service discovery support (default disabled)])
4188 if test "${enable_slp}" = "yes"
4189 then
4190   AC_ARG_WITH(slp,
4191   [    --with-slp=PATH       libslp headers and libraries])
4192   if test -z "${with_slp}"
4193   then
4194     AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
4195     if test "${have_slp}" = "true"
4196     then
4197       VLC_ADD_PLUGINS([slp])
4198       VLC_ADD_LDFLAGS([slp],[-lslp])
4199       VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
4200     fi
4201   else
4202     AC_MSG_CHECKING(for slp headers in ${with_slp})
4203     if test -f ${with_slp}/slp.h
4204     then
4205       dnl  Use ${with_slp}/libslp/slp.h
4206       AC_MSG_RESULT(yes)
4207       VLC_ADD_PLUGINS([slp])
4208       VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
4209       VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
4210       VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
4211       AC_DEFINE(HAVE_SLP_H)
4212     else
4213       dnl  No libslp could be found, sorry
4214       AC_MSG_RESULT(no)
4215       AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
4216     fi
4217   fi
4218 fi
4219
4220 dnl
4221 dnl DAAP access plugin and services discovery 
4222 dnl
4223 AC_ARG_ENABLE(daap,
4224   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4225 if test "$enable_daap" != "no"
4226 then
4227    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4228       [ VLC_ADD_PLUGINS([daap])
4229        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4230        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4231       [AC_MSG_WARN(DAAP library not found)])
4232 fi
4233
4234 dnl
4235 dnl  Bonjour services discovery
4236 dnl
4237 AC_ARG_ENABLE(bonjour,
4238   [  --enable-bonjour        Bonjour services discovery (default enabled)])
4239 if test "${enable_bonjour}" != "no"
4240 then
4241   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
4242     [AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
4243       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
4244       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
4245       VLC_ADD_PLUGINS([bonjour]) ],
4246     [AC_MSG_WARN(avahi-client library not found)])
4247 fi
4248
4249 dnl
4250 dnl  Lirc plugin
4251 dnl
4252 AC_ARG_ENABLE(lirc,
4253   [  --enable-lirc           lirc support (default disabled)])
4254 if test "${enable_lirc}" = "yes"
4255 then
4256   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4257   if test "${have_lirc}" = "true"
4258   then
4259     VLC_ADD_PLUGINS([lirc])
4260     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4261   fi
4262 fi
4263
4264 dnl 
4265 dnl  Joystick plugin
4266 dnl
4267 AC_ARG_ENABLE(joystick,
4268   [  --enable-joystick       joystick control (default enabled)])
4269 if test "${enable_joystick}" = "yes"; then
4270   AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
4271 fi
4272
4273 dnl
4274 dnl corba (ORBit) plugin
4275 dnl
4276 dnl Default: do not enable corba
4277 enablecorba=false
4278 AC_ARG_ENABLE(corba,
4279   [  --enable-corba          corba interface support (default disabled)])
4280 if test "${enable_corba}" = "yes"; then
4281       GLIB_VERSION=2.3.2
4282       PKG_CHECK_MODULES(CORBA, 
4283         ORBit-2.0 >= 2.8.0 \
4284         glib-2.0 >= $GLIB_VERSION \
4285         gobject-2.0 >= $GLIB_VERSION \
4286         gthread-2.0 >= $GLIB_VERSION,
4287         [
4288           enablecorba=true
4289           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4290           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4291           VLC_ADD_PLUGINS([corba snapshot]) ],
4292         [ enablecorba=false
4293           AC_MSG_WARN(corba library not found) ])
4294 fi
4295 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4296
4297 AC_ARG_WITH(,[Misc options:])
4298
4299 dnl
4300 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4301 dnl
4302 dnl  We give the user the opportunity to specify
4303 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4304 dnl
4305 AC_ARG_WITH(words,
4306   [    --with-words=endianness set endianness (big or little)])
4307   case "${with_words}" in
4308     big)
4309       ac_cv_c_bigendian=yes
4310       ;;
4311     little)
4312       ac_cv_c_bigendian=no
4313       ;;
4314     *)
4315       dnl  Try to guess endianness by matching patterns on a compiled
4316       dnl  binary, by looking for an ASCII or EBCDIC string
4317       AC_CACHE_CHECK([whether the byte order is big-endian],
4318         [ac_cv_c_bigendian],
4319         [ac_cv_c_bigendian="unknown"
4320         [cat >conftest.c <<EOF
4321         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4322         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4323         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4324         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4325         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4326         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4327         int main(void) { _a(); _e(); return 0; }
4328 EOF
4329         ]
4330         if test -f conftest.c
4331         then
4332           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4333               && test -f conftest.o
4334           then
4335             if test "`strings conftest.o | grep BIGenDianSyS`"
4336             then
4337               ac_cv_c_bigendian="yes"
4338             fi
4339             if test "`strings conftest.o | grep LiTTleEnDian`"
4340             then
4341               ac_cv_c_bigendian="no"
4342             fi
4343           fi
4344         fi
4345       ])
4346       if test "${ac_cv_c_bigendian}" = "unknown"
4347       then
4348         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4349       fi
4350       ;;
4351   esac
4352 dnl  Now we know what to use for endianness, just put it in the header
4353 if test "${ac_cv_c_bigendian}" = "yes"
4354 then
4355   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4356 fi
4357
4358 dnl
4359 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4360 dnl
4361 loader=false
4362 AC_ARG_ENABLE(loader,
4363   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4364 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4365 AS_IF([test "${enable_loader}" = "yes"],
4366   [ VLC_ADD_PLUGINS([dmo quicktime])
4367     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4368     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4369     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4370     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4371     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
4372     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.a])
4373   ])
4374
4375 dnl
4376 dnl  Microsoft ActiveX support
4377 dnl
4378 activex=false
4379 AC_ARG_ENABLE(activex,
4380   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4381 if test "${enable_activex}" != "no"
4382 then
4383   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4384   then
4385     AC_CHECK_PROGS(MIDL, [midl widl], no)
4386     AC_CHECK_HEADERS(ole2.h olectl.h,
4387       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4388         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4389         AC_CHECK_HEADERS(objsafe.h,
4390           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
4391         )
4392         activex=:
4393       ],
4394       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4395     )
4396   fi
4397 fi
4398 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4399 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4400 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4401
4402 dnl
4403 dnl  Mozilla plugin
4404 dnl
4405 mozilla=false
4406 AC_ARG_ENABLE(mozilla,
4407   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4408 AC_ARG_WITH(mozilla-sdk-path,
4409   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4410
4411 if test "${enable_mozilla}" = "yes" -a "${with_mozilla_sdk_path}" = ""
4412 then
4413   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4414   if test "${MOZILLA_CONFIG}" = "no"
4415   then
4416     AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4417   else
4418     if test "${SYS}" != "mingw32"; then
4419       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
4420       AC_CHECK_LIB(Xt,XtStrings,
4421        [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
4422        [],
4423        [[-L${x_libraries} -lX11 -lSM -lICE]
4424       ])
4425       LDFLAGS="${LDFLAGS_save}"
4426     fi
4427     mozilla=:
4428     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4429     VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4430     VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4431     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4432     AC_CHECK_HEADERS(mozilla-config.h)
4433     CPPFLAGS="${CPPFLAGS_save}"
4434   fi
4435
4436 dnl special case for mingw32
4437 elif test "${enable_mozilla}" = "yes"
4438 then
4439   if test "${SYS}" = "mingw32"; then
4440     AC_CHECK_TOOL(CYGPATH, cygpath, "")
4441     mozilla_sdk_xpcom="/xpcom"
4442   fi
4443
4444   real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4445   CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4446   AC_CHECK_HEADERS(mozilla-config.h, [
4447     mozilla=:
4448     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])
4449     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])
4450     if test "${SYS}" = "mingw32"; then
4451       VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
4452     fi
4453
4454     XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
4455     XPIDL="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin/xpidl"
4456
4457     if test -n "${CYGPATH}"; then
4458       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4459       XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
4460     fi ])
4461   CPPFLAGS="${CPPFLAGS_save}"
4462 fi
4463
4464 dnl Not necessarily in ${PATH}
4465 if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
4466   XPIDL="/usr/lib/mozilla/xpidl"
4467 fi
4468 AS_IF([test "${MOZILLA_CONFIG}"], [
4469   if test -z "${XPIDL_INCL}"; then
4470     XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
4471     `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
4472   fi
4473 ])
4474 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4475
4476 dnl
4477 dnl  test plugins
4478 dnl
4479 AC_ARG_ENABLE(testsuite,
4480   [  --enable-testsuite      build test modules (default disabled)])
4481 if test "${enable_testsuite}" = "yes"
4482 then
4483   TESTS="test1 test2 test3 test4"
4484
4485   dnl  we define those so that bootstrap sets the right linker
4486   VLC_ADD_CXXFLAGS([test2],[])
4487   VLC_ADD_OBJCFLAGS([test3],[])
4488   dnl  this one is needed until automake knows what to do
4489   VLC_ADD_LDFLAGS([test3],[-lobjc])
4490
4491   VLC_ADD_PLUGINS([${TESTS}])
4492   #VLC_ADD_BUILTINS([${TESTS}])
4493 fi
4494
4495 dnl
4496 dnl  gtk_main plugin
4497 dnl
4498 if test "${NEED_GTK_MAIN}" != "no"
4499 then
4500     VLC_ADD_PLUGINS([gtk_main])
4501     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4502     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4503 fi
4504
4505 if test "${NEED_GNOME_MAIN}" != "no"
4506 then
4507     VLC_ADD_PLUGINS([gnome_main])
4508     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4509     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4510 fi
4511
4512 if test "${NEED_GTK2_MAIN}" != "no"
4513 then
4514     VLC_ADD_PLUGINS([gtk2_main])
4515     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4516     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4517     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4518     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4519 fi
4520
4521 if test "${NEED_GNOME2_MAIN}" != "no"
4522 then
4523     VLC_ADD_PLUGINS([gnome2_main])
4524     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
4525     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
4526 fi
4527
4528 dnl
4529 dnl  qte_main plugin
4530 dnl
4531 if test "${NEED_QTE_MAIN}" != "no"
4532 then
4533     VLC_ADD_PLUGINS([qte_main])
4534     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4535     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4536     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4537 fi
4538
4539
4540 dnl
4541 dnl  Plugin and builtin checks
4542 dnl
4543 builtin_support=false
4544 plugin_support=:
4545
4546 dnl Support for plugins - this must be AT THE END
4547 AC_ARG_ENABLE(plugins,
4548   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
4549   [if test "${enable_plugins}" = "no"
4550    then
4551      plugin_support=false
4552    fi])
4553
4554 dnl Automagically disable plugins if there is no system support for
4555 dnl dynamically loadable files (.so, .dll, .dylib).
4556 dnl don't forget vlc-win32 still can load .dll as plugins
4557 if test "${ac_cv_have_plugins}" = "no"
4558 then
4559   echo "*** Your system doesn't have plugin support. All plugins will be built"
4560   echo "statically."
4561   plugin_support=false
4562 fi
4563
4564 dnl Export automake variables
4565 if ${plugin_support}
4566 then
4567   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
4568   for plugin in `echo ${PLUGINS}`
4569   do
4570     eval "${plugin}_p=yes"
4571   done
4572 else
4573   VLC_ADD_BUILTINS([${PLUGINS}])
4574   PLUGINS=""
4575 fi
4576 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
4577
4578 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
4579 then
4580   builtin_support=:
4581   for builtin in `echo ${BUILTINS}`
4582   do
4583     eval "${builtin}_b=yes"
4584   done
4585 fi]
4586 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
4587
4588 AC_ARG_ENABLE(shared-libvlc,
4589   [  --enable-shared-libvlc  shared libvlc (default disabled EXPERIMENTAL)],
4590   ,[shared_libvlc=no])
4591
4592 AM_CONDITIONAL(BUILD_SHARED, [test "${shared_libvlc}" != "no"])
4593 AS_IF([test "${shared_libvlc}" != "no"], [
4594   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
4595 ])
4596
4597 pic=no
4598 AS_IF([test "${shared_libvlc}" != "no"], [pic=pic])
4599 AS_IF([${mozilla}], [pic=pic])
4600 AS_IF([test "${SYS}" = "mingw32"], [pic=no])
4601
4602 AS_IF([test "${pic}" = "no"], [pic=])
4603 AC_SUBST(pic)
4604
4605 dnl Import conditional variables generated by bootstrap
4606 VLC_CONDITIONALS
4607
4608 dnl
4609 dnl  Stuff used by the program
4610 dnl
4611 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
4612 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 the VideoLAN team", [Copyright string])
4613 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4614 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4615 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4616 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4617 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4618 AC_SUBST(VERSION_MAJOR)
4619 AC_SUBST(VERSION_MINOR)
4620 AC_SUBST(VERSION_REVISION)
4621 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
4622 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
4623 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
4624 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
4625
4626 dnl Old definitions for version-dependant plugins
4627 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
4628 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
4629 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
4630
4631 dnl New definitions with value matching 0.8.4 release
4632 module_symbol="0_8_4"
4633 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
4634 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
4635 VLC_ENTRY="vlc_entry__${module_symbol}"
4636 AC_SUBST(VLC_ENTRY)
4637
4638 DATA_PATH="${ac_tool_prefix}/share/vlc"
4639 AC_SUBST(DATA_PATH)
4640 PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
4641 AC_SUBST(PLUGIN_PATH)
4642
4643 dnl
4644 dnl  Handle substvars that use $(top_srcdir)
4645 dnl
4646 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4647 AC_SUBST(VLC_CONFIG)
4648 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
4649
4650 dnl
4651 dnl  Restore *FLAGS
4652 dnl
4653 VLC_RESTORE_FLAGS
4654
4655 dnl
4656 dnl  Create the vlc-config script
4657 dnl
4658 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
4659 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
4660
4661 dnl
4662 dnl  Configuration is finished
4663 dnl
4664 AC_SUBST(SYS)
4665 AC_SUBST(ARCH)
4666 AC_SUBST(ALIASES)
4667 AC_SUBST(ASM)
4668 AC_SUBST(MOC)
4669 AC_SUBST(WINDRES)
4670 AC_SUBST(XPIDL)
4671 AC_SUBST(XPIDL_INCL)
4672 AC_SUBST(LIBEXT)
4673 AC_SUBST(INCLUDES)
4674 AC_SUBST(ALL_LINGUAS)
4675
4676 dnl Import substitutions generated by bootstrap
4677 VLC_SUBSTS
4678
4679 dnl Create vlc-config.in
4680 VLC_OUTPUT_VLC_CONFIG_IN
4681
4682 AC_CONFIG_FILES([
4683   Makefile
4684   activex/Makefile
4685   activex/axvlc.inf
4686   debian/Makefile
4687   doc/Makefile
4688   intl/Makefile
4689   ipkg/Makefile
4690   lib/Makefile
4691   loader/Makefile
4692   modules/Makefile
4693   mozilla/Makefile
4694   m4/Makefile
4695   po/Makefile.in
4696   share/Makefile
4697 ])
4698
4699 AC_CONFIG_FILES([
4700   modules/access/Makefile
4701   modules/access/dshow/Makefile
4702   modules/access/dvb/Makefile
4703   modules/access/mms/Makefile
4704   modules/access/pvr/Makefile
4705   modules/access/v4l/Makefile
4706   modules/access/cdda/Makefile
4707   modules/access/rtsp/Makefile
4708   modules/access/vcd/Makefile
4709   modules/access/vcdx/Makefile
4710   modules/access/screen/Makefile
4711   modules/access_filter/Makefile
4712   modules/access_output/Makefile
4713   modules/audio_filter/Makefile
4714   modules/audio_filter/channel_mixer/Makefile
4715   modules/audio_filter/converter/Makefile
4716   modules/audio_filter/resampler/Makefile
4717   modules/audio_mixer/Makefile
4718   modules/audio_output/Makefile
4719   modules/codec/Makefile
4720   modules/codec/cmml/Makefile
4721   modules/codec/dmo/Makefile
4722   modules/codec/ffmpeg/Makefile
4723   modules/codec/spudec/Makefile
4724   modules/control/Makefile
4725   modules/control/http/Makefile
4726   modules/control/corba/Makefile
4727   modules/demux/Makefile
4728   modules/demux/asf/Makefile
4729   modules/demux/avi/Makefile
4730   modules/demux/mp4/Makefile
4731   modules/demux/mpeg/Makefile
4732   modules/demux/playlist/Makefile
4733   modules/demux/util/Makefile
4734   modules/gui/Makefile
4735   modules/gui/beos/Makefile
4736   modules/gui/pda/Makefile
4737   modules/gui/macosx/Makefile
4738   modules/gui/qnx/Makefile
4739   modules/gui/skins2/Makefile
4740   modules/gui/wxwidgets/Makefile
4741   modules/gui/wince/Makefile
4742   modules/misc/Makefile
4743   modules/misc/dummy/Makefile
4744   modules/misc/memcpy/Makefile
4745   modules/misc/network/Makefile
4746   modules/misc/testsuite/Makefile
4747   modules/misc/playlist/Makefile
4748   modules/misc/xml/Makefile
4749   modules/mux/Makefile
4750   modules/mux/mpeg/Makefile
4751   modules/packetizer/Makefile
4752   modules/services_discovery/Makefile
4753   modules/stream_out/Makefile
4754   modules/stream_out/transrate/Makefile
4755   modules/video_chroma/Makefile
4756   modules/video_filter/Makefile
4757   modules/video_filter/swscale/Makefile
4758   modules/video_output/Makefile
4759   modules/video_output/directx/Makefile
4760   modules/video_output/qte/Makefile
4761   modules/video_output/x11/Makefile
4762   modules/visualization/Makefile
4763   modules/visualization/visual/Makefile
4764   modules/visualization/galaktos/Makefile
4765 ])
4766
4767 dnl Generate makefiles
4768 AC_OUTPUT
4769
4770 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4771 # not provided with the source
4772 ${SHELL} ./config.status --file=vlc-config
4773 chmod 0755 vlc-config
4774
4775 dnl echo "Enabled builtin modules :"
4776 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
4777
4778 dnl echo "Enabled plugin modules :"
4779 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
4780
4781 printf "
4782 vlc configuration
4783 --------------------
4784 vlc version           : ${VERSION}
4785 system                : ${SYS}
4786 architecture          : ${ARCH}
4787 build flavour         : "
4788 test "${enable_debug}" = "yes" && printf "debug "
4789 test "${enable_cprof}" = "yes" && printf "cprof "
4790 test "${enable_gprof}" = "yes" && printf "gprof "
4791 test "${enable_optimizations}" = "yes" && printf "optim "
4792 test "${enable_release}" = "yes" && printf "release " || printf "devel "
4793 echo "
4794 vlc aliases           :${ALIASES}
4795
4796 You can tune the compiler flags in vlc-config.
4797 To build vlc and its plugins, type \`make'.
4798 "
4799