]> git.sesse.net Git - vlc/blob - configure.in
* ./src/video_output/video_output.c: fixed a vout4 image starvation bug.
[vlc] / configure.in
1 dnl Autoconf settings for vlc
2 AC_INIT(include/main.h)
3 AC_CONFIG_HEADER(include/defs.h)
4
5 AC_CANONICAL_SYSTEM
6
7 VERSION="0.2.92-dev"
8 CODENAME=Ourumov
9
10 dnl Save CFLAGS and LDFLAGS
11 save_CFLAGS="${CFLAGS}"
12 save_LDFLAGS="${LDFLAGS}"
13
14 dnl Check for tools
15 AC_PROG_MAKE_SET
16 AC_PROG_CC
17 AC_PROG_CPP
18
19 dnl Find the right ranlib, even when cross-compiling
20 AC_CHECK_TOOL(RANLIB, ranlib, :)
21
22 dnl Check for GNU make
23 AC_PATH_PROG(GMAKE, gmake, no)
24 if test "x$GMAKE" = "xno"; then
25   AC_CACHE_CHECK([whether GNU make is installed],
26       [ac_cv_gmake],
27       [if make --version | grep -q -i gnu; then
28          ac_cv_gmake="yes"
29        else
30          echo "This software needs you to install GNU make to compile properly."
31          echo "You can get it from http://www.gnu.org/."
32          exit
33        fi])
34   VLC_MAKE="make"
35 else
36   VLC_MAKE="gmake"
37 fi
38
39 dnl Gettext stuff
40 ALL_LINGUAS="de fr ja no ru nl"
41
42 AC_DEFINE_UNQUOTED(PACKAGE, "vlc", [Package name])
43 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Package version])
44 AM_GNU_GETTEXT
45
46 dnl AM_PROG_LIBTOOL
47 AC_PROG_INSTALL
48
49 dnl
50 dnl  Check the operating system
51 dnl
52 case x"${target_os}" in
53   x)
54     SYS=unknown
55     ;;
56   xlinux*)
57     SYS=linux
58     ;;
59   xbsdi*)
60     SYS=bsdi
61     LIB_DVD="${LIB_DVD} -ldvd"
62     LIB_VCD="${LIB_VCD} -ldvd"
63     ;;
64   xdarwin*)
65     SYS=darwin
66     ;;
67   x*mingw32*)
68     SYS=mingw32
69     AC_CHECK_TOOL(WINDRES, windres, :)
70     LIB_IPV4="${LIB_IPV4} -lws2_32"
71     LIB_RC="${LIB_RC} -lws2_32"
72     ;;
73   x*nto*)
74     SYS=nto
75     LIB_X11="${LIB_X11} -lsocket"
76     LIB_XVIDEO="${LIB_XVIDEO} -lsocket"
77     ;;
78   xbeos)
79     SYS=beos
80     LIB_VLC="${LIB_VLC} -lbe"
81     LIB_BEOS="${LIB_BEOS} -lbe -lgame -lroot -ltracker"
82     LIB_IPV4="${LIB_IPV4} -lbind"
83     PLDFLAGS="${PLDFLAGS} -nostart"
84     ;;
85   x*)
86     SYS="${target_os}"
87     ;;
88 esac
89
90 dnl Check for system libs needed
91 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty usleep vasprintf swab sigrelse getpwuid memalign valloc)
92
93 AC_CHECK_FUNC(connect,,[
94   AC_CHECK_LIB(socket,connect,
95     LIB_IPV4="${LIB_IPV4} -lsocket"
96     LIB_VLC="${LIB_VLC} -lsocket"
97 )])
98 AC_CHECK_FUNC(gethostbyname,,[
99   AC_CHECK_LIB(nsl,gethostbyname,LIB_IPV4="${LIB_IPV4} -lnsl")
100 ])
101 AC_CHECK_FUNC(gethostbyname,,[
102   AC_CHECK_LIB(bind,gethostbyname,LIB_IPV4="${LIB_IPV4} -lbind")
103 ])
104 AC_CHECK_FUNC(nanosleep,,[
105   AC_CHECK_LIB(rt,nanosleep,LIB_VLC="${LIB_VLC} -lrt",[
106     AC_CHECK_LIB(posix4,nanosleep,LIB_VLC="${LIB_VLC} -lposix4")
107   ])
108 ])
109 AC_CHECK_FUNC(inet_aton,,[
110   AC_CHECK_LIB(resolv,inet_aton,LIB_IPV4="${LIB_IPV4} -lresolv")
111 ])
112 AC_CHECK_FUNC(textdomain,,[
113   AC_CHECK_LIB(intl,textdomain,LIB_VLC="${LIB_VLC} -lintl")
114 ])
115
116 dnl Check for getopt
117 NEED_GETOPT=0
118 AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
119 [ # FreeBSD has a gnugetopt library for this:
120   AC_CHECK_LIB([gnugetopt],[getopt_long],
121     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB_VLC="${LIB_VLC} -lgnugetopt"],
122     [NEED_GETOPT=1])])
123
124 AC_TYPE_SIGNAL
125 AC_CHECK_LIB(dl,dlopen,LIB_VLC="${LIB_VLC} -ldl")
126 AC_CHECK_LIB(m,cos,
127   LIB_IMDCT="${LIB_IMDCT} -lm"
128   LIB_FILTER_DISTORT="${LIB_FILTER_DISTORT} -lm")
129 AC_CHECK_LIB(m,pow,
130   LIB_IMDCT="${LIB_IMDCT} -lm"
131   LIB_IMDCT3DN="${LIB_IMDCT3DN} -lm"
132   LIB_IMDCTSSE="${LIB_IMDCTSSE} -lm"
133   LIB_CHROMA_I420_RGB="${LIB_CHROMA_I420_RGB} -lm"
134 )
135
136 dnl Check for pthreads - borrowed from XMMS
137 THREAD_LIB=error
138 if test "x${THREAD_LIB}" = xerror; then
139   AC_CHECK_LIB(pthread,pthread_attr_init,THREAD_LIB="-lpthread")
140 fi
141 if test "x${THREAD_LIB}" = xerror; then
142   AC_CHECK_LIB(pthreads,pthread_attr_init,THREAD_LIB="-lpthreads")
143 fi
144 if test "x${THREAD_LIB}" = xerror; then
145   AC_CHECK_LIB(c_r,pthread_attr_init,THREAD_LIB="-lc_r")
146 fi
147 if test "x${THREAD_LIB}" = xerror; then
148   AC_CHECK_FUNC(pthread_attr_init)
149   THREAD_LIB=""
150 fi
151
152 dnl Check for cthreads under GNU/Hurd for instance
153 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
154
155 dnl Check for misc headers
156 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
157   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
158             Define if <pthread.h> defines pthread_cond_t.)])
159 AC_EGREP_HEADER(strncasecmp,strings.h,[
160   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
161             Define if <strings.h> defines strncasecmp.)])
162
163 dnl Check for headers
164 AC_CHECK_HEADERS(getopt.h strings.h)
165 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
166 AC_CHECK_HEADERS(dlfcn.h image.h)
167 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
168 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
169 AC_CHECK_HEADERS(scsi/scsi_ioctl.h)
170
171 AC_HEADER_TIME
172
173 dnl Check for threads library
174 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
175
176 dnl Check for DPMS
177 if test x$SYS != xmingw32
178 then
179   if test x$x_includes = xNONE; then
180     x_includes=/usr/X11R6/include
181   fi
182   if test x$x_libraries = xNONE; then
183     x_libraries=/usr/X11R6/lib
184   fi
185   saved_CPPFLAGS=$CPPFLAGS
186   CPPFLAGS="$CPPFLAGS -I$x_includes"
187   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
188     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
189       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
190                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
191     ])
192   ])
193   CPPFLAGS=$saved_CPPFLAGS
194 fi
195
196 dnl Check for ntohl, etc.
197 AC_CACHE_CHECK([for ntohl in sys/param.h],
198     [ac_cv_c_ntohl_sys_param_h],
199     [CFLAGS="${save_CFLAGS} -Wall -Werror"
200      AC_TRY_COMPILE([#include <sys/param.h>],
201         [void foo() { int meuh; ntohl(meuh); }],
202         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
203 if test x"$ac_cv_c_ntohl_sys_param_h" != x"no"; then
204     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
205 fi
206
207 dnl Check for inline function size limit
208 AC_CACHE_CHECK([if \$CC accepts -finline-limit],
209     [ac_cv_c_inline_limit],
210     [CFLAGS="${save_CFLAGS} -finline-limit-30000"
211      AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
212 if test x"$ac_cv_c_inline_limit" != x"no"; then
213     save_CFLAGS="${save_CFLAGS} -finline-limit-30000"
214 fi
215
216 dnl Check for -W or -w flags
217 AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
218     [ac_cv_c_Wall_Winline],
219     [CFLAGS="${save_CFLAGS} -Wall -Winline"
220      AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
221 if test x"$ac_cv_c_Wall_Winline" != x"no"; then
222     save_CFLAGS="${save_CFLAGS} -Wall -Winline"
223 else
224     AC_CACHE_CHECK([if \$CC accepts -wall -winline],
225         [ac_cv_c_wall_winline],
226         [CFLAGS="${save_CFLAGS} -wall -winline"
227          AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
228     if test x"$ac_cv_c_wall_winline" != x"no"; then
229         save_CFLAGS="${save_CFLAGS} -wall -winline"
230     fi
231 fi
232
233 dnl Check for -pipe
234 AC_CACHE_CHECK([if \$CC accepts -pipe],
235     [ac_cv_c_pipe],
236     [CFLAGS="${save_CFLAGS} -pipe"
237      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
238 if test x"$ac_cv_c_pipe" != x"no"; then
239     save_CFLAGS="${save_CFLAGS} -pipe"
240 fi
241
242 dnl Check for various optimization flags
243 AC_CACHE_CHECK([if \$CC accepts -O3],
244     [ac_cv_c_o3],
245     [CFLAGS="${save_CFLAGS} -O3"
246      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
247 if test x"$ac_cv_c_o3" != x"no"; then
248     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
249 else
250     AC_CACHE_CHECK([if \$CC accepts -O2],
251         [ac_cv_c_o2],
252         [CFLAGS="${save_CFLAGS} -O2"
253          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
254     if test x"$ac_cv_c_o2" != x"no"; then
255         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
256     else
257         AC_CACHE_CHECK([if \$CC accepts -O],
258             [ac_cv_c_o],
259             [CFLAGS="${save_CFLAGS} -O"
260              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
261         if test x"$ac_cv_c_o" != x"no"; then
262             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
263         fi
264     fi
265 fi
266
267 dnl Check for -ffast-math
268 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
269     [ac_cv_c_fast_math],
270     [CFLAGS="${save_CFLAGS} -ffast-math"
271      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
272 if test x"$ac_cv_c_fast_math" != x"no"; then
273     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
274 fi
275
276 dnl Check for -funroll-loops
277 AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
278     [ac_cv_c_unroll_loops],
279     [CFLAGS="${save_CFLAGS} -funroll-loops"
280      AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
281 if test x"$ac_cv_c_unroll_loops" != x"no"; then
282     CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
283 fi
284
285 dnl Check for -fomit-frame-pointer
286 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
287     [ac_cv_c_omit_frame_pointer],
288     [CFLAGS="${save_CFLAGS} -fomit-frame-pointer"
289      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
290 if test x"$ac_cv_c_omit_frame_pointer" != x"no"; then
291     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
292 fi
293
294 dnl Check for Darwin plugin linking flags
295 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
296     [ac_cv_ld_darwin],
297     [CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
298      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
299 if test x"$ac_cv_ld_darwin" != x"no"; then
300     PLDFLAGS="${PLDFLAGS} -bundle -undefined error -lcc_dynamic"
301 fi
302
303 dnl Check for standard plugin linking flags
304 AC_CACHE_CHECK([if \$CC accepts -shared],
305     [ac_cv_ld_plugins],
306     [CFLAGS="${save_CFLAGS} -shared"
307      AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
308 if test x"$ac_cv_ld_plugins" != x"no"; then
309     PLDFLAGS="${PLDFLAGS} -shared"
310 fi
311         
312 dnl Checks for __attribute__(aligned()) directive
313 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
314     [ac_cv_c_attribute_aligned],
315     [ac_cv_c_attribute_aligned=0
316         CFLAGS="${save_CFLAGS} -Werror"
317     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
318         AC_TRY_COMPILE([],
319         [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
320         [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try])
321     done])
322 if test x"$ac_cv_c_attribute_aligned" != x"0"; then
323     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
324         [$ac_cv_c_attribute_aligned],[Maximum supported data alignment])
325 fi
326
327 dnl End of the bizarre compilation tests
328 CFLAGS="${save_CFLAGS}"
329 LDFLAGS="${save_LDFLAGS}"
330
331 dnl Check for boolean_t
332 AC_CACHE_CHECK([for boolean_t in sys/types.h],
333     [ac_cv_c_boolean_t_sys_types_h],
334     [AC_TRY_COMPILE([#include <sys/types.h>], [boolean_t foo;],
335      ac_cv_c_boolean_t_sys_types_h=yes, ac_cv_c_boolean_t_sys_types_h=no)])
336 if test x"$ac_cv_c_boolean_t_sys_types_h" != x"no"; then
337     AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
338 fi
339
340 AC_CACHE_CHECK([for boolean_t in pthread.h],
341     [ac_cv_c_boolean_t_pthread_h],
342     [AC_TRY_COMPILE([#include <pthread.h>], [boolean_t foo;],
343      ac_cv_c_boolean_t_pthread_h=yes, ac_cv_c_boolean_t_pthread_h=no)])
344 if test x"$ac_cv_c_boolean_t_pthread_h" != x"no"; then
345     AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
346 fi
347
348 AC_CACHE_CHECK([for boolean_t in cthreads.h],
349     [ac_cv_c_boolean_t_cthreads_h],
350     [AC_TRY_COMPILE([#include <cthreads.h>], [boolean_t foo;],
351      ac_cv_c_boolean_t_cthreads_h=yes, ac_cv_c_boolean_t_cthreads_h=no)])
352 if test x"$ac_cv_c_boolean_t_cthreads_h" != x"no"; then
353     AC_DEFINE(BOOLEAN_T_IN_CTHREADS_H, 1, Define if <cthreads.h> defines boolean_t.)
354 fi
355
356 dnl
357 dnl  Check the CPU
358 dnl
359 case x"${target_cpu}" in
360   x)
361     ARCH=unknown
362     ;;
363   *)
364     ARCH="${target_cpu}"
365     ;;
366 esac
367
368 dnl
369 dnl  default modules
370 dnl
371 BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
372 PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope"
373
374 dnl
375 dnl  Accelerated modules
376 dnl
377 MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx"
378 MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
379 THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
380 if test x$SYS != xmingw32; then
381 SSE_MODULES="imdctsse downmixsse"
382 fi
383 ALTIVEC_MODULES="idctaltivec motionaltivec"
384
385 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
386     [ac_cv_mmx_inline],
387     [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
388                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
389 if test x"$ac_cv_mmx_inline" != x"no"; then
390   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
391 fi
392
393 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
394     [ac_cv_mmxext_inline],
395     [AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
396                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
397 if test x"$ac_cv_mmxext_inline" != x"no"; then
398   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
399 fi
400
401 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
402     [ac_cv_3dnow_inline],
403     [AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
404                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
405 if test x"$ac_cv_3dnow_inline" != x"no"; then
406   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
407   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
408 fi
409
410 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
411     [ac_cv_sse_inline],
412     [AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
413                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
414 if test x"$ac_cv_sse_inline" != x"no"; then
415   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
416   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
417 fi
418
419 # don't try to grok altivec with native mingw32 it doesn't work right now
420 # we should be able to remove this test with future versions of mingw32
421 if test x$SYS != xmingw32; then
422 AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
423     [ac_cv_altivec_inline],
424     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
425          ac_cv_altivec_inline=yes,
426          [save_CFLAGS=$CFLAGS
427           CFLAGS="$CFLAGS -Wa,-m7400"
428           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
429             [ac_cv_altivec_inline="-Wa,-m7400"],
430             ac_cv_altivec_inline=no)
431           CFLAGS=$save_CFLAGS
432          ])])
433 if test x"$ac_cv_altivec_inline" != x"no"; then
434   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
435   if test x"$ac_cv_altivec_inline" != x"yes"; then
436     CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_altivec_inline"
437     CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_altivec_inline"
438     CFLAGS_VLC="$CFLAGS_VLC $ac_cv_altivec_inline"
439   fi
440   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
441 fi
442
443 AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
444     [ac_cv_c_altivec],
445     [save_CFLAGS=$CFLAGS
446      CFLAGS="$CFLAGS -faltivec"
447      # Darwin test
448      AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
449         ac_cv_c_altivec=-faltivec, [
450         # Linux/PPC test
451         CFLAGS="$save_CFLAGS $CFLAGS_IDCTALTIVEC -fvec"
452         AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
453             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
454         ])
455      CFLAGS=$save_CFLAGS
456     ])
457 if test x"$ac_cv_c_altivec" != x"no"; then
458   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
459   CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_c_altivec"
460   CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_c_altivec"
461   CFLAGS_MEMCPYALTIVEC="$CFLAGS_MEMCPYALTIVEC $ac_cv_c_altivec"
462   CFLAGS_VLC="$CFLAGS_VLC $ac_cv_c_altivec"
463   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES} memcpyaltivec"
464 fi
465
466 AC_CACHE_CHECK([if linker needs -framework vecLib],
467     [ac_cv_ld_altivec],
468     [save_LDFLAGS=$LDFLAGS
469      LDFLAGS="$LDFLAGS -framework vecLib"
470      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
471      LDFLAGS=$save_LDFLAGS
472     ])
473 if test x"$ac_cv_ld_altivec" != x"no"; then
474   LIB_IDCTALTIVEC="${LIB_IDCTALTIVEC} -framework vecLib"
475   LIB_MOTIONALTIVEC="${LIB_MOTIONALTIVEC} -framework vecLib"
476   LIB_MEMCPYALTIVEC="${LIB_MEMCPYALTIVEC} -framework vecLib"
477   LIB_VLC="${LIB_VLC} -framework vecLib"
478 fi
479 fi # end if mingw32
480
481
482 AC_ARG_WITH(,[])
483 AC_ARG_WITH(,[Optimization options:])
484
485 dnl
486 dnl  Special arch tuning
487 dnl
488 AC_ARG_WITH(tuning,
489 [  --with-tuning=ARCH      enable special tuning for an architecture
490                           (default i686 on IA-32 and 750 on PPC)])
491 if test "x$withval" != "x"; then
492     TUNING=$withval
493 else
494     if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
495     else
496         if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
497     fi
498 fi
499
500 dnl
501 dnl  x86 accelerations
502 dnl
503 if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xx86 -o x${target_cpu} = xi386
504 then
505     ARCH="${ARCH} mmx"
506     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"
507 fi
508
509 dnl
510 dnl  Enable/disable optimizations
511 dnl
512 AC_ARG_ENABLE(optimizations,
513 [  --disable-optimizations disable compiler optimizations (default enabled)],
514 [ if test x$enableval = xno; then OPTIMS=0; fi ],
515 [ OPTIMS=1 ])
516
517 dnl
518 dnl  AltiVec acceleration
519 dnl
520 AC_ARG_ENABLE(altivec,
521 [  --disable-altivec       disable altivec optimizations (default enabled on PPC)],
522 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
523     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
524 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
525     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
526
527 dnl
528 dnl  Debugging mode
529 dnl
530 DEBUG=0
531 AC_ARG_ENABLE(debug,
532 [  --enable-debug          debug mode (default disabled)],
533 [ if test x$enableval = xyes; then DEBUG=1; fi ])
534
535 dnl
536 dnl  Enable release-specific flags
537 dnl
538 AC_ARG_ENABLE(release,
539 [  --enable-release        activate extra optimizations (default disabled)],
540 [ if test x$enableval = xyes; then RELEASE=1; fi ],
541 [ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
542
543 dnl
544 dnl  Input plugins
545 dnl
546
547 AC_ARG_WITH(,[Input plugins:])
548
549 dnl
550 dnl  DVD module: optionally check for installed libdvdcss
551 dnl
552 AC_ARG_ENABLE(dvd,
553 [  --enable-dvd            DVD input module (default enabled)])
554 if test "x$enableval" != "xno"
555 then
556   AC_ARG_WITH(dvdcss, 
557   [    --with-dvdcss=PATH    libdvdcss headers and libraries])
558   AC_ARG_WITH(dvdcss-tree, 
559   [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
560   case "x$with_dvdcss" in
561   x|xyes)
562     if test "x$with_dvdcss_tree" = x
563     then
564       AC_CHECK_HEADERS(dvdcss/dvdcss.h,
565         [ PLUGINS="${PLUGINS} dvd"
566           LIB_DVD="${LIB_DVD} -ldvdcss" ],
567         [ 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.])
568           AC_MSG_ERROR([cannot find libdvdcss headers]) ])
569     else
570       AC_MSG_CHECKING(for libdvdcss.a in ${with_dvdcss_tree})
571       real_dvdcss_tree="`cd ${with_dvdcss_tree} 2>/dev/null && pwd`"
572       if test "x$real_dvdcss_tree" = x
573       then
574         dnl  The given directory can't be found
575         AC_MSG_RESULT(no)
576         AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
577       fi
578       if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
579       then
580         dnl  Use a custom libdvdcss
581         AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
582         BUILTINS="${BUILTINS} dvd"
583         LIB_DVD="${LIB_DVD} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
584         CFLAGS_DVD="${CFLAGS_DVD} -I${real_dvdcss_tree}/src"
585       else
586         dnl  The given libdvdcss wasn't built
587         AC_MSG_RESULT(no)
588         AC_MSG_ERROR([cannot find ${real_dvdcss_tree}/src/.libs/libdvdcss.a, make sure you compiled libdvdcss in ${with_dvdcss_tree}])
589       fi
590     fi
591   ;;
592   xno)
593     dnl  Compile without dvdcss (dlopen version, works only under Linux)
594     PLUGINS="${PLUGINS} dvd"
595     CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
596     LIB_DVD="${LIB_DVD} -ldl"
597   ;;
598   *)
599     AC_MSG_CHECKING(for dvdcss headers in ${with_dvdcss})
600     if test -f ${with_dvdcss}/include/dvdcss/dvdcss.h
601     then
602       dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
603       AC_MSG_RESULT(yes)
604       PLUGINS="${PLUGINS} dvd"
605       LIB_DVD="${LIB_DVD} -L${with_dvdcss}/lib -ldvdcss"
606       CFLAGS_DVD="${CFLAGS_DVD} -I${with_dvdcss}/include"
607     else
608       dnl  No libdvdcss could be found, sorry
609       AC_MSG_RESULT(no)
610       AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
611     fi
612   ;;
613   esac
614 fi
615
616 dnl
617 dnl dvdread module: check for libdvdread plugin
618 dnl
619 AC_ARG_ENABLE(dvdread,
620 [  --enable-dvdread        dvdread input module (default disabled)])
621 if test "x$enableval" != "xno"
622 then
623   AC_ARG_WITH(dvdread, 
624   [    --with-dvdread=PATH   libdvdread headers and libraries])
625   case "x$with_dvdread" in
626   x)
627     AC_CHECK_HEADERS(dvdread/dvd_reader.h,
628       [ PLUGINS="${PLUGINS} dvdread"
629         LIB_DVDREAD="${LIB_DVDREAD} -ldvdread" ])
630   ;;
631   *)
632     AC_MSG_CHECKING(for dvdread headers in ${withval})
633     if test -f ${withval}/include/dvdread/dvd_reader.h
634     then
635       AC_MSG_RESULT(yes)
636       PLUGINS="${PLUGINS} dvdread"
637       LIB_DVDREAD="${LIB_DVDREAD} -L${withval}/lib -ldvdread"
638       CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I${withval}/include"
639     else
640       AC_MSG_RESULT(no)
641       AC_MSG_ERROR([Cannot find ${withval}/dvdread/dvd_reader.h])
642     fi
643   ;;
644   esac
645 fi
646
647 dnl
648 dnl  VCD module
649 dnl
650 AC_ARG_ENABLE(vcd,
651   [  --enable-vcd            VCD support for Linux and MacOS X (default enabled)])
652
653 if test x$enable_vcd != xno
654 then
655   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
656     PLUGINS="${PLUGINS} vcd"
657   ])
658
659   if test "x${SYS}" = "xbsdi"
660   then
661     PLUGINS="${PLUGINS} vcd"
662   fi
663
664   if test "x${SYS}" = "xdarwin"
665   then
666     PLUGINS="${PLUGINS} vcd"
667     LIB_VCD="${LIB_VCD} -framework IOKit -framework CoreFoundation" 
668   fi
669 fi
670
671 dnl
672 dnl  Satellite input module
673 dnl
674 AC_ARG_ENABLE(satellite,
675   [  --enable-satellite      satellite card support (default disabled)],
676   [ if test x$enable_satellite = xyes
677     then
678       BUILTINS="${BUILTINS} satellite"
679       AC_DEFINE(HAVE_SATELLITE, 1, define if compiling with satellite card support)
680     fi])
681
682 dnl
683 dnl  ipv6 plugin
684 dnl
685 AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
686
687 dnl
688 dnl  Codec plugins
689 dnl
690
691 AC_ARG_WITH(,[Codec plugins:])
692
693 dnl
694 dnl  mad plugin
695 dnl
696 AC_ARG_ENABLE(mad,
697   [  --enable-mad            libmad module (default disabled)])
698 if test x$enable_mad = xyes
699 then
700   PLUGINS="${PLUGINS} mad"
701   LIB_MAD="${LIB_MAD} -lmad"
702   AC_ARG_WITH(mad,
703     [    --with-mad=PATH       path to libmad],
704     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
705       then
706         CFLAGS_MAD="${CFLAGS_MAD} -I$with_val/include"
707         LIB_MAD="${LIB_MAD} -L$with_val/lib"
708       fi ])
709   save_CFLAGS=$CFLAGS
710   save_LDFLAGS=$LDFLAGS
711   CFLAGS="$CFLAGS $CFLAGS_MAD"
712   LDFLAGS="$LDFLAGS $LIB_MAD"
713   AC_CHECK_HEADERS(mad.h, ,
714   [ echo "Cannot find development headers for libmad..."
715     exit 1
716   ])
717   AC_CHECK_LIB(mad, mad_bit_init, ,
718   [ echo "Cannot find libmad library..."
719     exit 1
720   ])
721   CFLAGS=$save_CFLAGS
722   LDFLAGS=$save_LDFLAGS
723 fi
724
725 dnl special case for BeOS
726 if test x$SYS = xbeos
727 then
728     PLUGINS="${PLUGINS} beos"
729
730 dnl default case
731 else
732
733 dnl
734 dnl  a52 AC3 decoder plugin
735 dnl
736 AC_ARG_ENABLE(a52,
737   [  --enable-a52            AC3 support with liba52 (default enabled)])
738 if test "x$enableval" != "xno" -a x$SYS != xmingw32
739   then
740     AC_CHECK_HEADERS(a52dec/a52.h, [
741       BUILTINS="${BUILTINS} a52"
742       LIB_A52="${LIB_A52} -la52 -lm"
743      ],[])
744 fi
745
746 dnl
747 dnl  ogg vorbis plugin
748 dnl
749 AC_ARG_ENABLE(vorbis,
750   [  --enable-vorbis         Ogg/Vorbis decoder support (default enabled)])
751 if test "x$enableval" != "xno"
752 then
753   AC_CHECK_HEADERS(ogg/ogg.h, [
754     PLUGINS="${PLUGINS} vorbis"
755     LIB_VORBIS="${LIB_VORBIS} -lvorbis"
756    ],[])
757 fi
758
759 dnl
760 dnl  Video plugins
761 dnl
762
763 AC_ARG_WITH(,[Video plugins:])
764
765 dnl
766 dnl  X11 module
767 dnl  (enabled by default except on win32)
768 dnl
769 AC_ARG_ENABLE(x11,
770   [  --enable-x11            X11 support (default enabled)])
771 if test x$enable_x11 != xno &&
772   (test x$SYS != xmingw32 || test x$enable_x11 = xyes); then
773   if test x$x_includes = xNONE; then
774     x_includes=/usr/X11R6/include
775   fi
776   if test x$x_libraries = xNONE; then
777     x_libraries=/usr/X11R6/lib
778   fi
779   saved_CPPFLAGS=$CPPFLAGS
780   CPPFLAGS="$CPPFLAGS -I$x_includes"
781   AC_CHECK_HEADERS(X11/Xlib.h, [
782     PLUGINS="${PLUGINS} x11"
783     LIB_X11="${LIB_X11} -L$x_libraries -lX11 -lXext"
784     CFLAGS_X11="${CFLAGS_X11} -I$x_includes"
785   ])
786   CPPFLAGS=$saved_CPPFLAGS
787 fi
788
789 dnl
790 dnl  XVideo module
791 dnl  (enabled by default except on win32)
792 dnl
793 AC_ARG_ENABLE(xvideo,
794   [  --enable-xvideo         XVideo support (default enabled)])
795 if test x$enable_xvideo != xno &&
796   (test x$SYS != xmingw32 || test x$enable_xvideo = xyes); then
797   if test x$x_includes = xNONE; then
798     x_includes=/usr/X11R6/include
799   fi
800   if test x$x_libraries = xNONE; then
801     x_libraries=/usr/X11R6/lib
802   fi
803   saved_CPPFLAGS=$CPPFLAGS
804   CPPFLAGS="$CPPFLAGS -I$x_includes"
805   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
806     saved_CFLAGS=$CFLAGS
807     CFLAGS="$CFLAGS -L$x_libraries -lX11 -lXext"
808     AC_CHECK_LIB(Xv_pic,XvSetPortAttribute,
809       # We have Xv_pic, that's good, we can build an xvideo.so plugin !
810       PLUGINS="${PLUGINS} xvideo"
811       LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv_pic"
812       CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes",
813       # We don't have Xv_pic, let's make xvideo.a as builtin
814       BUILTINS="${BUILTINS} xvideo"
815       LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv"
816       CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes")
817     CFLAGS=$saved_CFLAGS
818   ]
819   CPPFLAGS=$saved_CPPFLAGS)
820 fi
821
822 dnl
823 dnl  SDL module
824 dnl
825 AC_ARG_ENABLE(sdl,
826   [  --enable-sdl            SDL support (default enabled)])
827 if test "x$enable_sdl" != "xno"
828 then
829   SDL_PATH=$PATH
830   AC_ARG_WITH(sdl-config-path,
831     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
832     [ if test "x$withval" != "xno"
833       then
834         SDL_PATH=$withval:$PATH
835       fi ])
836   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
837   SDL_CONFIG=${SDL12_CONFIG}
838   SDL_HEADER="SDL12/SDL.h"
839   if test x${SDL_CONFIG} = xno
840   then
841     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, $SDL_PATH)
842     SDL_CONFIG=${SDL11_CONFIG}
843     SDL_HEADER="SDL11/SDL.h"
844   fi
845   if test x${SDL_CONFIG} = xno
846   then
847     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, $SDL_PATH)
848     SDL_HEADER="SDL/SDL.h"
849   fi
850   if test x${SDL_CONFIG} != xno
851   then
852     PLUGINS="${PLUGINS} sdl"
853     CFLAGS_SDL="${CFLAGS_SDL} `${SDL_CONFIG} --cflags`"
854     LIB_SDL="${LIB_SDL} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
855     save_CPPFLAGS=$CPPFLAGS
856     CPPFLAGS="$CPPFLAGS $CFLAGS_SDL"
857     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
858       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
859       [ AC_MSG_ERROR([The development package for SDL is not installed. 
860 Please install it and try again. Alternatively you can also configure with 
861 --disable-sdl.])
862       ])
863     CPPFLAGS=$save_CPPFLAGS
864     if expr 1.1.5 \> `$SDL_CONFIG --version` >/dev/null
865     then
866       AC_MSG_ERROR([The development package for SDL is not installed.
867 Please install it and try again. Alternatively you can also configure with
868 --disable-sdl.])
869     fi
870   elif test "x$enable_sdl" =  "xyes"
871   then
872     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
873 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
874     ])
875   fi
876 fi
877
878 dnl
879 dnl  Windows DirectX module
880 dnl
881 AC_ARG_ENABLE(directx,
882   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
883 if test "x$enableval" != "xno"
884 then
885   if test x$SYS = xmingw32
886   then
887     AC_ARG_WITH(directx, 
888     [    --with-directx=PATH   Win32 DirectX headers and libraries])
889     if test "x$with_directx" = "x"
890     then
891       AC_CHECK_HEADERS(ddraw.h,
892       [ PLUGINS="${PLUGINS} directx"
893         LIB_DIRECTX="${LIB_DIRECTX} -lgdi32" ])
894     else
895       AC_MSG_CHECKING(for directX headers in ${withval})
896       if test -f ${withval}/ddraw.h
897       then
898         PLUGINS="${PLUGINS} directx"
899         LIB_DIRECTX="${LIB_DIRECTX} -L${withval}/lib -lgdi32"
900         INCLUDE="${INCLUDE} -I${withval}"
901         AC_MSG_RESULT(yes)
902       else
903         AC_MSG_RESULT(no)
904         AC_MSG_ERROR([Cannot find ${withval}/ddraw.h!])
905       fi
906     fi
907   fi
908 fi
909
910 dnl
911 dnl  Linux framebuffer module
912 dnl
913 AC_ARG_ENABLE(fb,
914   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
915     if test x$enable_fb != xno
916     then
917       AC_CHECK_HEADERS(linux/fb.h, [
918         PLUGINS="${PLUGINS} fb"
919       ])
920     fi
921
922 dnl
923 dnl  Linux MGA module
924 dnl
925 AC_ARG_ENABLE(mga,
926   [  --enable-mga            Linux kernel Matrox support (default disabled)],
927   [ if test x$enable_mga = xyes
928     then
929       PLUGINS="${PLUGINS} mga xmga"
930     fi ])
931
932 dnl
933 dnl  GGI module
934 dnl
935 AC_ARG_ENABLE(ggi,
936   [  --enable-ggi            GGI support (default disabled)])
937 if test x$enable_ggi = xyes
938 then
939   PLUGINS="${PLUGINS} ggi"
940   LIB_GGI="${LIB_GGI} -lggi"
941   AC_ARG_WITH(ggi,
942     [    --with-ggi=PATH       path to libggi],
943     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
944       then
945         CFLAGS_GGI="${CFLAGS_GGI} -I$with_val/include"
946         LIB_GGI="${LIB_GGI} -L$with_val/lib"
947       fi ])
948 fi
949
950 dnl
951 dnl  Glide module
952 dnl
953 AC_ARG_ENABLE(glide,
954   [  --enable-glide          Glide (3dfx) support (default disabled)])
955 if test x$enable_glide = xyes
956 then
957   PLUGINS="${PLUGINS} glide"
958   LIB_GLIDE="${LIB_GLIDE} -lglide2x -lm"
959   CFLAGS_GLIDE="${CFLAGS_GLIDE} -I/usr/include/glide"
960   AC_ARG_WITH(glide,
961     [    --with-glide=PATH     path to libglide],
962     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
963       then
964         CFLAGS_GLIDE="${CFLAGS_GLIDE} -I$with_val/include"
965         LIB_GLIDE="${LIB_GLIDE} -L$with_val/lib"
966       fi ])
967 fi
968
969 dnl
970 dnl  AA plugin
971 dnl
972 AC_ARG_ENABLE(aa,
973   [  --enable-aa             aalib output (default disabled)])
974 if test x$enable_aa = xyes
975 then
976   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
977   if test x$have_aa = xtrue
978   then
979     PLUGINS="${PLUGINS} aa"
980     LIB_AA="${LIB_AA} -laa"
981   fi
982 fi
983
984 dnl
985 dnl  Audio plugins
986 dnl
987
988 AC_ARG_WITH(,[Audio plugins:])
989
990 dnl
991 dnl  OSS /dev/dsp module (enabled by default except on win32)
992 dnl
993 AC_ARG_ENABLE(dsp,
994   [  --enable-dsp            Linux /dev/dsp support (enabled on Linux)])
995
996 if test x$enable_dsp != xno &&
997   (test x$SYS != xmingw32 || test x$enable_dsp = xyes)
998 then
999   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
1000     PLUGINS="${PLUGINS} dsp"
1001     AC_CHECK_LIB(ossaudio,main,LIB_DSP="${LIB_DSP} -lossaudio")
1002   ])
1003 fi
1004
1005 dnl
1006 dnl  Esound module
1007 dnl
1008 AC_ARG_ENABLE(esd,
1009   [  --enable-esd            Esound library support (default disabled)],
1010   [if test x$enable_esd = xyes
1011    then
1012      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
1013      if test x${ESD_CONFIG} != xno
1014      then
1015        PLUGINS="${PLUGINS} esd"
1016        CFLAGS_ESD="${CFLAGS_ESD} `${ESD_CONFIG} --cflags`"
1017        LIB_ESD="${LIB_ESD} `${ESD_CONFIG} --libs`"
1018      fi
1019    fi])
1020
1021 dnl
1022 dnl  aRts module
1023 dnl
1024 AC_ARG_ENABLE(arts,
1025   [  --enable-arts           aRts sound server (default disabled)],
1026   [if test x$enable_arts = xyes
1027    then
1028      AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
1029      if test x${ARTS_CONFIG} != xno
1030      then
1031        PLUGINS="${PLUGINS} arts"
1032        CFLAGS_ARTS="${CFLAGS_ARTS} `${ARTS_CONFIG} --cflags`"
1033        LIB_ARTS="${LIB_ARTS} `${ARTS_CONFIG} --libs `"
1034      fi
1035    fi])
1036
1037 dnl
1038 dnl  ALSA module
1039 dnl
1040 AC_ARG_ENABLE(alsa,
1041   [  --enable-alsa           ALSA sound support for Linux (default disabled)],
1042   [if test x$enable_alsa = xyes
1043    then
1044      AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
1045      if test x$have_alsa = xtrue
1046      then
1047        PLUGINS="${PLUGINS} alsa"
1048        LIB_ALSA="${LIB_ALSA} -lasound -lm -ldl"
1049      fi
1050    fi])
1051
1052 dnl
1053 dnl  win32 waveOut plugin
1054 dnl
1055 AC_ARG_ENABLE(waveout,
1056   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
1057 if test "x$enableval" != "xno" -a x$SYS = xmingw32
1058   then
1059     PLUGINS="${PLUGINS} waveout"
1060     LIB_WAVEOUT="-lwinmm"
1061 fi
1062
1063 dnl
1064 dnl  Interface plugins
1065 dnl
1066
1067 AC_ARG_WITH(,[Interface plugins:])
1068
1069 dnl
1070 dnl  Gtk+ module
1071 dnl
1072 AC_ARG_ENABLE(gtk,
1073   [  --enable-gtk            Gtk+ support (default enabled)])
1074 if test x$enable_gtk != xno
1075 then
1076   GTK_PATH=$PATH
1077   AC_ARG_WITH(gtk-config-path,
1078     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
1079     [ if test "x$withval" != "xno"
1080       then
1081         GTK_PATH=$withval:$PATH
1082       fi ])
1083   # look for gtk-config
1084   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, $GTK_PATH)
1085   GTK_CONFIG=${GTK12_CONFIG}
1086   if test x${GTK_CONFIG} = xno
1087   then
1088     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, $GTK_PATH)
1089   fi
1090   if test x${GTK_CONFIG} != xno
1091   then
1092     if expr 1.2.0 \> `$GTK_CONFIG --version` >/dev/null
1093     then
1094       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.])
1095     fi
1096     CFLAGS_GTK="${CFLAGS_GTK} `${GTK_CONFIG} --cflags gtk`"
1097     LIB_GTK="${LIB_GTK} `${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
1098     # now look for the gtk.h header
1099     saved_CPPFLAGS=$CPPFLAGS
1100     CPPFLAGS="$CPPFLAGS $CFLAGS_GTK"
1101     ac_cv_gtk_headers=yes
1102     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
1103       ac_cv_gtk_headers=no
1104       echo "Cannot find gtk development headers."
1105     ])
1106     if test "x$ac_cv_gtk_headers" = xyes
1107     then
1108       PLUGINS="${PLUGINS} gtk"
1109       ALIASES="${ALIASES} gvlc"
1110     fi
1111     CPPFLAGS=$saved_CPPFLAGS
1112   fi
1113 fi
1114
1115 dnl
1116 dnl  Gnome module
1117 dnl
1118 AC_ARG_ENABLE(gnome,
1119   [  --enable-gnome          Gnome interface support (default disabled)],
1120   [if test x$enable_gnome = xyes; then
1121     # look for gnome-config
1122     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
1123     if test -x ${GNOME_CONFIG}
1124     then
1125        CFLAGS_GNOME="${CFLAGS_GNOME} `${GNOME_CONFIG} --cflags gtk gnomeui`"
1126        LIB_GNOME="${LIB_GNOME} `${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`"
1127     fi
1128     # now look for the gnome.h header
1129     saved_CPPFLAGS=$CPPFLAGS
1130     CPPFLAGS="$CPPFLAGS $CFLAGS_GNOME"
1131     AC_CHECK_HEADERS(gnome.h, [
1132       PLUGINS="${PLUGINS} gnome"
1133       ALIASES="${ALIASES} gnome-vlc"
1134      ],[
1135       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
1136 developement tools or remove the --enable-gnome option])
1137      ])
1138   
1139     CPPFLAGS=$saved_CPPFLAGS
1140   fi])
1141
1142 dnl
1143 dnl  Qt module
1144 dnl
1145 AC_ARG_ENABLE(qt,
1146   [  --enable-qt             Qt interface support (default disabled)],
1147   [if test x$enable_qt = xyes; then
1148      PLUGINS="${PLUGINS} qt"
1149      ALIASES="${ALIASES} qvlc"
1150      LIB_QT="${LIB_QT} -lqt -L${QTDIR}/lib"
1151      CFLAGS_QT="${CFLAGS_QT} -I/usr/include/qt -I${QTDIR}/include"
1152      if test -x ${QTDIR}/bin/moc
1153      then
1154        MOC=${QTDIR}/bin/moc
1155      else
1156        MOC=moc
1157      fi
1158    fi])
1159
1160 dnl 
1161 dnl  KDE module
1162 dnl
1163 AC_ARG_ENABLE(kde,
1164   [  --enable-kde            KDE interface support (default disabled)],
1165   [if test x$enable_kde = xyes; then
1166      PLUGINS="${PLUGINS} kde"
1167      ALIASES="${ALIASES} kvlc"
1168      LIB_KDE="${LIB_KDE} -L${KDEDIR}/lib -lkfile"
1169      CFLAGS_KDE="${CFLAGS_KDE} -I/usr/include/kde -I/usr/include/qt"
1170      CFLAGS_KDE="${CFLAGS_KDE} -I${KDEDIR}/include -I${QTDIR}/include"
1171      if test -x ${QTDIR}/bin/moc
1172      then
1173        MOC=${QTDIR}/bin/moc
1174      else
1175        MOC=moc
1176      fi
1177    fi])
1178
1179 dnl
1180 dnl  MacOS X module
1181 dnl
1182 AC_ARG_ENABLE(macosx,
1183   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
1184   [if test x$enable_macosx = xyes
1185    then
1186      BUILTINS="${BUILTINS} macosx"
1187      LIB_MACOSX="${LIB_MACOSX} -framework CoreAudio -framework AudioToolbox -framework Cocoa -framework AGL -framework QuickTime -lobjc"
1188      CFLAGS_MACOSX="${CFLAGS_MACOSX} -ObjC"
1189      LIB_COMMON="${LIB_COMMON} -ObjC"
1190    fi],
1191   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
1192      BUILTINS="${BUILTINS} macosx"
1193      LIB_MACOSX="${LIB_MACOSX} -framework CoreAudio -framework AudioToolbox -framework Cocoa -framework AGL -framework QuickTime -lobjc"
1194      CFLAGS_MACOSX="${CFLAGS_MACOSX} -ObjC"
1195      LIB_COMMON="${LIB_COMMON} -ObjC"
1196    )])
1197
1198 dnl
1199 dnl  QNX RTOS module
1200 dnl
1201 AC_ARG_ENABLE(qnx,
1202   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
1203     if test x$enable_qnx != xno
1204     then
1205       AC_CHECK_HEADERS(Ph.h, [
1206         PLUGINS="${PLUGINS} qnx"
1207         LIB_QNX="${LIB_QNX} -lasound -lph"
1208       ])
1209     fi
1210
1211 dnl
1212 dnl  Windows MFC interface module
1213 dnl
1214 AC_ARG_ENABLE(win32,
1215   [  --enable-win32          Win32 interface support (default disabled)],
1216   [ if test "x$enableval" != "xno"
1217     then
1218       PLUGINS="${PLUGINS} win32"
1219     fi ])
1220
1221 dnl
1222 dnl  ncurses module
1223 dnl
1224 AC_ARG_ENABLE(ncurses,
1225   [  --enable-ncurses        ncurses interface support (default disabled)],
1226   [if test x$enable_ncurses = xyes; then
1227      PLUGINS="${PLUGINS} ncurses"
1228      LIB_NCURSES="${LIB_NCURSES} -lncurses"
1229    fi])
1230
1231 dnl
1232 dnl  Lirc plugin
1233 dnl
1234 AC_ARG_ENABLE(lirc,
1235   [  --enable-lirc           lirc support (default disabled)])
1236 if test x$enable_lirc = xyes
1237 then
1238   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
1239   if test x$have_lirc = xtrue
1240   then
1241     PLUGINS="${PLUGINS} lirc"
1242     LIB_LIRC="${LIB_LIRC} -llirc_client"
1243   fi
1244 fi
1245
1246 dnl  end of non-BeOS stuff
1247 fi
1248
1249 AC_ARG_WITH(,[Misc options:])
1250
1251 dnl
1252 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
1253 dnl
1254 dnl  We give the user the opportunity to specify
1255 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
1256 dnl
1257 AC_ARG_WITH(words,
1258   [  --with-words=endianness set endianness (big or little)])
1259   case "x$withval" in
1260     xbig)
1261       ac_cv_c_bigendian=yes
1262       ;;
1263     xlittle)
1264       ac_cv_c_bigendian=no
1265       ;;
1266     *)
1267       dnl  Try to guess endianness by matching patterns on a compiled
1268       dnl  binary, by looking for an ASCII or EBCDIC string
1269       AC_CACHE_CHECK([whether the byte order is big-endian],
1270         [ac_cv_c_bigendian],
1271         [ac_cv_c_bigendian=unknown
1272         [cat >conftest.c <<EOF
1273         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
1274         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
1275         void _a(void) { char*s = (char*)am; s = (char *)ai; }
1276         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
1277         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
1278         void _e(void) { char*s = (char*)em; s = (char*)ei; }
1279         int main(void) { _a(); _e(); return 0; }
1280 EOF
1281         ]
1282         if test -f conftest.c
1283         then 
1284           if ${CC-cc} conftest.c -o conftest.o >config.log 2>&1 \
1285               && test -f conftest.o
1286           then
1287             if test "`strings conftest.o | grep BIGenDianSyS`"
1288             then
1289               ac_cv_c_bigendian=yes
1290             fi
1291             if test "`strings conftest.o | grep LiTTleEnDian`"
1292             then
1293               ac_cv_c_bigendian=no
1294             fi
1295           fi
1296         fi
1297       ])
1298       if test x$ac_cv_c_bigendian = xunknown
1299       then
1300         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
1301       fi
1302       ;;
1303   esac
1304 dnl  Now we know what to use for endianness, just put it in the header
1305 if test $ac_cv_c_bigendian = yes
1306 then
1307   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
1308 fi
1309
1310 dnl
1311 dnl  DLLs - used for Win32 package build
1312 dnl
1313 DLL_PATH=.
1314 AC_ARG_WITH(dll-path,
1315   [  --with-dll-path=PATH    path to Win32 DLLs (default search in \$PWD)],
1316   [ if test "x$withval" != "xno"
1317     then
1318       DLL_PATH=$withval
1319     fi ])
1320
1321 dnl
1322 dnl  Profiling
1323 dnl
1324 GPROF=0
1325 AC_ARG_ENABLE(gprof,
1326 [  --enable-gprof          gprof profiling (default disabled)],
1327 [ if test x$enableval = xyes; then GPROF=1; fi ])
1328
1329 CPROF=0
1330 AC_ARG_ENABLE(cprof,
1331 [  --enable-cprof          cprof profiling (default disabled)],
1332 [ if test x$enableval = xyes;
1333   then
1334     LIB_COMMON="${LIB_COMMON} -lcprof"
1335     CPROF=1
1336   fi
1337 ])
1338
1339 dnl
1340 dnl  GNU portable threads
1341 dnl
1342 AC_ARG_ENABLE(pth,
1343   [  --enable-pth            GNU Pth support (default disabled)],
1344   [ if test x$enableval = xyes; then
1345     AC_CHECK_LIB(pth,pth_init)
1346     AC_EGREP_HEADER(pth_init,pth.h,[
1347       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
1348                 Define if <pth.h> defines pth_init)
1349     THREAD_LIB="-lpth"
1350     fi])
1351 ])
1352
1353 dnl
1354 dnl  State Threads
1355 dnl
1356 AC_ARG_ENABLE(st,
1357   [  --enable-st             State Threads (default disabled)],
1358   [ if test x$enableval = xyes; then
1359     AC_CHECK_LIB(st,st_init)
1360     AC_EGREP_HEADER(st_init,st.h,[
1361       AC_DEFINE(ST_INIT_IN_ST_H, 1,
1362                 Define if <st.h> defines st_init)
1363     THREAD_LIB="-lst"
1364     fi])
1365 ])
1366
1367 LIB_COMMON="${LIB_COMMON} ${THREAD_LIB}"
1368
1369 dnl
1370 dnl  Plug-ins - this must be AT THE END
1371 dnl
1372 AC_ARG_ENABLE(plugins,
1373   [  --disable-plugins       make all plug-ins built-in (default plug-ins enabled)],
1374   [if test x$enable_plugins = xno
1375    then
1376      BUILTINS="${BUILTINS} ${PLUGINS}"
1377      PLUGINS=
1378    fi])
1379
1380 dnl Automagically disable plug-ins if there is no system support for .so files
1381 dnl don't forget vlc-win32 still can load .so as plugins
1382 if test x$ac_cv_header_dlfcn_h = xno -a x$ac_cv_header_image_h = xno -a x$SYS != xmingw32
1383 then
1384   echo "*** Your system doesn't have plug-in support. All plug-ins will be compiled"
1385   echo "as built-in"
1386   BUILTINS="${BUILTINS} ${PLUGINS}"
1387   PLUGINS=
1388 fi
1389
1390 dnl
1391 dnl  Stuff used by the program
1392 dnl
1393 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "vlc $VERSION $CODENAME Copyright 1996-2002 VideoLAN\n", [Simple version string])
1394 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version $VERSION $CODENAME - (c) 1996-2002 VideoLAN", [Copyright string])
1395
1396 VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
1397 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__MODULE_$VLC_SYMBOL", [String suffix for module functions])
1398 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $VLC_SYMBOL, [Symbol suffix for module functions])
1399
1400 DATA_PATH="${ac_tool_prefix}/share/videolan"
1401 AC_SUBST(DATA_PATH)
1402 PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
1403 AC_SUBST(PLUGIN_PATH)
1404
1405 dnl 
1406 dnl  Configuration is finished
1407 dnl
1408 AC_SUBST(SYS)
1409 AC_SUBST(ARCH)
1410 AC_SUBST(PLUGINS)
1411 AC_SUBST(BUILTINS)
1412 AC_SUBST(ALIASES)
1413 AC_SUBST(INCLUDE)
1414 AC_SUBST(DEBUG)
1415 AC_SUBST(ASM)
1416 AC_SUBST(CPROF)
1417 AC_SUBST(GPROF)
1418 AC_SUBST(OPTIMS)
1419 AC_SUBST(TUNING)
1420 AC_SUBST(RELEASE)
1421 AC_SUBST(MOC)
1422 AC_SUBST(WINDRES)
1423 AC_SUBST(DLL_PATH)
1424 AC_SUBST(PACKAGE)
1425 AC_SUBST(VERSION)
1426
1427 AC_SUBST(LDFLAGS)
1428 AC_SUBST(PLDFLAGS)
1429
1430 AC_SUBST(LIB_COMMON)
1431 AC_SUBST(LIB_VLC)
1432
1433 AC_SUBST(LIB_A52)
1434 AC_SUBST(LIB_AA)
1435 AC_SUBST(LIB_ALSA)
1436 AC_SUBST(LIB_ARTS)
1437 AC_SUBST(LIB_BEOS)
1438 AC_SUBST(LIB_CHROMA_I420_RGB)
1439 AC_SUBST(LIB_DARWIN)
1440 AC_SUBST(LIB_DIRECTX)
1441 AC_SUBST(LIB_DSP)
1442 AC_SUBST(LIB_DVD)
1443 AC_SUBST(LIB_DVDREAD)
1444 AC_SUBST(LIB_ESD)
1445 AC_SUBST(LIB_FILTER_DISTORT)
1446 AC_SUBST(LIB_GGI)
1447 AC_SUBST(LIB_GLIDE)
1448 AC_SUBST(LIB_GNOME)
1449 AC_SUBST(LIB_GTK)
1450 AC_SUBST(LIB_IDCTALTIVEC)
1451 AC_SUBST(LIB_IMDCT)
1452 AC_SUBST(LIB_IMDCT3DN)
1453 AC_SUBST(LIB_IMDCTSSE)
1454 AC_SUBST(LIB_IPV4)
1455 AC_SUBST(LIB_IPV6)
1456 AC_SUBST(LIB_KDE)
1457 AC_SUBST(LIB_LIRC)
1458 AC_SUBST(LIB_MACOSX)
1459 AC_SUBST(LIB_MAD)
1460 AC_SUBST(LIB_MEMCPYALTIVEC)
1461 AC_SUBST(LIB_MOTIONALTIVEC)
1462 AC_SUBST(LIB_MPEG_TS)
1463 AC_SUBST(LIB_NCURSES)
1464 AC_SUBST(LIB_QNX)
1465 AC_SUBST(LIB_QT)
1466 AC_SUBST(LIB_RC)
1467 AC_SUBST(LIB_SDL)
1468 AC_SUBST(LIB_VCD)
1469 AC_SUBST(LIB_VORBIS)
1470 AC_SUBST(LIB_WAVEOUT)
1471 AC_SUBST(LIB_WIN32)
1472 AC_SUBST(LIB_X11)
1473 AC_SUBST(LIB_XVIDEO)
1474
1475 AC_SUBST(CFLAGS_COMMON)
1476 AC_SUBST(CFLAGS_VLC)
1477
1478 AC_SUBST(CFLAGS_ARTS)
1479 AC_SUBST(CFLAGS_DVD)
1480 AC_SUBST(CFLAGS_DVDREAD)
1481 AC_SUBST(CFLAGS_ESD)
1482 AC_SUBST(CFLAGS_GLIDE)
1483 AC_SUBST(CFLAGS_GNOME)
1484 AC_SUBST(CFLAGS_GTK)
1485 AC_SUBST(CFLAGS_KDE)
1486 AC_SUBST(CFLAGS_IDCTALTIVEC)
1487 AC_SUBST(CFLAGS_MACOSX)
1488 AC_SUBST(CFLAGS_MAD)
1489 AC_SUBST(CFLAGS_MEMCPYALTIVEC)
1490 AC_SUBST(CFLAGS_MOTIONALTIVEC)
1491 AC_SUBST(CFLAGS_OPTIM)
1492 AC_SUBST(CFLAGS_OPTIM_NODEBUG)
1493 AC_SUBST(CFLAGS_QT)
1494 AC_SUBST(CFLAGS_SDL)
1495 AC_SUBST(CFLAGS_WIN32)
1496 AC_SUBST(CFLAGS_X11)
1497 AC_SUBST(CFLAGS_XVIDEO)
1498
1499 AC_SUBST(NEED_GETOPT)
1500
1501 AC_OUTPUT([Makefile.opts po/Makefile.in])
1502
1503 echo "
1504 vlc configuration
1505 --------------------
1506 vlc version           : ${VERSION}
1507 system                : ${SYS}
1508 architecture          : ${ARCH}
1509 optimizations         : ${OPTIMS}
1510 tuning                : ${TUNING}
1511 debug mode            : ${DEBUG}
1512 release               : ${RELEASE}
1513 cprof/gprof support   : ${CPROF}/${GPROF}
1514 need builtin getopt   : ${NEED_GETOPT}
1515 built-in modules      :${BUILTINS}
1516 plug-in modules       :${PLUGINS}
1517 vlc aliases           :${ALIASES}
1518
1519 You may now tune Makefile.opts at your convenience, for instance to choose
1520 which modules get compiled as plugins.
1521
1522 To build vlc and its plugins, type \`$VLC_MAKE'.
1523 "
1524