]> git.sesse.net Git - vlc/blob - configure.in
61e38dbcfdbb5143304b515a58025d6479716edb
[vlc] / configure.in
1 dnl Autoconf settings for vlc and libdvdcss
2 AC_INIT(include/common.h)
3 AC_CONFIG_HEADER(include/defs.h)
4
5 AC_CANONICAL_HOST
6
7 HAVE_VLC=0
8 if test -r src/interface/main.c; then
9   HAVE_VLC=1
10   VLC_VERSION=0.2.83
11   AC_SUBST(VLC_VERSION)
12   VLC_CODENAME=Ourumov
13   AC_SUBST(VLC_CODENAME)
14 fi
15
16 HAVE_LIBDVDCSS=0
17 if test -r extras/libdvdcss/libdvdcss.c; then
18   HAVE_LIBDVDCSS=1
19   LIBDVDCSS_VERSION=0.0.3
20   AC_SUBST(LIBDVDCSS_VERSION)
21 fi
22
23 dnl Save CFLAGS and LDFLAGS
24 save_CFLAGS="${CFLAGS}"
25 save_LDFLAGS="${LDFLAGS}"
26
27 dnl Check for tools
28 AC_PROG_MAKE_SET
29 AC_PROG_CC
30 AC_PROG_CPP
31 AC_PROG_RANLIB
32
33 dnl AM_PROG_LIBTOOL
34 AC_PROG_INSTALL
35
36 dnl Check for endianness if not cross-compiling
37 if test x${cross_compiling} != xyes; then
38   AC_C_BIGENDIAN
39 fi
40
41 dnl Check for system libs needed
42 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol)
43 AC_CHECK_FUNCS(setenv putenv)
44 AC_CHECK_FUNC(connect,,[
45   AC_CHECK_LIB(socket,connect,LIB="${LIB} -lsocket")
46 ])
47 AC_CHECK_FUNC(gethostbyname,,[
48   AC_CHECK_LIB(nsl,gethostbyname,LIB="${LIB} -lnsl")
49 ])
50 AC_CHECK_FUNC(nanosleep,,[
51   AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[
52     AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")
53   ])
54 ])
55 AC_CHECK_FUNCS(usleep)
56 AC_CHECK_FUNC(inet_aton,,[
57   AC_CHECK_LIB(resolv,inet_aton,LIB="${LIB} -lresolv")
58 ])
59 AC_CHECK_FUNCS(vasprintf)
60 AC_CHECK_FUNCS(swab)
61
62 AC_CHECK_FUNCS(sigrelse)
63
64 dnl Check for getopt
65 NEED_GETOPT=0
66 AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
67 [ # FreeBSD has a gnugetopt library for this:
68   AC_CHECK_LIB([gnugetopt],[getopt_long],
69     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB="${LIB} -lgnugetopt"],
70     [NEED_GETOPT=1])])
71
72 AC_FUNC_MMAP
73 AC_TYPE_SIGNAL
74 AC_CHECK_LIB(dl,dlopen,LIB="${LIB} -ldl")
75 AC_CHECK_LIB(m,pow,LIB_YUV="${LIB_YUV} -lm")
76
77 dnl Check for pthreads - borrowed from XMMS
78 THREAD_LIB=error
79 if test "x${THREAD_LIB}" = xerror; then
80   AC_CHECK_LIB(pthread,pthread_attr_init,THREAD_LIB="-lpthread")
81 fi
82 if test "x${THREAD_LIB}" = xerror; then
83   AC_CHECK_LIB(pthreads,pthread_attr_init,THREAD_LIB="-lpthreads")
84 fi
85 if test "x${THREAD_LIB}" = xerror; then
86   AC_CHECK_LIB(c_r,pthread_attr_init,THREAD_LIB="-lc_r")
87 fi
88 if test "x${THREAD_LIB}" = xerror; then
89   AC_CHECK_FUNC(pthread_attr_init)
90   THREAD_LIB=""
91 fi
92
93 dnl Check for cthreads under GNU/Hurd for instance
94 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
95
96 dnl Check for misc headers
97 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
98   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
99             Define if <pthread.h> defines pthread_cond_t.)])
100 AC_EGREP_HEADER(strncasecmp,strings.h,[
101   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
102             Define if <strings.h> defines strncasecmp.)])
103
104 dnl Check for headers
105 AC_CHECK_HEADERS(stddef.h getopt.h strings.h)
106 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h)
107 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
108 AC_CHECK_HEADERS(dlfcn.h image.h)
109 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
110 AC_CHECK_HEADERS(machine/param.h)
111
112 dnl Check for threads library
113 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
114
115 dnl Check for ntohl, etc.
116 CFLAGS="${save_CFLAGS} -Wall -Werror"
117 AC_MSG_CHECKING([for ntohl in sys/param.h])
118 AC_TRY_COMPILE([#include <sys/param.h>
119 void foo() { int meuh; ntohl(meuh); }],,
120  AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
121  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
122
123 dnl Check for inline function size limit
124 CFLAGS="${save_CFLAGS} -finline-limit-20000"
125 AC_MSG_CHECKING([if \$CC accepts -finline-limit])
126 AC_TRY_COMPILE([],,
127  save_CFLAGS="${save_CFLAGS} -finline-limit-20000"; AC_MSG_RESULT(yes),
128  AC_MSG_RESULT(no))
129
130 dnl Check for Darwin plugin linking flags
131 CFLAGS="${save_CFLAGS} -bundle -undefined suppress"
132 AC_MSG_CHECKING([if \$CC accepts -bundle -undefined suppress])
133 AC_TRY_COMPILE([],,
134  PLCFLAGS="${PLCFLAGS} -bundle -undefined suppress"; AC_MSG_RESULT(yes),
135  AC_MSG_RESULT(no))
136
137 dnl Check for standard plugin linking flags
138 CFLAGS="${save_CFLAGS} -shared"
139 AC_MSG_CHECKING([if \$CC accepts -shared])
140 AC_TRY_COMPILE([],,
141  PLCFLAGS="${PLCFLAGS} -shared"; AC_MSG_RESULT(yes),
142  AC_MSG_RESULT(no))
143
144 dnl Check for standard soname setting
145 if test x"${SOFLAGS}" = x; then
146   try_SOFLAGS="-Wl,-soname -Wl,"
147   LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
148   AC_MSG_CHECKING([if linker accepts ${try_SOFLAGS}foo.so.0])
149   AC_TRY_LINK([],,
150    SOFLAGS="${try_SOFLAGS}"; AC_MSG_RESULT(yes),
151    AC_MSG_RESULT(no))
152 fi
153
154 dnl Check for SunOS soname setting
155 if test x"${SOFLAGS}" = x; then
156   try_SOFLAGS="-Wl,-h -Wl,"
157   LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
158   AC_MSG_CHECKING([if linker accepts ${try_SOFLAGS}foo.so.0])
159   AC_TRY_LINK([],,
160    SOFLAGS="${try_SOFLAGS}"; AC_MSG_RESULT(yes),
161    AC_MSG_RESULT(no))
162 fi
163
164 dnl End of the bizarre compilation tests
165 CFLAGS="${save_CFLAGS}"
166 LDFLAGS="${save_LDFLAGS}"
167
168 dnl Check for boolean_t
169 AC_MSG_CHECKING([for boolean_t in sys/types.h])
170 AC_TRY_COMPILE([#include <sys/types.h>
171 void quux() { boolean_t foo; }],,
172  AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
173  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
174 AC_MSG_CHECKING([for boolean_t in pthread.h])
175 AC_TRY_COMPILE([#include <pthread.h>
176 void quux() { boolean_t foo; }],,
177  AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
178  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
179 AC_MSG_CHECKING([for boolean_t in cthreads.h])
180 AC_TRY_COMPILE([#include <cthreads.h>
181 void quux() { boolean_t foo; }],,
182  AC_DEFINE(BOOLEAN_T_IN_CTHREADS_H, 1, Define if <cthreads.h> defines boolean_t.)
183  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
184
185 dnl Checks for typedefs, structures, and compiler characteristics.
186 AC_C_CONST
187 AC_TYPE_SIZE_T
188 AC_HEADER_TIME
189
190 dnl Checks for __attribute__(aligned()) directive
191 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
192     [ac_cv_c_attribute_aligned],
193     [ac_cv_c_attribute_aligned=0
194     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
195         AC_TRY_COMPILE([],
196         [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
197         [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try])
198     done])
199 if test x"$ac_cv_c_attribute_aligned" != x"0"; then
200     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
201         [$ac_cv_c_attribute_aligned],[Maximum supported data alignment])
202 fi
203
204
205
206 ARCH=${host_cpu}
207
208 dnl
209 dnl  default modules
210 dnl
211 BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion imdct downmix"
212 PLUGINS="${PLUGINS}"
213
214 dnl
215 dnl  Accelerated modules
216 dnl
217 MMX_MODULES="yuvmmx idctmmx motionmmx"
218 MMXEXT_MODULES="idctmmxext motionmmxext"
219 THREEDNOW_MODULES="imdct3dn downmix3dn"
220 SSE_MODULES="imdctsse downmixsse"
221
222 AC_MSG_CHECKING([if \$CC groks MMX inline assembly])
223 AC_TRY_COMPILE([void quux(){void *p;asm("packuswb %%mm1,%%mm2"::"r"(p));}],,
224   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
225   AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
226
227 AC_MSG_CHECKING([if \$CC groks MMX EXT inline assembly])
228 AC_TRY_COMPILE([void quux(){void *p;asm("maskmovq %%mm1,%%mm2"::"r"(p));}],,
229   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
230   AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
231
232 AC_MSG_CHECKING([if \$CC groks 3D Now! inline assembly])
233 AC_TRY_COMPILE([void quux(){void *p;asm("pfadd %%mm1,%%mm2"::"r"(p));}],,
234   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
235   AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
236
237 AC_MSG_CHECKING([if \$CC groks SSE inline assembly])
238 AC_TRY_COMPILE([void quux(){void *p;asm("xorps %%xmm1,%%xmm2"::"r"(p));}],,
239   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
240   AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
241
242 dnl
243 dnl  libdvdcss: check for DVD ioctls
244 dnl
245
246 dnl  default is no
247 CAN_BUILD_LIBDVDCSS=0
248
249 dnl  for windoze
250 AC_CHECK_HEADERS(winioctl.h,[
251   CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
252 ])
253
254 dnl  for Un*x and BeOS
255 AC_CHECK_HEADERS(sys/ioctl.h,[
256   CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
257   AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
258   BSD_DVD_STRUCT=0
259   LINUX_DVD_STRUCT=0
260   dnl
261   dnl Old FreeBSD: sys/cdio.h
262   dnl
263   AC_EGREP_HEADER(dvd_struct,sys/dvdio.h,[
264     AC_DEFINE(DVD_STRUCT_IN_SYS_DVDIO_H, 1,
265               Define if <sys/dvdio.h> defines dvd_struct.)
266     BSD_DVD_STRUCT=1
267   ])
268   dnl
269   dnl Newer FreeBSD: sys/dvdio.h
270   dnl
271   AC_EGREP_HEADER(dvd_struct,sys/cdio.h,[
272     AC_DEFINE(DVD_STRUCT_IN_SYS_CDIO_H, 1,
273               Define if <sys/cdio.h> defines dvd_struct.)
274     BSD_DVD_STRUCT=1
275   ])
276   dnl
277   dnl Linux: linux/cdrom.h
278   dnl
279   AC_EGREP_HEADER(dvd_struct,linux/cdrom.h,[
280     AC_DEFINE(DVD_STRUCT_IN_LINUX_CDROM_H, 1,
281               Define if <linux/cdrom.h> defines DVD_STRUCT.)
282     LINUX_DVD_STRUCT=1
283   ])
284   dnl
285   dnl BSDI: dvd.h
286   dnl
287   NEED_BSDI_LIBDVD=0
288   AC_EGREP_HEADER(dvd_struct,dvd.h,[
289     AC_DEFINE(DVD_STRUCT_IN_DVD_H, 1,
290               Define if <dvd.h> defines DVD_STRUCT.)
291     LIB_LIBDVDCSS="${LIB_LIBDVDCSS} -ldvd"
292     LINUX_DVD_STRUCT=1
293   ],[
294     dnl
295     dnl BSDI: /sys/dev/scsi/scsi_ioctl.h, using our own libdvd
296     dnl
297     AC_CHECK_HEADERS(/sys/dev/scsi/scsi_ioctl.h,[
298       NEED_BSDI_LIBDVD=1
299       AC_DEFINE(DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H, 1,
300                 Define if <extras/BSDI_dvdioctl/dvd.h> defines DVD_STRUCT.)
301       OBJ_LIBDVDCSS="${OBJ_LIBDVDCSS} bsdi_dvdioctl.o"
302       LINUX_DVD_STRUCT=1
303     ])
304   ])
305   dnl
306   dnl Solaris: sys/scsi/scsi_types.h, sys/scsi/impl/uscsi.h
307   dnl
308   AC_CHECK_HEADER(sys/scsi/scsi_types.h,[
309     AC_CHECK_HEADER(sys/scsi/impl/uscsi.h,[
310       AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
311     ])
312   ])
313   dnl
314   dnl Final tests to check what was detected
315   dnl
316   if test x$LINUX_DVD_STRUCT = x1; then
317     AC_DEFINE(HAVE_LINUX_DVD_STRUCT, 1,
318               Define if Linux-like dvd_struct is defined.)
319   else
320     if test x$BSD_DVD_STRUCT = x1; then
321       AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
322                 Define if BSD-like dvd_struct is defined.)
323     fi
324   fi
325 ])
326
327
328 dnl
329 dnl  Check the operating system
330 dnl
331 case ${host_os} in
332   bsdi*)
333     SYS=bsdi
334     ;;
335   darwin*)
336     SYS=darwin
337     ;;
338   *)
339     SYS=${host_os}
340     ;;
341 esac
342
343 dnl
344 dnl  PentiumPro acceleration
345 dnl
346 AC_ARG_ENABLE(ppro,
347   [  --disable-ppro          Disable PentiumPro optimizations (default enabled for x86)],
348 [ if test x$enableval = xyes; then ARCH="${ARCH} ppro"; fi ],
349 [ if test x${host_cpu} = xi686; then ARCH="${ARCH} ppro"; fi ])
350
351 dnl
352 dnl  MMX acceleration
353 dnl
354 AC_ARG_ENABLE(mmx,
355 [  --disable-mmx           Disable MMX optimizations (default enabled for x86)],
356 [ if test x$enableval = xyes; then ARCH="${ARCH} mmx";
357   BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
358 [ if test x${host_cpu} = xi686 -o x${host_cpu} = xi586 -o x${host_cpu} = xx86 -o x${host_cpu} = xi386; then ARCH="${ARCH} mmx";
359   BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
360
361 dnl
362 dnl  AltiVec acceleration
363 dnl
364 AC_ARG_ENABLE(altivec,
365 [  --enable-altivec        Enable altivec optimizations (default disabled since it is broken)],
366 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec"
367     BUILTINS="${BUILTINS} idctaltivec"
368     LIB_IDCTALTIVEC="-framework vecLib"
369   fi ])
370 #[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH="${ARCH} altivec"; PLUGINS="${PLUGINS} idctaltivec"; fi ])
371
372 dnl
373 dnl  Debugging mode
374 dnl
375 DEBUG=0
376 AC_ARG_ENABLE(debug,
377 [  --enable-debug          Enable debug mode (default disabled)],
378 [ if test x$enableval = xyes; then DEBUG=1; fi ])
379
380 dnl
381 dnl  Enable/disable statistics
382 dnl
383 STATS=0
384 AC_ARG_ENABLE(stats,
385 [  --enable-stats          Enable printing of statistics (default disabled)],
386 [ if test x$enableval = xyes; then STATS=1; fi ])
387
388 dnl
389 dnl  Trace mode
390 dnl
391 TRACE=0
392 AC_ARG_ENABLE(trace,
393 [  --enable-trace          Enable trace mode (default disabled)],
394 [ if test x$enableval = xyes; then TRACE=1; fi ])
395
396 dnl
397 dnl  Trace mode
398 dnl
399 GPROF=0
400 AC_ARG_ENABLE(gprof,
401 [  --enable-gprof          Enable gprof profiling (default disabled)],
402 [ if test x$enableval = xyes; then GPROF=1; fi ])
403
404 CPROF=0
405 AC_ARG_ENABLE(cprof,
406 [  --enable-cprof          Enable cprof profiling (default disabled)],
407 [ if test x$enableval = xyes;
408   then
409     LIB="${LIB} -lcprof"
410     CPROF=1
411   fi
412 ])
413
414 dnl
415 dnl  Enable/disable optimizations
416 dnl
417 AC_ARG_ENABLE(optimizations,
418 [  --disable-optimizations Disable compiler optimizations (default enabled)],
419 [ if test x$enableval = xno; then OPTIMS=0; fi ],
420 [ OPTIMS=1 ])
421
422 dnl
423 dnl  GNU portable threads
424 dnl
425 AC_ARG_ENABLE(pth,
426   [  --enable-pth            Enable GNU Pth support (default disabled)],
427   [ if test x$enableval = xyes; then
428     AC_CHECK_LIB(pth,pth_init)
429     AC_EGREP_HEADER(pth_init,pth.h,[
430       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
431                 Define if <pth.h> defines pth_init)
432     THREAD_LIB="-lpth"
433     fi])
434 ])
435
436 LIB="${LIB} ${THREAD_LIB}"
437
438 dnl
439 dnl  DVD module: check for installed libdvdcss or local libdvdcss
440 dnl
441 NEED_LIBDVDCSS=0
442 STATIC_LIBDVDCSS=0
443 DUMMY_LIBDVDCSS=0
444 AC_ARG_WITH(dvdcss,
445   [  --with-dvdcss[=name]    way to use libdvdcss, either 'yes' or 'no', or 'local-static', 'local-shared', or a path to another libdvdcss such as '/usr/local' (default 'local-static')],
446   [ case "x${withval}" in
447     xlocal-static|xyes)
448       # local libdvdcss, statically linked
449       if test x${CAN_BUILD_LIBDVDCSS} = x1
450       then
451         NEED_LIBDVDCSS=1
452         STATIC_LIBDVDCSS=1
453         BUILTINS="${BUILTINS} dvd"
454         CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
455         LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
456         LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} ../../lib/libdvdcss.a ${LIB_LIBDVDCSS}"
457       fi
458     ;;
459     xlocal-shared)
460       # local libdvdcss, dynamically linked
461       if test x${CAN_BUILD_LIBDVDCSS} = x1
462       then
463         NEED_LIBDVDCSS=1
464         BUILTINS="${BUILTINS} dvd"
465         CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
466         LIB_DVD="${LIB_DVD} -Llib -ldvdcss"
467         LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -L../../lib -ldvdcss"
468       fi
469     ;;
470     xno)
471       # don't use libdvdcss at all, build a DVD module that can dlopen() it
472       DUMMY_LIBDVDCSS=1
473       BUILTINS="${BUILTINS} dvd"
474       OBJ_DVD="${OBJ_DVD} dummy_dvdcss.o"
475       CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
476       CFLAGS_DVD="${CFLAGS_DVD} -DLIBDVDCSS_VERSION=\"${LIBDVDCSS_VERSION}\""
477       LIB_DVD="${LIB_DVD} -ldl"
478       LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl"
479     ;;
480     *)
481       # existing libdvdcss
482       BUILTINS="${BUILTINS} dvd"
483       if test "x$withval" != "xyes"
484       then
485         LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -L"$withval"/lib"
486         CFLAGS_DVD="${CFLAGS_DVD} -I"$withval"/include"
487       fi
488       LIB_DVD="${LIB_DVD} -ldvdcss"
489       LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldvdcss"
490     esac ],
491   # user didn't decide, we choose to use local libdvdcss and link statically
492   # if libdvdcss is in the archive, or to use the dummy replacement otherwise.
493   [ if test x${CAN_BUILD_LIBDVDCSS} = x1
494     then
495       NEED_LIBDVDCSS=1
496       STATIC_LIBDVDCSS=1
497       BUILTINS="${BUILTINS} dvd"
498       CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
499       LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
500       LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} ../../lib/libdvdcss.a ${LIB_LIBDVDCSS}"
501     else
502       # XXX: no check for libdl is done, don't try this at home !
503       DUMMY_LIBDVDCSS=1
504       BUILTINS="${BUILTINS} dvd"
505       OBJ_DVD="${OBJ_DVD} dummy_dvdcss.o"
506       CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
507       LIB_DVD="${LIB_DVD} -ldl"
508       LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl"
509     fi ])
510
511 dnl
512 dnl  dummy plugin
513 dnl
514 AC_ARG_ENABLE(dummy,
515   [  --disable-dummy         dummy module (default enabled)])
516
517 if test x$enable_dummy != xno
518 then
519   BUILTINS="${BUILTINS} dummy"
520 fi
521
522 dnl
523 dnl  null plugin
524 dnl
525 AC_ARG_ENABLE(null,
526   [  --disable-null          Null module (default enabled)])
527
528 if test x$enable_null != xno
529 then
530   BUILTINS="${BUILTINS} null"
531 fi
532
533 dnl
534 dnl  rc plugin
535 dnl
536 AC_ARG_ENABLE(rc,
537   [  --disable-rc            rc module (default enabled)])
538
539 if test x$enable_rc != xno
540 then
541   BUILTINS="${BUILTINS} rc"
542 fi
543
544 dnl special case for BeOS
545 if test x$SYS = xbeos
546 then
547     BUILTINS="${BUILTINS} beos"
548     LIB_BEOS="-lbe -lgame -lroot -ltracker"
549     PLCFLAGS="${PLCFLAGS} -nostart"
550
551 dnl default case
552 else
553
554 dnl
555 dnl  OSS /dev/dsp module
556 dnl
557 AC_ARG_ENABLE(dsp,
558   [  --disable-dsp           Linux /dev/dsp support (default enabled)])
559
560 if test x$enable_dsp != xno
561 then
562   if test -c /dev/dsp
563   then
564     PLUGINS="${PLUGINS} dsp"
565   fi
566 fi
567
568 dnl
569 dnl  Esound module
570 dnl
571 AC_ARG_ENABLE(esd,
572   [  --enable-esd            Esound library support (default disabled)],
573   [if test x$enable_esd = xyes
574    then
575      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
576      if test x${ESD_CONFIG} != xno
577      then
578        PLUGINS="${PLUGINS} esd"
579        LIB_ESD="`${ESD_CONFIG} --libs`"
580      fi
581    fi])
582
583 dnl
584 dnl  Darwin module
585 dnl
586 AC_ARG_ENABLE(darwin,
587   [  --enable-darwin         Darwin sound support (default disabled)],
588   [if test x$enable_darwin = xyes; then
589      PLUGINS="${PLUGINS} darwin"
590      LIB_DARWIN="-framework CoreAudio"
591    fi])
592
593 dnl
594 dnl  MacOS X module
595 dnl
596 AC_ARG_ENABLE(macosx,
597   [  --enable-macosx         Mac OS X interface support (default enabled in Mac OS X)],
598   [if test x$enable_macosx = xyes
599    then
600      BUILTINS="${BUILTINS} macosx"
601      LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
602      LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
603      LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
604    fi],
605   [AC_CHECK_HEADERS(Carbon/Carbon.h,
606      BUILTINS="${BUILTINS} macosx"
607      LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
608      LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
609      LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
610    )])
611
612 dnl
613 dnl  QNX RTOS module
614 dnl
615 AC_ARG_ENABLE(qnx,
616   [  --disable-qnx           QNX RTOS support (default enabled in QNX RTOS)])
617     if test x$enable_qnx != xno
618     then
619       AC_CHECK_HEADERS(Ph.h, [
620         PLUGINS="${PLUGINS} qnx"
621         LIB_QNX="-lasound -lph"
622       ])
623     fi
624
625 dnl
626 dnl  Linux framebuffer module
627 dnl
628 AC_ARG_ENABLE(fb,
629   [  --enable-fb             Linux framebuffer support (default disabled)],
630   [ if test x$enable_fb = xyes
631     then
632       PLUGINS="${PLUGINS} fb"
633     fi ])
634
635 dnl
636 dnl  GGI module
637 dnl
638 AC_ARG_WITH(ggi,
639   [  --with-ggi[=name]       GGI support (default disabled)],
640   [ if test "x$withval" != "xno"
641     then
642       PLUGINS="${PLUGINS} ggi"
643       if test "x$withval" != "xyes"
644       then
645         LIB_GGI="-l"$withval
646       else
647         LIB_GGI="-lggi"
648       fi
649     fi ])
650
651 dnl
652 dnl  SDL module
653 dnl
654 AC_ARG_ENABLE(sdl,
655   [  --disable-sdl           SDL support (default enabled)])
656 if test "x$enable_sdl" != "xno"
657 then
658   SDL_PATH=$PATH
659   AC_ARG_WITH(sdl-config-path,
660     [  --with-sdl-config-path=path sdl-config path (default search in \$PATH)],
661     [ if test "x$withval" != "xno"
662       then
663         SDL_PATH=$withval:$PATH
664       fi ])
665   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
666   SDL_CONFIG=${SDL12_CONFIG}
667   SDL_HEADER="SDL12/SDL.h"
668   if test x${SDL_CONFIG} = xno
669   then
670     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, $SDL_PATH)
671     SDL_CONFIG=${SDL11_CONFIG}
672     SDL_HEADER="SDL11/SDL.h"
673   fi
674   if test x${SDL_CONFIG} = xno
675   then
676     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, $SDL_PATH)
677     SDL_HEADER="SDL/SDL.h"
678   fi
679   if test x${SDL_CONFIG} != xno
680   then
681     PLUGINS="${PLUGINS} sdl"
682     CFLAGS_SDL="`${SDL_CONFIG} --cflags`"
683     LIB_SDL="`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
684     save_CPPFLAGS=$CPPFLAGS
685     CPPFLAGS="$CPPFLAGS $CFLAGS_SDL"
686     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
687       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
688       [ echo "The development package for SDL is not installed. Please install it"
689         echo "and try again. Alternatively you can also configure with --disable-sdl."
690         exit 1 ])
691     CPPFLAGS=$save_CPPFLAGS
692     if expr 1.1.5 \> `$SDL_CONFIG --version` >/dev/null
693     then
694       echo "You need SDL version 1.1.5 or later. Install it and try again."
695       echo "Alternatively, you can also configure with --disable-sdl."
696       exit 1
697     fi
698   elif test "x$enable_sdl" =  "xyes"
699   then
700     echo "I couldn't find the SDL package. You can download libSDL from"
701     echo "http://www.libsdl.org/, or configure with --disable-sdl. Have a"
702     echo "nice day."
703     exit 1
704   fi
705 fi
706
707 dnl
708 dnl  Windows DirectX module
709 dnl
710 AC_ARG_WITH(directx,
711   [  --with-directx[=name]   Windows DirectX support (default enabled)],
712   [ if test "x$withval" != "xno"
713     then
714       PLUGINS="${PLUGINS} directx"
715       if test "x$withval" != "xyes"
716       then
717         LIB_DIRECTX="${LIB_DIRECTX} -L"$withval"/lib -lgdi32 -ldxguid"
718         INCLUDE="${INCLUDE} -I"$withval"/include"
719       else
720         AC_CHECK_HEADERS(directx.h, , [echo "Cannot find DirectX headers !"; exit])
721         LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lgdi32 -ldxguid"
722       fi
723     fi ])
724     if test "x$withval" = "x"
725     then
726       AC_CHECK_HEADERS(directx.h,
727       [PLUGINS="${PLUGINS} directx"
728        LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lgdi32 -ldxguid"])
729     fi
730
731 dnl
732 dnl  Glide module
733 dnl
734 AC_ARG_WITH(glide,
735   [  --with-glide[=name]     Glide (3dfx) support (default disabled)],
736   [ if test "x$withval" != "xno"
737     then
738       PLUGINS="${PLUGINS} glide"
739       if test "x$withval" != "xyes"
740       then
741         LIB_GLIDE="-l"$withval" -lm"
742       else
743         LIB_GLIDE="-lglide2x -lm"
744       fi
745     fi ])
746
747 dnl
748 dnl  ncurses module
749 dnl
750 AC_ARG_ENABLE(ncurses,
751   [  --enable-ncurses        ncurses interface support (default disabled)],
752   [if test x$enable_ncurses = xyes; then
753      PLUGINS="${PLUGINS} ncurses"
754      LIB_NCURSES="-lncurses"
755    fi])
756
757 dnl
758 dnl  Qt module
759 dnl
760 AC_ARG_ENABLE(qt,
761   [  --enable-qt             Qt interface support (default disabled)],
762   [if test x$enable_qt = xyes; then
763      PLUGINS="${PLUGINS} qt"
764      ALIASES="${ALIASES} qvlc"
765      LIB_QT="-lqt -L${QTDIR}/lib"
766      if test -x ${QTDIR}/bin/moc
767      then
768        MOC=${QTDIR}/bin/moc
769      else
770        MOC=moc
771      fi
772    fi])
773
774 dnl 
775 dnl  KDE module
776 dnl
777 AC_ARG_ENABLE(kde,
778   [  --enable-kde            KDE interface support (default disabled)],
779   [if test x$enable_kde = xyes; then
780      PLUGINS="${PLUGINS} kde"
781      ALIASES="${ALIASES} kvlc"
782      LIB_KDE="-L${KDEDIR}/lib -lkfile"
783      if test -x ${QTDIR}/bin/moc
784      then
785        MOC=${QTDIR}/bin/moc
786      else
787        MOC=moc
788      fi
789    fi])
790
791 dnl
792 dnl  Gnome module
793 dnl
794 AC_ARG_ENABLE(gnome,
795   [  --enable-gnome          Gnome interface support (default disabled)],
796   [if test x$enable_gnome = xyes; then
797      PLUGINS="${PLUGINS} gnome"
798      ALIASES="${ALIASES} gnome-vlc"
799      LIB_GNOME="`gnome-config --libs gnomeui | sed 's,-rdynamic,,'`"
800    fi])
801
802 dnl
803 dnl  Gtk+ module
804 dnl
805 AC_ARG_ENABLE(gtk,
806   [  --disable-gtk           Gtk+ support (default enabled)])
807 if test x$enable_gtk != xno
808 then
809   # look for gtk-config
810   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
811   if test -x ${GTK_CONFIG}
812   then
813     CFLAGS_GTK="`${GTK_CONFIG} --cflags gtk`"
814     LIB_GTK="`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
815   fi
816   # now look for the gtk.h header
817   saved_CPPFLAGS=$CPPFLAGS
818   CPPFLAGS="$CPPFLAGS $CFLAGS_GTK"
819   AC_CHECK_HEADERS(gtk/gtk.h, [
820     PLUGINS="${PLUGINS} gtk"
821     ALIASES="${ALIASES} gvlc"
822   ])
823   CPPFLAGS=$saved_CPPFLAGS
824 fi
825
826 dnl
827 dnl  X11 module
828 dnl
829 AC_ARG_ENABLE(x11,
830   [  --disable-x11           X11 support (default enabled)])
831 if test x$enable_x11 != xno; then
832   if test x$x_includes = xNONE; then
833     x_includes=/usr/X11R6/include
834   fi
835   if test x$x_libraries = xNONE; then
836     x_libraries=/usr/X11R6/lib
837   fi
838   saved_CPPFLAGS=$CPPFLAGS
839   CPPFLAGS="$CPPFLAGS -I$x_includes"
840   AC_CHECK_HEADERS(X11/Xlib.h, [
841     PLUGINS="${PLUGINS} x11"
842     LIB_X11="-L$x_libraries -lX11 -lXext"
843     CFLAGS_X11="-I$x_includes"
844   ]
845   CPPFLAGS=$saved_CPPFLAGS)
846 fi
847
848 dnl
849 dnl  XVideo module
850 dnl
851 AC_ARG_ENABLE(xvideo,
852   [  --disable-xvideo        XVideo support (default enabled)])
853 if test x$enable_xvideo != xno; then
854   if test x$x_includes = xNONE; then
855     x_includes=/usr/X11R6/include
856   fi
857   if test x$x_libraries = xNONE; then
858     x_libraries=/usr/X11R6/lib
859   fi
860   saved_CPPFLAGS=$CPPFLAGS
861   CPPFLAGS="$CPPFLAGS -I$x_includes"
862   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
863     PLUGINS="${PLUGINS} xvideo"
864     LIB_XVIDEO="-L$x_libraries -lX11 -lXext -lXv"
865     CFLAGS_X11="-I$x_includes"
866   ]
867   CPPFLAGS=$saved_CPPFLAGS)
868 fi
869
870 dnl
871 dnl  ALSA module
872 dnl
873 AC_ARG_ENABLE(alsa,
874   [  --enable-alsa           Alsa sound drivers support (Only for linux) (default disabled)],
875   [if test x$enable_alsa = xyes
876    then
877      AC_CHECK_HEADER(sys/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
878      if test x$have_alsa = xtrue
879      then
880        PLUGINS="${PLUGINS} alsa"
881        LIB_ALSA="-lasound"
882      fi
883    fi])
884
885 dnl  end of non-BeOS stuff
886 fi
887
888 dnl 
889 dnl  Configuration is finished
890 dnl
891 AC_SUBST(SYS)
892 AC_SUBST(ARCH)
893 AC_SUBST(PLUGINS)
894 AC_SUBST(BUILTINS)
895 AC_SUBST(ALIASES)
896 AC_SUBST(DEFINE)
897 AC_SUBST(INCLUDE)
898 AC_SUBST(DEBUG)
899 AC_SUBST(STATS)
900 AC_SUBST(ASM)
901 AC_SUBST(TRACE)
902 AC_SUBST(CPROF)
903 AC_SUBST(GPROF)
904 AC_SUBST(OPTIMS)
905 AC_SUBST(NEED_GETOPT)
906 AC_SUBST(MOC)
907 AC_SUBST(WINDRES)
908
909 AC_SUBST(LCFLAGS)
910 AC_SUBST(PLCFLAGS)
911 AC_SUBST(SOFLAGS)
912
913 AC_SUBST(LIB)
914 AC_SUBST(LIB_ALSA)
915 AC_SUBST(LIB_BEOS)
916 AC_SUBST(LIB_DARWIN)
917 AC_SUBST(LIB_DVD)
918 AC_SUBST(LIB_DVD_PLUGIN)
919 AC_SUBST(LIB_ESD)
920 AC_SUBST(LIB_GGI)
921 AC_SUBST(LIB_GLIDE)
922 AC_SUBST(LIB_GNOME)
923 AC_SUBST(LIB_GTK)
924 AC_SUBST(LIB_IDCTALTIVEC)
925 AC_SUBST(LIB_LIBDVDCSS)
926 AC_SUBST(LIB_KDE)
927 AC_SUBST(LIB_MACOSX)
928 AC_SUBST(LIB_QNX)
929 AC_SUBST(LIB_NCURSES)
930 AC_SUBST(LIB_QT)
931 AC_SUBST(LIB_TS)
932 AC_SUBST(LIB_SDL)
933 AC_SUBST(LIB_DIRECTX)
934 AC_SUBST(LIB_X11)
935 AC_SUBST(LIB_XVIDEO)
936 AC_SUBST(LIB_YUV)
937
938 AC_SUBST(CFLAGS_VLC)
939 AC_SUBST(CFLAGS_DVD)
940 AC_SUBST(CFLAGS_LIBDVDCSS)
941 AC_SUBST(CFLAGS_GTK)
942 AC_SUBST(CFLAGS_SDL)
943 AC_SUBST(CFLAGS_X11)
944
945 AC_SUBST(OBJ_DVD)
946 AC_SUBST(OBJ_LIBDVDCSS)
947
948 AC_SUBST(NEED_LIBDVDCSS)
949
950 AC_OUTPUT([Makefile.opts include/config.h])
951
952 echo "
953 global configuration
954 --------------------
955 system                : ${SYS}
956 architecture          : ${ARCH}
957 optimizations         : ${OPTIMS}"
958
959 if test x${HAVE_VLC} = x1
960 then
961   echo "
962 vlc configuration
963 -----------------
964 vlc version           : ${VLC_VERSION}
965 debug mode            : ${DEBUG}
966 statistics            : ${STATS}
967 trace mode            : ${TRACE}
968 cprof/gprof support   : ${CPROF}/${GPROF}
969 need builtin getopt   : ${NEED_GETOPT}
970 built-in modules      :${BUILTINS}
971 plugin modules        :${PLUGINS}
972 vlc aliases           :${ALIASES}"
973 fi
974
975 echo "
976 libdvdcss configuration
977 -----------------------
978 can be built          : ${CAN_BUILD_LIBDVDCSS}
979 will be built         : ${NEED_LIBDVDCSS}"
980 if test x${NEED_LIBDVDCSS} = x1
981 then
982   echo "need BSDI libdvd      : ${NEED_BSDI_LIBDVD}"
983   echo "link statically       : ${STATIC_LIBDVDCSS}"
984 else
985   echo "use dummy replacement : ${DUMMY_LIBDVDCSS}"
986 fi
987
988 echo "
989 You may now tune Makefile.opts at your convenience, for instance to choose
990 which modules get compiled as plugins.
991 "
992 if test x${HAVE_VLC} = x1
993 then
994   echo "To build vlc and its plugins, type \`make vlc'."
995 fi
996 if test x${HAVE_LIBDVDCSS} = x1
997 then
998   echo "To build libdvdcss only, type \`make libdvdcss'."
999 fi
1000 echo ""
1001