* ./configure.in: added --enable-intfwin to enable the win32 interface and
[vlc.git] / configure.in
blob7d2a42ce660d022bc4939abf9f53047e9cdb50c8
1 dnl Autoconf settings for vlc
2 AC_INIT(include/main.h)
3 AC_CONFIG_HEADER(include/defs.h)
5 AC_CANONICAL_SYSTEM
7 VERSION="0.3.0"
8 CODENAME=Ourumov
10 dnl Save CFLAGS and LDFLAGS
11 save_CFLAGS="${CFLAGS}"
12 save_LDFLAGS="${LDFLAGS}"
14 dnl Check for tools
15 AC_PROG_MAKE_SET
16 AC_PROG_CC
17 AC_PROG_CPP
19 dnl Find the right ranlib, even when cross-compiling
20 AC_CHECK_TOOL(RANLIB, ranlib, :)
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"
39 dnl Gettext stuff
40 ALL_LINGUAS="de fr ja no ru nl"
42 AC_DEFINE_UNQUOTED(VLC_PACKAGE, "vlc", [Package name])
43 AC_DEFINE_UNQUOTED(VLC_VERSION, "$VERSION", [Package version])
44 AM_GNU_GETTEXT
46 dnl AM_PROG_LIBTOOL
47 AC_PROG_INSTALL
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
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)
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")
101 AC_CHECK_FUNC(gethostbyname,,[
102   AC_CHECK_LIB(bind,gethostbyname,LIB_IPV4="${LIB_IPV4} -lbind")
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   ])
109 AC_CHECK_FUNC(inet_aton,,[
110   AC_CHECK_LIB(resolv,inet_aton,LIB_IPV4="${LIB_IPV4} -lresolv")
112 AC_CHECK_FUNC(textdomain,,[
113   AC_CHECK_LIB(intl,textdomain,LIB_VLC="${LIB_VLC} -lintl")
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])])
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"
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")
141 if test "x${THREAD_LIB}" = xerror; then
142   AC_CHECK_LIB(pthreads,pthread_attr_init,THREAD_LIB="-lpthreads")
144 if test "x${THREAD_LIB}" = xerror; then
145   AC_CHECK_LIB(c_r,pthread_attr_init,THREAD_LIB="-lc_r")
147 if test "x${THREAD_LIB}" = xerror; then
148   AC_CHECK_FUNC(pthread_attr_init)
149   THREAD_LIB=""
152 dnl Check for cthreads under GNU/Hurd for instance
153 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
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.)])
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)
171 AC_HEADER_TIME
173 dnl Check for threads library
174 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
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
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.)
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"
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
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"
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
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"
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"
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"
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"
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"
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])
327 dnl End of the bizarre compilation tests
328 CFLAGS="${save_CFLAGS}"
329 LDFLAGS="${save_LDFLAGS}"
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.)
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.)
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.)
357 dnl  Check the CPU
359 case x"${target_cpu}" in
360   x)
361     ARCH=unknown
362     ;;
363   *)
364     ARCH="${target_cpu}"
365     ;;
366 esac
369 dnl  default modules
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"
375 dnl  Accelerated modules
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"
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}"
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}"
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}"
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}"
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}"
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}"
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"
478 fi # end if mingw32
481 AC_ARG_WITH(,[])
482 AC_ARG_WITH(,[Optimization options:])
485 dnl  Special arch tuning
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
500 dnl  x86 accelerations
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}"
509 dnl  Enable/disable optimizations
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 ])
517 dnl  AltiVec acceleration
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 ])
527 dnl  Debugging mode
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 ])
535 dnl  Enable release-specific flags
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`" ])
543 dnl  Input plugins
546 AC_ARG_WITH(,[Input plugins:])
549 dnl  DVD module: optionally check for installed libdvdcss
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
616 dnl dvdread module: check for libdvdread plugin
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
647 dnl  VCD module
649 AC_ARG_ENABLE(vcd,
650   [  --enable-vcd            VCD support for Linux and MacOS X (default enabled)])
652 if test x$enable_vcd != xno
653 then
654   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
655     PLUGINS="${PLUGINS} vcd"
656   ])
658   if test "x${SYS}" = "xbsdi"
659   then
660     PLUGINS="${PLUGINS} vcd"
661   fi
663   if test "x${SYS}" = "xdarwin"
664   then
665     PLUGINS="${PLUGINS} vcd"
666     LIB_VCD="${LIB_VCD} -framework IOKit -framework CoreFoundation" 
667   fi
671 dnl  Satellite input module
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])
682 dnl  ipv6 plugin
684 AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
687 dnl  Codec plugins
690 AC_ARG_WITH(,[Codec plugins:])
693 dnl  mad plugin
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
724 dnl special case for BeOS
725 if test x$SYS = xbeos
726 then
727     PLUGINS="${PLUGINS} beos"
729 dnl default case
730 else
733 dnl  a52 AC3 decoder plugin
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      ],[])
746 dnl  ogg vorbis plugin
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    ],[])
759 dnl  Video plugins
762 AC_ARG_WITH(,[Video plugins:])
765 dnl  X11 module
766 dnl  (enabled by default except on win32)
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
789 dnl  XVideo module
790 dnl  (enabled by default except on win32)
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)
822 dnl  SDL module
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
878 dnl  Windows DirectX module
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
910 dnl  Linux framebuffer module
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
922 dnl  Linux MGA module
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 ])
932 dnl  GGI module
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 ])
950 dnl  Glide module
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 ])
969 dnl  AA plugin
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
984 dnl  Audio plugins
987 AC_ARG_WITH(,[Audio plugins:])
990 dnl  OSS /dev/dsp module (enabled by default except on win32)
992 AC_ARG_ENABLE(dsp,
993   [  --enable-dsp            Linux /dev/dsp support (enabled on Linux)])
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   ])
1005 dnl  Esound module
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])
1021 dnl  aRts module
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])
1037 dnl  ALSA module
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])
1052 dnl  win32 waveOut plugin
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"
1063 dnl  Interface plugins
1066 AC_ARG_WITH(,[Interface plugins:])
1069 dnl  Gtk+ module
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
1115 dnl  Gnome module
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])
1142 dnl  Qt module
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])
1159 dnl 
1160 dnl  KDE module
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])
1179 dnl  MacOS X module
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    )])
1198 dnl  QNX RTOS module
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
1211 dnl  Windows native interface module, built with Borland C++ Builder
1213 AC_ARG_ENABLE(intfwin,
1214 [  --enable-intfwin        Win32 interface support (default disabled)],
1215 [ if test "x$enableval" != "xno"
1216   then
1217     AC_ARG_WITH(bcbuilder, 
1218     [    --with-bcbuilder=PATH Borland C++ Builder installation path])
1219     if test "x$with_bcbuilder" != "x"
1220     then
1221       BCBUILDER="$with_bcbuilder"
1222     fi
1223     PLUGINS="${PLUGINS} intfwin"
1224   fi ])
1227 dnl  ncurses module
1229 AC_ARG_ENABLE(ncurses,
1230   [  --enable-ncurses        ncurses interface support (default disabled)],
1231   [if test x$enable_ncurses = xyes; then
1232      PLUGINS="${PLUGINS} ncurses"
1233      LIB_NCURSES="${LIB_NCURSES} -lncurses"
1234    fi])
1237 dnl  Lirc plugin
1239 AC_ARG_ENABLE(lirc,
1240   [  --enable-lirc           lirc support (default disabled)])
1241 if test x$enable_lirc = xyes
1242 then
1243   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
1244   if test x$have_lirc = xtrue
1245   then
1246     PLUGINS="${PLUGINS} lirc"
1247     LIB_LIRC="${LIB_LIRC} -llirc_client"
1248   fi
1251 dnl  end of non-BeOS stuff
1254 AC_ARG_WITH(,[Misc options:])
1257 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
1259 dnl  We give the user the opportunity to specify
1260 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
1262 AC_ARG_WITH(words,
1263   [  --with-words=endianness set endianness (big or little)])
1264   case "x$withval" in
1265     xbig)
1266       ac_cv_c_bigendian=yes
1267       ;;
1268     xlittle)
1269       ac_cv_c_bigendian=no
1270       ;;
1271     *)
1272       dnl  Try to guess endianness by matching patterns on a compiled
1273       dnl  binary, by looking for an ASCII or EBCDIC string
1274       AC_CACHE_CHECK([whether the byte order is big-endian],
1275         [ac_cv_c_bigendian],
1276         [ac_cv_c_bigendian=unknown
1277         [cat >conftest.c <<EOF
1278         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
1279         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
1280         void _a(void) { char*s = (char*)am; s = (char *)ai; }
1281         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
1282         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
1283         void _e(void) { char*s = (char*)em; s = (char*)ei; }
1284         int main(void) { _a(); _e(); return 0; }
1286         ]
1287         if test -f conftest.c
1288         then 
1289           if ${CC-cc} conftest.c -o conftest.o >config.log 2>&1 \
1290               && test -f conftest.o
1291           then
1292             if test "`strings conftest.o | grep BIGenDianSyS`"
1293             then
1294               ac_cv_c_bigendian=yes
1295             fi
1296             if test "`strings conftest.o | grep LiTTleEnDian`"
1297             then
1298               ac_cv_c_bigendian=no
1299             fi
1300           fi
1301         fi
1302       ])
1303       if test x$ac_cv_c_bigendian = xunknown
1304       then
1305         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
1306       fi
1307       ;;
1308   esac
1309 dnl  Now we know what to use for endianness, just put it in the header
1310 if test $ac_cv_c_bigendian = yes
1311 then
1312   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
1316 dnl  DLLs - used for Win32 package build
1318 DLL_PATH=.
1319 AC_ARG_WITH(dll-path,
1320   [  --with-dll-path=PATH    path to Win32 DLLs (default search in \$PWD)],
1321   [ if test "x$withval" != "xno"
1322     then
1323       DLL_PATH=$withval
1324     fi ])
1327 dnl  Profiling
1329 GPROF=0
1330 AC_ARG_ENABLE(gprof,
1331 [  --enable-gprof          gprof profiling (default disabled)],
1332 [ if test x$enableval = xyes; then GPROF=1; fi ])
1334 CPROF=0
1335 AC_ARG_ENABLE(cprof,
1336 [  --enable-cprof          cprof profiling (default disabled)],
1337 [ if test x$enableval = xyes;
1338   then
1339     LIB_COMMON="${LIB_COMMON} -lcprof"
1340     CPROF=1
1341   fi
1345 dnl  GNU portable threads
1347 AC_ARG_ENABLE(pth,
1348   [  --enable-pth            GNU Pth support (default disabled)],
1349   [ if test x$enableval = xyes; then
1350     AC_CHECK_LIB(pth,pth_init)
1351     AC_EGREP_HEADER(pth_init,pth.h,[
1352       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
1353                 Define if <pth.h> defines pth_init)
1354     THREAD_LIB="-lpth"
1355     fi])
1359 dnl  State Threads
1361 AC_ARG_ENABLE(st,
1362   [  --enable-st             State Threads (default disabled)],
1363   [ if test x$enableval = xyes; then
1364     AC_CHECK_LIB(st,st_init)
1365     AC_EGREP_HEADER(st_init,st.h,[
1366       AC_DEFINE(ST_INIT_IN_ST_H, 1,
1367                 Define if <st.h> defines st_init)
1368     THREAD_LIB="-lst"
1369     fi])
1372 LIB_COMMON="${LIB_COMMON} ${THREAD_LIB}"
1375 dnl  Plug-ins - this must be AT THE END
1377 AC_ARG_ENABLE(plugins,
1378   [  --disable-plugins       make all plug-ins built-in (default plug-ins enabled)],
1379   [if test x$enable_plugins = xno
1380    then
1381      BUILTINS="${BUILTINS} ${PLUGINS}"
1382      PLUGINS=
1383    fi])
1385 dnl Automagically disable plug-ins if there is no system support for .so files
1386 dnl don't forget vlc-win32 still can load .so as plugins
1387 if test x$ac_cv_header_dlfcn_h = xno -a x$ac_cv_header_image_h = xno -a x$SYS != xmingw32
1388 then
1389   echo "*** Your system doesn't have plug-in support. All plug-ins will be compiled"
1390   echo "as built-in"
1391   BUILTINS="${BUILTINS} ${PLUGINS}"
1392   PLUGINS=
1396 dnl  Stuff used by the program
1398 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "vlc $VERSION $CODENAME Copyright 1996-2002 VideoLAN\n", [Simple version string])
1399 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version $VERSION $CODENAME - (c) 1996-2002 VideoLAN", [Copyright string])
1401 VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
1402 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__MODULE_$VLC_SYMBOL", [String suffix for module functions])
1403 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $VLC_SYMBOL, [Symbol suffix for module functions])
1405 DATA_PATH="${ac_tool_prefix}/share/videolan"
1406 AC_SUBST(DATA_PATH)
1407 PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
1408 AC_SUBST(PLUGIN_PATH)
1410 dnl 
1411 dnl  Configuration is finished
1413 AC_SUBST(SYS)
1414 AC_SUBST(ARCH)
1415 AC_SUBST(PLUGINS)
1416 AC_SUBST(BUILTINS)
1417 AC_SUBST(ALIASES)
1418 AC_SUBST(INCLUDE)
1419 AC_SUBST(DEBUG)
1420 AC_SUBST(ASM)
1421 AC_SUBST(CPROF)
1422 AC_SUBST(GPROF)
1423 AC_SUBST(OPTIMS)
1424 AC_SUBST(TUNING)
1425 AC_SUBST(RELEASE)
1426 AC_SUBST(MOC)
1427 AC_SUBST(WINDRES)
1428 AC_SUBST(BCBUILDER)
1429 AC_SUBST(DLL_PATH)
1430 AC_SUBST(VLC_PACKAGE)
1431 AC_SUBST(VLC_VERSION)
1433 AC_SUBST(LDFLAGS)
1434 AC_SUBST(PLDFLAGS)
1436 AC_SUBST(LIB_COMMON)
1437 AC_SUBST(LIB_VLC)
1439 AC_SUBST(LIB_A52)
1440 AC_SUBST(LIB_AA)
1441 AC_SUBST(LIB_ALSA)
1442 AC_SUBST(LIB_ARTS)
1443 AC_SUBST(LIB_BEOS)
1444 AC_SUBST(LIB_CHROMA_I420_RGB)
1445 AC_SUBST(LIB_DARWIN)
1446 AC_SUBST(LIB_DIRECTX)
1447 AC_SUBST(LIB_DSP)
1448 AC_SUBST(LIB_DVD)
1449 AC_SUBST(LIB_DVDREAD)
1450 AC_SUBST(LIB_ESD)
1451 AC_SUBST(LIB_FILTER_DISTORT)
1452 AC_SUBST(LIB_GGI)
1453 AC_SUBST(LIB_GLIDE)
1454 AC_SUBST(LIB_GNOME)
1455 AC_SUBST(LIB_GTK)
1456 AC_SUBST(LIB_IDCTALTIVEC)
1457 AC_SUBST(LIB_IMDCT)
1458 AC_SUBST(LIB_IMDCT3DN)
1459 AC_SUBST(LIB_IMDCTSSE)
1460 AC_SUBST(LIB_IPV4)
1461 AC_SUBST(LIB_IPV6)
1462 AC_SUBST(LIB_KDE)
1463 AC_SUBST(LIB_LIRC)
1464 AC_SUBST(LIB_MACOSX)
1465 AC_SUBST(LIB_MAD)
1466 AC_SUBST(LIB_MEMCPYALTIVEC)
1467 AC_SUBST(LIB_MOTIONALTIVEC)
1468 AC_SUBST(LIB_MPEG_TS)
1469 AC_SUBST(LIB_NCURSES)
1470 AC_SUBST(LIB_QNX)
1471 AC_SUBST(LIB_QT)
1472 AC_SUBST(LIB_RC)
1473 AC_SUBST(LIB_SDL)
1474 AC_SUBST(LIB_VCD)
1475 AC_SUBST(LIB_VORBIS)
1476 AC_SUBST(LIB_WAVEOUT)
1477 AC_SUBST(LIB_WIN32)
1478 AC_SUBST(LIB_X11)
1479 AC_SUBST(LIB_XVIDEO)
1481 AC_SUBST(CFLAGS_COMMON)
1482 AC_SUBST(CFLAGS_VLC)
1484 AC_SUBST(CFLAGS_ARTS)
1485 AC_SUBST(CFLAGS_DVD)
1486 AC_SUBST(CFLAGS_DVDREAD)
1487 AC_SUBST(CFLAGS_ESD)
1488 AC_SUBST(CFLAGS_GLIDE)
1489 AC_SUBST(CFLAGS_GNOME)
1490 AC_SUBST(CFLAGS_GTK)
1491 AC_SUBST(CFLAGS_KDE)
1492 AC_SUBST(CFLAGS_IDCTALTIVEC)
1493 AC_SUBST(CFLAGS_MACOSX)
1494 AC_SUBST(CFLAGS_MAD)
1495 AC_SUBST(CFLAGS_MEMCPYALTIVEC)
1496 AC_SUBST(CFLAGS_MOTIONALTIVEC)
1497 AC_SUBST(CFLAGS_OPTIM)
1498 AC_SUBST(CFLAGS_OPTIM_NODEBUG)
1499 AC_SUBST(CFLAGS_QT)
1500 AC_SUBST(CFLAGS_SDL)
1501 AC_SUBST(CFLAGS_WIN32)
1502 AC_SUBST(CFLAGS_X11)
1503 AC_SUBST(CFLAGS_XVIDEO)
1505 AC_SUBST(NEED_GETOPT)
1507 AC_OUTPUT([Makefile.opts po/Makefile.in])
1509 echo "
1510 vlc configuration
1511 --------------------
1512 vlc version           : ${VERSION}
1513 system                : ${SYS}
1514 architecture          : ${ARCH}
1515 optimizations         : ${OPTIMS}
1516 tuning                : ${TUNING}
1517 debug mode            : ${DEBUG}
1518 release               : ${RELEASE}
1519 cprof/gprof support   : ${CPROF}/${GPROF}
1520 need builtin getopt   : ${NEED_GETOPT}
1521 built-in modules      :${BUILTINS}
1522 plug-in modules       :${PLUGINS}
1523 vlc aliases           :${ALIASES}
1525 You may now tune Makefile.opts at your convenience, for instance to choose
1526 which modules get compiled as plugins.
1528 To build vlc and its plugins, type \`$VLC_MAKE'.