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