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