]> git.sesse.net Git - vlc/blob - configure.ac.in
844dfa032b8a7ddda352b4efcfb62e6815db9e52
[vlc] / configure.ac.in
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.5.0-cvs)
4
5 CONFIGURE_LINE="$0 $*"
6 CODENAME="Natalya"
7
8 AC_PREREQ(2.50)
9 AC_CONFIG_SRCDIR(src/libvlc.c)
10 AC_CANONICAL_SYSTEM
11
12 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
13 dnl them. And we need the comma otherwize automake will choke on it.
14 AM_INIT_AUTOMAKE(vlc,0.5.0-cvs)
15 AM_CONFIG_HEADER(config.h)
16
17 dnl
18 dnl  Save *FLAGS
19 dnl
20 CPPFLAGS_save="${CPPFLAGS}"
21 CFLAGS_save="${CFLAGS}"
22 CXXFLAGS_save="${CXXFLAGS}"
23 OBJCFLAGS_save="${OBJCFLAGS}"
24 LDFLAGS_save="${LDFLAGS}"
25
26 dnl
27 dnl Check for tools
28 dnl
29 AC_PROG_CC
30 AM_PROG_CC_C_O
31 AC_PROG_CPP
32 AC_PROG_CXX
33 AC_PROG_MAKE_SET
34 AC_PROG_INSTALL
35
36 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
37 AC_MSG_CHECKING(for an Objective-C compiler)
38 OBJC="${CXX}"
39 AC_SUBST(OBJC)
40 OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
41 AC_SUBST(OBJCFLAGS)
42 dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
43 #OBJCDEPMODE="depmode=gcc3"
44 #AC_SUBST(OBJCDEPMODE)
45 _AM_DEPENDENCIES(OBJC)
46 AC_MSG_RESULT(not implemented yet)
47
48 dnl Find the right ranlib, even when cross-compiling
49 AC_CHECK_TOOL(RANLIB, ranlib, :)
50 AC_CHECK_TOOL(STRIP, strip, :)
51 AC_CHECK_TOOL(AR, ar, :)
52 AC_CHECK_TOOL(LD, ld, :)
53
54 dnl
55 dnl Gettext stuff
56 dnl
57 ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
58 AM_GNU_GETTEXT_VERSION(0.10.40)
59 AM_GNU_GETTEXT
60 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
61   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
62   INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
63 fi
64 AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
65
66 dnl AM_PROG_LIBTOOL
67 AC_PROG_INSTALL
68
69 dnl Check for compiler properties
70 AC_C_CONST
71 AC_C_INLINE
72
73 dnl
74 dnl  Set default values
75 dnl
76 LDFLAGS_vlc="${LDFLAGS}"
77 LIBEXT=".so"
78
79 dnl
80 dnl  Check the operating system
81 dnl
82 case "x${target_os}" in
83   x)
84     SYS=unknown
85     ;;
86   xlinux*)
87     SYS=linux
88     ;;
89   xbsdi*)
90     SYS=bsdi
91     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
92     LDFLAGS_dvd="${LDFLAGS_dvd} -ldvd"
93     LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvd"
94     LDFLAGS_vcd="${LDFLAGS_vcd} -ldvd"
95     ;;
96   x*bsd*)
97     SYS="${target_os}"
98     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
99     ;;
100   xdarwin*)
101     SYS=darwin
102     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp"; CFLAGS="${CFLAGS_save}"
103     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp"; CXXFLAGS="${CXXFLAGS_save}"
104     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp"; OBJCFLAGS="${OBJCFLAGS_save}"
105     LDFLAGS_vlc="${LDFLAGS_vlc} -all_load"
106     LIBEXT=".dylib"
107     ;;
108   x*mingw32* | x*cygwin*)
109     AC_CHECK_TOOL(WINDRES, windres, :)
110     LIBEXT=".dll"
111
112     case "x${target_os}" in
113       x*mingw32*)
114         SYS=mingw32
115         ;;
116       x*cygwin*)
117         dnl Check if we are using the mno-cygwin mode in which case we are
118         dnl actually dealing with a mingw32 compiler.
119         AC_EGREP_CPP(yes,
120             [#ifdef WIN32
121              yes
122              #endif],
123             SYS=mingw32, SYS=cygwin)
124         ;;
125     esac
126
127     if test "x$SYS" = "xmingw32"; then
128         # add ws2_32 for closesocket, select, recv
129         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"
130         CPPFLAGS="${CPPFLAGS_save}"
131         LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
132         LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
133         LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
134         LDFLAGS_access_http="${LDFLAGS_access_http} -lws2_32"
135         LDFLAGS_access_mms="${LDFLAGS_access_mms} -lws2_32"
136         LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lws2_32"
137         LDFLAGS_access_udp="${LDFLAGS_access_udp} -lws2_32"
138         LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lws2_32"
139         LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lws2_32"
140         LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
141         LDFLAGS_sap="${LDFLAGS_sap} -lws2_32"
142     fi
143     ;;
144   x*nto*)
145     SYS=nto
146     LDFLAGS_x11="${LDFLAGS_x11} -lsocket"
147     LDFLAGS_xvideo="${LDFLAGS_xvideo} -lsocket"
148     ;;
149   xsolaris*)
150     SYS=solaris
151     ;;
152   xhpux*)
153     SYS=hpux
154     LIBEXT=".sl"
155     ;;
156   xbeos)
157     SYS=beos
158     CFLAGS_save="${CFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${CFLAGS_save}"
159     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CXXFLAGS="${CXXFLAGS_save}"
160     LDFLAGS_vlc="${LDFLAGS_vlc} -lbe"
161     LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
162     LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -lroot -ltracker -lstdc++.r4 -ltranslation"
163     dnl BONE or not BONE ?
164     AC_CHECK_LIB( bind, inet_ntoa,
165         [ LDFLAGS_access_mms="${LDFLAGS_access_mms} -lbind"
166           LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"],
167         [])
168     ;;
169   x*)
170     SYS="${target_os}"
171     ;;
172 esac
173 AM_CONDITIONAL(HAVE_BEOS, test "x${SYS}" = "xbeos")
174 AM_CONDITIONAL(HAVE_DARWIN, test "x${SYS}" = "xdarwin")
175 AM_CONDITIONAL(HAVE_WIN32, test "x${SYS}" = "xmingw32")
176
177 AC_MSG_CHECKING(for suffix of libraries)
178 AC_MSG_RESULT(${LIBEXT})
179
180 dnl Check for the need to include the mingwex lib for mingw32
181 if test x$SYS = xmingw32
182 then
183     AC_CHECK_LIB(mingwex,opendir,
184         AC_CHECK_LIB(mingw32,opendir,LDFLAGS_vlc="${LDFLAGS_vlc}",
185             [LDFLAGS_vlc="${LDFLAGS_vlc} -lmingwex"
186              LDFLAGS_gtk="${LDFLAGS_gtk} -lmingwex"])
187     )
188 fi
189
190 dnl Check for fnative-struct or mms-bitfields support for mingw32
191 if test x$SYS = xmingw32
192 then
193     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
194         [ac_cv_c_mms_bitfields],
195         [CFLAGS="${CFLAGS_save} -mms-bitfields"
196          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
197     if test x"$ac_cv_c_mms_bitfields" != x"no"; then
198         CFLAGS_mingw32_special="-mms-bitfields"
199     else
200         CFLAGS_mingw32_special="-fnative-struct"
201     fi
202
203     CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}";
204     CXXFLAGS_save="${CXXFLAGS_save} ${CFLAGS_mingw32_special}";
205     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
206 fi
207
208 dnl Check for fvtable-thunks support for mingw32
209 if test x$SYS = xmingw32
210 then
211 AC_LANG_PUSH(C++)
212     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
213         [ac_cv_cxx_fvtable_thunks],
214         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
215          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
216                         ac_cv_cxx_fvtable_thunks=no)])
217     if test x"$ac_cv_cxx_fvtable_thunks" = x"yes"; then
218         CXXFLAGS_mingw32_special="-fvtable-thunks"
219     fi
220
221     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"
222     CXXFLAGS="${CXXFLAGS_save}"
223 AC_LANG_POP(C++)
224 fi
225
226 dnl Flags for plugin compilation
227 case "x${SYS}" in
228   xmingw32|xcygwin)
229     CFLAGS_pics="${CFLAGS_pics} ${CFLAGS_mingw32_special}"
230     CXXFLAGS_pics="${CXXFLAGS_pics} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
231     OBJCFLAGS_pics="${OBJCFLAGS_pics} ${CFLAGS_mingw32_special}"
232     CFLAGS_plugins="${CFLAGS_plugins} ${CFLAGS_mingw32_special}"
233     CXXFLAGS_plugins="${CXXFLAGS_plugins} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
234     OBJCFLAGS_plugins="${OBJCFLAGS_plugins} ${CFLAGS_mingw32_special}"
235     ;;
236   x*)
237     CFLAGS_pics="${CFLAGS_pics} -fPIC"
238     CXXFLAGS_pics="${CXXFLAGS_pics} -fPIC"
239     OBJCFLAGS_pics="${OBJCFLAGS_pics} -fPIC"
240     CFLAGS_plugins="${CFLAGS_plugins} -fPIC"
241     CXXFLAGS_plugins="${CXXFLAGS_plugins} -fPIC"
242     OBJCFLAGS_plugins="${OBJCFLAGS_plugins} -fPIC"
243     LDFLAGS_plugins="${LDFLAGS_plugins} -fPIC"
244     ;;
245 esac
246
247 dnl The -DSYS_FOO flag
248 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
249
250 dnl Check for system libs needed
251 need_libc=false
252
253 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll getenv putenv setenv)
254
255 dnl Check for usual libc functions
256 AC_CHECK_FUNCS(strdup,,[need_libc=:])
257 AC_CHECK_FUNCS(strndup,,[need_libc=:])
258 AC_CHECK_FUNCS(atof,,[need_libc=:])
259 AC_CHECK_FUNCS(lseek,,[need_libc=:])
260 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp,,[need_libc=:])])
261 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp,,[need_libc=:])])
262
263 AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
264
265 AC_CHECK_FUNC(connect,,[
266   AC_CHECK_LIB(socket,connect,
267     LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket"
268     LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket"
269 )])
270
271 AC_CHECK_FUNC(send,,[
272   AC_CHECK_LIB(socket,send,
273     LDFLAGS_access_http="${LDFLAGS_access_http} -lsocket"
274     LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket"
275     LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lsocket"
276     LDFLAGS_access_udp="${LDFLAGS_access_udp} -lsocket"
277     LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lsocket"
278     LDFLAGS_sap="${LDFLAGS_sap} -lsocket"
279     LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lsocket"
280 )])
281
282 AC_CHECK_FUNC(gethostbyname,,[
283   AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl",[
284     AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind")])
285 ])
286
287 have_nanosleep=false
288 AC_CHECK_FUNC(nanosleep,have_nanosleep=:,[
289   AC_CHECK_LIB(rt,nanosleep,
290     [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
291     [AC_CHECK_LIB(posix4,nanosleep,
292         [LDFLAGS_vlc="${LDFLAGS_vlc} -lposix4"; have_nanosleep=:])]
293   )
294 ])
295 if ${have_nanosleep}; then
296   AC_DEFINE(HAVE_NANOSLEEP, 1,
297             Define if nanosleep is available.)
298 fi
299
300 dnl Check for socklen_t
301 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
302   [AC_TRY_COMPILE(
303      [#include <sys/types.h>
304       #include <sys/socket.h>],
305      [socklen_t len = 42; return len;],
306      ac_cv_type_socklen_t=yes,
307      ac_cv_type_socklen_t=no)])
308 if test x$ac_cv_type_socklen_t != xno; then
309   AC_DEFINE(HAVE_SOCKLEN_T, 1,
310             Define if <sys/socket.h> defines socklen_t.)
311 fi
312
313 dnl HP/UX port
314 AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
315
316 AC_CHECK_FUNC(inet_aton,,[
317   AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv")
318 ])
319 AC_CHECK_FUNC(textdomain,,[
320   AC_CHECK_LIB(intl,textdomain,
321     LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
322     LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
323   )
324 ])
325
326 dnl Check for getopt
327 need_getopt=false
328 AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
329 [ # FreeBSD has a gnugetopt library for this:
330   AC_CHECK_LIB([gnugetopt],[getopt_long],
331     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LDFLAGS_vlc="${LDFLAGS_vlc} -lgnugetopt"],
332     [need_getopt=:])])
333 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
334
335 AC_TYPE_SIGNAL
336 AC_CHECK_LIB(dl,dlopen,LDFLAGS_vlc="${LDFLAGS_vlc} -ldl")
337 AC_CHECK_LIB(m,cos,
338   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
339   LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm"
340   LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -lm")
341 AC_CHECK_LIB(m,pow,
342   LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lm"
343   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
344   LDFLAGS_imdct3dn="${LDFLAGS_imdct3dn} -lm"
345   LDFLAGS_imdctsse="${LDFLAGS_imdctsse} -lm"
346   LDFLAGS_i420_rgb="${LDFLAGS_i420_rgb} -lm"
347   LDFLAGS_faad="${LDFLAGS_faad} -lm"
348 )
349
350 dnl Check for pthreads - borrowed from XMMS
351 THREAD_LIB=error
352 if test "x${THREAD_LIB}" = "xerror"; then
353   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
354 fi
355 if test "x${THREAD_LIB}" = "xerror"; then
356   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
357 fi
358 if test "x${THREAD_LIB}" = "xerror"; then
359   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
360 fi
361 if test "x${THREAD_LIB}" = "xerror"; then
362   AC_CHECK_FUNC(pthread_mutex_lock)
363   THREAD_LIB=""
364 fi
365
366 dnl Check for cthreads under GNU/Hurd for instance
367 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
368
369 dnl Check for misc headers
370 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
371   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
372             Define if <pthread.h> defines pthread_cond_t.)])
373 AC_EGREP_HEADER(pthread_once,pthread.h,[
374   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
375             Define if <pthread.h> defines pthread_once.)])
376 AC_EGREP_HEADER(strncasecmp,strings.h,[
377   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
378             Define if <strings.h> defines strncasecmp.)])
379
380 dnl Check for headers
381 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
382 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
383 AC_CHECK_HEADERS(dlfcn.h image.h)
384 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
385 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
386 AC_CHECK_HEADERS(linux/version.h)
387
388 AC_HEADER_TIME
389
390 dnl Check for dirent
391 need_dirent=false
392 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
393 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
394
395 dnl Mac OS X and other OSes don't have declaration for nanosleep
396 AC_EGREP_HEADER(nanosleep,time.h,[
397   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
398             Define if <time.h> defines nanosleep.)
399 ])
400
401 dnl Make sure we have timespecs
402 AC_EGREP_HEADER(timespec,sys/time.h,[
403   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
404             Define if <sys/time.h> defines struct timespec.)
405 ])
406
407 dnl Check for threads library
408 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
409
410 dnl Default X headers and libraries
411 if test "x${x_includes}" = "xNONE"; then
412   x_includes="/usr/X11R6/include"
413 fi
414 if test "x${x_libraries}" = "xNONE"; then
415   x_libraries="/usr/X11R6/lib"
416 fi
417
418 dnl Build the gtk_main plugins?
419 NEED_GTK_MAIN=no
420 NEED_GNOME_MAIN=no
421
422 dnl Check for DPMS
423 if test "x${SYS}" != "xmingw32"
424 then
425   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
426   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
427     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
428       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
429                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
430     ])
431   ],,[
432     #include <X11/Xlib.h>
433   ])
434   CPPFLAGS="${CPPFLAGS_save}"
435 fi
436
437 dnl Check for ntohl, etc.
438 AC_CACHE_CHECK([for ntohl in sys/param.h],
439     [ac_cv_c_ntohl_sys_param_h],
440     [CFLAGS="${CFLAGS_save} -Wall -Werror"
441      AC_TRY_COMPILE([#include <sys/param.h>],
442         [void foo() { int meuh; ntohl(meuh); }],
443         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
444 if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
445     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
446 fi
447
448 dnl Check for inline function size limit
449 AC_CACHE_CHECK([if \$CC accepts -finline-limit],
450     [ac_cv_c_inline_limit],
451     [CFLAGS="${CFLAGS_save} -finline-limit-30000"
452      AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
453 if test "x${ac_cv_c_inline_limit}" != "xno"; then
454     CFLAGS_save="${CFLAGS_save} -finline-limit-30000"; CFLAGS="${CFLAGS_save}"
455     CXXFLAGS_save="${CXXFLAGS_save} -finline-limit-30000"; CXXFLAGS="${CXXFLAGS_save}"
456     OBJCFLAGS_save="${OBJCFLAGS_save} -finline-limit-30000"; OBJCFLAGS="${OBJCFLAGS_save}"
457 fi
458
459 # XXX: do this with an M4 macro?
460 #dnl Check for various -W flags
461 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
462 #do
463 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
464 #        [ac_cv_c_W${flag}],
465 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
466 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
467 #    if test "x${ac_cv_c_W${flag}}" != "xno"; then
468 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
469 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
470 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
471 #    fi
472 #done
473
474 AC_CACHE_CHECK([if \$CC accepts -Wall],
475     [ac_cv_c_Wall],
476     [CFLAGS="-Wall ${CFLAGS_save}"
477      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
478
479 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
480     [ac_cv_c_Wconversion],
481     [CFLAGS="-Wconversion ${CFLAGS_save}"
482      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
483
484 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
485     [ac_cv_c_Wunreachable_code],
486     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
487      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
488
489 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
490     [ac_cv_c_Wsign_compare],
491     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
492      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
493
494 AC_CACHE_CHECK([if \$CC accepts -Wdisabled-optimization],
495     [ac_cv_c_Wdisabled_optimization],
496     [CFLAGS="-Wdisabled-optimization ${CFLAGS_save}"
497      AC_TRY_COMPILE([],,ac_cv_c_Wdisabled_optimization=yes, ac_cv_c_Wdisabled_optimization=no)])
498
499 AC_CACHE_CHECK([if \$CC accepts -Winline],
500     [ac_cv_c_Winline],
501     [CFLAGS="-Winline ${CFLAGS_save}"
502      AC_TRY_COMPILE([],,ac_cv_c_Winline=yes, ac_cv_c_Winline=no)])
503
504 if test "x${ac_cv_c_Wall}" != "xno"; then
505     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
506     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
507     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
508 fi
509
510 if test "x${ac_cv_c_Wunreachable_code}" != "xno"; then
511 #    CFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
512 #    CXXFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
513 #    OBJCFLAGS_save="-Wunreachable-code ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
514
515     dnl -Wunreachable-code means gcc-3.x, we can use -Wconversion and we can
516     dnl activate -Winline for C++, it won't choke on system headers.
517 #    if test "x${ac_cv_c_Wconversion}" != "xno"; then
518 #        CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
519 #        CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
520 #        OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
521 #    fi
522     if test "x${ac_cv_c_Winline}" != "xno"; then
523         CXXFLAGS_save="-Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
524     fi
525
526 fi
527
528 if test "x${ac_cv_c_Wsign_compare}" != "xno"; then
529     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
530     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
531     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
532 fi
533
534 if test "x${ac_cv_c_Wdisabled_optimization}" != "xno"; then
535     CFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
536     CXXFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
537     OBJCFLAGS_save="-Wdisabled-optimization ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
538 fi
539
540 if test "x${ac_cv_c_Winline}" != "xno"; then
541     CFLAGS_save="-Winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
542     OBJCFLAGS_save="-Winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
543 fi
544
545 dnl Check for -pipe
546 AC_CACHE_CHECK([if \$CC accepts -pipe],
547     [ac_cv_c_pipe],
548     [CFLAGS="${CFLAGS_save} -pipe"
549      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
550 if test "x${ac_cv_c_pipe}" != "xno"; then
551     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
552     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
553     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
554 fi
555
556 dnl Check for various optimization flags
557 AC_CACHE_CHECK([if \$CC accepts -O3],
558     [ac_cv_c_o3],
559     [CFLAGS="${CFLAGS_save} -O3"
560      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
561 if test "x${ac_cv_c_o3}" != "xno"; then
562     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
563 else
564     AC_CACHE_CHECK([if \$CC accepts -O2],
565         [ac_cv_c_o2],
566         [CFLAGS="${CFLAGS_save} -O2"
567          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
568     if test "x${ac_cv_c_o2}" != "xno"; then
569         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
570     else
571         AC_CACHE_CHECK([if \$CC accepts -O],
572             [ac_cv_c_o],
573             [CFLAGS="${CFLAGS_save} -O"
574              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
575         if test "x${ac_cv_c_o}" != "xno"; then
576             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
577         fi
578     fi
579 fi
580
581 dnl Check for -ffast-math
582 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
583     [ac_cv_c_fast_math],
584     [CFLAGS="${CFLAGS_save} -ffast-math"
585      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
586 if test "x${ac_cv_c_fast_math}" != "xno"; then
587     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
588 fi
589
590 dnl Check for -funroll-loops
591 AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
592     [ac_cv_c_unroll_loops],
593     [CFLAGS="${CFLAGS_save} -funroll-loops"
594      AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
595 if test "x${ac_cv_c_unroll_loops}" != "xno"; then
596     CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
597 fi
598
599 dnl Check for -fomit-frame-pointer
600 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
601     [ac_cv_c_omit_frame_pointer],
602     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
603      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
604 if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
605     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
606     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
607     CFLAGS_i420_yuy2_mmx="${CFLAGS_i420_yuy2_mmx} -fomit-frame-pointer"
608 fi
609
610 dnl Check for -mdynamic-no-pic
611 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
612     [ac_cv_c_dynamic_no_pic],
613     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
614      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
615 if test "x${ac_cv_c_dynamic_no_pic}" != "xno"; then
616     CFLAGS_builtins="${CFLAGS_builtins} -mdynamic-no-pic"
617     CFLAGS_libvlc="${CFLAGS_libvlc} -mdynamic-no-pic"
618 fi
619
620 dnl Check for Darwin plugin linking flags
621 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
622     [ac_cv_ld_darwin],
623     [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
624      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
625 if test "x${ac_cv_ld_darwin}" != "xno"; then
626     LDFLAGS_plugins="${LDFLAGS_plugins} -bundle -undefined error -lcc_dynamic"
627 fi
628
629 dnl Check for standard plugin linking flags
630 AC_CACHE_CHECK([if \$CC accepts -shared],
631     [ac_cv_ld_plugins],
632     [CFLAGS="${CFLAGS_save} -shared"
633      AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
634 if test "x${ac_cv_ld_plugins}" != "xno"; then
635     LDFLAGS_plugins="${LDFLAGS_plugins} -shared"
636 fi
637
638 dnl Check for variadic macros
639 AC_CACHE_CHECK([for variadic cpp macros],
640     [ac_cv_cpp_variadic_macros],
641     [CFLAGS="${CFLAGS_save}"
642      AC_TRY_COMPILE(
643          [#include <stdio.h>
644           #define a(b,c...) printf(b,##c)],
645          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
646          ac_cv_cpp_variadic_macros=yes,
647          ac_cv_cpp_variadic_macros=no)])
648 if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
649     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
650 fi
651
652 dnl Checks for __attribute__(aligned()) directive
653 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
654     [ac_cv_c_attribute_aligned],
655     [ac_cv_c_attribute_aligned=0
656         CFLAGS="${CFLAGS_save} -Werror"
657     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
658         AC_TRY_COMPILE([],
659         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
660         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
661     done
662         CFLAGS="${CFLAGS_save}"])
663 if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
664     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
665         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
666 fi
667
668 dnl Checks for __attribute__(format()) directive
669 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
670     [ac_cv_c_attribute_format],
671     [ac_cv_c_attribute_format=no
672         CFLAGS="${CFLAGS_save} -Werror"
673         AC_TRY_COMPILE([],
674         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
675         [ac_cv_c_attribute_format=yes])
676         CFLAGS="${CFLAGS_save}"])
677 if test "x${ac_cv_c_attribute_format}" != "xno"; then
678     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
679 fi
680
681 dnl
682 dnl  Check the CPU
683 dnl
684 case "x${target_cpu}" in
685   x)
686     ARCH=unknown
687     ;;
688   *)
689     ARCH="${target_cpu}"
690     ;;
691 esac
692
693 case "${ARCH}" in
694   hppa64)
695     CFLAGS_mpeg_video="${CFLAGS_mpeg_video} -ffunction-sections"
696     ;;
697 esac
698
699 dnl
700 dnl  default modules
701 dnl
702 PLUGINS="${PLUGINS} dummy rc logger access_file memcpy"
703 PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
704 PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
705 #PLUGINS="${PLUGINS} a52old imdct downmix"
706 PLUGINS="${PLUGINS} lpcm a52"
707 PLUGINS="${PLUGINS} deinterlace invert adjust wall transform distort clone crop motionblur"
708 PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32"
709 PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler"
710 PLUGINS="${PLUGINS} trivial_channel_mixer headphone_channel_mixer"
711 PLUGINS="${PLUGINS} trivial_mixer spdif_mixer float32_mixer"
712 PLUGINS="${PLUGINS} aout_file"
713 #PLUGINS="${PLUGINS} scope"
714 PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
715 PLUGINS="${PLUGINS} id3 m3u"
716 PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm"
717 PLUGINS="${PLUGINS} access_udp access_http access_rtp ipv4 access_mms sap access_ftp"
718
719 dnl
720 dnl  Accelerated modules
721 dnl
722 MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
723 MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
724 THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
725 SSE_MODULES="imdctsse downmixsse"
726 ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
727
728 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
729     [ac_cv_mmx_inline],
730     [CFLAGS="${CFLAGS_save}"
731      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
732                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
733 if test "x${ac_cv_mmx_inline}" != "xno"; then
734   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
735 fi
736
737 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
738     [ac_cv_mmxext_inline],
739     [CFLAGS="${CFLAGS_save}"
740      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
741                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
742 if test "x${ac_cv_mmxext_inline}" != "xno"; then
743   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
744 fi
745
746 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
747     [ac_cv_3dnow_inline],
748     [CFLAGS="${CFLAGS_save}"
749      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
750                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
751 if test "x${ac_cv_3dnow_inline}" != "xno"; then
752   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
753   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
754 fi
755
756 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
757     [ac_cv_sse_inline],
758     [CFLAGS="${CFLAGS_save}"
759      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
760                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
761 if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
762   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
763   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
764 fi
765
766 # don't try to grok AltiVec with native mingw32 it doesn't work right now
767 # we should be able to remove this test with future versions of mingw32
768 if test "x${SYS}" != "xmingw32"; then
769 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
770     [ac_cv_altivec_inline],
771     [CFLAGS="${CFLAGS_save}"
772      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
773          ac_cv_altivec_inline=yes,
774          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
775           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
776             [ac_cv_altivec_inline="-Wa,-m7400"],
777             ac_cv_altivec_inline=no)
778          ])])
779 if test "x${ac_cv_altivec_inline}" != "xno"; then
780   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
781   if test "x${ac_cv_altivec_inline}" != "xyes"; then
782     CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_altivec_inline}"
783     CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_altivec_inline}"
784     CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_altivec_inline}"
785     CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_altivec_inline}"
786   fi
787   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
788 fi
789
790 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
791     [ac_cv_c_altivec],
792     [CFLAGS="${CFLAGS_save} -faltivec"
793      # Darwin test
794      AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
795         ac_cv_c_altivec=-faltivec, [
796         # Linux/PPC test
797         CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
798         AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
799             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
800         ])
801      CFLAGS="${CFLAGS_save}"])
802 if test "x${ac_cv_c_altivec}" != "xno"; then
803   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
804   CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_c_altivec}"
805   CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_c_altivec}"
806   CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_c_altivec}"
807   CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_c_altivec}"
808   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
809 fi
810
811 AC_CACHE_CHECK([if linker needs -framework vecLib],
812     [ac_cv_ld_altivec],
813     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
814      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
815      LDFLAGS="${LDFLAGS_save}"
816     ])
817 if test "x${ac_cv_ld_altivec}" != "xno"; then
818   LDFLAGS_idctaltivec="${LDFLAGS_idctaltivec} -framework vecLib"
819   LDFLAGS_motionaltivec="${LDFLAGS_motionaltivec} -framework vecLib"
820   LDFLAGS_memcpyaltivec="${LDFLAGS_memcpyaltivec} -framework vecLib"
821   LDFLAGS_vlc="${LDFLAGS_vlc} -framework vecLib"
822 fi
823 fi # end if mingw32
824
825 AC_ARG_WITH(,[])
826 AC_ARG_WITH(,[Optimization options:])
827
828 dnl
829 dnl  Special arch tuning
830 dnl
831 AC_ARG_WITH(tuning,
832 [  --with-tuning=ARCH      enable special tuning for an architecture
833                           (default i686 on IA-32 and 750 on PPC)])
834 if test "x${with_tuning}" != "x"; then
835     if test "x${target_cpu}" = "xpowerpc"; then
836         CFLAGS_TUNING="-mtune=${with_tuning}"
837     else
838         CFLAGS_TUNING="-mcpu=${with_tuning}"
839     fi
840 else
841     if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xi486" -o "x${target_cpu}" = "xi386"; then CFLAGS_TUNING="-mcpu=pentiumpro"
842     else
843         if test "x${target_cpu}" = "xpowerpc"; then CFLAGS_TUNING="-mtune=750"; fi
844     fi
845 fi
846
847 dnl
848 dnl  x86 accelerations
849 dnl
850 if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xx86" -o "x${target_cpu}" = "xi386"
851 then
852     ARCH="${ARCH} mmx"
853     PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
854 fi
855
856 dnl
857 dnl  Enable/disable optimizations
858 dnl
859 AC_ARG_ENABLE(optimizations,
860 [  --disable-optimizations disable compiler optimizations (default enabled)])
861 AM_CONDITIONAL(OPTIM, test "x${enable_optimizations}" != "xno")
862
863 dnl
864 dnl  AltiVec acceleration
865 dnl
866 AC_ARG_ENABLE(altivec,
867 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
868 [ if test "x${enable_altivec}" = "xyes"; then ARCH="${ARCH} altivec";
869     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
870 [ if test "x${target_cpu}" = "xpowerpc"; then ARCH="${ARCH} altivec";
871     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
872
873 dnl
874 dnl  Debugging mode
875 dnl
876 AC_ARG_ENABLE(debug,
877 [  --enable-debug          debug mode (default disabled)])
878 AM_CONDITIONAL(DEBUG, test "x${enable_debug}" = "xyes")
879
880 dnl
881 dnl  Enable release-specific flags
882 dnl
883 AC_ARG_ENABLE(release,
884 [  --enable-release        activate extra optimizations (default disabled)])
885 AM_CONDITIONAL(RELEASE, test "x${enable_release}" = "xyes")
886
887 dnl
888 dnl Stream output
889 dnl
890 AC_ARG_ENABLE(sout,
891   [  --enable-sout           Stream output modules (default enabled)])
892 if test "x${enable_sout}" != "xno"
893 then
894   PLUGINS="${PLUGINS} access_output_dummy access_output_udp access_output_file"
895   PLUGINS="${PLUGINS} mux_ts mux_ps mux_dummy"
896   PLUGINS="${PLUGINS} packetizer_mpegaudio packetizer_mpegvideo packetizer_a52"
897   PLUGINS="${PLUGINS} packetizer_mpeg4video packetizer_copy"
898 fi
899
900
901 dnl
902 dnl  Input plugins
903 dnl
904
905 AC_ARG_WITH(,[Input plugins:])
906
907 dnl
908 dnl  DVD module: optionally check for installed libdvdcss
909 dnl
910 AC_ARG_ENABLE(dvd,
911 [  --enable-dvd            DVD input module (default enabled)])
912 if test "x${enable_dvd}" != "xno"
913 then
914   AC_ARG_WITH(dvdcss,
915   [    --with-dvdcss=PATH    libdvdcss headers and libraries])
916   AC_ARG_WITH(dvdcss-tree,
917   [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
918   case "x${with_dvdcss}" in
919   x|xyes)
920     if test "x${with_dvdcss_tree}" = x
921     then
922       AC_CHECK_HEADERS(dvdcss/dvdcss.h,
923         [ PLUGINS="${PLUGINS} dvd"
924           LDFLAGS_dvd="${LDFLAGS_dvd} -ldvdcss"
925           LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvdcss" ],
926         [ AC_MSG_WARN([libdvdcss is no longer provided with vlc; please get libdvdcss from http://www.videolan.org/libdvdcss/ and build it. Then either use --with-dvdcss=<path/where/libdvdcss/was/installed> for dynamic linking (recommended under Unix) or --with-dvdcss-tree=<path/where/libdvdcss/was/built> for static linking (recommended under BeOS, Windows, MacOS X). Alternatively you can use --disable-dvd to disable the DVD plugin.])
927           AC_MSG_ERROR([cannot find libdvdcss headers]) ])
928     else
929       AC_MSG_CHECKING(for libdvdcss.a in ${with_dvdcss_tree})
930       real_dvdcss_tree="`cd ${with_dvdcss_tree} 2>/dev/null && pwd`"
931       if test "x${real_dvdcss_tree}" = "x"
932       then
933         dnl  The given directory can't be found
934         AC_MSG_RESULT(no)
935         AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
936       fi
937       if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
938       then
939         dnl  Use a custom libdvdcss
940         AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
941         BUILTINS="${BUILTINS} dvd"
942         LDFLAGS_dvd="${LDFLAGS_dvd} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
943         LDFLAGS_dvdcss="${LDFLAGS_dvdcss} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
944         CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${real_dvdcss_tree}/src"
945       else
946         dnl  The given libdvdcss wasn't built
947         AC_MSG_RESULT(no)
948         AC_MSG_ERROR([cannot find ${real_dvdcss_tree}/src/.libs/libdvdcss.a, make sure you compiled libdvdcss in ${with_dvdcss_tree}])
949       fi
950     fi
951   ;;
952   xno)
953     dnl  Compile without dvdcss (dlopen version, works only under Linux)
954     PLUGINS="${PLUGINS} dvd"
955     CPPFLAGS_dvd="${CPPFLAGS_dvd} -DGOD_DAMN_DMCA"
956     LDFLAGS_dvd="${LDFLAGS_dvd} -ldl"
957   ;;
958   *)
959     AC_MSG_CHECKING(for dvdcss headers in ${with_dvdcss})
960     if test -f ${with_dvdcss}/include/dvdcss/dvdcss.h
961     then
962       dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
963       AC_MSG_RESULT(yes)
964       PLUGINS="${PLUGINS} dvd"
965       LDFLAGS_dvd="${LDFLAGS_dvd} -L${with_dvdcss}/lib -ldvdcss"
966       LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -L${with_dvdcss}/lib -ldvdcss"
967       CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${with_dvdcss}/include"
968     else
969       dnl  No libdvdcss could be found, sorry
970       AC_MSG_RESULT(no)
971       AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
972     fi
973   ;;
974   esac
975 fi
976
977 dnl
978 dnl dvdread module: check for libdvdread
979 dnl
980 AC_ARG_ENABLE(dvdread,
981 [  --enable-dvdread        dvdread input module (default disabled)])
982 if test "x${enable_dvdread}" != "xno"
983 then
984   AC_ARG_WITH(dvdread,
985   [    --with-dvdread=PATH    libdvdread headers and libraries])
986   AC_ARG_WITH(dvdread-tree,
987   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
988   if test "x${with_dvdread}" = x
989   then
990     if test "x${with_dvdread_tree}" = x
991     then
992       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
993         [ PLUGINS="${PLUGINS} dvdread"
994           LDFLAGS_dvdread="${LDFLAGS_dvdread} -ldvdread ${LDFLAGS_dvdcss}" ],
995         [ if test "x${enable_dvdread}" != "x"
996           then
997             AC_MSG_WARN([Please get libdvdread from http://www.dtek.chalmers.se/groups/dvd/downloads.shtml])
998             AC_MSG_ERROR([cannot find libdvdread headers])
999           fi ])
1000     else
1001       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1002       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1003       if test "x${real_dvdread_tree}" = "x"
1004       then
1005         dnl  The given directory can't be found
1006         AC_MSG_RESULT(no)
1007         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1008       fi
1009       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1010       then
1011         dnl  Use a custom libdvdread
1012         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1013         BUILTINS="${BUILTINS} dvdread"
1014         LDFLAGS_dvdread="${LDFLAGS_dvdread} ${real_dvdread_tree}/dvdread/.libs/libdvdread.a ${LDFLAGS_dvdcss}"
1015         CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${real_dvdread_tree}"
1016       else
1017         dnl  The given libdvdread wasn't built
1018         AC_MSG_RESULT(no)
1019         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1020       fi
1021     fi
1022   else
1023     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1024     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1025     then
1026       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1027       AC_MSG_RESULT(yes)
1028       PLUGINS="${PLUGINS} dvdread"
1029       LDFLAGS_dvdread="${LDFLAGS_dvdread} -L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}"
1030       CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${with_dvdread}/include"
1031     else
1032       dnl  No libdvdread could be found, sorry
1033       AC_MSG_RESULT(no)
1034       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1035     fi
1036   fi
1037 fi
1038
1039 dnl
1040 dnl dvdplay module: check for libdvdplay
1041 dnl
1042 AC_ARG_ENABLE(dvdplay,
1043 [  --enable-dvdplay        dvdplay input module (default disabled)])
1044 if test "x${enable_dvdplay}" != "xno"
1045 then
1046   AC_ARG_WITH(dvdplay,
1047   [    --with-dvdplay=PATH    libdvdplay headers and libraries])
1048   AC_ARG_WITH(dvdplay-tree,
1049   [    --with-dvdplay-tree=PATH libdvdplay tree for static linking])
1050   if test "x${with_dvdplay}" = x
1051   then
1052     if test "x${with_dvdplay_tree}" = x
1053     then
1054       AC_CHECK_HEADERS(dvdplay/dvdplay.h,
1055         [ PLUGINS="${PLUGINS} dvdplay"
1056           LDFLAGS_dvdplay="${LDFLAGS_dvdplay} -ldvdplay ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
1057           CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread}" ],
1058         [ if test "x${enable_dvdplay}" != "x"
1059           then
1060             AC_MSG_WARN([Please get libdvdplay from http://www.videolan.org/.])
1061             AC_MSG_ERROR([cannot find libdvdplay headers])
1062           fi ])
1063     else
1064       AC_MSG_CHECKING(for libdvdplay.a in ${with_dvdplay_tree})
1065       real_dvdplay_tree="`cd ${with_dvdplay_tree} 2>/dev/null && pwd`"
1066       if test "x${real_dvdplay_tree}" = "x"
1067       then
1068         dnl  The given directory can't be found
1069         AC_MSG_RESULT(no)
1070         AC_MSG_ERROR([cannot cd to ${with_dvdplay_tree}])
1071       fi
1072       if test -f "${real_dvdplay_tree}/src/.libs/libdvdplay.a"
1073       then
1074         dnl  Use a custom libdvdplay
1075         AC_MSG_RESULT(${real_dvdplay_tree}/src/.libs/libdvdplay.a)
1076         BUILTINS="${BUILTINS} dvdplay"
1077         LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${real_dvdplay_tree}/src/.libs/libdvdplay.a ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
1078         CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread} -I${real_dvdplay_tree}/src"
1079       else
1080         dnl  The given libdvdplay wasn't built
1081         AC_MSG_RESULT(no)
1082         AC_MSG_ERROR([cannot find ${real_dvdplay_tree}/src/.libs/libdvdplay.a, make sure you compiled libdvdplay in ${with_dvdplay_tree}])
1083       fi
1084     fi
1085   else
1086     AC_MSG_CHECKING(for dvdplay headers in ${with_dvdplay})
1087     if test -f ${with_dvdplay}/include/dvdplay/dvdplay.h
1088     then
1089       dnl  Use ${with_dvdplay}/include/dvdplay/dvdplay.h
1090       AC_MSG_RESULT(yes)
1091       PLUGINS="${PLUGINS} dvdplay"
1092       LDFLAGS_dvdplay="${LDFLAGS_dvdplay} -L${with_dvdplay}/lib -ldvdplay ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
1093       CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread} -I${with_dvdplay}/include"
1094     else
1095       dnl  No libdvdplay could be found, sorry
1096       AC_MSG_RESULT(no)
1097       AC_MSG_ERROR([cannot find ${with_dvdplay}/include/dvdplay/dvdplay.h])
1098     fi
1099   fi
1100 fi
1101
1102 dnl
1103 dnl  libdvbpsi ts demux
1104 dnl
1105 AC_ARG_ENABLE(dvbpsi,
1106 [  --enable-dvbpsi         dvbpsi ts demux module (default enabled)])
1107 if test "x${enable_dvbpsi}" != "xno"
1108 then
1109   AC_ARG_WITH(dvbpsi,
1110   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1111   AC_ARG_WITH(dvbpsi,
1112   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1113   case "x${with_dvbpsi}" in
1114   x|xyes)
1115     if test "x${with_dvbpsi_tree}" = "x"
1116     then
1117       AC_CHECK_HEADERS(dvbpsi/dr.h,
1118         [ PLUGINS="${PLUGINS} ts_dvbpsi"
1119           LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -ldvbpsi" ],
1120         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1121         [#include <stdint.h>
1122 #include <dvbpsi/dvbpsi.h>
1123 #include <dvbpsi/descriptor.h>
1124 #include <dvbpsi/pat.h>
1125 #include <dvbpsi/pmt.h>])
1126     else
1127       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1128       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1129       if test "x${real_dvbpsi_tree}" = "x"
1130       then
1131         dnl  The given directory can't be found
1132         AC_MSG_RESULT(no)
1133         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1134       fi
1135       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1136       then
1137         dnl  Use a custom libdvbpsi
1138         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1139         BUILTINS="${BUILTINS} ts_dvbpsi"
1140         LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1141         CPPFLAGS_ts_dvbpsi="${CPPFLAGS_ts_dvbpsi} -I${real_dvbpsi_tree}/src"
1142       else
1143         dnl  The given libdvbpsi wasn't built
1144         AC_MSG_RESULT(no)
1145         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1146       fi
1147     fi
1148   ;;
1149   xno)
1150     dnl  Compile without dvbpsi
1151   ;;
1152   *)
1153     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1154     if test "x${with_dvbpsi}" = "x"
1155     then
1156       LDFLAGS_test=""
1157       CPPFLAGS_test=""
1158     else
1159       LDFLAGS_test="-L${with_dvbpsi}/lib"
1160       CPPFLAGS_test="-I${with_dvbpsi}/include"
1161     fi
1162     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1163     AC_CHECK_HEADER([dvbpsi/dr.h],[
1164       PLUGINS="${PLUGINS} ts_dvbpsi"
1165       LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} ${LDFLAGS_test} -ldvbpsi"
1166       CPPFLAGS_ts_dvbpsi="${CPPFLAGS_ts_dvbpsi} ${CPPFLAGS_test}"
1167       ],[
1168       if test "x${enable_dvbpsi}" != "x"
1169       then
1170         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])
1171       fi
1172     ])
1173     CPPFLAGS="${CPPFLAGS_save}"
1174   ;;
1175   esac
1176 fi
1177
1178 dnl
1179 dnl  Video4Linux plugin
1180 dnl
1181 AC_ARG_ENABLE(v4l,
1182   [  --enable-v4l            Video4Linux input support (default disabled)])
1183 if test "x${enable_v4l}" = "xyes"
1184 then
1185   AC_CHECK_HEADERS(libv4l/v4l.h, [
1186     PLUGINS="${PLUGINS} v4l"
1187    ],[])
1188 fi
1189
1190 dnl
1191 dnl  VCD module
1192 dnl
1193 AC_ARG_ENABLE(vcd,
1194   [  --enable-vcd            VCD support for Linux, FreeBSD, MacOS X and Win32 (default enabled)])
1195
1196 if test "x${enable_vcd}" != "xno"
1197 then
1198   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1199     PLUGINS="${PLUGINS} vcd"
1200   ])
1201
1202   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1203     PLUGINS="${PLUGINS} vcd"
1204     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1205   ])
1206
1207   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1208     PLUGINS="${PLUGINS} vcd"
1209     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1210   ])
1211
1212   if test "x${SYS}" = "xbsdi" -o "x${SYS}" = "xmingw32"
1213   then
1214     PLUGINS="${PLUGINS} vcd"
1215   fi
1216
1217   if test "x${SYS}" = "xdarwin"
1218   then
1219     PLUGINS="${PLUGINS} vcd"
1220     LDFLAGS_vcd="${LDFLAGS_vcd} -framework IOKit -framework CoreFoundation"
1221   fi
1222 fi
1223
1224 dnl
1225 dnl  Satellite input module
1226 dnl
1227 AC_ARG_ENABLE(satellite,
1228   [  --enable-satellite      satellite card support (default disabled)],
1229   [ if test "x${enable_satellite}" = "xyes"
1230     then
1231       PLUGINS="${PLUGINS} satellite"
1232     fi])
1233
1234 dnl
1235 dnl  ipv6 plugin - not for QNX yet
1236 dnl
1237 if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
1238 then
1239   have_ipv6=false
1240   AC_CHECK_FUNC(inet_pton,[have_ipv6=:],[
1241     AC_CHECK_LIB(resolv,inet_pton,
1242       [have_ipv6=:
1243        LDFLAGS_ipv6="${LDFLAGS_ipv6} -lresolv"])
1244   ])
1245   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
1246   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
1247     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=false])
1248   if ${have_ipv6}; then
1249     PLUGINS="${PLUGINS} ipv6"
1250   fi
1251 fi
1252 if test "x${SYS}" = "xmingw32"
1253 then
1254   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
1255   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
1256     PLUGINS="${PLUGINS} ipv6"],[AC_MSG_RESULT(no)])
1257 fi
1258
1259 dnl
1260 dnl  AVI demux plugin
1261 dnl
1262 AC_ARG_ENABLE(avi,
1263   [  --enable-avi            AVI demux module (default enabled)])
1264 if test "x${enable_avi}" != "xno"
1265 then
1266   PLUGINS="${PLUGINS} avi"
1267 fi
1268
1269 dnl
1270 dnl  ASF demux plugin
1271 dnl
1272 AC_ARG_ENABLE(asf,
1273   [  --enable-asf            ASF demux module (default enabled)])
1274 if test "x${enable_asf}" != "xno"
1275 then
1276   PLUGINS="${PLUGINS} asf"
1277 fi
1278
1279 dnl
1280 dnl  AAC demux plugin
1281 dnl
1282 AC_ARG_ENABLE(aac,
1283   [  --enable-aac            AAC demux module (default enabled)])
1284 if test "x${enable_aac}" != "xno"
1285 then
1286   PLUGINS="${PLUGINS} aac"
1287 fi
1288
1289 dnl
1290 dnl  ogg plugin
1291 dnl
1292 AC_ARG_ENABLE(ogg,
1293   [  --enable-ogg            Ogg demux support (default enabled)])
1294 if test "x${enable_ogg}" != "xno"
1295 then
1296   AC_CHECK_HEADERS(ogg/ogg.h, [
1297     AC_CHECK_LIB( ogg, oggpack_read, [
1298       PLUGINS="${PLUGINS} ogg"
1299       LDFLAGS_ogg="${LDFLAGS_ogg} -logg"
1300       AC_CHECK_LIB( ogg, oggpackB_read, [
1301         CPPFLAGS_ogg="${CPPFLAGS_ogg} -DHAVE_OGGPACKB"])])
1302    ],[])
1303 fi
1304
1305 dnl
1306 dnl  raw dv demux plugin
1307 dnl
1308 AC_ARG_ENABLE(rawdv,
1309   [  --enable-rawdv          raw dv demux module (default enabled)])
1310 if test "x${enable_rawdv}" != "xno"
1311 then
1312   PLUGINS="${PLUGINS} rawdv"
1313 fi
1314
1315 dnl
1316 dnl  Codec plugins
1317 dnl
1318
1319 AC_ARG_WITH(,[Codec plugins:])
1320
1321 dnl
1322 dnl  mad plugin
1323 dnl
1324 AC_ARG_ENABLE(mad,
1325   [  --enable-mad            libmad module (default disabled)])
1326 if test "x${enable_mad}" = "xyes"
1327 then
1328   AC_ARG_WITH(mad,
1329     [    --with-mad=PATH       path to libmad],[],[])
1330   if test "x${with_mad}" != "xno" -a "x${with_mad}" != "x"
1331   then
1332     CPPFLAGS_mad="${CPPFLAGS_mad} -I${with_mad}/include"
1333     LDFLAGS_mad="${LDFLAGS_mad} -L${with_mad}/lib"
1334   fi
1335
1336   AC_ARG_WITH(mad-tree,
1337     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
1338   if test "x${with_mad_tree}" != "xno" -a "x${with_mad_tree}" != "x"
1339   then
1340     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
1341     if test "x${real_mad_tree}" = "x"
1342     then
1343       dnl  The given directory can't be found
1344       AC_MSG_RESULT(no)
1345       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
1346     fi
1347     dnl  Use a custom libmad
1348     AC_MSG_CHECKING(for mad.h in ${real_mad_tree}/libmad)
1349     if test -f ${real_mad_tree}/libmad/mad.h
1350     then
1351       AC_MSG_RESULT(yes)
1352       CPPFLAGS_mad="${CPPFLAGS_mad} -I${real_mad_tree}/libmad"
1353       LDFLAGS_mad="${LDFLAGS_mad} -L${real_mad_tree}/libmad/.libs"
1354       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mad}"
1355       AC_CHECK_LIB(mad, mad_bit_init, [
1356         BUILTINS="${BUILTINS} mad"
1357         LDFLAGS_mad="${LDFLAGS_mad} -lmad"
1358         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
1359       ],[])
1360       LDFLAGS="${LDFLAGS_save}"
1361     else
1362       AC_MSG_RESULT(no)
1363       AC_MSG_ERROR([the specified tree doesn't have mad.h])
1364     fi
1365   else
1366     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mad}"
1367     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mad}"
1368     AC_CHECK_HEADERS(mad.h, ,
1369       [ AC_MSG_ERROR([Cannot find development headers for libmad...]) ])
1370     AC_CHECK_LIB(mad, mad_bit_init, [
1371       PLUGINS="${PLUGINS} mad"
1372       LDFLAGS_mad="${LDFLAGS_mad} -lmad" ],
1373       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
1374     CPPFLAGS="${CPPFLAGS_save}"
1375     LDFLAGS="${LDFLAGS_save}"
1376   fi
1377 fi
1378
1379 dnl
1380 dnl   libid3tag support
1381 dnl
1382 AC_CHECK_HEADERS(id3tag.h, [
1383   LDFLAGS_id3tag="${LDFLAGS_id3tag} -lz -lid3tag"
1384   PLUGINS="${PLUGINS} id3tag"])
1385
1386 dnl
1387 dnl  ffmpeg decoder plugin
1388 dnl
1389 AC_ARG_ENABLE(ffmpeg,
1390 [  --enable-ffmpeg         ffmpeg codec (default disabled)])
1391 if test "x${enable_ffmpeg}" = "xyes"
1392 then
1393   AC_ARG_WITH(ffmpeg,
1394     [    --with-ffmpeg=PATH    path to ffmpeg installation],[],[])
1395   if test "x${with_ffmpeg}" != "xno" -a "x${with_ffmpeg}" != "x"
1396   then
1397     CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${with_ffmpeg}/include/ffmpeg"
1398     LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -L${with_ffmpeg}/lib"
1399   fi
1400
1401   dnl Add postprocessing modules
1402   PLUGINS="${PLUGINS} postprocessing_c"
1403   if test "x${ac_cv_mmx_inline}" != "xno"; then
1404     PLUGINS="${PLUGINS} postprocessing_mmx"
1405   fi
1406
1407   if test "x${ac_cv_mmxext_inline}" != "xno"; then
1408     PLUGINS="${PLUGINS} postprocessing_mmxext"
1409   fi
1410
1411   AC_ARG_WITH(ffmpeg-tree,
1412   [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
1413   if test "x${with_ffmpeg_tree}" != "x"
1414   then
1415     AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
1416     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
1417     if test "x${real_ffmpeg_tree}" = x
1418     then
1419       dnl  The given directory can't be found
1420       AC_MSG_RESULT(no)
1421       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
1422     fi
1423     if test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"
1424     then
1425       dnl  Use a custom libffmpeg
1426       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
1427       BUILTINS="${BUILTINS} ffmpeg"
1428       LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} ${real_ffmpeg_tree}/libavcodec/libavcodec.a"
1429       CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${real_ffmpeg_tree}/libavcodec"
1430     else
1431       dnl  The given libavcodec wasn't built
1432       AC_MSG_RESULT(no)
1433       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
1434     fi
1435   else
1436     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
1437     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
1438     AC_CHECK_LIB(avcodec, avcodec_init, [
1439       BUILTINS="${BUILTINS} ffmpeg"
1440       LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lavcodec" ],
1441       [ AC_MSG_ERROR([Cannot find libavcodec library...]) ])
1442     LDFLAGS="${LDFLAGS_save}"
1443     CPPFLAGS="${CPPFLAGS_save}"
1444   fi
1445 fi
1446
1447 dnl
1448 dnl  faad decoder plugin
1449 dnl
1450 AC_ARG_ENABLE(faad,
1451 [  --enable-faad           faad codec (default disabled)])
1452 if test "x${enable_faad}" = "xyes"
1453 then
1454   AC_ARG_WITH(faad,
1455     [    --with-faad=PATH      path to faad installation],[],[])
1456   if test "x${with_faad}" != "xno" -a "x${with_faad}" != "x"
1457   then
1458     CPPFLAGS_faad="${CPPFLAGS_faad} -I${with_faad}/include"
1459     LDFLAGS_faad="${LDFLAGS_faad} -L${with_faad}/lib"
1460   fi
1461   LDFLAGS_faad="${LDFLAGS_faad}"
1462
1463   AC_ARG_WITH(faad-tree,
1464   [    --with-faad-tree=PATH faad tree for static linking])
1465   if test "x${with_faad_tree}" != "x"
1466   then
1467     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
1468     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
1469     if test "x${real_faad_tree}" = x
1470     then
1471       dnl  The given directory can't be found
1472       AC_MSG_RESULT(no)
1473       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
1474     fi
1475     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
1476     then
1477       dnl  Use a custom faad
1478       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
1479       BUILTINS="${BUILTINS} faad"
1480       LDFLAGS_faad="${LDFLAGS_faad} ${real_faad_tree}/libfaad/.libs/libfaad.a"
1481       CPPFLAGS_faad="${CPPFLAGS_faad} -I${real_faad_tree}/include"
1482     else
1483       dnl  The given libfaad wasn't built
1484       AC_MSG_RESULT(no)
1485       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
1486     fi
1487   else
1488     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
1489     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
1490     AC_CHECK_HEADERS(faad.h, ,
1491       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
1492     AC_CHECK_LIB(faad, faacDecOpen, [
1493       PLUGINS="${PLUGINS} faad"
1494       LDFLAGS_faad="${LDFLAGS_faad} -lfaad" ],
1495       [ AC_MSG_ERROR([Cannot find libfaad library...]) ])
1496     LDFLAGS="${LDFLAGS_save}"
1497     CPPFLAGS="${CPPFLAGS_save}"
1498   fi
1499 fi
1500
1501
1502 dnl
1503 dnl  xvid decoder plugin
1504 dnl
1505 AC_ARG_ENABLE(xvid,
1506 [  --enable-xvid           xvid codec (default disabled)])
1507 if test "x${enable_xvid}" = "xyes"
1508 then
1509   AC_ARG_WITH(xvid,
1510     [    --with-xvid=PATH      path to xvid installation],[],[])
1511   if test "x${with_xvid}" != "xno" -a "x${with_xvid}" != "x"
1512   then
1513     CPPFLAGS_xvid="${CPPFLAGS_xvid} -I${with_xvid}/include"
1514     LDFLAGS_xvid="${LDFLAGS_xvid} -L${with_xvid}/lib"
1515   fi
1516   LDFLAGS_xvid="${LDFLAGS_xvid}"
1517
1518   AC_ARG_WITH(xvid-tree,
1519   [    --with-xvid-tree=PATH xvid tree for static linking])
1520   if test "x${with_xvid_tree}" != "x"
1521   then
1522     AC_MSG_CHECKING(for libxvidcore.a in ${with_xvid_tree})
1523     real_xvid_tree="`cd ${with_xvid_tree} 2>/dev/null && pwd`"
1524     if test "x${real_xvid_tree}" = x
1525     then
1526       dnl  The given directory can't be found
1527       AC_MSG_RESULT(no)
1528       AC_MSG_ERROR([cannot cd to ${with_xvid_tree}])
1529     fi
1530     if test -f "${real_xvid_tree}/build/generic/libxvidcore.a"
1531     then
1532       dnl  Use a custom xvid
1533       AC_MSG_RESULT(${real_xvid_tree}/build/generic/libxvidcore.a)
1534       BUILTINS="${BUILTINS} xvid"
1535       LDFLAGS_xvid="${LDFLAGS_xvid} ${real_xvid_tree}/build/generic/libxvidcore.a"
1536       CPPFLAGS_xvid="${CPPFLAGS_xvid} -I${real_xvid_tree}/src"
1537     else
1538       dnl  The given libxvidcore wasn't built
1539       AC_MSG_RESULT(no)
1540       AC_MSG_ERROR([cannot find ${real_xvid_tree}/build/generic/libxvidcore.a, make sure you compiled libxvidcore in ${with_xvid_tree}])
1541     fi
1542   else
1543     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xvid}"
1544     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xvid}"
1545     AC_CHECK_HEADERS(xvid.h, ,
1546       [ AC_MSG_ERROR([Cannot find development headers for libxvidcore...]) ])
1547     AC_CHECK_LIB(xvid, xvid_init, [
1548       PLUGINS="${PLUGINS} xvid"
1549       LDFLAGS_xvid="${LDFLAGS_xvid} -lxvid" ],
1550       [ AC_MSG_ERROR([Cannot find libxvidcore library...]) ])
1551     LDFLAGS="${LDFLAGS_save}"
1552     CPPFLAGS="${CPPFLAGS_save}"
1553   fi
1554 fi
1555
1556
1557
1558 dnl
1559 dnl MP4 module
1560 dnl
1561 AC_ARG_ENABLE(mp4,
1562   [  --enable-mp4            MP4 demux module (default enabled)])
1563 if test "x${enable_mp4}" != "xno"
1564 then
1565
1566     PLUGINS="${PLUGINS} mp4"
1567     AC_CHECK_HEADERS(zlib.h,
1568               [ LDFLAGS_mp4="${LDFLAGS_mp4} -lz" ] )
1569 fi
1570
1571 dnl
1572 dnl  a52 AC3 decoder plugin
1573 dnl
1574 AC_ARG_ENABLE(a52,
1575   [  --enable-a52            A/52 support with liba52 (default enabled)])
1576 if test "x${enable_a52}" != "xno"
1577 then
1578   AC_ARG_WITH(a52,
1579     [    --with-a52=PATH       a52 headers and libraries])
1580   AC_ARG_WITH(a52-tree,
1581     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
1582   if test "x${with_a52_tree}" != "xno" -a "x${with_a52_tree}" != "x"
1583   then
1584     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
1585     if test "x${real_a52_tree}" = "x"
1586     then
1587       dnl  The given directory can't be found
1588       AC_MSG_RESULT(no)
1589       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
1590     fi
1591     dnl  Use a custom a52dec
1592     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
1593     if test -f ${real_a52_tree}/include/a52.h
1594     then
1595       AC_MSG_RESULT(yes)
1596       CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} -I${real_a52_tree}"
1597       LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -L${real_a52_tree}/liba52/.libs"
1598       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
1599       AC_CHECK_LIB(a52, a52_free, [
1600         BUILTINS="${BUILTINS} a52tofloat32"
1601         LDFLAGS_a52tofloat32="-la52 ${LDFLAGS_a52tofloat32}"
1602         CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} -DUSE_A52DEC_TREE"
1603         ],[
1604         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
1605         then
1606           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
1607         else
1608           AC_MSG_ERROR([the specified tree hasn't been compiled])
1609         fi
1610       ])
1611       LDFLAGS="${LDFLAGS_save}"
1612     else
1613       AC_MSG_RESULT(no)
1614       AC_MSG_ERROR([the specified tree doesn't have a52.h])
1615     fi
1616   else
1617     if test "x${with_a52}" = "x"
1618     then
1619       LDFLAGS_test=""
1620       CPPFLAGS_test=""
1621     else
1622       LDFLAGS_test="-L${with_a52}/lib"
1623       CPPFLAGS_test="-I${with_a52}/include"
1624     fi
1625     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1626     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test}"
1627     AC_CHECK_HEADERS(a52dec/a52.h, [
1628       AC_CHECK_LIB(a52, a52_free, [
1629         PLUGINS="${PLUGINS} a52tofloat32"
1630         LDFLAGS_a52tofloat32="${LDFLAGS_test} -la52 ${LDFLAGS_a52tofloat32}"
1631         CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} ${CPPFLAGS_test}"
1632       ],[
1633         if test "x${enable_dvbpsi}" != "x"
1634         then
1635           AC_MSG_ERROR([Could not find a52 on your system: you may get it from http://liba52.sf.net])
1636         fi
1637       ])
1638     ])
1639     CPPFLAGS="${CPPFLAGS_save}"
1640     LDFLAGS="${LDFLAGS_save}"
1641   fi
1642 fi
1643
1644 dnl
1645 dnl  cinepak plugin
1646 dnl
1647 AC_ARG_ENABLE(cinepak,
1648   [  --enable-cinepak        Cinepak decoder (default enabled)])
1649 if test "x${enable_cinepak}" != "xno"
1650 then
1651   PLUGINS="${PLUGINS} cinepak"
1652 fi
1653
1654 dnl
1655 dnl  DV plugin
1656 dnl
1657 AC_ARG_ENABLE(dv,
1658   [  --enable-dv             DV decoder support (default disabled)])
1659 if test "x${enable_dv}" = "xyes"
1660 then
1661   AC_CHECK_HEADERS(libdv/dv.h, [
1662     PLUGINS="${PLUGINS} dv"
1663     LDFLAGS_dv="${LDFLAGS_dv} -ldv"
1664    ],[])
1665 fi
1666
1667 dnl
1668 dnl  Vorbis plugin
1669 dnl
1670 AC_ARG_ENABLE(vorbis,
1671   [  --enable-vorbis         Vorbis decoder support (default enabled)])
1672 if test "x${enable_vorbis}" != "xno"
1673 then
1674   AC_CHECK_HEADERS(vorbis/codec.h, [
1675     PLUGINS="${PLUGINS} vorbis"
1676     LDFLAGS_vorbis="${LDFLAGS_vorbis} -lvorbis -logg"
1677    ],[])
1678 fi
1679
1680 dnl
1681 dnl  Tremor plugin
1682 dnl
1683 AC_ARG_ENABLE(tremor,
1684   [  --enable-tremor         Tremor decoder support (default disabled)])
1685 if test "x${enable_tremor}" = "xyes"
1686 then
1687   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
1688     PLUGINS="${PLUGINS} tremor"
1689     LDFLAGS_tremor="${LDFLAGS_tremor} -lvorbisidec -logg"
1690    ],[])
1691 fi
1692
1693 dnl
1694 dnl  tarkin decoder plugin
1695 dnl
1696 AC_ARG_ENABLE(tarkin,
1697 [  --enable-tarkin         experimental tarkin codec (default disabled)])
1698 if test "x${enable_tarkin}" = "xyes"
1699 then
1700   AC_ARG_WITH(tarkin-tree,
1701   [    --with-tarkin-tree=PATH tarkin tree for static linking])
1702   if test "x${with_tarkin_tree}" != "x"
1703   then
1704     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
1705     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
1706     if test -f "${real_tarkin_tree}/tarkin.o"
1707     then
1708       BUILTINS="${BUILTINS} tarkin"
1709       CPPFLAGS_tarkin="${CPPFLAGS_tarkin} -I${real_tarkin_tree}"
1710       LDFLAGS_tarkin="${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"
1711       AC_MSG_RESULT(yes)
1712     else
1713       dnl  The given tarkin tree wasn't built
1714       AC_MSG_RESULT(no)
1715       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
1716                     make sure you compiled tarkin in ${with_tarkin_tree}])
1717     fi
1718   fi
1719 fi
1720
1721 dnl
1722 dnl  theora decoder plugin
1723 dnl
1724 AC_ARG_ENABLE(theora,
1725 [  --enable-theora         experimental theora codec (default disabled)])
1726 if test "x${enable_theora}" = "xyes"
1727 then
1728   AC_CHECK_HEADERS(theora/theora.h, [
1729     AC_CHECK_LIB(theora, theora_granule_time, [
1730       BUILTINS="${BUILTINS} theora"
1731       LDFLAGS_theora="${LDFLAGS_theora} -ltheora -logg" ],[
1732       AC_MSG_ERROR([libtheora doesn't appear to be installed on you system.
1733 You also need to check that you have a libogg posterior to the 1.0 release.])],
1734       [-logg])
1735   ])
1736 fi
1737
1738 dnl
1739 dnl  Video plugins
1740 dnl
1741
1742 AC_ARG_WITH(,[Video plugins:])
1743
1744 dnl
1745 dnl  X11 module
1746 dnl  (enabled by default except on win32)
1747 dnl
1748 AC_ARG_ENABLE(x11,
1749   [  --enable-x11            X11 support (default enabled)])
1750 if test "x${enable_x11}" != "xno" &&
1751   (test "x${SYS}" != "xmingw32" || test "x${enable_x11}" = "xyes"); then
1752   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
1753   AC_CHECK_HEADERS(X11/Xlib.h, [
1754     PLUGINS="${PLUGINS} x11"
1755     LDFLAGS_x11="${LDFLAGS_x11} -L${x_libraries} -lX11 -lXext"
1756     CPPFLAGS_x11="${CPPFLAGS_x11} -I${x_includes}"
1757   ])
1758   CPPFLAGS="${CPPFLAGS_save}"
1759 fi
1760
1761 dnl
1762 dnl  XVideo module
1763 dnl  (enabled by default except on win32)
1764 dnl
1765 AC_ARG_ENABLE(xvideo,
1766   [  --enable-xvideo         XVideo support (default enabled)])
1767 if test "x${enable_xvideo}" != "xno" &&
1768   (test "x${SYS}" != "xmingw32" || test "x${enable_xvideo}" = "xyes"); then
1769   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
1770   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
1771     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
1772     AC_CHECK_LIB(Xv_pic,XvPutImage,
1773       # We have Xv_pic, that's good, we can build an xvideo.so plugin !
1774       PLUGINS="${PLUGINS} xvideo"
1775       LDFLAGS_xvideo="${LDFLAGS_xvideo} -L${x_libraries} -lX11 -lXext -lXv_pic"
1776       CPPFLAGS_xvideo="${CPPFLAGS_xvideo} -I${x_includes}",
1777       AC_CHECK_LIB(Xv,XvPutImage,
1778         # We don't have Xv_pic, but we have Xv, let's make xvideo.a as builtin
1779         PLUGINS="${PLUGINS} xvideo"
1780         LDFLAGS_xvideo="${LDFLAGS_xvideo} -L${x_libraries} -lX11 -lXext -lXv"
1781         CPPFLAGS_xvideo="${CPPFLAGS_xvideo} -I${x_includes}",
1782         # Otherwise... well, do nothing.
1783         :
1784       )
1785     )
1786     CFLAGS="${CFLAGS_save}"
1787   ]
1788   CPPFLAGS="${CPPFLAGS_save}")
1789 fi
1790
1791 dnl
1792 dnl  SDL module
1793 dnl
1794 AC_ARG_ENABLE(sdl,
1795   [  --enable-sdl            SDL support (default enabled)])
1796 if test "x${enable_sdl}" != "xno"
1797 then
1798   SDL_PATH="${PATH}"
1799   AC_ARG_WITH(sdl-config-path,
1800     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
1801     [ if test "x${with_sdl_config_path}" != "xno"
1802       then
1803         SDL_PATH="${with_sdl_config_path}:${PATH}"
1804       fi ])
1805   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
1806   SDL_CONFIG="${SDL12_CONFIG}"
1807   SDL_HEADER="SDL12/SDL.h"
1808   if test "x${SDL_CONFIG}" = "xno"
1809   then
1810     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
1811     SDL_CONFIG=${SDL11_CONFIG}
1812     SDL_HEADER="SDL11/SDL.h"
1813   fi
1814   if test "x${SDL_CONFIG}" = "xno"
1815   then
1816     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
1817     SDL_HEADER="SDL/SDL.h"
1818   fi
1819   # check for cross-compiling
1820   SDL_PREFIX=
1821   AC_ARG_WITH(sdl-prefix,
1822     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
1823                                e.g use as:
1824                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
1825   if test "x${with_sdl_prefix}" != "xno" -a "x${with_sdl_prefix}" != "x"
1826   then
1827     SDL_PREFIX="--prefix=${with_sdl_prefix}"
1828   fi
1829   if test "x${SDL_CONFIG}" != "xno"
1830   then
1831     PLUGINS="${PLUGINS} vout_sdl aout_sdl"
1832     CFLAGS_vout_sdl="${CFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
1833     LDFLAGS_vout_sdl="${LDFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
1834     CFLAGS_aout_sdl="${CFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
1835     LDFLAGS_aout_sdl="${LDFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
1836     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
1837     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
1838       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
1839       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
1840           As a last resort we also test for SDL.h presence),
1841       [ AC_MSG_ERROR([The development package for SDL is not installed.
1842 Please install it and try again. Alternatively you can also configure with
1843 --disable-sdl.])
1844       ])])
1845     CPPFLAGS="${CPPFLAGS_save}"
1846     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
1847     then
1848       AC_MSG_ERROR([The development package for SDL is not installed.
1849 Please install it and try again. Alternatively you can also configure with
1850 --disable-sdl.])
1851     fi
1852   elif test "x${enable_sdl}" =  "xyes"
1853   then
1854     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
1855 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
1856     ])
1857   fi
1858 fi
1859
1860 dnl
1861 dnl  Qt Embedded module
1862 dnl  (disabled by default)
1863 dnl
1864 AC_ARG_ENABLE(qte,
1865   [  --enable-qte            QT Embedded support (default disabled)])
1866 if test "x${enable_qte}" = "xyes"
1867 then
1868   AC_ARG_WITH(qte,
1869   [    --with-qte=PATH       Qt Embedded headers and libraries])
1870   if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
1871   then
1872     LDFLAGS_qte="${LDFLAGS_qte} -L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
1873     CPPFLAGS_qte="${CPPFLAGS_qte} -I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
1874   else
1875     LDFLAGS_qte="${LDFLAGS_qte} -L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
1876     CPPFLAGS_qte="${CPPFLAGS_qte} -I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
1877   fi
1878   PLUGINS="${PLUGINS} qte"
1879   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
1880   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
1881     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
1882   ] )
1883   CPPFLAGS="${CPPFLAGS_save}"
1884 fi
1885
1886 dnl
1887 dnl  Windows DirectX module
1888 dnl
1889 AC_ARG_ENABLE(directx,
1890   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
1891 if test "x${enable_directx}" != "xno"
1892 then
1893   if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"
1894   then
1895     AC_ARG_WITH(directx,
1896     [    --with-directx=PATH   Win32 DirectX headers])
1897     if test "x${with_directx}" = "x"
1898     then
1899       AC_CHECK_HEADERS(ddraw.h,
1900       [ PLUGINS="${PLUGINS} vout_directx aout_directx"
1901         LDFLAGS_vout_directx="${LDFLAGS_directx} -lgdi32" ])
1902     else
1903       AC_MSG_CHECKING(for directX headers in ${with_directx})
1904       if test -f ${with_directx}/ddraw.h
1905       then
1906         PLUGINS="${PLUGINS} vout_directx aout_directx"
1907         LDFLAGS_vout_directx="${LDFLAGS_directx} -lgdi32"
1908         CPPFLAGS_vout_directx="${CPPFLAGS_vout_directx} -I${with_directx}"
1909         CPPFLAGS_aout_directx="${CPPFLAGS_aout_directx} -I${with_directx}"
1910         AC_MSG_RESULT(yes)
1911       else
1912         AC_MSG_RESULT(no)
1913         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
1914       fi
1915     fi
1916   fi
1917 fi
1918
1919 dnl
1920 dnl  Linux framebuffer module
1921 dnl
1922 AC_ARG_ENABLE(fb,
1923   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
1924     if test "x${enable_fb}" != "xno"
1925     then
1926       AC_CHECK_HEADERS(linux/fb.h, [
1927         PLUGINS="${PLUGINS} fb"
1928       ])
1929     fi
1930
1931 dnl
1932 dnl  Linux MGA module
1933 dnl
1934 AC_ARG_ENABLE(mga,
1935   [  --enable-mga            Linux kernel Matrox support (default disabled)],
1936   [ if test "x${enable_mga}" = "xyes"
1937     then
1938       PLUGINS="${PLUGINS} mga xmga"
1939     fi ])
1940
1941 dnl
1942 dnl  SVGAlib module
1943 dnl
1944 AC_ARG_ENABLE(svgalib,
1945   [  --enable-svgalib        SVGAlib support (default disabled)])
1946 if test "x${enable_svgalib}" = "xyes"
1947 then
1948   PLUGINS="${PLUGINS} svgalib"
1949   LDFLAGS_svgalib="${LDFLAGS_svgalib} -lvgagl -lvga"
1950 fi
1951
1952 dnl
1953 dnl  GGI module
1954 dnl
1955 AC_ARG_ENABLE(ggi,
1956   [  --enable-ggi            GGI support (default disabled)])
1957 if test "x${enable_ggi}" = "xyes"
1958 then
1959   PLUGINS="${PLUGINS} ggi"
1960   LDFLAGS_ggi="${LDFLAGS_ggi} -lggi"
1961   AC_ARG_WITH(ggi,
1962     [    --with-ggi=PATH       path to libggi],
1963     [ if test "x${with_ggi}" != "xno" -a "x${with_ggi}" != "x"
1964       then
1965         CPPFLAGS_ggi="${CPPFLAGS_ggi} -I${with_ggi}/include"
1966         LDFLAGS_ggi="${LDFLAGS_ggi} -L${with_ggi}/lib"
1967       fi ])
1968 fi
1969
1970 dnl
1971 dnl  Glide module
1972 dnl
1973 AC_ARG_ENABLE(glide,
1974   [  --enable-glide          Glide (3dfx) support (default disabled)])
1975 if test "x${enable_glide}" = "xyes"
1976 then
1977   PLUGINS="${PLUGINS} glide"
1978   LDFLAGS_glide="${LDFLAGS_glide} -lglide2x -lm"
1979   CPPFLAGS_glide="${CPPFLAGS_glide} -I/usr/include/glide"
1980   AC_ARG_WITH(glide,
1981     [    --with-glide=PATH     path to libglide],
1982     [ if test "x${with_glide}" != "xno" -a "x${with_glide}" != "x"
1983       then
1984         CPPFLAGS_glide="${CPPFLAGS_glide} -I${with_glide}/include"
1985         LDFLAGS_glide="${LDFLAGS_glide} -L${with_glide}/lib"
1986       fi ])
1987 fi
1988
1989 dnl
1990 dnl  AA plugin
1991 dnl
1992 AC_ARG_ENABLE(aa,
1993   [  --enable-aa             aalib output (default disabled)])
1994 if test "x${enable_aa}" = "xyes"
1995 then
1996   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
1997   if test "x${have_aa}" = "xtrue"
1998   then
1999     PLUGINS="${PLUGINS} aa"
2000     LDFLAGS_aa="${LDFLAGS_aa} -laa"
2001   fi
2002 fi
2003
2004 dnl
2005 dnl  win32 GDI plugin
2006 dnl
2007 AC_ARG_ENABLE(wingdi,
2008   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
2009 if test "x${enable_wingdi}" != "xno"; then
2010   if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"; then
2011     PLUGINS="${PLUGINS} wingdi"
2012     LDFLAGS_wingdi="${LDFLAGS_wingdi} -lgdi32"
2013   fi
2014 fi
2015
2016 dnl
2017 dnl  Audio plugins
2018 dnl
2019
2020 AC_ARG_WITH(,[Audio plugins:])
2021
2022 dnl
2023 dnl  OSS /dev/dsp module (enabled by default except on win32)
2024 dnl
2025 AC_ARG_ENABLE(oss,
2026   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
2027
2028 if test "x${enable_oss}" != "xno" &&
2029   (test "x${SYS}" != "xmingw32" || test "x${enable_oss}" = "xyes")
2030 then
2031   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
2032     PLUGINS="${PLUGINS} oss"
2033     AC_CHECK_LIB(ossaudio,main,LDFLAGS_oss="${LDFLAGS_oss} -lossaudio")
2034   ])
2035 fi
2036
2037 dnl
2038 dnl  Esound module
2039 dnl
2040 AC_ARG_ENABLE(esd,
2041   [  --enable-esd            Esound library support (default disabled)],
2042   [if test "x${enable_esd}" = "xyes"
2043    then
2044      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
2045      if test "x${ESD_CONFIG}" != "xno"
2046      then
2047        PLUGINS="${PLUGINS} esd"
2048        CFLAGS_esd="${CFLAGS_esd} `${ESD_CONFIG} --cflags`"
2049        LDFLAGS_esd="${LDFLAGS_esd} `${ESD_CONFIG} --libs`"
2050      fi
2051    fi])
2052
2053 dnl
2054 dnl  aRts module
2055 dnl
2056 AC_ARG_ENABLE(arts,
2057   [  --enable-arts           aRts sound server (default disabled)],
2058   [if test "x${enable_arts}" = "xyes"
2059    then
2060      AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
2061      if test "x${ARTS_CONFIG}" != "xno"
2062      then
2063        PLUGINS="${PLUGINS} arts"
2064        CFLAGS_arts="${CFLAGS_arts} `${ARTS_CONFIG} --cflags`"
2065        LDFLAGS_arts="${LDFLAGS_arts} `${ARTS_CONFIG} --libs `"
2066      fi
2067    fi])
2068
2069 dnl
2070 dnl  ALSA module
2071 dnl
2072 AC_ARG_ENABLE(alsa,
2073   [  --enable-alsa           ALSA sound support for Linux (default disabled)],
2074   [if test "x${enable_alsa}" = "xyes"
2075    then
2076      AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
2077      if test "x${have_alsa}" = "xtrue"
2078      then
2079        PLUGINS="${PLUGINS} alsa"
2080        LDFLAGS_alsa="${LDFLAGS_alsa} -lasound -lm -ldl"
2081      fi
2082    fi])
2083
2084 dnl
2085 dnl  win32 waveOut plugin
2086 dnl
2087 AC_ARG_ENABLE(waveout,
2088   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
2089 if test "x${enable_waveout}" != "xno"; then
2090   if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"; then
2091     PLUGINS="${PLUGINS} waveout"
2092     LDFLAGS_waveout="-lwinmm"
2093   fi
2094 fi
2095
2096 dnl
2097 dnl  Interface plugins
2098 dnl
2099
2100 AC_ARG_WITH(,[Interface plugins:])
2101
2102 dnl special case for BeOS
2103 if test "x${SYS}" = "xbeos"
2104 then
2105     PLUGINS="${PLUGINS} beos"
2106 fi
2107
2108 dnl
2109 dnl  Gtk+ module
2110 dnl
2111 AC_ARG_ENABLE(gtk,
2112   [  --enable-gtk            Gtk+ support (default enabled)])
2113 if test "x${enable_gtk}" != "xno"
2114 then
2115   GTK_PATH="${PATH}"
2116   AC_ARG_WITH(gtk-config-path,
2117     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
2118     [ if test "x${with_gtk_config_path}" != "xno"
2119       then
2120         GTK_PATH="${with_gtk_config_path}:${PATH}"
2121       fi ])
2122   # look for gtk-config
2123   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
2124   GTK_CONFIG=${GTK12_CONFIG}
2125   if test "x${GTK_CONFIG}" = "xno"
2126   then
2127     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
2128   fi
2129   if test "x${GTK_CONFIG}" != "xno"
2130   then
2131     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
2132     then
2133       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.])
2134     fi
2135     if test "x${SYS}" != "xmingw32"; then
2136       CFLAGS_gtk="${CFLAGS_gtk} `${GTK_CONFIG} --cflags gtk gthread`"
2137       LDFLAGS_gtk="${LDFLAGS_gtk} `${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`"
2138     else
2139       CFLAGS_gtk="${CFLAGS_gtk} `${GTK_CONFIG} --cflags gtk`"
2140       LDFLAGS_gtk="${LDFLAGS_gtk} `${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
2141     fi
2142     # now look for the gtk.h header
2143     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
2144     ac_cv_gtk_headers=yes
2145     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
2146       ac_cv_gtk_headers=no
2147       echo "Cannot find gtk development headers."
2148     ])
2149     if test "x${ac_cv_gtk_headers}" = "xyes"
2150     then
2151       PLUGINS="${PLUGINS} gtk"
2152       if test "x${SYS}" != "xmingw32"; then
2153         NEED_GTK_MAIN=yes
2154       fi
2155       ALIASES="${ALIASES} gvlc"
2156     fi
2157     CPPFLAGS="${CPPFLAGS_save}"
2158   fi
2159 fi
2160
2161 dnl
2162 dnl  Familiar module uses Gtk+ library
2163 dnl
2164 AC_ARG_ENABLE(familiar,
2165   [  --enable-familiar       Familiar Gtk+ support (default disabled)])
2166 if test "x${enable_familiar}" = "xyes"
2167 then
2168   GTK_PATH="${PATH}"
2169   AC_ARG_WITH(gtk-config-path,
2170     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
2171     [ if test "x${with_gtk_config_path}" != "xno"
2172       then
2173         GTK_PATH="${with_gtk_config_path}:${PATH}"
2174       fi ])
2175   # look for gtk-config
2176   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
2177   GTK_CONFIG=${GTK12_CONFIG}
2178   if test "x${GTK_CONFIG}" = "xno"
2179   then
2180     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
2181   fi
2182   # check for cross-compiling
2183   GTK_PREFIX=
2184   AC_ARG_WITH(gtk-prefix,
2185     [    --with-gtk-prefix=PATH path to libgtk (needed for cross-compiling),
2186                           e.g use as:
2187                           --with-gtk-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
2188   if test "x${with_gtk_prefix}" != "xno" -a "x${with_gtk_prefix}" != "x"
2189   then
2190     GTK_PREFIX="--prefix=$with_gtk_prefix"
2191   fi
2192   if test "x${GTK_CONFIG}" != "xno"
2193   then
2194     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
2195     then
2196       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-familiar.])
2197     fi
2198     CFLAGS_familiar="${CFLAGS_familiar} `${GTK_CONFIG} ${GTK_PREFIX} --cflags gtk gthread`"
2199     LDFLAGS_familiar="${LDFLAGS_familiar} `${GTK_CONFIG} ${GTK_PREFIX} --libs gtk gthread | sed 's,-rdynamic,,'`"
2200     # now look for the gtk.h header
2201     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_familiar}"
2202     ac_cv_gtk_headers=yes
2203     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
2204       ac_cv_gtk_headers=no
2205       echo "Cannot find gtk development headers."
2206     ])
2207     if test "x${ac_cv_gtk_headers}" = "xyes"
2208     then
2209       PLUGINS="${PLUGINS} familiar"
2210     fi
2211     CPPFLAGS="${CPPFLAGS_save}"
2212
2213     # now look for gpe support
2214     AC_ARG_WITH(gpe-prefix,
2215     [    --with-gpe-prefix=PATH gpe installation path prefix (default search in \$PATH)],[],[])
2216     if test "x$with_gpe_prefix" != "xno"  -a "x$with_gpe_prefix" != "x"
2217     then
2218       CFLAGS_gpe="-I$with_gpe_prefix/include"
2219       LDFLAGS_gpe="-lXi -lgdk_pixbuf -L$with_gpe_prefix/lib -lgpewidget"
2220       # now look for gpe/init.h header file
2221       CFLAGS_save=$CFLAGS
2222       LDFLAGS_save=$LDFLAGS
2223       CFLAGS="${CFLAGS_familiar} ${CFLAGS_gpe}"
2224       LDFLAGS="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
2225       CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_familiar} ${CFLAGS_gpe}"
2226       ac_cv_gpe_headers=yes
2227       AC_CHECK_HEADERS(gpe/init.h, ,
2228         [ ac_cv_gpe_headers=no
2229           AC_MSG_ERROR([Cannot find development headers for libgpewidget...]) ])
2230       CFLAGS=$CFLAGS_save
2231       LDFLAGS=$LDFLAG_save
2232       if test "x${ac_cv_gpe_headers}" = "xyes"
2233       then
2234         CFLAGS_familiar="${CFLAGS_familiar} ${CFLAGS_gpe}"
2235         LDFLAGS_familiar="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
2236       fi
2237     else
2238           NEED_GTK_MAIN=yes
2239     fi # end gpe support
2240   fi # end gtk+ support
2241 fi
2242
2243 dnl
2244 dnl  Gnome module
2245 dnl
2246 AC_ARG_ENABLE(gnome,
2247   [  --enable-gnome          Gnome interface support (default disabled)],
2248   [if test "x${enable_gnome}" = "xyes"; then
2249     # look for gnome-config
2250     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
2251     if test -x ${GNOME_CONFIG}
2252     then
2253        CFLAGS_gnome="${CFLAGS_gnome} `${GNOME_CONFIG} --cflags gtk gnomeui`"
2254        LDFLAGS_gnome="${LDFLAGS_gnome} `${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`"
2255     fi
2256     # now look for the gnome.h header
2257     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
2258     AC_CHECK_HEADERS(gnome.h, [
2259       PLUGINS="${PLUGINS} gnome"
2260       NEED_GTK_MAIN=yes
2261       NEED_GNOME_MAIN=yes
2262       ALIASES="${ALIASES} gnome-vlc"
2263      ],[
2264       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
2265 developement tools or remove the --enable-gnome option])
2266      ])
2267     CPPFLAGS="${CPPFLAGS_save}"
2268   fi])
2269
2270 dnl
2271 dnl  wxWindows module
2272 dnl
2273 AC_ARG_ENABLE(wxwindows,
2274   [  --enable-wxwindows      wxWindows support (default enabled)])
2275 if test "x${enable_wxwindows}" != "xno"
2276 then
2277   WXWINDOWS_PATH="${PATH}"
2278   AC_ARG_WITH(wx-config-path,
2279     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
2280     [ if test "x${with_wx_config_path}" != "xno"
2281       then
2282         WXWINDOWS_PATH="${with_wx_config_path}:${PATH}"
2283       fi ])
2284   # look for wx-config
2285   AC_PATH_PROG(WX_CONFIG, wx-config, no, ${WXWINDOWS_PATH})
2286   if test "x${WX_CONFIG}" != "xno"
2287   then
2288     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
2289     then
2290       AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
2291     fi
2292     CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cxxflags`"
2293     LDFLAGS_wxwindows="${LDFLAGS_wxwindows} `${WX_CONFIG} --libs`"
2294     # now look for the wxprec.h header
2295     CPPFLAGS="${save_CPPFLAGS} ${CXXFLAGS_wxwindows}"
2296     ac_cv_wx_headers=yes
2297     AC_CHECK_HEADERS(wx/wxprec.h, , [
2298       ac_cv_wx_headers=no
2299       echo "Cannot find wxWindows development headers."
2300     ])
2301     if test "x${ac_cv_wx_headers}" = "xyes"
2302     then
2303       PLUGINS="${PLUGINS} wxwindows"
2304       ALIASES="${ALIASES} wxvlc"
2305     fi
2306     CPPFLAGS="${save_CPPFLAGS}"
2307   fi
2308 fi
2309
2310 dnl
2311 dnl  Qt module
2312 dnl
2313 AC_ARG_ENABLE(qt,
2314   [  --enable-qt             Qt interface support (default disabled)],
2315   [if test "x${enable_qt}" = "xyes"; then
2316      PLUGINS="${PLUGINS} qt"
2317      ALIASES="${ALIASES} qvlc"
2318      LDFLAGS_qt="${LDFLAGS_qt} -lqt -L${QTDIR}/lib"
2319      CPPFLAGS_qt="${CPPFLAGS_qt} -I/usr/include/qt -I${QTDIR}/include"
2320      if test -x ${QTDIR}/bin/moc
2321      then
2322        MOC=${QTDIR}/bin/moc
2323      else
2324        MOC=moc
2325      fi
2326    fi])
2327
2328 dnl
2329 dnl  KDE module
2330 dnl
2331 AC_ARG_ENABLE(kde,
2332   [  --enable-kde            KDE interface support (default disabled)],
2333   [if test "x${enable_kde}" = "xyes"; then
2334      PLUGINS="${PLUGINS} kde"
2335      ALIASES="${ALIASES} kvlc"
2336      LDFLAGS_kde="${LDFLAGS_kde} -L${KDEDIR}/lib -lkfile"
2337      CPPFLAGS_kde="${CPPFLAGS_kde} -I/usr/include/kde -I/usr/include/qt"
2338      CPPFLAGS_kde="${CPPFLAGS_kde} -I${KDEDIR}/include -I${QTDIR}/include"
2339      if test -x ${QTDIR}/bin/moc
2340      then
2341        MOC=${QTDIR}/bin/moc
2342      else
2343        MOC=moc
2344      fi
2345    fi])
2346
2347 dnl
2348 dnl  Opie QT embedded module
2349 dnl
2350 AC_ARG_ENABLE(opie,
2351   [  --enable-opie           Qt embedded interface support (default disabled)],
2352   [if test "x${enable_opie}" = "xyes"; then
2353      AC_ARG_WITH(qte,
2354      [    --with-qte=PATH       Qt Embedded headers and libraries])
2355      if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
2356      then
2357        LDFLAGS_qte="-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
2358        CPPFLAGS_qte="-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
2359      else
2360        LDFLAGS_qte="-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`"
2361        CPPFLAGS_qte="-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`"
2362      fi
2363      CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
2364      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
2365        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
2366      ] )
2367      CPPFLAGS="${CPPFLAGS_save}"
2368
2369      PLUGINS="${PLUGINS} opie"
2370      LDFLAGS_opie="${LDFLAGS_opie} -lqpe ${LDFLAGS_qte}"
2371      CPPFLAGS_opie="${CPPFLAGS_opie} ${CPPFLAGS_qte}"
2372      if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
2373      then
2374        MOC=${with_qte}/bin/moc
2375      else
2376        MOC=${QTDIR}/bin/moc
2377      fi
2378    fi])
2379
2380 dnl
2381 dnl  MacOS X module
2382 dnl
2383 AC_ARG_ENABLE(macosx,
2384   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
2385   [if test "x${enable_macosx}" = "xyes"
2386    then
2387      BUILTINS="${BUILTINS} macosx"
2388      LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
2389    fi],
2390   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
2391      BUILTINS="${BUILTINS} macosx"
2392      LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
2393    )])
2394
2395 dnl
2396 dnl  QNX RTOS module
2397 dnl
2398 AC_ARG_ENABLE(qnx,
2399   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
2400     if test "x${enable_qnx}" != "xno"
2401     then
2402       AC_CHECK_HEADERS(Ph.h, [
2403         PLUGINS="${PLUGINS} qnx"
2404         LDFLAGS_qnx="${LDFLAGS_qnx} -lasound -lph"
2405       ])
2406     fi
2407
2408 dnl
2409 dnl  Windows native interface module, built with Borland C++ Builder
2410 dnl
2411 AC_ARG_ENABLE(intfwin,
2412 [  --enable-intfwin        Win32 interface support (default disabled)],
2413 [ if test "x${enable_intfwin}" != "xno"
2414   then
2415     AC_ARG_WITH(bcbuilder,
2416     [    --with-bcbuilder=PATH Borland C++ Builder installation path])
2417     if test "x${with_bcbuilder}" != "x"
2418     then
2419       BCBUILDER="${with_bcbuilder}"
2420     fi
2421     PLUGINS="${PLUGINS} win32"
2422   fi ])
2423
2424 dnl
2425 dnl  ncurses module
2426 dnl
2427 AC_ARG_ENABLE(ncurses,
2428   [  --enable-ncurses        ncurses interface support (default disabled)],
2429   [if test "x${enable_ncurses}" = "xyes"; then
2430      PLUGINS="${PLUGINS} ncurses"
2431      LDFLAGS_ncurses="${LDFLAGS_ncurses} -lncurses"
2432    fi])
2433
2434 dnl
2435 dnl  XOSD plugin
2436 dnl
2437 AC_ARG_ENABLE(xosd,
2438   [  --enable-xosd           xosd interface support (default disabled)])
2439 if test "x${enable_xosd}" = "xyes"
2440 then
2441   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
2442   AC_TRY_COMPILE([#include <xosd.h>],
2443      [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
2444       AC_DEFINE(HAVE_OLD_XOSD_H, 1, Define if <xosd.h> is pre-1.0.0))
2445   if test "x${have_xosd}" = "xtrue"
2446   then
2447     PLUGINS="${PLUGINS} xosd"
2448     LDFLAGS_xosd="${LDFLAGS_xosd} -lxosd"
2449   fi
2450 fi
2451
2452 dnl
2453 dnl  Lirc plugin
2454 dnl
2455 AC_ARG_ENABLE(lirc,
2456   [  --enable-lirc           lirc support (default disabled)])
2457 if test "x${enable_lirc}" = "xyes"
2458 then
2459   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
2460   if test "x${have_lirc}" = "xtrue"
2461   then
2462     PLUGINS="${PLUGINS} lirc"
2463     LDFLAGS_lirc="${LDFLAGS_lirc} -llirc_client"
2464   fi
2465 fi
2466
2467 AC_ARG_WITH(,[Misc options:])
2468
2469 dnl
2470 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
2471 dnl
2472 dnl  We give the user the opportunity to specify
2473 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
2474 dnl
2475 AC_ARG_WITH(words,
2476   [  --with-words=endianness set endianness (big or little)])
2477   case "x${with_words}" in
2478     xbig)
2479       ac_cv_c_bigendian=yes
2480       ;;
2481     xlittle)
2482       ac_cv_c_bigendian=no
2483       ;;
2484     *)
2485       dnl  Try to guess endianness by matching patterns on a compiled
2486       dnl  binary, by looking for an ASCII or EBCDIC string
2487       AC_CACHE_CHECK([whether the byte order is big-endian],
2488         [ac_cv_c_bigendian],
2489         [ac_cv_c_bigendian="unknown"
2490         [cat >conftest.c <<EOF
2491         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
2492         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
2493         void _a(void) { char*s = (char*)am; s = (char *)ai; }
2494         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
2495         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
2496         void _e(void) { char*s = (char*)em; s = (char*)ei; }
2497         int main(void) { _a(); _e(); return 0; }
2498 EOF
2499         ]
2500         if test -f conftest.c
2501         then
2502           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
2503               && test -f conftest.o
2504           then
2505             if test "`strings conftest.o | grep BIGenDianSyS`"
2506             then
2507               ac_cv_c_bigendian="yes"
2508             fi
2509             if test "`strings conftest.o | grep LiTTleEnDian`"
2510             then
2511               ac_cv_c_bigendian="no"
2512             fi
2513           fi
2514         fi
2515       ])
2516       if test "x${ac_cv_c_bigendian}" = "xunknown"
2517       then
2518         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
2519       fi
2520       ;;
2521   esac
2522 dnl  Now we know what to use for endianness, just put it in the header
2523 if test "${ac_cv_c_bigendian}" = "yes"
2524 then
2525   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
2526 fi
2527
2528 dnl
2529 dnl  Profiling
2530 dnl
2531 AC_ARG_ENABLE(gprof,
2532 [  --enable-gprof          gprof profiling (default disabled)])
2533 AC_ARG_ENABLE(cprof,
2534 [  --enable-cprof          cprof profiling (default disabled)])
2535 AM_CONDITIONAL(GPROF, test "x${enable_gprof}" = "xyes")
2536 AM_CONDITIONAL(CPROF, test "x${enable_gprof}" = "xyes")
2537
2538 dnl
2539 dnl  GNU portable threads
2540 dnl
2541 AC_ARG_ENABLE(pth,
2542   [  --enable-pth            GNU Pth support (default disabled)],
2543   [ if test "x${enable_pth}" = "xyes"; then
2544     AC_CHECK_LIB(pth,pth_init)
2545     AC_EGREP_HEADER(pth_init,pth.h,[
2546       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
2547                 Define if <pth.h> defines pth_init)
2548     THREAD_LIB="-lpth"
2549     fi])
2550 ])
2551
2552 dnl
2553 dnl  State Threads
2554 dnl
2555 AC_ARG_ENABLE(st,
2556   [  --enable-st             State Threads (default disabled)],
2557   [ if test "x${enable_st}" = "xyes"; then
2558     AC_CHECK_LIB(st,st_init)
2559     AC_EGREP_HEADER(st_init,st.h,[
2560       AC_DEFINE(ST_INIT_IN_ST_H, 1,
2561                 Define if <st.h> defines st_init)
2562     THREAD_LIB="-lst"
2563     fi])
2564 ])
2565
2566 if test "x${SYS}" != "xmingw32"; then
2567   LDFLAGS_vlc="${LDFLAGS_vlc} ${THREAD_LIB}"
2568   LDFLAGS_plugins="${LDFLAGS_plugins} ${THREAD_LIB}"
2569 fi
2570
2571 dnl
2572 dnl  Mozilla plugin
2573 dnl
2574 mozilla=false
2575 AC_ARG_ENABLE(mozilla,
2576   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
2577 if test "x${enable_mozilla}" = "xyes"
2578 then
2579   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
2580   if test "x${MOZILLA_CONFIG}" != "xno"
2581   then
2582     if test "x${SYS}" != "xmingw32"; then
2583       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
2584       AC_CHECK_LIB(Xt,XtStrings,[
2585         LDFLAGS_mozilla="${LDFLAGS_mozilla} -L${x_libraries} -lXt"
2586       ])
2587       LDFLAGS="${LDFLAGS_save}"
2588     fi
2589     mozilla=:
2590     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
2591     [CPPFLAGS_mozilla="${CPPFLAGS_mozilla} `${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`"]
2592     #[CPPFLAGS_mozilla="${CPPFLAGS_mozilla} `${MOZILLA_CONFIG} --cflags plugin xpcom java --defines | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`"]
2593     LDFLAGS_mozilla="${LDFLAGS_mozilla} `${MOZILLA_CONFIG} --libs plugin xpcom`"
2594     dnl Not necessarily in ${PATH}
2595     if test "x${XPIDL}" = "x" -o ! -x "${XPIDL}"
2596     then
2597       XPIDL="/usr/lib/mozilla/xpidl"
2598     fi
2599   fi
2600 fi
2601 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
2602
2603 dnl
2604 dnl  test plugins
2605 dnl
2606 AC_ARG_ENABLE(testsuite,
2607   [  --enable-testsuite      build test modules (default disabled)])
2608 if test "x${enable_testsuite}" = "xyes"
2609 then
2610   TESTS="test1 test2 test3 test4"
2611
2612   dnl  we define those so that bootstrap sets the right linker
2613   CXXFLAGS_test2="${CXXFLAGS_test2}"
2614   OBJCFLAGS_test3="${OBJCFLAGS_test3}"
2615   dnl  this one is needed until automake knows what to do
2616   LDFLAGS_test3="${LDFLAGS_test3} -lobjc"
2617
2618   PLUGINS="${PLUGINS} ${TESTS}"
2619   #BUILTINS="${BUILTINS} ${TESTS}"
2620 fi
2621
2622 dnl
2623 dnl  gtk_main plugin
2624 dnl
2625 if test "x${NEED_GTK_MAIN}" != "xno"
2626 then
2627     PLUGINS="${PLUGINS} gtk_main"
2628     CFLAGS_gtk="${CFLAGS_gtk} -DNEED_GTK_MAIN"
2629         CFLAGS_familiar="${CFLAGS_familiar} -DNEED_GTK_MAIN"
2630     CFLAGS_gtk_main="${CFLAGS_gtk_main} ${CFLAGS_gtk} ${CFLAGS_familiar}"
2631     LDFLAGS_gtk_main="${LDFLAGS_gtk_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar}"
2632 fi
2633
2634 if test "x${NEED_GNOME_MAIN}" != "xno"
2635 then
2636     PLUGINS="${PLUGINS} gnome_main"
2637     CFLAGS_gnome_main="${CFLAGS_gnome_main} ${CFLAGS_gtk} ${CFLAGS_familiar} ${CFLAGS_gnome}"
2638     LDFLAGS_gnome_main="${LDFLAGS_gnome_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar} ${LDFLAGS_gnome}"
2639 fi
2640
2641 dnl
2642 dnl  Plugin and builtin checks
2643 dnl
2644 builtin_support=false
2645 plugin_support=:
2646
2647 dnl Support for plugins - this must be AT THE END
2648 AC_ARG_ENABLE(plugins,
2649   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
2650   [if test "x${enable_plugins}" = "xno"
2651    then
2652      plugin_support=false
2653    fi])
2654
2655 dnl Automagically disable plugins if there is no system support for
2656 dnl dynamically loadable files (.so, .dll, .dylib).
2657 dnl don't forget vlc-win32 still can load .dll as plugins
2658 if test "x${ac_cv_header_dlfcn_h}" = "xno" -a "x${ac_cv_header_image_h}" = "xno" -a "x${SYS}" != "xmingw32"
2659 then
2660   echo "*** Your system doesn't have plugin support. All plugins will be built"
2661   echo "statically."
2662   plugin_support=false
2663 fi
2664
2665 dnl Export automake variables
2666 if ${plugin_support}
2667 then
2668   for plugin in `echo ${PLUGINS}`
2669   do
2670     eval "${plugin}_plugin=yes"
2671   done
2672 else
2673   BUILTINS="${BUILTINS} ${PLUGINS}"
2674   PLUGINS=
2675 fi
2676 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
2677
2678 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
2679 then
2680   builtin_support=:
2681   for builtin in `echo ${BUILTINS}`
2682   do
2683     eval "${builtin}_builtin=yes"
2684   done
2685 fi]
2686 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
2687
2688 dnl do not touch this line (bootstrap needs it)
2689
2690
2691 dnl
2692 dnl  Stuff used by the program
2693 dnl
2694 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
2695 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version ${VERSION} ${CODENAME} - (c) 1996-2002 VideoLAN", [Copyright string])
2696 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
2697
2698 VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
2699 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
2700 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
2701 AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension])
2702
2703 DATA_PATH="${ac_tool_prefix}/share/videolan"
2704 AC_SUBST(DATA_PATH)
2705 PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
2706 AC_SUBST(PLUGIN_PATH)
2707
2708 dnl
2709 dnl  Restore *FLAGS
2710 dnl
2711 CPPFLAGS="${CPPFLAGS_save}"
2712 CFLAGS="${CFLAGS_save}"
2713 CXXFLAGS="${CXXFLAGS_save}"
2714 OBJCFLAGS="${OBJCFLAGS_save}"
2715 LDFLAGS="${LDFLAGS_save}"
2716
2717 dnl
2718 dnl  Fool automake (see Makefile.am)
2719 dnl
2720 AUTOMAKE_SUCKS="\$(L_builtin) \$(LDFLAGS_builtin)"
2721 AC_SUBST(AUTOMAKE_SUCKS)
2722
2723 dnl
2724 dnl  Create the vlc-config script
2725 dnl
2726 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtins}"
2727 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
2728
2729 dnl
2730 dnl  Configuration is finished
2731 dnl
2732 AC_SUBST(SYS)
2733 AC_SUBST(ARCH)
2734 AC_SUBST(PLUGINS)
2735 AC_SUBST(BUILTINS)
2736 AC_SUBST(ALIASES)
2737 AC_SUBST(ASM)
2738 AC_SUBST(MOC)
2739 AC_SUBST(WINDRES)
2740 AC_SUBST(BCBUILDER)
2741 AC_SUBST(XPIDL)
2742 AC_SUBST(LIBEXT)
2743 AC_SUBST(INCLUDES)
2744
2745 AC_SUBST(CFLAGS_TUNING)
2746 AC_SUBST(CFLAGS_OPTIM)
2747 AC_SUBST(CFLAGS_OPTIM_NODEBUG)
2748 AC_SUBST(LDFLAGS)
2749
2750 AC_SUBST(CFLAGS_vlc)
2751 AC_SUBST(CFLAGS_pics)
2752 AC_SUBST(CXXFLAGS_pics)
2753 AC_SUBST(CFLAGS_plugins)
2754 AC_SUBST(CXXFLAGS_plugins)
2755 AC_SUBST(CFLAGS_builtins)
2756 AC_SUBST(CPPFLAGS_mozilla)
2757
2758 AC_SUBST(LDFLAGS_vlc)
2759 AC_SUBST(LDFLAGS_libvlc)
2760 AC_SUBST(LDFLAGS_plugins)
2761 AC_SUBST(LDFLAGS_builtins)
2762 AC_SUBST(LDFLAGS_mozilla)
2763
2764 AC_OUTPUT([
2765   Makefile
2766   debian/Makefile
2767   doc/Makefile
2768   intl/Makefile
2769   ipkg/Makefile
2770   lib/Makefile
2771   m4/Makefile
2772   modules/Makefile
2773   po/Makefile.in
2774   share/Makefile
2775   src/Makefile
2776   vlc-config
2777 ],[
2778   chmod a+x vlc-config
2779 ])
2780
2781 printf "
2782 vlc configuration
2783 --------------------
2784 vlc version           : ${VERSION}
2785 system                : ${SYS}
2786 architecture          : ${ARCH}
2787 build flavour         : "
2788 test "x${DEBUG_TRUE}" = "x" && printf "debug "
2789 test "x${CPROF_TRUE}" = "x" && printf "cprof "
2790 test "x${GPROF_TRUE}" = "x" && printf "gprof "
2791 test "x${OPTIM_TRUE}" = "x" && printf "optim "
2792 test "x${RELEASE_TRUE}" = "x" && printf "release " || printf "devel "
2793 echo "
2794 vlc aliases           :${ALIASES}
2795
2796 To build vlc and its plugins, type \`make'.
2797 "
2798