]> git.sesse.net Git - vlc/blob - configure.in
* Mandatory step for video output IV and the audio output quality
[vlc] / configure.in
1 dnl Autoconf settings for vlc
2 AC_INIT(src/interface/main.c)
3 AC_CONFIG_HEADER(include/defs.h)
4
5 AC_CANONICAL_HOST
6
7 VLC_VERSION=0.2.73
8 AC_SUBST(VLC_VERSION)
9 VLC_CODENAME=Ourumov
10 AC_SUBST(VLC_CODENAME)
11
12 dnl Save CFLAGS
13 save_CFLAGS="${CFLAGS}"
14
15 dnl Check for tools
16 AC_PROG_MAKE_SET
17 AC_PROG_CC
18 AC_PROG_CPP
19 AC_PROG_RANLIB
20
21 dnl AM_PROG_LIBTOOL
22 AC_PROG_INSTALL
23
24 dnl Check for compiler environment
25 AC_C_CONST
26
27 dnl Check for endianness if not cross-compiling
28 if test x${cross_compiling} != xyes; then
29   AC_C_BIGENDIAN
30 fi
31
32 dnl Check for system libs needed
33 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol)
34 AC_CHECK_FUNCS(setenv putenv)
35 AC_CHECK_FUNC(connect,,[
36   AC_CHECK_LIB(socket,connect,LIB="${LIB} -lsocket")
37 ])
38 AC_CHECK_FUNC(gethostbyname,,[
39   AC_CHECK_LIB(nsl,gethostbyname,LIB="${LIB} -lnsl")
40 ])
41 AC_CHECK_FUNC(nanosleep,,[
42   AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[
43     AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")
44   ])
45 ])
46 AC_CHECK_FUNCS(usleep)
47 AC_CHECK_FUNC(inet_aton,,[
48   AC_CHECK_LIB(resolv,inet_aton,LIB="${LIB} -lresolv")
49 ])
50 AC_CHECK_FUNCS(vasprintf)
51 AC_CHECK_FUNCS(swab)
52
53 AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
54 [ # FreeBSD has a gnugetopt library for this:
55   AC_CHECK_LIB([gnugetopt],[getopt_long],
56     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB="${LIB} -lgnugetopt"],
57     [GETOPT=1])])
58 AC_SUBST(GETOPT)
59
60 AC_FUNC_MMAP
61 AC_TYPE_SIGNAL
62 AC_CHECK_LIB(dl,dlopen,LIB="${LIB} -ldl")
63 AC_CHECK_LIB(m,pow,LIB_YUV="${LIB_YUV} -lm")
64 AC_MSG_CHECKING(for old style FreeBSD -pthread flag)
65 AC_EGREP_CPP(yes,
66         [#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version <= 500001
67           yes
68         #endif
69         ], AC_MSG_RESULT(yes)
70         DEFINE="${DEFINE} -D_THREAD_SAFE" LIB="${LIB} -pthread",
71         AC_MSG_RESULT(no)
72         AC_CHECK_LIB(pthread,pthread_create,LIB="${LIB} -lpthread"))
73 AC_CHECK_LIB(threads,thread_create,LIB="${LIB} -lthreads")
74
75 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
76
77 dnl Check for headers
78 AC_CHECK_HEADERS(stddef.h getopt.h strings.h)
79 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h unistd.h)
80 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
81 AC_CHECK_HEADERS(dlfcn.h image.h)
82 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
83 AC_CHECK_HEADERS(machine/param.h)
84
85 dnl Check for threads library
86 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
87
88 dnl Check for misc headers
89 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
90   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
91             Define if <pthread.h> defines pthread_cond_t.)
92 ])
93 AC_EGREP_HEADER(strncasecmp,strings.h,[
94   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
95             Define if <strings.h> defines strncasecmp.)
96 ])
97
98 dnl Check for ntohl, etc.
99 CFLAGS="${CFLAGS} -Wall -Werror"
100 AC_MSG_CHECKING([for ntohl in sys/param.h])
101 AC_TRY_COMPILE([#include <sys/param.h>
102 void foo() { int meuh; ntohl(meuh); }],,
103  AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
104  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
105
106 dnl Check for -rdynamic flag
107 CFLAGS="${CFLAGS} -rdynamic -Wall -Werror"
108 AC_MSG_CHECKING([if \$CC groks -rdynamic without complaining too much])
109 AC_TRY_COMPILE([],,
110  LCFLAGS="${LCFLAGS} -rdynamic"
111  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
112
113 dnl End of the bizarre compilation tests
114 CFLAGS="${save_CFLAGS}"
115
116 dnl Check for boolean_t
117 AC_MSG_CHECKING([for boolean_t in sys/types.h])
118 AC_TRY_COMPILE([#include <sys/types.h>
119 void quux() { boolean_t foo; }],,
120  AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
121  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
122 AC_MSG_CHECKING([for boolean_t in pthread.h])
123 AC_TRY_COMPILE([#include <pthread.h>
124 void quux() { boolean_t foo; }],,
125  AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
126  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
127
128 dnl Checks for typedefs, structures, and compiler characteristics.
129 AC_C_CONST
130 AC_TYPE_SIZE_T
131 AC_HEADER_TIME
132
133 ARCH=${host_cpu}
134
135 dnl
136 dnl  default modules
137 dnl
138 BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion"
139 case x$host_os in
140   xbeos|xnto-qnx)
141     ACCEL_PLUGINS="yuvmmx idctmmx motionmmx"
142     ;;
143   xmingw32msvc)
144     ACCEL_PLUGINS="idctmmx idctmmxext motionmmx motionmmxext"
145     ;;
146   *)
147     ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext"
148     ;;
149 esac
150
151 dnl
152 dnl  DVD module: check for DVD ioctls
153 dnl
154 AC_CHECK_HEADERS(sys/ioctl.h,[
155   BUILTINS="${BUILTINS} dvd"
156   AC_CHECK_HEADERS(linux/cdrom.h)
157   AC_EGREP_HEADER(dvd,linux/cdrom.h,[
158     AC_DEFINE(LINUX_DVD,1, DVD support for linux)
159   ])
160 ])
161
162 dnl
163 dnl  dummy plugin
164 dnl
165 AC_ARG_ENABLE(dummy,
166   [  --disable-dummy         dummy module (default enabled)])
167 if test x$enable_dummy != xno; then
168   BUILTINS="${BUILTINS} dummy"; fi
169
170 dnl
171 dnl  null plugin
172 dnl
173 AC_ARG_ENABLE(null,
174   [  --disable-null          Null module (default enabled)])
175 if test x$enable_null != xno; then
176   BUILTINS="${BUILTINS} null"; fi
177
178 dnl
179 dnl  rc plugin
180 dnl
181 AC_ARG_ENABLE(rc,
182   [  --disable-rc            rc module (default enabled)])
183 if test x$enable_rc != xno; then
184   BUILTINS="${BUILTINS} rc"; fi
185
186 dnl
187 dnl  PentiumPro acceleration
188 dnl
189 AC_ARG_ENABLE(ppro,
190 [  --disable-ppro          Disable PentiumPro optimizations (default enabled for x86)],
191 [ if test x$enableval = xyes; then ARCH="${ARCH} ppro"; fi ],
192 [ if test x${host_cpu} = xi686; then ARCH="${ARCH} ppro"; fi ])
193
194 dnl
195 dnl  MMX acceleration
196 dnl
197 AC_ARG_ENABLE(mmx,
198 [  --disable-mmx           Disable MMX optimizations (default enabled for x86)],
199 [ if test x$enableval = xyes; then ARCH="${ARCH} mmx";
200   BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi ],
201 [ 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";
202   BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi ])
203
204 dnl
205 dnl  AltiVec acceleration
206 dnl
207 AC_ARG_ENABLE(altivec,
208 [  --enable-altivec        Enable altivec optimizations (default disabled since it is broken)],
209 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
210     BUILTINS="${BUILTINS} idctaltivec"
211     LIB_IDCTALTIVEC="-framework vecLib"
212   fi ])
213 #[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH="${ARCH} altivec"; PLUGINS="${PLUGINS} idctaltivec"; fi ])
214
215 dnl
216 dnl  CSS DVD decryption
217 dnl
218 AC_ARG_ENABLE(css,
219 [  --disable-css           Disable DVD CSS decryption (default enabled)],
220 [ if test x$enableval = xyes; then CSS=1; else CSS=0; fi ], [ CSS=1; ])
221 if test x${CSS} = x1; then AC_DEFINE(HAVE_CSS, 1, Define if you want DVD CSS decryption.) fi
222
223 dnl
224 dnl  Debugging mode
225 dnl
226 AC_ARG_ENABLE(debug,
227 [  --enable-debug          Enable debug mode (default disabled)],
228 [ if test x$enableval = xyes; then DEBUG=1; fi ])
229
230 dnl
231 dnl  Enable/disable statistics
232 dnl
233 AC_ARG_ENABLE(stats,
234 [  --enable-stats          Enable printing of statistics (default disabled)],
235 [ if test x$enableval = xyes; then STATS=1; fi ])
236
237 dnl
238 dnl  Trace mode
239 dnl
240 AC_ARG_ENABLE(trace,
241 [  --enable-trace          Enable trace mode (default disabled)],
242 [ if test x$enableval = xyes; then TRACE=1; fi ])
243
244 dnl
245 dnl  Enable/disable optimizations
246 dnl
247 AC_ARG_ENABLE(optimizations,
248 [  --disable-optimizations Disable compiler optimizations (default enabled)],
249 [ if test x$enableval = xno; then OPTIMS=0; fi ],
250 [ OPTIMS=1 ])
251
252 SYS=${host_os}
253
254 dnl special case for BeOS
255 if test x$host_os = xbeos; then
256     BUILTINS="${BUILTINS} beos"
257     LIB_BEOS="-lbe -lgame -lroot -ltracker"
258
259 dnl default case
260 else
261
262 dnl
263 dnl  OSS /dev/dsp module
264 dnl
265 AC_ARG_ENABLE(dsp,
266   [  --disable-dsp           Linux /dev/dsp support (default enabled)])
267 if test x$enable_dsp != xno; then
268   if test -c /dev/dsp; then
269     PLUGINS="${PLUGINS} dsp"
270   fi
271 fi
272
273 dnl
274 dnl  Esound module
275 dnl
276 AC_ARG_ENABLE(esd,
277   [  --enable-esd            Esound library support (default disabled)],
278   [if test x$enable_esd = xyes; then
279      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
280      if test x${ESD_CONFIG} != xno; then
281        PLUGINS="${PLUGINS} esd"
282        LIB_ESD="`${ESD_CONFIG} --libs`"
283      fi
284    fi])
285
286 dnl
287 dnl  Darwin module
288 dnl
289 AC_ARG_ENABLE(darwin,
290   [  --enable-darwin         Darwin sound support (default disabled)],
291   [if test x$enable_darwin = xyes; then
292      PLUGINS="${PLUGINS} darwin"
293      LIB_DARWIN="-framework CoreAudio"
294    fi])
295
296 dnl
297 dnl  MacOS X module
298 dnl
299 AC_ARG_ENABLE(macosx,
300   [  --enable-macosx         Mac OS X interface support (default enabled in Mac OS X)],
301   [if test x$enable_macosx = xyes; then
302      BUILTINS="${BUILTINS} macosx"
303      LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
304      LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
305      LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
306    fi],
307   [AC_CHECK_HEADERS(Carbon/Carbon.h,
308      BUILTINS="${BUILTINS} macosx"
309      LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
310      LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
311      LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
312    )])
313
314 dnl
315 dnl  Linux framebuffer module
316 dnl
317 AC_ARG_ENABLE(fb,
318   [  --enable-fb             Linux framebuffer support (default disabled)],
319   [if test x$enable_fb = xyes; then PLUGINS="${PLUGINS} fb"; fi])
320
321 dnl
322 dnl  GGI module
323 dnl
324 AC_ARG_WITH(ggi,
325   [  --with-ggi[=name]       GGI support (default disabled)],
326   [ if test "x$withval" != "xno";
327     then
328       PLUGINS="${PLUGINS} ggi";
329       if test "x$withval" != "xyes";
330       then
331         LIB_GGI="-l"$withval
332       else
333         LIB_GGI="-lggi"
334       fi
335     fi ])
336
337 dnl
338 dnl  SDL module
339 dnl
340 AC_ARG_WITH(sdl,
341   [  --with-sdl[=name]       SDL support (default enabled)],
342   [ if test "x$withval" != "xno";
343     then
344       PLUGINS="${PLUGINS} sdl";
345       if test "x$withval" != "xyes";
346       then
347         LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -L"$withval"/lib -lSDL"
348         INCLUDE="${INCLUDE} -I"$withval"/include"
349       else
350         AC_CHECK_HEADERS(SDL/SDL.h, , [echo "Cannot find SDL headers !"; exit])
351         LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL"
352       fi
353     fi ])
354     if test "x$withval" = "x";
355     then
356       AC_CHECK_HEADERS(SDL/SDL.h,
357       [PLUGINS="${PLUGINS} sdl"
358        LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL"])
359     fi
360
361 dnl
362 dnl  Glide module
363 dnl
364 AC_ARG_WITH(glide,
365   [  --with-glide[=name]     Glide (3dfx) support (default disabled)],
366   [ if test "x$withval" != "xno";
367     then
368       PLUGINS="${PLUGINS} glide";
369       if test "x$withval" != "xyes";
370       then
371         LIB_GLIDE="-l"$withval
372       else
373         LIB_GLIDE="-lglide2x"
374       fi
375     fi ])
376
377 dnl
378 dnl  ncurses module
379 dnl
380 AC_ARG_ENABLE(ncurses,
381   [  --enable-ncurses        ncurses interface support (default disabled)],
382   [if test x$enable_ncurses = xyes; then
383      PLUGINS="${PLUGINS} ncurses"
384      LIB_NCURSES="-lncurses"
385    fi])
386
387 dnl
388 dnl  Qt module
389 dnl
390 AC_ARG_ENABLE(qt,
391   [  --enable-qt             Qt interface support (default disabled)],
392   [if test x$enable_qt = xyes; then
393      PLUGINS="${PLUGINS} qt"
394      ALIASES="${ALIASES} qvlc"
395      LIB_QT="-lqt -L${QTDIR}/lib"
396      if test -x ${QTDIR}/bin/moc ;
397      then
398        MOC=${QTDIR}/bin/moc
399      else
400        MOC=moc
401      fi
402    fi])
403
404 dnl 
405 dnl  KDE module
406 dnl
407 AC_ARG_ENABLE(kde,
408   [  --enable-kde            KDE interface support (default disabled)],
409   [if test x$enable_kde = xyes; then PLUGINS="${PLUGINS} kde"; ALIASES="${ALIASES} kvlc"; fi])
410
411 dnl
412 dnl  Gnome module
413 dnl
414 AC_ARG_ENABLE(gnome,
415   [  --enable-gnome          Gnome interface support (default disabled)],
416   [if test x$enable_gnome = xyes; then
417      PLUGINS="${PLUGINS} gnome"
418      ALIASES="${ALIASES} gnome-vlc"
419      LIB_GNOME="`gnome-config --libs gnomeui | sed 's,-rdynamic,,'`"
420    fi])
421
422 dnl
423 dnl  Gtk+ module
424 dnl
425 AC_ARG_ENABLE(gtk,
426   [  --disable-gtk           Gtk+ support (default enabled)])
427 if test x$enable_gtk != xno; then
428   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
429   if test x${GTK_CONFIG} != xno; then
430     PLUGINS="${PLUGINS} gtk"
431     ALIASES="${ALIASES} gvlc"
432     CFLAGS_GTK="`${GTK_CONFIG} --cflags gtk`"
433     LIB_GTK="`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
434   fi
435 fi
436
437 dnl
438 dnl  X11 module
439 dnl
440 AC_ARG_ENABLE(x11,
441   [  --disable-x11           X11 support (default enabled)])
442 if test x$enable_x11 != xno; then
443   if test x$x_includes = xNONE; then
444     x_includes=/usr/X11R6/include
445   fi
446   if test x$x_libraries = xNONE; then
447     x_libraries=/usr/X11R6/lib
448   fi
449   saved_CPPFLAGS=$CPPFLAGS
450   CPPFLAGS="$CPPFLAGS -I$x_includes"
451   AC_CHECK_HEADERS(X11/Xlib.h, [
452     PLUGINS="${PLUGINS} x11"
453     LIB_X11="-L$x_libraries -lX11 -lXext"
454     CFLAGS_X11="-I$x_includes"
455   ]
456   CPPFLAGS=$saved_CPPFLAGS)
457 fi
458
459 dnl
460 dnl  XVideo module
461 dnl
462 AC_ARG_ENABLE(xvideo,
463   [  --disable-xvideo        XVideo support (default enabled)])
464 if test x$enable_xvideo != xno; then
465   if test x$x_includes = xNONE; then
466     x_includes=/usr/X11R6/include
467   fi
468   if test x$x_libraries = xNONE; then
469     x_libraries=/usr/X11R6/lib
470   fi
471   saved_CPPFLAGS=$CPPFLAGS
472   CPPFLAGS="$CPPFLAGS -I$x_includes"
473   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
474     PLUGINS="${PLUGINS} xvideo"
475     LIB_XVIDEO="-L$x_libraries -lX11 -lXext -lXv"
476     CFLAGS_X11="-I$x_includes"
477   ]
478   CPPFLAGS=$saved_CPPFLAGS)
479 fi
480
481 dnl
482 dnl  ALSA module
483 dnl
484 AC_ARG_ENABLE(alsa,
485   [  --enable-alsa           Alsa sound drivers support (Only for linux) (default disabled)],
486   [if test x$enable_alsa = xyes; then AC_CHECK_HEADER(sys/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false") if test x$have_alsa = xtrue; then
487      PLUGINS="${PLUGINS} alsa"
488      LIB_ALSA="-lasound"
489    fi; fi])
490
491 dnl  end of non-BeOS stuff
492 fi
493
494 dnl 
495 dnl  Configuration is finished
496 dnl
497 AC_SUBST(SYS)
498 AC_SUBST(ARCH)
499 AC_SUBST(PLUGINS)
500 AC_SUBST(BUILTINS)
501 AC_SUBST(ALIASES)
502 AC_SUBST(DEFINE)
503 AC_SUBST(INCLUDE)
504 AC_SUBST(DEBUG)
505 AC_SUBST(STATS)
506 AC_SUBST(TRACE)
507 AC_SUBST(OPTIMS)
508 AC_SUBST(CSS)
509 AC_SUBST(MOC)
510
511 AC_SUBST(LCFLAGS)
512 AC_SUBST(LIB)
513
514 AC_SUBST(LIB_ALSA)
515 AC_SUBST(LIB_BEOS)
516 AC_SUBST(LIB_DARWIN)
517 AC_SUBST(LIB_ESD)
518 AC_SUBST(LIB_GGI)
519 AC_SUBST(LIB_GLIDE)
520 AC_SUBST(LIB_GNOME)
521 AC_SUBST(LIB_GTK)
522 AC_SUBST(LIB_IDCTALTIVEC)
523 AC_SUBST(LIB_MACOSX)
524 AC_SUBST(LIB_NCURSES)
525 AC_SUBST(LIB_QT)
526 AC_SUBST(LIB_TS)
527 AC_SUBST(LIB_SDL)
528 AC_SUBST(LIB_X11)
529 AC_SUBST(LIB_XVIDEO)
530 AC_SUBST(LIB_YUV)
531
532 AC_SUBST(CFLAGS_VLC)
533 AC_SUBST(CFLAGS_GTK)
534 AC_SUBST(CFLAGS_X11)
535
536 AC_OUTPUT([Makefile.opts include/config.h])
537
538 echo "
539 vlc configuration
540 -----------------
541 vlc version           : ${VLC_VERSION}
542 system                : ${SYS}
543 architecture          : ${ARCH}
544 debug mode            : ${DEBUG}
545 statistics            : ${STATS}
546 trace mode            : ${TRACE}
547 optimizations         : ${OPTIMS}
548 CSS decryption        : ${CSS}
549 need builtin getopt   : ${GETOPT}
550 built-in modules      :${BUILTINS}
551 plugin modules        :${PLUGINS}
552 vlc aliases           :${ALIASES}
553
554 You may now tune Makefile.opts at your convenience."
555