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