]> git.sesse.net Git - vlc/blob - configure.in
d31e1c33c56b0cd070fdbb42a7fdaa41b388fd56
[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.3.0"
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(VLC_PACKAGE, "vlc", [Package name])
43 AC_DEFINE_UNQUOTED(VLC_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 posix_memalign)
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(linux/version.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 SSE_MODULES="imdctsse downmixsse"
381 ALTIVEC_MODULES="idctaltivec motionaltivec"
382
383 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
384     [ac_cv_mmx_inline],
385     [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
386                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
387 if test x"$ac_cv_mmx_inline" != x"no"; then
388   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
389 fi
390
391 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
392     [ac_cv_mmxext_inline],
393     [AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
394                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
395 if test x"$ac_cv_mmxext_inline" != x"no"; then
396   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
397 fi
398
399 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
400     [ac_cv_3dnow_inline],
401     [AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
402                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
403 if test x"$ac_cv_3dnow_inline" != x"no"; then
404   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
405   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
406 fi
407
408 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
409     [ac_cv_sse_inline],
410     [AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
411                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
412 if test x"$ac_cv_sse_inline" != x"no"; then
413   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
414   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
415 fi
416
417 # don't try to grok altivec with native mingw32 it doesn't work right now
418 # we should be able to remove this test with future versions of mingw32
419 if test x$SYS != xmingw32; then
420 AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
421     [ac_cv_altivec_inline],
422     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
423          ac_cv_altivec_inline=yes,
424          [save_CFLAGS=$CFLAGS
425           CFLAGS="$CFLAGS -Wa,-m7400"
426           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
427             [ac_cv_altivec_inline="-Wa,-m7400"],
428             ac_cv_altivec_inline=no)
429           CFLAGS=$save_CFLAGS
430          ])])
431 if test x"$ac_cv_altivec_inline" != x"no"; then
432   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
433   if test x"$ac_cv_altivec_inline" != x"yes"; then
434     CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_altivec_inline"
435     CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_altivec_inline"
436     CFLAGS_MEMCPYALTIVEC="$CFLAGS_MEMCPYALTIVEC $ac_cv_altivec_inline"
437     CFLAGS_VLC="$CFLAGS_VLC $ac_cv_altivec_inline"
438   fi
439   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
440 fi
441
442 AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
443     [ac_cv_c_altivec],
444     [save_CFLAGS=$CFLAGS
445      CFLAGS="$CFLAGS -faltivec"
446      # Darwin test
447      AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
448         ac_cv_c_altivec=-faltivec, [
449         # Linux/PPC test
450         CFLAGS="$save_CFLAGS $CFLAGS_IDCTALTIVEC -fvec"
451         AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
452             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
453         ])
454      CFLAGS=$save_CFLAGS
455     ])
456 if test x"$ac_cv_c_altivec" != x"no"; then
457   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
458   CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_c_altivec"
459   CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_c_altivec"
460   CFLAGS_MEMCPYALTIVEC="$CFLAGS_MEMCPYALTIVEC $ac_cv_c_altivec"
461   CFLAGS_VLC="$CFLAGS_VLC $ac_cv_c_altivec"
462   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
463 fi
464
465 AC_CACHE_CHECK([if linker needs -framework vecLib],
466     [ac_cv_ld_altivec],
467     [save_LDFLAGS=$LDFLAGS
468      LDFLAGS="$LDFLAGS -framework vecLib"
469      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
470      LDFLAGS=$save_LDFLAGS
471     ])
472 if test x"$ac_cv_ld_altivec" != x"no"; then
473   LIB_IDCTALTIVEC="${LIB_IDCTALTIVEC} -framework vecLib"
474   LIB_MOTIONALTIVEC="${LIB_MOTIONALTIVEC} -framework vecLib"
475   LIB_MEMCPYALTIVEC="${LIB_MEMCPYALTIVEC} -framework vecLib"
476   LIB_VLC="${LIB_VLC} -framework vecLib"
477 fi
478 fi # end if mingw32
479
480
481 AC_ARG_WITH(,[])
482 AC_ARG_WITH(,[Optimization options:])
483
484 dnl
485 dnl  Special arch tuning
486 dnl
487 AC_ARG_WITH(tuning,
488 [  --with-tuning=ARCH      enable special tuning for an architecture
489                           (default i686 on IA-32 and 750 on PPC)])
490 if test "x$withval" != "x"; then
491     TUNING=$withval
492 else
493     if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
494     else
495         if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
496     fi
497 fi
498
499 dnl
500 dnl  x86 accelerations
501 dnl
502 if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xx86 -o x${target_cpu} = xi386
503 then
504     ARCH="${ARCH} mmx"
505     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"
506 fi
507
508 dnl
509 dnl  Enable/disable optimizations
510 dnl
511 AC_ARG_ENABLE(optimizations,
512 [  --disable-optimizations disable compiler optimizations (default enabled)],
513 [ if test x$enableval = xno; then OPTIMS=0; fi ],
514 [ OPTIMS=1 ])
515
516 dnl
517 dnl  AltiVec acceleration
518 dnl
519 AC_ARG_ENABLE(altivec,
520 [  --disable-altivec       disable altivec optimizations (default enabled on PPC)],
521 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
522     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
523 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
524     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
525
526 dnl
527 dnl  Debugging mode
528 dnl
529 DEBUG=0
530 AC_ARG_ENABLE(debug,
531 [  --enable-debug          debug mode (default disabled)],
532 [ if test x$enableval = xyes; then DEBUG=1; fi ])
533
534 dnl
535 dnl  Enable release-specific flags
536 dnl
537 AC_ARG_ENABLE(release,
538 [  --enable-release        activate extra optimizations (default disabled)],
539 [ if test x$enableval = xyes; then RELEASE=1; fi ],
540 [ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
541
542 dnl
543 dnl  Input plugins
544 dnl
545
546 AC_ARG_WITH(,[Input plugins:])
547
548 dnl
549 dnl  DVD module: optionally check for installed libdvdcss
550 dnl
551 AC_ARG_ENABLE(dvd,
552 [  --enable-dvd            DVD input module (default enabled)])
553 if test "x$enableval" != "xno"
554 then
555   AC_ARG_WITH(dvdcss, 
556   [    --with-dvdcss=PATH    libdvdcss headers and libraries])
557   AC_ARG_WITH(dvdcss-tree, 
558   [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
559   case "x$with_dvdcss" in
560   x|xyes)
561     if test "x$with_dvdcss_tree" = x
562     then
563       AC_CHECK_HEADERS(dvdcss/dvdcss.h,
564         [ PLUGINS="${PLUGINS} dvd"
565           LIB_DVD="${LIB_DVD} -ldvdcss" ],
566         [ 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.])
567           AC_MSG_ERROR([cannot find libdvdcss headers]) ])
568     else
569       AC_MSG_CHECKING(for libdvdcss.a in ${with_dvdcss_tree})
570       real_dvdcss_tree="`cd ${with_dvdcss_tree} 2>/dev/null && pwd`"
571       if test "x$real_dvdcss_tree" = x
572       then
573         dnl  The given directory can't be found
574         AC_MSG_RESULT(no)
575         AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
576       fi
577       if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
578       then
579         dnl  Use a custom libdvdcss
580         AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
581         BUILTINS="${BUILTINS} dvd"
582         LIB_DVD="${LIB_DVD} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
583         CFLAGS_DVD="${CFLAGS_DVD} -I${real_dvdcss_tree}/src"
584       else
585         dnl  The given libdvdcss wasn't built
586         AC_MSG_RESULT(no)
587         AC_MSG_ERROR([cannot find ${real_dvdcss_tree}/src/.libs/libdvdcss.a, make sure you compiled libdvdcss in ${with_dvdcss_tree}])
588       fi
589     fi
590   ;;
591   xno)
592     dnl  Compile without dvdcss (dlopen version, works only under Linux)
593     PLUGINS="${PLUGINS} dvd"
594     CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
595     LIB_DVD="${LIB_DVD} -ldl"
596   ;;
597   *)
598     AC_MSG_CHECKING(for dvdcss headers in ${with_dvdcss})
599     if test -f ${with_dvdcss}/include/dvdcss/dvdcss.h
600     then
601       dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
602       AC_MSG_RESULT(yes)
603       PLUGINS="${PLUGINS} dvd"
604       LIB_DVD="${LIB_DVD} -L${with_dvdcss}/lib -ldvdcss"
605       CFLAGS_DVD="${CFLAGS_DVD} -I${with_dvdcss}/include"
606     else
607       dnl  No libdvdcss could be found, sorry
608       AC_MSG_RESULT(no)
609       AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
610     fi
611   ;;
612   esac
613 fi
614
615 dnl
616 dnl dvdread module: check for libdvdread plugin
617 dnl
618 AC_ARG_ENABLE(dvdread,
619 [  --enable-dvdread        dvdread input module (default disabled)])
620 if test "x$enableval" != "xno"
621 then
622   AC_ARG_WITH(dvdread, 
623   [    --with-dvdread=PATH   libdvdread headers and libraries])
624   case "x$with_dvdread" in
625   x)
626     AC_CHECK_HEADERS(dvdread/dvd_reader.h,
627       [ PLUGINS="${PLUGINS} dvdread"
628         LIB_DVDREAD="${LIB_DVDREAD} -ldvdread" ])
629   ;;
630   *)
631     AC_MSG_CHECKING(for dvdread headers in ${withval})
632     if test -f ${withval}/include/dvdread/dvd_reader.h
633     then
634       AC_MSG_RESULT(yes)
635       PLUGINS="${PLUGINS} dvdread"
636       LIB_DVDREAD="${LIB_DVDREAD} -L${withval}/lib -ldvdread"
637       CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I${withval}/include"
638     else
639       AC_MSG_RESULT(no)
640       AC_MSG_ERROR([Cannot find ${withval}/dvdread/dvd_reader.h])
641     fi
642   ;;
643   esac
644 fi
645
646 dnl
647 dnl  VCD module
648 dnl
649 AC_ARG_ENABLE(vcd,
650   [  --enable-vcd            VCD support for Linux and MacOS X (default enabled)])
651
652 if test x$enable_vcd != xno
653 then
654   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
655     PLUGINS="${PLUGINS} vcd"
656   ])
657
658   if test "x${SYS}" = "xbsdi"
659   then
660     PLUGINS="${PLUGINS} vcd"
661   fi
662
663   if test "x${SYS}" = "xdarwin"
664   then
665     PLUGINS="${PLUGINS} vcd"
666     LIB_VCD="${LIB_VCD} -framework IOKit -framework CoreFoundation" 
667   fi
668 fi
669
670 dnl
671 dnl  Satellite input module
672 dnl
673 AC_ARG_ENABLE(satellite,
674   [  --enable-satellite      satellite card support (default disabled)],
675   [ if test x$enable_satellite = xyes
676     then
677       BUILTINS="${BUILTINS} satellite"
678       AC_DEFINE(HAVE_SATELLITE, 1, define if compiling with satellite card support)
679     fi])
680
681 dnl
682 dnl  ipv6 plugin
683 dnl
684 AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
685
686 dnl
687 dnl  Codec plugins
688 dnl
689
690 AC_ARG_WITH(,[Codec plugins:])
691
692 dnl
693 dnl  mad plugin
694 dnl
695 AC_ARG_ENABLE(mad,
696   [  --enable-mad            libmad module (default disabled)])
697 if test x$enable_mad = xyes
698 then
699   PLUGINS="${PLUGINS} mad"
700   LIB_MAD="${LIB_MAD} -lmad"
701   AC_ARG_WITH(mad,
702     [    --with-mad=PATH       path to libmad],
703     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
704       then
705         CFLAGS_MAD="${CFLAGS_MAD} -I$with_val/include"
706         LIB_MAD="${LIB_MAD} -L$with_val/lib"
707       fi ])
708   save_CFLAGS=$CFLAGS
709   save_LDFLAGS=$LDFLAGS
710   CFLAGS="$CFLAGS $CFLAGS_MAD"
711   LDFLAGS="$LDFLAGS $LIB_MAD"
712   AC_CHECK_HEADERS(mad.h, ,
713   [ echo "Cannot find development headers for libmad..."
714     exit 1
715   ])
716   AC_CHECK_LIB(mad, mad_bit_init, ,
717   [ echo "Cannot find libmad library..."
718     exit 1
719   ])
720   CFLAGS=$save_CFLAGS
721   LDFLAGS=$save_LDFLAGS
722 fi
723
724 dnl special case for BeOS
725 if test x$SYS = xbeos
726 then
727     PLUGINS="${PLUGINS} beos"
728
729 dnl default case
730 else
731
732 dnl
733 dnl  a52 AC3 decoder plugin
734 dnl
735 AC_ARG_ENABLE(a52,
736   [  --enable-a52            AC3 support with liba52 (default enabled)])
737 if test "x$enableval" != "xno" -a x$SYS != xmingw32
738   then
739     AC_CHECK_HEADERS(a52dec/a52.h, [
740       BUILTINS="${BUILTINS} a52"
741       LIB_A52="${LIB_A52} -la52 -lm"
742      ],[])
743 fi
744
745 dnl
746 dnl  ogg vorbis plugin
747 dnl
748 AC_ARG_ENABLE(vorbis,
749   [  --enable-vorbis         Ogg/Vorbis decoder support (default enabled)])
750 if test "x$enableval" != "xno"
751 then
752   AC_CHECK_HEADERS(ogg/ogg.h, [
753     PLUGINS="${PLUGINS} vorbis"
754     LIB_VORBIS="${LIB_VORBIS} -lvorbis"
755    ],[])
756 fi
757
758 dnl
759 dnl  Video plugins
760 dnl
761
762 AC_ARG_WITH(,[Video plugins:])
763
764 dnl
765 dnl  X11 module
766 dnl  (enabled by default except on win32)
767 dnl
768 AC_ARG_ENABLE(x11,
769   [  --enable-x11            X11 support (default enabled)])
770 if test x$enable_x11 != xno &&
771   (test x$SYS != xmingw32 || test x$enable_x11 = xyes); then
772   if test x$x_includes = xNONE; then
773     x_includes=/usr/X11R6/include
774   fi
775   if test x$x_libraries = xNONE; then
776     x_libraries=/usr/X11R6/lib
777   fi
778   saved_CPPFLAGS=$CPPFLAGS
779   CPPFLAGS="$CPPFLAGS -I$x_includes"
780   AC_CHECK_HEADERS(X11/Xlib.h, [
781     PLUGINS="${PLUGINS} x11"
782     LIB_X11="${LIB_X11} -L$x_libraries -lX11 -lXext"
783     CFLAGS_X11="${CFLAGS_X11} -I$x_includes"
784   ])
785   CPPFLAGS=$saved_CPPFLAGS
786 fi
787
788 dnl
789 dnl  XVideo module
790 dnl  (enabled by default except on win32)
791 dnl
792 AC_ARG_ENABLE(xvideo,
793   [  --enable-xvideo         XVideo support (default enabled)])
794 if test x$enable_xvideo != xno &&
795   (test x$SYS != xmingw32 || test x$enable_xvideo = xyes); then
796   if test x$x_includes = xNONE; then
797     x_includes=/usr/X11R6/include
798   fi
799   if test x$x_libraries = xNONE; then
800     x_libraries=/usr/X11R6/lib
801   fi
802   saved_CPPFLAGS=$CPPFLAGS
803   CPPFLAGS="$CPPFLAGS -I$x_includes"
804   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
805     saved_CFLAGS=$CFLAGS
806     CFLAGS="$CFLAGS -L$x_libraries -lX11 -lXext"
807     AC_CHECK_LIB(Xv_pic,XvSetPortAttribute,
808       # We have Xv_pic, that's good, we can build an xvideo.so plugin !
809       PLUGINS="${PLUGINS} xvideo"
810       LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv_pic"
811       CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes",
812       # We don't have Xv_pic, let's make xvideo.a as builtin
813       BUILTINS="${BUILTINS} xvideo"
814       LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv"
815       CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes")
816     CFLAGS=$saved_CFLAGS
817   ]
818   CPPFLAGS=$saved_CPPFLAGS)
819 fi
820
821 dnl
822 dnl  SDL module
823 dnl
824 AC_ARG_ENABLE(sdl,
825   [  --enable-sdl            SDL support (default enabled)])
826 if test "x$enable_sdl" != "xno"
827 then
828   SDL_PATH=$PATH
829   AC_ARG_WITH(sdl-config-path,
830     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
831     [ if test "x$withval" != "xno"
832       then
833         SDL_PATH=$withval:$PATH
834       fi ])
835   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
836   SDL_CONFIG=${SDL12_CONFIG}
837   SDL_HEADER="SDL12/SDL.h"
838   if test x${SDL_CONFIG} = xno
839   then
840     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, $SDL_PATH)
841     SDL_CONFIG=${SDL11_CONFIG}
842     SDL_HEADER="SDL11/SDL.h"
843   fi
844   if test x${SDL_CONFIG} = xno
845   then
846     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, $SDL_PATH)
847     SDL_HEADER="SDL/SDL.h"
848   fi
849   if test x${SDL_CONFIG} != xno
850   then
851     PLUGINS="${PLUGINS} sdl"
852     CFLAGS_SDL="${CFLAGS_SDL} `${SDL_CONFIG} --cflags`"
853     LIB_SDL="${LIB_SDL} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
854     save_CPPFLAGS=$CPPFLAGS
855     CPPFLAGS="$CPPFLAGS $CFLAGS_SDL"
856     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
857       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
858       [ AC_MSG_ERROR([The development package for SDL is not installed. 
859 Please install it and try again. Alternatively you can also configure with 
860 --disable-sdl.])
861       ])
862     CPPFLAGS=$save_CPPFLAGS
863     if expr 1.1.5 \> `$SDL_CONFIG --version` >/dev/null
864     then
865       AC_MSG_ERROR([The development package for SDL is not installed.
866 Please install it and try again. Alternatively you can also configure with
867 --disable-sdl.])
868     fi
869   elif test "x$enable_sdl" =  "xyes"
870   then
871     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
872 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
873     ])
874   fi
875 fi
876
877 dnl
878 dnl  Windows DirectX module
879 dnl
880 AC_ARG_ENABLE(directx,
881   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
882 if test "x$enableval" != "xno"
883 then
884   if test x$SYS = xmingw32
885   then
886     AC_ARG_WITH(directx, 
887     [    --with-directx=PATH   Win32 DirectX headers and libraries])
888     if test "x$with_directx" = "x"
889     then
890       AC_CHECK_HEADERS(ddraw.h,
891       [ PLUGINS="${PLUGINS} directx"
892         LIB_DIRECTX="${LIB_DIRECTX} -lgdi32" ])
893     else
894       AC_MSG_CHECKING(for directX headers in ${withval})
895       if test -f ${withval}/ddraw.h
896       then
897         PLUGINS="${PLUGINS} directx"
898         LIB_DIRECTX="${LIB_DIRECTX} -L${withval}/lib -lgdi32"
899         INCLUDE="${INCLUDE} -I${withval}"
900         AC_MSG_RESULT(yes)
901       else
902         AC_MSG_RESULT(no)
903         AC_MSG_ERROR([Cannot find ${withval}/ddraw.h!])
904       fi
905     fi
906   fi
907 fi
908
909 dnl
910 dnl  Linux framebuffer module
911 dnl
912 AC_ARG_ENABLE(fb,
913   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
914     if test x$enable_fb != xno
915     then
916       AC_CHECK_HEADERS(linux/fb.h, [
917         PLUGINS="${PLUGINS} fb"
918       ])
919     fi
920
921 dnl
922 dnl  Linux MGA module
923 dnl
924 AC_ARG_ENABLE(mga,
925   [  --enable-mga            Linux kernel Matrox support (default disabled)],
926   [ if test x$enable_mga = xyes
927     then
928       PLUGINS="${PLUGINS} mga xmga"
929     fi ])
930
931 dnl
932 dnl  GGI module
933 dnl
934 AC_ARG_ENABLE(ggi,
935   [  --enable-ggi            GGI support (default disabled)])
936 if test x$enable_ggi = xyes
937 then
938   PLUGINS="${PLUGINS} ggi"
939   LIB_GGI="${LIB_GGI} -lggi"
940   AC_ARG_WITH(ggi,
941     [    --with-ggi=PATH       path to libggi],
942     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
943       then
944         CFLAGS_GGI="${CFLAGS_GGI} -I$with_val/include"
945         LIB_GGI="${LIB_GGI} -L$with_val/lib"
946       fi ])
947 fi
948
949 dnl
950 dnl  Glide module
951 dnl
952 AC_ARG_ENABLE(glide,
953   [  --enable-glide          Glide (3dfx) support (default disabled)])
954 if test x$enable_glide = xyes
955 then
956   PLUGINS="${PLUGINS} glide"
957   LIB_GLIDE="${LIB_GLIDE} -lglide2x -lm"
958   CFLAGS_GLIDE="${CFLAGS_GLIDE} -I/usr/include/glide"
959   AC_ARG_WITH(glide,
960     [    --with-glide=PATH     path to libglide],
961     [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
962       then
963         CFLAGS_GLIDE="${CFLAGS_GLIDE} -I$with_val/include"
964         LIB_GLIDE="${LIB_GLIDE} -L$with_val/lib"
965       fi ])
966 fi
967
968 dnl
969 dnl  AA plugin
970 dnl
971 AC_ARG_ENABLE(aa,
972   [  --enable-aa             aalib output (default disabled)])
973 if test x$enable_aa = xyes
974 then
975   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
976   if test x$have_aa = xtrue
977   then
978     PLUGINS="${PLUGINS} aa"
979     LIB_AA="${LIB_AA} -laa"
980   fi
981 fi
982
983 dnl
984 dnl  Audio plugins
985 dnl
986
987 AC_ARG_WITH(,[Audio plugins:])
988
989 dnl
990 dnl  OSS /dev/dsp module (enabled by default except on win32)
991 dnl
992 AC_ARG_ENABLE(dsp,
993   [  --enable-dsp            Linux /dev/dsp support (enabled on Linux)])
994
995 if test x$enable_dsp != xno &&
996   (test x$SYS != xmingw32 || test x$enable_dsp = xyes)
997 then
998   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
999     PLUGINS="${PLUGINS} dsp"
1000     AC_CHECK_LIB(ossaudio,main,LIB_DSP="${LIB_DSP} -lossaudio")
1001   ])
1002 fi
1003
1004 dnl
1005 dnl  Esound module
1006 dnl
1007 AC_ARG_ENABLE(esd,
1008   [  --enable-esd            Esound library support (default disabled)],
1009   [if test x$enable_esd = xyes
1010    then
1011      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
1012      if test x${ESD_CONFIG} != xno
1013      then
1014        PLUGINS="${PLUGINS} esd"
1015        CFLAGS_ESD="${CFLAGS_ESD} `${ESD_CONFIG} --cflags`"
1016        LIB_ESD="${LIB_ESD} `${ESD_CONFIG} --libs`"
1017      fi
1018    fi])
1019
1020 dnl
1021 dnl  aRts module
1022 dnl
1023 AC_ARG_ENABLE(arts,
1024   [  --enable-arts           aRts sound server (default disabled)],
1025   [if test x$enable_arts = xyes
1026    then
1027      AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
1028      if test x${ARTS_CONFIG} != xno
1029      then
1030        PLUGINS="${PLUGINS} arts"
1031        CFLAGS_ARTS="${CFLAGS_ARTS} `${ARTS_CONFIG} --cflags`"
1032        LIB_ARTS="${LIB_ARTS} `${ARTS_CONFIG} --libs `"
1033      fi
1034    fi])
1035
1036 dnl
1037 dnl  ALSA module
1038 dnl
1039 AC_ARG_ENABLE(alsa,
1040   [  --enable-alsa           ALSA sound support for Linux (default disabled)],
1041   [if test x$enable_alsa = xyes
1042    then
1043      AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
1044      if test x$have_alsa = xtrue
1045      then
1046        PLUGINS="${PLUGINS} alsa"
1047        LIB_ALSA="${LIB_ALSA} -lasound -lm -ldl"
1048      fi
1049    fi])
1050
1051 dnl
1052 dnl  win32 waveOut plugin
1053 dnl
1054 AC_ARG_ENABLE(waveout,
1055   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
1056 if test "x$enableval" != "xno" -a x$SYS = xmingw32
1057   then
1058     PLUGINS="${PLUGINS} waveout"
1059     LIB_WAVEOUT="-lwinmm"
1060 fi
1061
1062 dnl
1063 dnl  Interface plugins
1064 dnl
1065
1066 AC_ARG_WITH(,[Interface plugins:])
1067
1068 dnl
1069 dnl  Gtk+ module
1070 dnl
1071 AC_ARG_ENABLE(gtk,
1072   [  --enable-gtk            Gtk+ support (default enabled)])
1073 if test x$enable_gtk != xno
1074 then
1075   GTK_PATH=$PATH
1076   AC_ARG_WITH(gtk-config-path,
1077     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
1078     [ if test "x$withval" != "xno"
1079       then
1080         GTK_PATH=$withval:$PATH
1081       fi ])
1082   # look for gtk-config
1083   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, $GTK_PATH)
1084   GTK_CONFIG=${GTK12_CONFIG}
1085   if test x${GTK_CONFIG} = xno
1086   then
1087     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, $GTK_PATH)
1088   fi
1089   if test x${GTK_CONFIG} != xno
1090   then
1091     if expr 1.2.0 \> `$GTK_CONFIG --version` >/dev/null
1092     then
1093       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.])
1094     fi
1095     CFLAGS_GTK="${CFLAGS_GTK} `${GTK_CONFIG} --cflags gtk`"
1096     LIB_GTK="${LIB_GTK} `${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
1097     # now look for the gtk.h header
1098     saved_CPPFLAGS=$CPPFLAGS
1099     CPPFLAGS="$CPPFLAGS $CFLAGS_GTK"
1100     ac_cv_gtk_headers=yes
1101     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
1102       ac_cv_gtk_headers=no
1103       echo "Cannot find gtk development headers."
1104     ])
1105     if test "x$ac_cv_gtk_headers" = xyes
1106     then
1107       PLUGINS="${PLUGINS} gtk"
1108       ALIASES="${ALIASES} gvlc"
1109     fi
1110     CPPFLAGS=$saved_CPPFLAGS
1111   fi
1112 fi
1113
1114 dnl
1115 dnl  Gnome module
1116 dnl
1117 AC_ARG_ENABLE(gnome,
1118   [  --enable-gnome          Gnome interface support (default disabled)],
1119   [if test x$enable_gnome = xyes; then
1120     # look for gnome-config
1121     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
1122     if test -x ${GNOME_CONFIG}
1123     then
1124        CFLAGS_GNOME="${CFLAGS_GNOME} `${GNOME_CONFIG} --cflags gtk gnomeui`"
1125        LIB_GNOME="${LIB_GNOME} `${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`"
1126     fi
1127     # now look for the gnome.h header
1128     saved_CPPFLAGS=$CPPFLAGS
1129     CPPFLAGS="$CPPFLAGS $CFLAGS_GNOME"
1130     AC_CHECK_HEADERS(gnome.h, [
1131       PLUGINS="${PLUGINS} gnome"
1132       ALIASES="${ALIASES} gnome-vlc"
1133      ],[
1134       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
1135 developement tools or remove the --enable-gnome option])
1136      ])
1137   
1138     CPPFLAGS=$saved_CPPFLAGS
1139   fi])
1140
1141 dnl
1142 dnl  Qt module
1143 dnl
1144 AC_ARG_ENABLE(qt,
1145   [  --enable-qt             Qt interface support (default disabled)],
1146   [if test x$enable_qt = xyes; then
1147      PLUGINS="${PLUGINS} qt"
1148      ALIASES="${ALIASES} qvlc"
1149      LIB_QT="${LIB_QT} -lqt -L${QTDIR}/lib"
1150      CFLAGS_QT="${CFLAGS_QT} -I/usr/include/qt -I${QTDIR}/include"
1151      if test -x ${QTDIR}/bin/moc
1152      then
1153        MOC=${QTDIR}/bin/moc
1154      else
1155        MOC=moc
1156      fi
1157    fi])
1158
1159 dnl 
1160 dnl  KDE module
1161 dnl
1162 AC_ARG_ENABLE(kde,
1163   [  --enable-kde            KDE interface support (default disabled)],
1164   [if test x$enable_kde = xyes; then
1165      PLUGINS="${PLUGINS} kde"
1166      ALIASES="${ALIASES} kvlc"
1167      LIB_KDE="${LIB_KDE} -L${KDEDIR}/lib -lkfile"
1168      CFLAGS_KDE="${CFLAGS_KDE} -I/usr/include/kde -I/usr/include/qt"
1169      CFLAGS_KDE="${CFLAGS_KDE} -I${KDEDIR}/include -I${QTDIR}/include"
1170      if test -x ${QTDIR}/bin/moc
1171      then
1172        MOC=${QTDIR}/bin/moc
1173      else
1174        MOC=moc
1175      fi
1176    fi])
1177
1178 dnl
1179 dnl  MacOS X module
1180 dnl
1181 AC_ARG_ENABLE(macosx,
1182   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
1183   [if test x$enable_macosx = xyes
1184    then
1185      BUILTINS="${BUILTINS} macosx"
1186      LIB_MACOSX="${LIB_MACOSX} -framework CoreAudio -framework AudioToolbox -framework Cocoa -framework AGL -framework QuickTime -lobjc"
1187      CFLAGS_MACOSX="${CFLAGS_MACOSX} -ObjC"
1188      LIB_COMMON="${LIB_COMMON} -ObjC"
1189    fi],
1190   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
1191      BUILTINS="${BUILTINS} macosx"
1192      LIB_MACOSX="${LIB_MACOSX} -framework CoreAudio -framework AudioToolbox -framework Cocoa -framework AGL -framework QuickTime -lobjc"
1193      CFLAGS_MACOSX="${CFLAGS_MACOSX} -ObjC"
1194      LIB_COMMON="${LIB_COMMON} -ObjC"
1195    )])
1196
1197 dnl
1198 dnl  QNX RTOS module
1199 dnl
1200 AC_ARG_ENABLE(qnx,
1201   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
1202     if test x$enable_qnx != xno
1203     then
1204       AC_CHECK_HEADERS(Ph.h, [
1205         PLUGINS="${PLUGINS} qnx"
1206         LIB_QNX="${LIB_QNX} -lasound -lph"
1207       ])
1208     fi
1209
1210 dnl
1211 dnl  Windows MFC interface module
1212 dnl
1213 AC_ARG_ENABLE(win32,
1214   [  --enable-win32          Win32 interface support (default disabled)],
1215   [ if test "x$enableval" != "xno"
1216     then
1217       PLUGINS="${PLUGINS} win32"
1218     fi ])
1219
1220 dnl
1221 dnl  ncurses module
1222 dnl
1223 AC_ARG_ENABLE(ncurses,
1224   [  --enable-ncurses        ncurses interface support (default disabled)],
1225   [if test x$enable_ncurses = xyes; then
1226      PLUGINS="${PLUGINS} ncurses"
1227      LIB_NCURSES="${LIB_NCURSES} -lncurses"
1228    fi])
1229
1230 dnl
1231 dnl  Lirc plugin
1232 dnl
1233 AC_ARG_ENABLE(lirc,
1234   [  --enable-lirc           lirc support (default disabled)])
1235 if test x$enable_lirc = xyes
1236 then
1237   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
1238   if test x$have_lirc = xtrue
1239   then
1240     PLUGINS="${PLUGINS} lirc"
1241     LIB_LIRC="${LIB_LIRC} -llirc_client"
1242   fi
1243 fi
1244
1245 dnl  end of non-BeOS stuff
1246 fi
1247
1248 AC_ARG_WITH(,[Misc options:])
1249
1250 dnl
1251 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
1252 dnl
1253 dnl  We give the user the opportunity to specify
1254 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
1255 dnl
1256 AC_ARG_WITH(words,
1257   [  --with-words=endianness set endianness (big or little)])
1258   case "x$withval" in
1259     xbig)
1260       ac_cv_c_bigendian=yes
1261       ;;
1262     xlittle)
1263       ac_cv_c_bigendian=no
1264       ;;
1265     *)
1266       dnl  Try to guess endianness by matching patterns on a compiled
1267       dnl  binary, by looking for an ASCII or EBCDIC string
1268       AC_CACHE_CHECK([whether the byte order is big-endian],
1269         [ac_cv_c_bigendian],
1270         [ac_cv_c_bigendian=unknown
1271         [cat >conftest.c <<EOF
1272         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
1273         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
1274         void _a(void) { char*s = (char*)am; s = (char *)ai; }
1275         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
1276         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
1277         void _e(void) { char*s = (char*)em; s = (char*)ei; }
1278         int main(void) { _a(); _e(); return 0; }
1279 EOF
1280         ]
1281         if test -f conftest.c
1282         then 
1283           if ${CC-cc} conftest.c -o conftest.o >config.log 2>&1 \
1284               && test -f conftest.o
1285           then
1286             if test "`strings conftest.o | grep BIGenDianSyS`"
1287             then
1288               ac_cv_c_bigendian=yes
1289             fi
1290             if test "`strings conftest.o | grep LiTTleEnDian`"
1291             then
1292               ac_cv_c_bigendian=no
1293             fi
1294           fi
1295         fi
1296       ])
1297       if test x$ac_cv_c_bigendian = xunknown
1298       then
1299         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
1300       fi
1301       ;;
1302   esac
1303 dnl  Now we know what to use for endianness, just put it in the header
1304 if test $ac_cv_c_bigendian = yes
1305 then
1306   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
1307 fi
1308
1309 dnl
1310 dnl  DLLs - used for Win32 package build
1311 dnl
1312 DLL_PATH=.
1313 AC_ARG_WITH(dll-path,
1314   [  --with-dll-path=PATH    path to Win32 DLLs (default search in \$PWD)],
1315   [ if test "x$withval" != "xno"
1316     then
1317       DLL_PATH=$withval
1318     fi ])
1319
1320 dnl
1321 dnl  Profiling
1322 dnl
1323 GPROF=0
1324 AC_ARG_ENABLE(gprof,
1325 [  --enable-gprof          gprof profiling (default disabled)],
1326 [ if test x$enableval = xyes; then GPROF=1; fi ])
1327
1328 CPROF=0
1329 AC_ARG_ENABLE(cprof,
1330 [  --enable-cprof          cprof profiling (default disabled)],
1331 [ if test x$enableval = xyes;
1332   then
1333     LIB_COMMON="${LIB_COMMON} -lcprof"
1334     CPROF=1
1335   fi
1336 ])
1337
1338 dnl
1339 dnl  GNU portable threads
1340 dnl
1341 AC_ARG_ENABLE(pth,
1342   [  --enable-pth            GNU Pth support (default disabled)],
1343   [ if test x$enableval = xyes; then
1344     AC_CHECK_LIB(pth,pth_init)
1345     AC_EGREP_HEADER(pth_init,pth.h,[
1346       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
1347                 Define if <pth.h> defines pth_init)
1348     THREAD_LIB="-lpth"
1349     fi])
1350 ])
1351
1352 dnl
1353 dnl  State Threads
1354 dnl
1355 AC_ARG_ENABLE(st,
1356   [  --enable-st             State Threads (default disabled)],
1357   [ if test x$enableval = xyes; then
1358     AC_CHECK_LIB(st,st_init)
1359     AC_EGREP_HEADER(st_init,st.h,[
1360       AC_DEFINE(ST_INIT_IN_ST_H, 1,
1361                 Define if <st.h> defines st_init)
1362     THREAD_LIB="-lst"
1363     fi])
1364 ])
1365
1366 LIB_COMMON="${LIB_COMMON} ${THREAD_LIB}"
1367
1368 dnl
1369 dnl  Plug-ins - this must be AT THE END
1370 dnl
1371 AC_ARG_ENABLE(plugins,
1372   [  --disable-plugins       make all plug-ins built-in (default plug-ins enabled)],
1373   [if test x$enable_plugins = xno
1374    then
1375      BUILTINS="${BUILTINS} ${PLUGINS}"
1376      PLUGINS=
1377    fi])
1378
1379 dnl Automagically disable plug-ins if there is no system support for .so files
1380 dnl don't forget vlc-win32 still can load .so as plugins
1381 if test x$ac_cv_header_dlfcn_h = xno -a x$ac_cv_header_image_h = xno -a x$SYS != xmingw32
1382 then
1383   echo "*** Your system doesn't have plug-in support. All plug-ins will be compiled"
1384   echo "as built-in"
1385   BUILTINS="${BUILTINS} ${PLUGINS}"
1386   PLUGINS=
1387 fi
1388
1389 dnl
1390 dnl  Stuff used by the program
1391 dnl
1392 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "vlc $VERSION $CODENAME Copyright 1996-2002 VideoLAN\n", [Simple version string])
1393 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version $VERSION $CODENAME - (c) 1996-2002 VideoLAN", [Copyright string])
1394
1395 VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
1396 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__MODULE_$VLC_SYMBOL", [String suffix for module functions])
1397 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $VLC_SYMBOL, [Symbol suffix for module functions])
1398
1399 DATA_PATH="${ac_tool_prefix}/share/videolan"
1400 AC_SUBST(DATA_PATH)
1401 PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
1402 AC_SUBST(PLUGIN_PATH)
1403
1404 dnl 
1405 dnl  Configuration is finished
1406 dnl
1407 AC_SUBST(SYS)
1408 AC_SUBST(ARCH)
1409 AC_SUBST(PLUGINS)
1410 AC_SUBST(BUILTINS)
1411 AC_SUBST(ALIASES)
1412 AC_SUBST(INCLUDE)
1413 AC_SUBST(DEBUG)
1414 AC_SUBST(ASM)
1415 AC_SUBST(CPROF)
1416 AC_SUBST(GPROF)
1417 AC_SUBST(OPTIMS)
1418 AC_SUBST(TUNING)
1419 AC_SUBST(RELEASE)
1420 AC_SUBST(MOC)
1421 AC_SUBST(WINDRES)
1422 AC_SUBST(DLL_PATH)
1423 AC_SUBST(VLC_PACKAGE)
1424 AC_SUBST(VLC_VERSION)
1425
1426 AC_SUBST(LDFLAGS)
1427 AC_SUBST(PLDFLAGS)
1428
1429 AC_SUBST(LIB_COMMON)
1430 AC_SUBST(LIB_VLC)
1431
1432 AC_SUBST(LIB_A52)
1433 AC_SUBST(LIB_AA)
1434 AC_SUBST(LIB_ALSA)
1435 AC_SUBST(LIB_ARTS)
1436 AC_SUBST(LIB_BEOS)
1437 AC_SUBST(LIB_CHROMA_I420_RGB)
1438 AC_SUBST(LIB_DARWIN)
1439 AC_SUBST(LIB_DIRECTX)
1440 AC_SUBST(LIB_DSP)
1441 AC_SUBST(LIB_DVD)
1442 AC_SUBST(LIB_DVDREAD)
1443 AC_SUBST(LIB_ESD)
1444 AC_SUBST(LIB_FILTER_DISTORT)
1445 AC_SUBST(LIB_GGI)
1446 AC_SUBST(LIB_GLIDE)
1447 AC_SUBST(LIB_GNOME)
1448 AC_SUBST(LIB_GTK)
1449 AC_SUBST(LIB_IDCTALTIVEC)
1450 AC_SUBST(LIB_IMDCT)
1451 AC_SUBST(LIB_IMDCT3DN)
1452 AC_SUBST(LIB_IMDCTSSE)
1453 AC_SUBST(LIB_IPV4)
1454 AC_SUBST(LIB_IPV6)
1455 AC_SUBST(LIB_KDE)
1456 AC_SUBST(LIB_LIRC)
1457 AC_SUBST(LIB_MACOSX)
1458 AC_SUBST(LIB_MAD)
1459 AC_SUBST(LIB_MEMCPYALTIVEC)
1460 AC_SUBST(LIB_MOTIONALTIVEC)
1461 AC_SUBST(LIB_MPEG_TS)
1462 AC_SUBST(LIB_NCURSES)
1463 AC_SUBST(LIB_QNX)
1464 AC_SUBST(LIB_QT)
1465 AC_SUBST(LIB_RC)
1466 AC_SUBST(LIB_SDL)
1467 AC_SUBST(LIB_VCD)
1468 AC_SUBST(LIB_VORBIS)
1469 AC_SUBST(LIB_WAVEOUT)
1470 AC_SUBST(LIB_WIN32)
1471 AC_SUBST(LIB_X11)
1472 AC_SUBST(LIB_XVIDEO)
1473
1474 AC_SUBST(CFLAGS_COMMON)
1475 AC_SUBST(CFLAGS_VLC)
1476
1477 AC_SUBST(CFLAGS_ARTS)
1478 AC_SUBST(CFLAGS_DVD)
1479 AC_SUBST(CFLAGS_DVDREAD)
1480 AC_SUBST(CFLAGS_ESD)
1481 AC_SUBST(CFLAGS_GLIDE)
1482 AC_SUBST(CFLAGS_GNOME)
1483 AC_SUBST(CFLAGS_GTK)
1484 AC_SUBST(CFLAGS_KDE)
1485 AC_SUBST(CFLAGS_IDCTALTIVEC)
1486 AC_SUBST(CFLAGS_MACOSX)
1487 AC_SUBST(CFLAGS_MAD)
1488 AC_SUBST(CFLAGS_MEMCPYALTIVEC)
1489 AC_SUBST(CFLAGS_MOTIONALTIVEC)
1490 AC_SUBST(CFLAGS_OPTIM)
1491 AC_SUBST(CFLAGS_OPTIM_NODEBUG)
1492 AC_SUBST(CFLAGS_QT)
1493 AC_SUBST(CFLAGS_SDL)
1494 AC_SUBST(CFLAGS_WIN32)
1495 AC_SUBST(CFLAGS_X11)
1496 AC_SUBST(CFLAGS_XVIDEO)
1497
1498 AC_SUBST(NEED_GETOPT)
1499
1500 AC_OUTPUT([Makefile.opts po/Makefile.in])
1501
1502 echo "
1503 vlc configuration
1504 --------------------
1505 vlc version           : ${VERSION}
1506 system                : ${SYS}
1507 architecture          : ${ARCH}
1508 optimizations         : ${OPTIMS}
1509 tuning                : ${TUNING}
1510 debug mode            : ${DEBUG}
1511 release               : ${RELEASE}
1512 cprof/gprof support   : ${CPROF}/${GPROF}
1513 need builtin getopt   : ${NEED_GETOPT}
1514 built-in modules      :${BUILTINS}
1515 plug-in modules       :${PLUGINS}
1516 vlc aliases           :${ALIASES}
1517
1518 You may now tune Makefile.opts at your convenience, for instance to choose
1519 which modules get compiled as plugins.
1520
1521 To build vlc and its plugins, type \`$VLC_MAKE'.
1522 "
1523