Merge svn changes up to r31050
[mplayer/glamo.git] / configure
blob6bc810e3f0e6876f4985d3f52fc2a3d53b6887c7
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm*) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=''
201 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
202 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
203 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
205 show_help(){
206 cat << EOF
207 Usage: $0 [OPTIONS]...
209 Configuration:
210 -h, --help display this help and exit
212 Installation directories:
213 --prefix=DIR prefix directory for installation [/usr/local]
214 --bindir=DIR directory for installing binaries [PREFIX/bin]
215 --datadir=DIR directory for installing machine independent
216 data files (skins, etc) [PREFIX/share/mplayer]
217 --mandir=DIR directory for installing man pages [PREFIX/share/man]
218 --confdir=DIR directory for installing configuration files
219 [PREFIX/etc/mplayer]
220 --localedir=DIR directory for locale tree [PREFIX/share/locale]
221 --libdir=DIR directory for object code libraries [PREFIX/lib]
222 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
224 Optional features:
225 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
226 --disable-mplayer disable MPlayer compilation [enable]
227 --disable-largefiles disable support for files > 2GB [enable]
228 --enable-linux-devfs set default devices to devfs [disable]
229 --enable-termcap use termcap database for key codes [autodetect]
230 --enable-termios use termios database for key codes [autodetect]
231 --disable-iconv disable iconv for encoding conversion [autodetect]
232 --disable-langinfo do not use langinfo [autodetect]
233 --enable-lirc enable LIRC (remote control) support [autodetect]
234 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
235 --enable-joystick enable joystick support [disable]
236 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
237 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
238 --disable-vm disable X video mode extensions [autodetect]
239 --disable-xf86keysym disable support for multimedia keys [autodetect]
240 --enable-radio enable radio interface [disable]
241 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
242 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
243 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
244 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
245 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
246 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
247 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
248 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
249 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
250 --disable-network disable networking [enable]
251 --enable-winsock2_h enable winsock2_h [autodetect]
252 --enable-smb enable Samba (SMB) input [autodetect]
253 --enable-live enable LIVE555 Streaming Media [autodetect]
254 --enable-nemesi enable Nemesi Streaming Media [autodetect]
255 --disable-vcd disable VCD support [autodetect]
256 --disable-dvdnav disable libdvdnav [autodetect]
257 --disable-dvdread disable libdvdread [autodetect]
258 --disable-dvdread-internal disable internal libdvdread [autodetect]
259 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
260 --disable-cdparanoia disable cdparanoia [autodetect]
261 --disable-cddb disable cddb [autodetect]
262 --disable-bitmap-font disable bitmap font support [enable]
263 --disable-freetype disable FreeType 2 font rendering [autodetect]
264 --disable-fontconfig disable fontconfig font lookup [autodetect]
265 --disable-unrarexec disable using of UnRAR executable [enabled]
266 --enable-menu enable OSD menu (not DVD menu) [disabled]
267 --disable-sortsub disable subtitle sorting [enabled]
268 --enable-fribidi enable the FriBiDi libs [autodetect]
269 --disable-enca disable ENCA charset oracle library [autodetect]
270 --disable-maemo disable maemo specific features [autodetect]
271 --enable-macosx-finder enable Mac OS X Finder invocation parameter
272 parsing [disabled]
273 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
274 --disable-inet6 disable IPv6 support [autodetect]
275 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
276 --disable-ftp disable FTP support [enabled]
277 --disable-vstream disable TiVo vstream client support [autodetect]
278 --disable-pthreads disable Posix threads support [autodetect]
279 --disable-w32threads disable Win32 threads support [autodetect]
280 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
281 --enable-rpath enable runtime linker path for extra libs [disabled]
283 Codecs:
284 --enable-gif enable GIF support [autodetect]
285 --enable-png enable PNG input/output support [autodetect]
286 --enable-mng enable MNG input support [autodetect]
287 --enable-jpeg enable JPEG input/output support [autodetect]
288 --enable-libcdio enable libcdio support [autodetect]
289 --enable-liblzo enable liblzo support [autodetect]
290 --disable-win32dll disable Win32 DLL support [autodetect]
291 --disable-qtx disable QuickTime codecs support [enabled]
292 --disable-xanim disable XAnim codecs support [enabled]
293 --disable-real disable RealPlayer codecs support [enabled]
294 --disable-xvid disable Xvid [autodetect]
295 --disable-x264 disable x264 [autodetect]
296 --disable-libnut disable libnut [autodetect]
297 --disable-libavutil disable libavutil [autodetect]
298 --disable-libavcodec disable libavcodec [autodetect]
299 --disable-libavformat disable libavformat [autodetect]
300 --disable-libpostproc disable libpostproc [autodetect]
301 --disable-libswscale disable libswscale [autodetect]
302 --disable-tremor-internal disable internal Tremor [enabled]
303 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
304 --enable-tremor enable external Tremor [autodetect]
305 --disable-libvorbis disable libvorbis support [autodetect]
306 --disable-speex disable Speex support [autodetect]
307 --enable-theora enable OggTheora libraries [autodetect]
308 --enable-faad enable external FAAD2 (AAC) [autodetect]
309 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
310 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
311 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
312 --disable-ladspa disable LADSPA plugin support [autodetect]
313 --disable-libbs2b disable libbs2b audio filter support [autodetect]
314 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
315 --disable-mad disable libmad (MPEG audio) support [autodetect]
316 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
317 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
318 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
319 --enable-xmms enable XMMS input plugin support [disabled]
320 --enable-libdca enable libdca support [autodetect]
321 --disable-mp3lib disable builtin mp3lib [autodetect]
322 --disable-liba52 disable liba52 [autodetect]
323 --enable-liba52-internal enable builtin liba52 [disabled]
324 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
325 --disable-musepack disable musepack support [autodetect]
327 Video output:
328 --disable-vidix disable VIDIX [for x86 *nix]
329 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
330 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
331 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
332 --disable-vidix-pcidb disable VIDIX PCI device name database
333 --enable-dhahelper enable VIDIX dhahelper support
334 --enable-svgalib_helper enable VIDIX svgalib_helper support
335 --enable-gl enable OpenGL video output [autodetect]
336 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
337 --enable-dga2 enable DGA 2 support [autodetect]
338 --enable-dga1 enable DGA 1 support [autodetect]
339 --enable-vesa enable VESA video output [autodetect]
340 --enable-svga enable SVGAlib video output [autodetect]
341 --enable-sdl enable SDL video output [autodetect]
342 --enable-kva enable KVA video output [autodetect]
343 --enable-aa enable AAlib video output [autodetect]
344 --enable-caca enable CACA video output [autodetect]
345 --enable-ggi enable GGI video output [autodetect]
346 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
347 --enable-direct3d enable Direct3D video output [autodetect]
348 --enable-directx enable DirectX video output [autodetect]
349 --enable-dxr2 enable DXR2 video output [autodetect]
350 --enable-dxr3 enable DXR3/H+ video output [autodetect]
351 --enable-ivtv enable IVTV TV-Out video output [autodetect]
352 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
353 --enable-dvb enable DVB video output [autodetect]
354 --enable-mga enable mga_vid video output [autodetect]
355 --enable-xmga enable mga_vid X11 video output [autodetect]
356 --enable-xv enable Xv video output [autodetect]
357 --enable-xvmc enable XvMC acceleration [disable]
358 --enable-vdpau enable VDPAU acceleration [autodetect]
359 --enable-vm enable XF86VidMode support [autodetect]
360 --enable-xinerama enable Xinerama support [autodetect]
361 --enable-x11 enable X11 video output [autodetect]
362 --enable-xshape enable XShape support [autodetect]
363 --disable-xss disable screensaver support via xss [autodetect]
364 --enable-fbdev enable FBDev video output [autodetect]
365 --enable-mlib enable mediaLib video output (Solaris) [disable]
366 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
367 --enable-tdfxfb enable tdfxfb video output [disable]
368 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
369 --enable-wii enable Nintendo Wii/GameCube video output [disable]
370 --enable-directfb enable DirectFB video output [autodetect]
371 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
372 --enable-bl enable Blinkenlights video output [disable]
373 --enable-tdfxvid enable tdfx_vid video output [disable]
374 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
375 --disable-tga disable Targa video output [enable]
376 --disable-pnm disable PNM video output [enable]
377 --disable-md5sum disable md5sum video output [enable]
378 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
379 --disable-corevideo disable CoreVideo video output [autodetect]
380 --disable-quartz disable Quartz video output [autodetect]
382 Audio output:
383 --disable-alsa disable ALSA audio output [autodetect]
384 --disable-ossaudio disable OSS audio output [autodetect]
385 --disable-arts disable aRts audio output [autodetect]
386 --disable-esd disable esd audio output [autodetect]
387 --disable-pulse disable Pulseaudio audio output [autodetect]
388 --disable-jack disable JACK audio output [autodetect]
389 --enable-openal enable OpenAL audio output [disable]
390 --disable-nas disable NAS audio output [autodetect]
391 --disable-sgiaudio disable SGI audio output [autodetect]
392 --disable-sunaudio disable Sun audio output [autodetect]
393 --disable-kai disable KAI audio output [autodetect]
394 --disable-dart disable DART audio output [autodetect]
395 --disable-win32waveout disable Windows waveout audio output [autodetect]
396 --disable-coreaudio disable CoreAudio audio output [autodetect]
397 --disable-select disable using select() on the audio device [enable]
399 Language options:
400 --enable-translation enable support for translated output [disable]
401 --charset=charset convert the console messages to this character set
402 --language-doc=lang language to use for the documentation [en]
403 --language-man=lang language to use for the man pages [en]
404 --language-msg=lang extra languages for program messages [all]
405 --language=lang default language to use [en]
406 Specific options override --language. You can pass a list of languages separated
407 by whitespace or commas instead of a single language. Nonexisting translations
408 will be dropped from each list. All translations available in the list will be
409 installed. The value "all" will activate all translations. The LINGUAS
410 environment variable is honored. In all cases the fallback is English.
411 The program always supports English-language output; additional message
412 languages are only installed if --enable-translation is also specified.
413 Available values for --language-doc are: all $doc_lang_all
414 Available values for --language-man are: all $man_lang_all
415 Available values for --language-msg are: all $msg_lang_all
417 Miscellaneous options:
418 --enable-runtime-cpudetection enable runtime CPU detection [disable]
419 --enable-cross-compile enable cross-compilation [autodetect]
420 --cc=COMPILER C compiler to build MPlayer [gcc]
421 --host-cc=COMPILER C compiler for tools needed while building [gcc]
422 --as=ASSEMBLER assembler to build MPlayer [as]
423 --nm=NM nm tool to build MPlayer [nm]
424 --yasm=YASM Yasm assembler to build MPlayer [yasm]
425 --ar=AR librarian to build MPlayer [ar]
426 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
427 --windres=WINDRES windres to build MPlayer [windres]
428 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
429 --enable-static build a statically linked binary
430 --with-install=PATH path to a custom install program
432 Advanced options:
433 --enable-mmx enable MMX [autodetect]
434 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
435 --enable-3dnow enable 3DNow! [autodetect]
436 --enable-3dnowext enable extended 3DNow! [autodetect]
437 --enable-sse enable SSE [autodetect]
438 --enable-sse2 enable SSE2 [autodetect]
439 --enable-ssse3 enable SSSE3 [autodetect]
440 --enable-shm enable shm [autodetect]
441 --enable-altivec enable AltiVec (PowerPC) [autodetect]
442 --enable-armv5te enable DSP extensions (ARM) [autodetect]
443 --enable-armv6 enable ARMv6 (ARM) [autodetect]
444 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
445 --enable-armvfp enable ARM VFP (ARM) [autodetect]
446 --enable-neon enable NEON (ARM) [autodetect]
447 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
448 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
449 --enable-big-endian force byte order to big-endian [autodetect]
450 --enable-debug[=1-3] compile-in debugging information [disable]
451 --enable-profile compile-in profiling information [disable]
452 --disable-sighandler disable sighandler for crashes [enable]
453 --enable-crash-debug enable automatic gdb attach on crash [disable]
454 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
455 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
457 Use these options if autodetection fails:
458 --extra-cflags=FLAGS extra CFLAGS
459 --extra-ldflags=FLAGS extra LDFLAGS
460 --extra-libs=FLAGS extra linker flags
461 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
462 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
463 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
465 --with-freetype-config=PATH path to freetype-config
466 --with-fribidi-config=PATH path to fribidi-config
467 --with-glib-config=PATH path to glib*-config
468 --with-gtk-config=PATH path to gtk*-config
469 --with-sdl-config=PATH path to sdl*-config
470 --with-dvdnav-config=PATH path to dvdnav-config
471 --with-dvdread-config=PATH path to dvdread-config
473 This configure script is NOT autoconf-based, even though its output is similar.
474 It will try to autodetect all configuration options. If you --enable an option
475 it will be forcefully turned on, skipping autodetection. This can break
476 compilation, so you need to know what you are doing.
478 exit 0
479 } #show_help()
481 # GOTCHA: the variables below defines the default behavior for autodetection
482 # and have - unless stated otherwise - at least 2 states : yes no
483 # If autodetection is available then the third state is: auto
484 _mmx=auto
485 _3dnow=auto
486 _3dnowext=auto
487 _mmxext=auto
488 _sse=auto
489 _sse2=auto
490 _ssse3=auto
491 _cmov=auto
492 _fast_cmov=auto
493 _fast_clz=auto
494 _armv5te=auto
495 _armv6=auto
496 _armv6t2=auto
497 _armvfp=auto
498 neon=auto
499 _iwmmxt=auto
500 _mtrr=auto
501 _altivec=auto
502 _install=install
503 _ranlib=ranlib
504 _windres=windres
505 _cc=cc
506 _ar=ar
507 test "$CC" && _cc="$CC"
508 _as=auto
509 _nm=auto
510 _yasm=yasm
511 _runtime_cpudetection=no
512 _cross_compile=auto
513 _prefix="/usr/local"
514 _libavutil=auto
515 _libavcodec=auto
516 _libavformat=auto
517 _libpostproc=auto
518 _libswscale=auto
519 _libavcodec_internals=no
520 _libswscale_internals=no
521 _mencoder=yes
522 _mplayer=yes
523 _x11=auto
524 _xshape=auto
525 _xss=auto
526 _dga1=auto
527 _dga2=auto
528 _xv=auto
529 _xvmc=no #auto when complete
530 _vdpau=auto
531 _sdl=auto
532 _kva=auto
533 _direct3d=auto
534 _directx=auto
535 _win32waveout=auto
536 _nas=auto
537 _png=auto
538 _mng=auto
539 _jpeg=auto
540 _pnm=yes
541 _md5sum=yes
542 _yuv4mpeg=yes
543 _gif=auto
544 _gl=auto
545 matrixview=yes
546 _ggi=auto
547 _ggiwmh=auto
548 _aa=auto
549 _caca=auto
550 _svga=auto
551 _vesa=auto
552 _fbdev=auto
553 _dvb=auto
554 _dxr2=auto
555 _dxr3=auto
556 _ivtv=auto
557 _v4l2=auto
558 _iconv=auto
559 _langinfo=auto
560 _rtc=auto
561 _ossaudio=auto
562 _arts=auto
563 _esd=auto
564 _pulse=auto
565 _jack=auto
566 _kai=auto
567 _dart=auto
568 _openal=no
569 _libcdio=auto
570 _liblzo=auto
571 _mad=auto
572 _mp3lame=auto
573 _toolame=auto
574 _twolame=auto
575 _tremor=auto
576 _tremor_internal=yes
577 _tremor_low=no
578 _libvorbis=auto
579 _speex=auto
580 _theora=auto
581 _mp3lib=auto
582 _liba52=auto
583 _liba52_internal=no
584 _libdca=auto
585 _libmpeg2=auto
586 _faad=auto
587 _faad_internal=auto
588 _faad_fixed=no
589 _faac=auto
590 _ladspa=auto
591 _libbs2b=auto
592 _xmms=no
593 _vcd=auto
594 _dvdnav=auto
595 _dvdnavconfig=dvdnav-config
596 _dvdreadconfig=dvdread-config
597 _dvdread=auto
598 _dvdread_internal=auto
599 _libdvdcss_internal=auto
600 _xanim=auto
601 _real=auto
602 _live=auto
603 _nemesi=auto
604 _native_rtsp=yes
605 _xinerama=auto
606 _mga=auto
607 _xmga=auto
608 _vm=auto
609 _xf86keysym=auto
610 _mlib=no #broken, thus disabled
611 _sgiaudio=auto
612 _sunaudio=auto
613 _alsa=auto
614 _fastmemcpy=yes
615 _unrar_exec=auto
616 _win32dll=auto
617 _select=yes
618 _radio=no
619 _radio_capture=no
620 _radio_v4l=auto
621 _radio_v4l2=auto
622 _radio_bsdbt848=auto
623 _tv=yes
624 _tv_v4l1=auto
625 _tv_v4l2=auto
626 _tv_bsdbt848=auto
627 _tv_dshow=auto
628 _pvr=auto
629 _network=yes
630 _winsock2_h=auto
631 _smb=auto
632 _vidix=auto
633 _vidix_pcidb=yes
634 _dhahelper=no
635 _svgalib_helper=no
636 _joystick=no
637 _xvid=auto
638 _x264=auto
639 _libnut=auto
640 _lirc=auto
641 _lircc=auto
642 _apple_remote=auto
643 _apple_ir=auto
644 _gui=no
645 _gtk1=no
646 _termcap=auto
647 _termios=auto
648 _3dfx=no
649 _s3fb=no
650 _wii=no
651 _tdfxfb=no
652 _tdfxvid=no
653 _xvr100=auto
654 _tga=yes
655 _directfb=auto
656 _zr=auto
657 _bl=no
658 _largefiles=yes
659 #language=en
660 _shm=auto
661 _linux_devfs=no
662 _translation=no
663 _charset="UTF-8"
664 _dynamic_plugins=no
665 _crash_debug=no
666 _sighandler=yes
667 _libdv=auto
668 _cdparanoia=auto
669 _cddb=auto
670 _big_endian=auto
671 _bitmap_font=yes
672 _freetype=auto
673 _fontconfig=auto
674 _menu=no
675 _qtx=auto
676 _maemo=auto
677 _coreaudio=auto
678 _corevideo=auto
679 _quartz=auto
680 quicktime=auto
681 _macosx_finder=no
682 _macosx_bundle=auto
683 _sortsub=yes
684 _freetypeconfig='freetype-config'
685 _fribidi=auto
686 _fribidiconfig='fribidi-config'
687 _enca=auto
688 _inet6=auto
689 _gethostbyname2=auto
690 _ftp=yes
691 _musepack=auto
692 _vstream=auto
693 _pthreads=auto
694 _w32threads=auto
695 _ass=auto
696 _rpath=no
697 _asmalign_pot=auto
698 _stream_cache=yes
699 _priority=no
700 def_dos_paths="#define HAVE_DOS_PATHS 0"
701 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
702 def_priority="#undef CONFIG_PRIORITY"
703 def_pthread_cache="#undef PTHREAD_CACHE"
704 _need_shmem=yes
705 for ac_option do
706 case "$ac_option" in
707 --help|-help|-h)
708 show_help
710 --prefix=*)
711 _prefix=$(echo $ac_option | cut -d '=' -f 2)
713 --bindir=*)
714 _bindir=$(echo $ac_option | cut -d '=' -f 2)
716 --datadir=*)
717 _datadir=$(echo $ac_option | cut -d '=' -f 2)
719 --mandir=*)
720 _mandir=$(echo $ac_option | cut -d '=' -f 2)
722 --confdir=*)
723 _confdir=$(echo $ac_option | cut -d '=' -f 2)
725 --libdir=*)
726 _libdir=$(echo $ac_option | cut -d '=' -f 2)
728 --codecsdir=*)
729 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
731 --localedir=*)
732 _localedir=$(echo $ac_option | cut -d '=' -f 2)
735 --with-install=*)
736 _install=$(echo $ac_option | cut -d '=' -f 2 )
738 --with-xvmclib=*)
739 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
742 --with-sdl-config=*)
743 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
745 --with-freetype-config=*)
746 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
748 --with-fribidi-config=*)
749 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
751 --with-gtk-config=*)
752 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
754 --with-glib-config=*)
755 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
757 --with-dvdnav-config=*)
758 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
760 --with-dvdread-config=*)
761 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
764 --extra-cflags=*)
765 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
767 --extra-ldflags=*)
768 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
770 --extra-libs=*)
771 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
773 --extra-libs-mplayer=*)
774 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
776 --extra-libs-mencoder=*)
777 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
780 --target=*)
781 _target=$(echo $ac_option | cut -d '=' -f 2)
783 --cc=*)
784 _cc=$(echo $ac_option | cut -d '=' -f 2)
786 --host-cc=*)
787 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
789 --as=*)
790 _as=$(echo $ac_option | cut -d '=' -f 2)
792 --nm=*)
793 _nm=$(echo $ac_option | cut -d '=' -f 2)
795 --yasm=*)
796 _yasm=$(echo $ac_option | cut -d '=' -f 2)
798 --ar=*)
799 _ar=$(echo $ac_option | cut -d '=' -f 2)
801 --ranlib=*)
802 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
804 --windres=*)
805 _windres=$(echo $ac_option | cut -d '=' -f 2)
807 --charset=*)
808 _charset=$(echo $ac_option | cut -d '=' -f 2)
810 --language-doc=*)
811 language_doc=$(echo $ac_option | cut -d '=' -f 2)
813 --language-man=*)
814 language_man=$(echo $ac_option | cut -d '=' -f 2)
816 --language-msg=*)
817 language_msg=$(echo $ac_option | cut -d '=' -f 2)
819 --language=*)
820 language=$(echo $ac_option | cut -d '=' -f 2)
823 --enable-static)
824 _ld_static='-static'
826 --disable-static)
827 _ld_static=''
829 --enable-profile)
830 _profile='-p'
832 --disable-profile)
833 _profile=
835 --enable-debug)
836 _debug='-g'
838 --enable-debug=*)
839 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
841 --disable-debug)
842 _debug=
844 --enable-translation) _translation=yes ;;
845 --disable-translation) _translation=no ;;
846 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
847 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
848 --enable-cross-compile) _cross_compile=yes ;;
849 --disable-cross-compile) _cross_compile=no ;;
850 --enable-mencoder) _mencoder=yes ;;
851 --disable-mencoder) _mencoder=no ;;
852 --enable-mplayer) _mplayer=yes ;;
853 --disable-mplayer) _mplayer=no ;;
854 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
855 --disable-dynamic-plugins) _dynamic_plugins=no ;;
856 --enable-x11) _x11=yes ;;
857 --disable-x11) _x11=no ;;
858 --enable-xshape) _xshape=yes ;;
859 --disable-xshape) _xshape=no ;;
860 --enable-xss) _xss=yes ;;
861 --disable-xss) _xss=no ;;
862 --enable-xv) _xv=yes ;;
863 --disable-xv) _xv=no ;;
864 --enable-xvmc) _xvmc=yes ;;
865 --disable-xvmc) _xvmc=no ;;
866 --enable-vdpau) _vdpau=yes ;;
867 --disable-vdpau) _vdpau=no ;;
868 --enable-sdl) _sdl=yes ;;
869 --disable-sdl) _sdl=no ;;
870 --enable-kva) _kva=yes ;;
871 --disable-kva) _kva=no ;;
872 --enable-direct3d) _direct3d=yes ;;
873 --disable-direct3d) _direct3d=no ;;
874 --enable-directx) _directx=yes ;;
875 --disable-directx) _directx=no ;;
876 --enable-win32waveout) _win32waveout=yes ;;
877 --disable-win32waveout) _win32waveout=no ;;
878 --enable-nas) _nas=yes ;;
879 --disable-nas) _nas=no ;;
880 --enable-png) _png=yes ;;
881 --disable-png) _png=no ;;
882 --enable-mng) _mng=yes ;;
883 --disable-mng) _mng=no ;;
884 --enable-jpeg) _jpeg=yes ;;
885 --disable-jpeg) _jpeg=no ;;
886 --enable-pnm) _pnm=yes ;;
887 --disable-pnm) _pnm=no ;;
888 --enable-md5sum) _md5sum=yes ;;
889 --disable-md5sum) _md5sum=no ;;
890 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
891 --disable-yuv4mpeg) _yuv4mpeg=no ;;
892 --enable-gif) _gif=yes ;;
893 --disable-gif) _gif=no ;;
894 --enable-gl) _gl=yes ;;
895 --disable-gl) _gl=no ;;
896 --enable-matrixview) matrixview=yes ;;
897 --disable-matrixview) matrixview=no ;;
898 --enable-ggi) _ggi=yes ;;
899 --disable-ggi) _ggi=no ;;
900 --enable-ggiwmh) _ggiwmh=yes ;;
901 --disable-ggiwmh) _ggiwmh=no ;;
902 --enable-aa) _aa=yes ;;
903 --disable-aa) _aa=no ;;
904 --enable-caca) _caca=yes ;;
905 --disable-caca) _caca=no ;;
906 --enable-svga) _svga=yes ;;
907 --disable-svga) _svga=no ;;
908 --enable-vesa) _vesa=yes ;;
909 --disable-vesa) _vesa=no ;;
910 --enable-fbdev) _fbdev=yes ;;
911 --disable-fbdev) _fbdev=no ;;
912 --enable-dvb) _dvb=yes ;;
913 --disable-dvb) _dvb=no ;;
914 --enable-dxr2) _dxr2=yes ;;
915 --disable-dxr2) _dxr2=no ;;
916 --enable-dxr3) _dxr3=yes ;;
917 --disable-dxr3) _dxr3=no ;;
918 --enable-ivtv) _ivtv=yes ;;
919 --disable-ivtv) _ivtv=no ;;
920 --enable-v4l2) _v4l2=yes ;;
921 --disable-v4l2) _v4l2=no ;;
922 --enable-iconv) _iconv=yes ;;
923 --disable-iconv) _iconv=no ;;
924 --enable-langinfo) _langinfo=yes ;;
925 --disable-langinfo) _langinfo=no ;;
926 --enable-rtc) _rtc=yes ;;
927 --disable-rtc) _rtc=no ;;
928 --enable-libdv) _libdv=yes ;;
929 --disable-libdv) _libdv=no ;;
930 --enable-ossaudio) _ossaudio=yes ;;
931 --disable-ossaudio) _ossaudio=no ;;
932 --enable-arts) _arts=yes ;;
933 --disable-arts) _arts=no ;;
934 --enable-esd) _esd=yes ;;
935 --disable-esd) _esd=no ;;
936 --enable-pulse) _pulse=yes ;;
937 --disable-pulse) _pulse=no ;;
938 --enable-jack) _jack=yes ;;
939 --disable-jack) _jack=no ;;
940 --enable-openal) _openal=yes ;;
941 --disable-openal) _openal=no ;;
942 --enable-kai) _kai=yes ;;
943 --disable-kai) _kai=no ;;
944 --enable-dart) _dart=yes ;;
945 --disable-dart) _dart=no ;;
946 --enable-mad) _mad=yes ;;
947 --disable-mad) _mad=no ;;
948 --enable-mp3lame) _mp3lame=yes ;;
949 --disable-mp3lame) _mp3lame=no ;;
950 --enable-toolame) _toolame=yes ;;
951 --disable-toolame) _toolame=no ;;
952 --enable-twolame) _twolame=yes ;;
953 --disable-twolame) _twolame=no ;;
954 --enable-libcdio) _libcdio=yes ;;
955 --disable-libcdio) _libcdio=no ;;
956 --enable-liblzo) _liblzo=yes ;;
957 --disable-liblzo) _liblzo=no ;;
958 --enable-libvorbis) _libvorbis=yes ;;
959 --disable-libvorbis) _libvorbis=no ;;
960 --enable-speex) _speex=yes ;;
961 --disable-speex) _speex=no ;;
962 --enable-tremor) _tremor=yes ;;
963 --disable-tremor) _tremor=no ;;
964 --enable-tremor-internal) _tremor_internal=yes ;;
965 --disable-tremor-internal) _tremor_internal=no ;;
966 --enable-tremor-low) _tremor_low=yes ;;
967 --disable-tremor-low) _tremor_low=no ;;
968 --enable-theora) _theora=yes ;;
969 --disable-theora) _theora=no ;;
970 --enable-mp3lib) _mp3lib=yes ;;
971 --disable-mp3lib) _mp3lib=no ;;
972 --enable-liba52-internal) _liba52_internal=yes ;;
973 --disable-liba52-internal) _liba52_internal=no ;;
974 --enable-liba52) _liba52=yes ;;
975 --disable-liba52) _liba52=no ;;
976 --enable-libdca) _libdca=yes ;;
977 --disable-libdca) _libdca=no ;;
978 --enable-libmpeg2) _libmpeg2=yes ;;
979 --disable-libmpeg2) _libmpeg2=no ;;
980 --enable-musepack) _musepack=yes ;;
981 --disable-musepack) _musepack=no ;;
982 --enable-faad) _faad=yes ;;
983 --disable-faad) _faad=no ;;
984 --enable-faad-internal) _faad_internal=yes ;;
985 --disable-faad-internal) _faad_internal=no ;;
986 --enable-faad-fixed) _faad_fixed=yes ;;
987 --disable-faad-fixed) _faad_fixed=no ;;
988 --enable-faac) _faac=yes ;;
989 --disable-faac) _faac=no ;;
990 --enable-ladspa) _ladspa=yes ;;
991 --disable-ladspa) _ladspa=no ;;
992 --enable-libbs2b) _libbs2b=yes ;;
993 --disable-libbs2b) _libbs2b=no ;;
994 --enable-xmms) _xmms=yes ;;
995 --disable-xmms) _xmms=no ;;
996 --enable-vcd) _vcd=yes ;;
997 --disable-vcd) _vcd=no ;;
998 --enable-dvdread) _dvdread=yes ;;
999 --disable-dvdread) _dvdread=no ;;
1000 --enable-dvdread-internal) _dvdread_internal=yes ;;
1001 --disable-dvdread-internal) _dvdread_internal=no ;;
1002 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1003 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1004 --enable-dvdnav) _dvdnav=yes ;;
1005 --disable-dvdnav) _dvdnav=no ;;
1006 --enable-xanim) _xanim=yes ;;
1007 --disable-xanim) _xanim=no ;;
1008 --enable-real) _real=yes ;;
1009 --disable-real) _real=no ;;
1010 --enable-live) _live=yes ;;
1011 --disable-live) _live=no ;;
1012 --enable-nemesi) _nemesi=yes ;;
1013 --disable-nemesi) _nemesi=no ;;
1014 --enable-xinerama) _xinerama=yes ;;
1015 --disable-xinerama) _xinerama=no ;;
1016 --enable-mga) _mga=yes ;;
1017 --disable-mga) _mga=no ;;
1018 --enable-xmga) _xmga=yes ;;
1019 --disable-xmga) _xmga=no ;;
1020 --enable-vm) _vm=yes ;;
1021 --disable-vm) _vm=no ;;
1022 --enable-xf86keysym) _xf86keysym=yes ;;
1023 --disable-xf86keysym) _xf86keysym=no ;;
1024 --enable-mlib) _mlib=yes ;;
1025 --disable-mlib) _mlib=no ;;
1026 --enable-sunaudio) _sunaudio=yes ;;
1027 --disable-sunaudio) _sunaudio=no ;;
1028 --enable-sgiaudio) _sgiaudio=yes ;;
1029 --disable-sgiaudio) _sgiaudio=no ;;
1030 --enable-alsa) _alsa=yes ;;
1031 --disable-alsa) _alsa=no ;;
1032 --enable-tv) _tv=yes ;;
1033 --disable-tv) _tv=no ;;
1034 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1035 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1036 --enable-tv-v4l1) _tv_v4l1=yes ;;
1037 --disable-tv-v4l1) _tv_v4l1=no ;;
1038 --enable-tv-v4l2) _tv_v4l2=yes ;;
1039 --disable-tv-v4l2) _tv_v4l2=no ;;
1040 --enable-tv-dshow) _tv_dshow=yes ;;
1041 --disable-tv-dshow) _tv_dshow=no ;;
1042 --enable-radio) _radio=yes ;;
1043 --enable-radio-capture) _radio_capture=yes ;;
1044 --disable-radio-capture) _radio_capture=no ;;
1045 --disable-radio) _radio=no ;;
1046 --enable-radio-v4l) _radio_v4l=yes ;;
1047 --disable-radio-v4l) _radio_v4l=no ;;
1048 --enable-radio-v4l2) _radio_v4l2=yes ;;
1049 --disable-radio-v4l2) _radio_v4l2=no ;;
1050 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1051 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1052 --enable-pvr) _pvr=yes ;;
1053 --disable-pvr) _pvr=no ;;
1054 --enable-fastmemcpy) _fastmemcpy=yes ;;
1055 --disable-fastmemcpy) _fastmemcpy=no ;;
1056 --enable-network) _network=yes ;;
1057 --disable-network) _network=no ;;
1058 --enable-winsock2_h) _winsock2_h=yes ;;
1059 --disable-winsock2_h) _winsock2_h=no ;;
1060 --enable-smb) _smb=yes ;;
1061 --disable-smb) _smb=no ;;
1062 --enable-vidix) _vidix=yes ;;
1063 --disable-vidix) _vidix=no ;;
1064 --with-vidix-drivers=*)
1065 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1067 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1068 --enable-dhahelper) _dhahelper=yes ;;
1069 --disable-dhahelper) _dhahelper=no ;;
1070 --enable-svgalib_helper) _svgalib_helper=yes ;;
1071 --disable-svgalib_helper) _svgalib_helper=no ;;
1072 --enable-joystick) _joystick=yes ;;
1073 --disable-joystick) _joystick=no ;;
1074 --enable-xvid) _xvid=yes ;;
1075 --disable-xvid) _xvid=no ;;
1076 --enable-x264) _x264=yes ;;
1077 --disable-x264) _x264=no ;;
1078 --enable-libnut) _libnut=yes ;;
1079 --disable-libnut) _libnut=no ;;
1080 --enable-libavutil) _libavutil=yes ;;
1081 --disable-libavutil) _libavutil=no ;;
1082 --enable-libavcodec) _libavcodec=yes ;;
1083 --disable-libavcodec) _libavcodec=no ;;
1084 --enable-libavformat) _libavformat=yes ;;
1085 --disable-libavformat) _libavformat=no ;;
1086 --enable-libpostproc) _libpostproc=yes ;;
1087 --disable-libpostproc) _libpostproc=no ;;
1088 --enable-libswscale) _libswscale=yes ;;
1089 --disable-libswscale) _libswscale=no ;;
1090 --ffmpeg-source-dir=*)
1091 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1093 --enable-lirc) _lirc=yes ;;
1094 --disable-lirc) _lirc=no ;;
1095 --enable-lircc) _lircc=yes ;;
1096 --disable-lircc) _lircc=no ;;
1097 --enable-apple-remote) _apple_remote=yes ;;
1098 --disable-apple-remote) _apple_remote=no ;;
1099 --enable-apple-ir) _apple_ir=yes ;;
1100 --disable-apple-ir) _apple_ir=no ;;
1101 --enable-gui) _gui=yes ;;
1102 --disable-gui) _gui=no ;;
1103 --enable-gtk1) _gtk1=yes ;;
1104 --disable-gtk1) _gtk1=no ;;
1105 --enable-termcap) _termcap=yes ;;
1106 --disable-termcap) _termcap=no ;;
1107 --enable-termios) _termios=yes ;;
1108 --disable-termios) _termios=no ;;
1109 --enable-3dfx) _3dfx=yes ;;
1110 --disable-3dfx) _3dfx=no ;;
1111 --enable-s3fb) _s3fb=yes ;;
1112 --disable-s3fb) _s3fb=no ;;
1113 --enable-wii) _wii=yes ;;
1114 --disable-wii) _wii=no ;;
1115 --enable-tdfxfb) _tdfxfb=yes ;;
1116 --disable-tdfxfb) _tdfxfb=no ;;
1117 --disable-tdfxvid) _tdfxvid=no ;;
1118 --enable-tdfxvid) _tdfxvid=yes ;;
1119 --disable-xvr100) _xvr100=no ;;
1120 --enable-xvr100) _xvr100=yes ;;
1121 --disable-tga) _tga=no ;;
1122 --enable-tga) _tga=yes ;;
1123 --enable-directfb) _directfb=yes ;;
1124 --disable-directfb) _directfb=no ;;
1125 --enable-zr) _zr=yes ;;
1126 --disable-zr) _zr=no ;;
1127 --enable-bl) _bl=yes ;;
1128 --disable-bl) _bl=no ;;
1129 --enable-mtrr) _mtrr=yes ;;
1130 --disable-mtrr) _mtrr=no ;;
1131 --enable-largefiles) _largefiles=yes ;;
1132 --disable-largefiles) _largefiles=no ;;
1133 --enable-shm) _shm=yes ;;
1134 --disable-shm) _shm=no ;;
1135 --enable-select) _select=yes ;;
1136 --disable-select) _select=no ;;
1137 --enable-linux-devfs) _linux_devfs=yes ;;
1138 --disable-linux-devfs) _linux_devfs=no ;;
1139 --enable-cdparanoia) _cdparanoia=yes ;;
1140 --disable-cdparanoia) _cdparanoia=no ;;
1141 --enable-cddb) _cddb=yes ;;
1142 --disable-cddb) _cddb=no ;;
1143 --enable-big-endian) _big_endian=yes ;;
1144 --disable-big-endian) _big_endian=no ;;
1145 --enable-bitmap-font) _bitmap_font=yes ;;
1146 --disable-bitmap-font) _bitmap_font=no ;;
1147 --enable-freetype) _freetype=yes ;;
1148 --disable-freetype) _freetype=no ;;
1149 --enable-fontconfig) _fontconfig=yes ;;
1150 --disable-fontconfig) _fontconfig=no ;;
1151 --enable-unrarexec) _unrar_exec=yes ;;
1152 --disable-unrarexec) _unrar_exec=no ;;
1153 --enable-ftp) _ftp=yes ;;
1154 --disable-ftp) _ftp=no ;;
1155 --enable-vstream) _vstream=yes ;;
1156 --disable-vstream) _vstream=no ;;
1157 --enable-pthreads) _pthreads=yes ;;
1158 --disable-pthreads) _pthreads=no ;;
1159 --enable-w32threads) _w32threads=yes ;;
1160 --disable-w32threads) _w32threads=no ;;
1161 --enable-ass) _ass=yes ;;
1162 --disable-ass) _ass=no ;;
1163 --enable-rpath) _rpath=yes ;;
1164 --disable-rpath) _rpath=no ;;
1166 --enable-fribidi) _fribidi=yes ;;
1167 --disable-fribidi) _fribidi=no ;;
1169 --enable-enca) _enca=yes ;;
1170 --disable-enca) _enca=no ;;
1172 --enable-inet6) _inet6=yes ;;
1173 --disable-inet6) _inet6=no ;;
1175 --enable-gethostbyname2) _gethostbyname2=yes ;;
1176 --disable-gethostbyname2) _gethostbyname2=no ;;
1178 --enable-dga1) _dga1=yes ;;
1179 --disable-dga1) _dga1=no ;;
1180 --enable-dga2) _dga2=yes ;;
1181 --disable-dga2) _dga2=no ;;
1183 --enable-menu) _menu=yes ;;
1184 --disable-menu) _menu=no ;;
1186 --enable-qtx) _qtx=yes ;;
1187 --disable-qtx) _qtx=no ;;
1189 --enable-coreaudio) _coreaudio=yes ;;
1190 --disable-coreaudio) _coreaudio=no ;;
1191 --enable-corevideo) _corevideo=yes ;;
1192 --disable-corevideo) _corevideo=no ;;
1193 --enable-quartz) _quartz=yes ;;
1194 --disable-quartz) _quartz=no ;;
1195 --enable-macosx-finder) _macosx_finder=yes ;;
1196 --disable-macosx-finder) _macosx_finder=no ;;
1197 --enable-macosx-bundle) _macosx_bundle=yes ;;
1198 --disable-macosx-bundle) _macosx_bundle=no ;;
1200 --enable-maemo) _maemo=yes ;;
1201 --disable-maemo) _maemo=no ;;
1203 --enable-sortsub) _sortsub=yes ;;
1204 --disable-sortsub) _sortsub=no ;;
1206 --enable-crash-debug) _crash_debug=yes ;;
1207 --disable-crash-debug) _crash_debug=no ;;
1208 --enable-sighandler) _sighandler=yes ;;
1209 --disable-sighandler) _sighandler=no ;;
1210 --enable-win32dll) _win32dll=yes ;;
1211 --disable-win32dll) _win32dll=no ;;
1213 --enable-sse) _sse=yes ;;
1214 --disable-sse) _sse=no ;;
1215 --enable-sse2) _sse2=yes ;;
1216 --disable-sse2) _sse2=no ;;
1217 --enable-ssse3) _ssse3=yes ;;
1218 --disable-ssse3) _ssse3=no ;;
1219 --enable-mmxext) _mmxext=yes ;;
1220 --disable-mmxext) _mmxext=no ;;
1221 --enable-3dnow) _3dnow=yes ;;
1222 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1223 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1224 --disable-3dnowext) _3dnowext=no ;;
1225 --enable-cmov) _cmov=yes ;;
1226 --disable-cmov) _cmov=no ;;
1227 --enable-fast-cmov) _fast_cmov=yes ;;
1228 --disable-fast-cmov) _fast_cmov=no ;;
1229 --enable-fast-clz) _fast_clz=yes ;;
1230 --disable-fast-clz) _fast_clz=no ;;
1231 --enable-altivec) _altivec=yes ;;
1232 --disable-altivec) _altivec=no ;;
1233 --enable-armv5te) _armv5te=yes ;;
1234 --disable-armv5te) _armv5te=no ;;
1235 --enable-armv6) _armv6=yes ;;
1236 --disable-armv6) _armv6=no ;;
1237 --enable-armv6t2) _armv6t2=yes ;;
1238 --disable-armv6t2) _armv6t2=no ;;
1239 --enable-armvfp) _armvfp=yes ;;
1240 --disable-armvfp) _armvfp=no ;;
1241 --enable-neon) neon=yes ;;
1242 --disable-neon) neon=no ;;
1243 --enable-iwmmxt) _iwmmxt=yes ;;
1244 --disable-iwmmxt) _iwmmxt=no ;;
1245 --enable-mmx) _mmx=yes ;;
1246 --disable-mmx) # 3Dnow! and MMX2 require MMX
1247 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1250 echo "Unknown parameter: $ac_option"
1251 exit 1
1254 esac
1255 done
1257 if test "$_gui" = yes ; then
1258 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1259 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1262 # Atmos: moved this here, to be correct, if --prefix is specified
1263 test -z "$_bindir" && _bindir="$_prefix/bin"
1264 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1265 test -z "$_mandir" && _mandir="$_prefix/share/man"
1266 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1267 test -z "$_libdir" && _libdir="$_prefix/lib"
1268 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1270 # Determine our OS name and CPU architecture
1271 if test -z "$_target" ; then
1272 # OS name
1273 system_name=$(uname -s 2>&1)
1274 case "$system_name" in
1275 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1277 Haiku)
1278 system_name=BeOS
1280 IRIX*)
1281 system_name=IRIX
1283 GNU/kFreeBSD)
1284 system_name=FreeBSD
1286 HP-UX*)
1287 system_name=HP-UX
1289 [cC][yY][gG][wW][iI][nN]*)
1290 system_name=CYGWIN
1292 MINGW32*)
1293 system_name=MINGW32
1295 OS/2*)
1296 system_name=OS/2
1299 system_name="$system_name-UNKNOWN"
1301 esac
1304 # host's CPU/instruction set
1305 host_arch=$(uname -p 2>&1)
1306 case "$host_arch" in
1307 i386|sparc|ppc|alpha|arm|mips|vax)
1309 powerpc) # Darwin returns 'powerpc'
1310 host_arch=ppc
1312 *) # uname -p on Linux returns 'unknown' for the processor type,
1313 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1315 # Maybe uname -m (machine hardware name) returns something we
1316 # recognize.
1318 # x86/x86pc is used by QNX
1319 case "$(uname -m 2>&1)" in
1320 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1321 ia64) host_arch=ia64 ;;
1322 macppc|ppc) host_arch=ppc ;;
1323 ppc64) host_arch=ppc64 ;;
1324 alpha) host_arch=alpha ;;
1325 sparc) host_arch=sparc ;;
1326 sparc64) host_arch=sparc64 ;;
1327 parisc*|hppa*|9000*) host_arch=hppa ;;
1328 arm*|zaurus|cats) host_arch=arm ;;
1329 sh3|sh4|sh4a) host_arch=sh ;;
1330 s390) host_arch=s390 ;;
1331 s390x) host_arch=s390x ;;
1332 *mips*) host_arch=mips ;;
1333 vax) host_arch=vax ;;
1334 xtensa*) host_arch=xtensa ;;
1335 *) host_arch=UNKNOWN ;;
1336 esac
1338 esac
1339 else # if test -z "$_target"
1340 system_name=$(echo $_target | cut -d '-' -f 2)
1341 case "$(echo $system_name | tr A-Z a-z)" in
1342 linux) system_name=Linux ;;
1343 freebsd) system_name=FreeBSD ;;
1344 gnu/kfreebsd) system_name=FreeBSD ;;
1345 netbsd) system_name=NetBSD ;;
1346 bsd/os) system_name=BSD/OS ;;
1347 openbsd) system_name=OpenBSD ;;
1348 dragonfly) system_name=DragonFly ;;
1349 sunos) system_name=SunOS ;;
1350 qnx) system_name=QNX ;;
1351 morphos) system_name=MorphOS ;;
1352 amigaos) system_name=AmigaOS ;;
1353 mingw32*) system_name=MINGW32 ;;
1354 esac
1355 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1356 host_arch=$(echo $_target | cut -d '-' -f 1)
1357 if test $(echo $host_arch) != "x86_64" ; then
1358 host_arch=$(echo $host_arch | tr '_' '-')
1362 extra_cflags="-I. $extra_cflags"
1363 _timer=timer-linux.c
1364 _getch=getch2.c
1365 if freebsd ; then
1366 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1367 extra_cflags="$extra_cflags -I/usr/local/include"
1370 if netbsd || dragonfly ; then
1371 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1372 extra_cflags="$extra_cflags -I/usr/pkg/include"
1375 if darwin; then
1376 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1377 _timer=timer-darwin.c
1380 if aix ; then
1381 extra_ldflags="$extra_ldflags -lC"
1384 if irix ; then
1385 _ranlib='ar -r'
1386 elif linux ; then
1387 _ranlib='true'
1390 if win32 ; then
1391 _exesuf=".exe"
1392 extra_cflags="$extra_cflags -fno-common"
1393 # -lwinmm is always needed for osdep/timer-win2.c
1394 extra_ldflags="$extra_ldflags -lwinmm"
1395 _pe_executable=yes
1396 _timer=timer-win2.c
1397 _priority=yes
1398 def_dos_paths="#define HAVE_DOS_PATHS 1"
1399 def_priority="#define CONFIG_PRIORITY 1"
1402 if mingw32 ; then
1403 _getch=getch2-win.c
1404 _need_shmem=no
1407 if amigaos ; then
1408 _select=no
1409 _sighandler=no
1410 _stream_cache=no
1411 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1412 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1415 if qnx ; then
1416 extra_ldflags="$extra_ldflags -lph"
1419 if os2 ; then
1420 _exesuf=".exe"
1421 _getch=getch2-os2.c
1422 _need_shmem=no
1423 _priority=yes
1424 def_dos_paths="#define HAVE_DOS_PATHS 1"
1425 def_priority="#define CONFIG_PRIORITY 1"
1428 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1429 test "$I" && break
1430 done
1433 TMPLOG="configure.log"
1434 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1435 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1436 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1437 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1438 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1440 rm -f "$TMPLOG"
1441 echo configuration: $_configuration > "$TMPLOG"
1442 echo >> "$TMPLOG"
1445 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1446 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1450 # Checking CC version...
1451 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1452 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1453 echocheck "$_cc version"
1454 cc_vendor=intel
1455 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1456 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1457 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1458 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1459 # TODO verify older icc/ecc compatibility
1460 case $cc_version in
1462 cc_version="v. ?.??, bad"
1463 cc_fail=yes
1465 10.1|11.0|11.1)
1466 cc_version="$cc_version, ok"
1469 cc_version="$cc_version, bad"
1470 cc_fail=yes
1472 esac
1473 echores "$cc_version"
1474 else
1475 for _cc in "$_cc" gcc cc ; do
1476 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1477 if test "$cc_name_tmp" = "gcc"; then
1478 cc_name=$cc_name_tmp
1479 echocheck "$_cc version"
1480 cc_vendor=gnu
1481 cc_version=$($_cc -dumpversion 2>&1)
1482 case $cc_version in
1483 2.96*)
1484 cc_fail=yes
1487 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1488 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1489 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1491 esac
1492 echores "$cc_version"
1493 break
1495 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1496 if test "$cc_name_tmp" = "Sun C"; then
1497 echocheck "$_cc version"
1498 cc_vendor=sun
1499 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1500 _res_comment="experimental support only"
1501 echores "Sun C $cc_version"
1502 break
1504 done
1505 fi # icc
1506 test "$cc_fail" = yes && die "unsupported compiler version"
1508 if test -z "$_target" && x86 ; then
1509 cat > $TMPC << EOF
1510 int main(void) {
1511 int test[(int)sizeof(char *)-7];
1512 return 0;
1515 cc_check && host_arch=x86_64 || host_arch=i386
1518 echo "Detected operating system: $system_name"
1519 echo "Detected host architecture: $host_arch"
1521 echocheck "host cc"
1522 test "$_host_cc" || _host_cc=$_cc
1523 echores $_host_cc
1525 echocheck "cross compilation"
1526 if test $_cross_compile = auto ; then
1527 cat > $TMPC << EOF
1528 int main(void) { return 0; }
1530 _cross_compile=yes
1531 cc_check && "$TMPEXE" && _cross_compile=no
1533 echores $_cross_compile
1535 if test $_cross_compile = yes; then
1536 tmp_run() {
1537 return 0
1541 # ---
1543 # now that we know what compiler should be used for compilation, try to find
1544 # out which assembler is used by the $_cc compiler
1545 if test "$_as" = auto ; then
1546 _as=$($_cc -print-prog-name=as)
1547 test -z "$_as" && _as=as
1550 if test "$_nm" = auto ; then
1551 _nm=$($_cc -print-prog-name=nm)
1552 test -z "$_nm" && _nm=nm
1555 # XXX: this should be ok..
1556 _cpuinfo="echo"
1558 if test "$_runtime_cpudetection" = no ; then
1560 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1561 # FIXME: Remove the cygwin check once AMD CPUs are supported
1562 if test -r /proc/cpuinfo && ! cygwin; then
1563 # Linux with /proc mounted, extract CPU information from it
1564 _cpuinfo="cat /proc/cpuinfo"
1565 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1566 # FreeBSD with Linux emulation /proc mounted,
1567 # extract CPU information from it
1568 # Don't use it on x86 though, it never reports 3Dnow
1569 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1570 elif darwin && ! x86 ; then
1571 # use hostinfo on Darwin
1572 _cpuinfo="hostinfo"
1573 elif aix; then
1574 # use 'lsattr' on AIX
1575 _cpuinfo="lsattr -E -l proc0 -a type"
1576 elif x86; then
1577 # all other OSes try to extract CPU information from a small helper
1578 # program cpuinfo instead
1579 $_cc -o cpuinfo$_exesuf cpuinfo.c
1580 _cpuinfo="./cpuinfo$_exesuf"
1583 if x86 ; then
1584 # gather more CPU information
1585 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1586 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1587 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1588 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1589 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1591 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1593 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1594 -e s/xmm/sse/ -e s/kni/sse/)
1596 for ext in $pparam ; do
1597 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1598 done
1600 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1601 test $_sse = kernel_check && _mmxext=kernel_check
1603 echocheck "CPU vendor"
1604 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1606 echocheck "CPU type"
1607 echores "$pname"
1610 fi # test "$_runtime_cpudetection" = no
1612 if x86 && test "$_runtime_cpudetection" = no ; then
1613 extcheck() {
1614 if test "$1" = kernel_check ; then
1615 echocheck "kernel support of $2"
1616 cat > $TMPC <<EOF
1617 #include <stdlib.h>
1618 #include <signal.h>
1619 void catch() { exit(1); }
1620 int main(void) {
1621 signal(SIGILL, catch);
1622 __asm__ volatile ("$3":::"memory"); return 0;
1626 if cc_check && tmp_run ; then
1627 eval _$2=yes
1628 echores "yes"
1629 _optimizing="$_optimizing $2"
1630 return 0
1631 else
1632 eval _$2=no
1633 echores "failed"
1634 echo "It seems that your kernel does not correctly support $2."
1635 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1636 return 1
1639 return 0
1642 extcheck $_mmx "mmx" "emms"
1643 extcheck $_mmxext "mmxext" "sfence"
1644 extcheck $_3dnow "3dnow" "femms"
1645 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1646 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1647 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1648 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1649 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1651 echocheck "mtrr support"
1652 if test "$_mtrr" = kernel_check ; then
1653 _mtrr="yes"
1654 _optimizing="$_optimizing mtrr"
1656 echores "$_mtrr"
1658 if test "$_gcc3_ext" != ""; then
1659 # if we had to disable sse/sse2 because the active kernel does not
1660 # support this instruction set extension, we also have to tell
1661 # gcc3 to not generate sse/sse2 instructions for normal C code
1662 cat > $TMPC << EOF
1663 int main(void) { return 0; }
1665 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1671 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1672 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1673 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1674 subarch_all='X86_32 X86_64 PPC64'
1675 case "$host_arch" in
1676 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1677 arch='x86'
1678 subarch='x86_32'
1679 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1680 iproc=486
1681 proc=i486
1684 if test "$_runtime_cpudetection" = no ; then
1685 case "$pvendor" in
1686 AuthenticAMD)
1687 case "$pfamily" in
1688 3) proc=i386 iproc=386 ;;
1689 4) proc=i486 iproc=486 ;;
1690 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1691 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1692 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1693 proc=k6-3
1694 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1695 proc=geode
1696 elif test "$pmodel" -ge 8; then
1697 proc=k6-2
1698 elif test "$pmodel" -ge 6; then
1699 proc=k6
1700 else
1701 proc=i586
1704 6) iproc=686
1705 # It's a bit difficult to determine the correct type of Family 6
1706 # AMD CPUs just from their signature. Instead, we check directly
1707 # whether it supports SSE.
1708 if test "$_sse" = yes; then
1709 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1710 proc=athlon-xp
1711 else
1712 # Again, gcc treats athlon and athlon-tbird similarly.
1713 proc=athlon
1716 15) iproc=686
1717 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1718 # caught and remedied in the optimization tests below.
1719 proc=k8
1722 *) proc=amdfam10 iproc=686
1723 test $_fast_clz = "auto" && _fast_clz=yes
1725 esac
1727 GenuineIntel)
1728 case "$pfamily" in
1729 3) proc=i386 iproc=386 ;;
1730 4) proc=i486 iproc=486 ;;
1731 5) iproc=586
1732 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1733 proc=pentium-mmx # 4 is desktop, 8 is mobile
1734 else
1735 proc=i586
1738 6) iproc=686
1739 if test "$pmodel" -ge 15; then
1740 proc=core2
1741 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1742 proc=pentium-m
1743 elif test "$pmodel" -ge 7; then
1744 proc=pentium3
1745 elif test "$pmodel" -ge 3; then
1746 proc=pentium2
1747 else
1748 proc=i686
1750 test $_fast_clz = "auto" && _fast_clz=yes
1752 15) iproc=686
1753 # A nocona in 32-bit mode has no more capabilities than a prescott.
1754 if test "$pmodel" -ge 3; then
1755 proc=prescott
1756 else
1757 proc=pentium4
1758 test $_fast_clz = "auto" && _fast_clz=yes
1760 test $_fast_cmov = "auto" && _fast_cmov=no
1762 *) proc=prescott iproc=686 ;;
1763 esac
1765 CentaurHauls)
1766 case "$pfamily" in
1767 5) iproc=586
1768 if test "$pmodel" -ge 8; then
1769 proc=winchip2
1770 elif test "$pmodel" -ge 4; then
1771 proc=winchip-c6
1772 else
1773 proc=i586
1776 6) iproc=686
1777 if test "$pmodel" -ge 9; then
1778 proc=c3-2
1779 else
1780 proc=c3
1781 iproc=586
1784 *) proc=i686 iproc=i686 ;;
1785 esac
1787 unknown)
1788 case "$pfamily" in
1789 3) proc=i386 iproc=386 ;;
1790 4) proc=i486 iproc=486 ;;
1791 *) proc=i586 iproc=586 ;;
1792 esac
1795 proc=i586 iproc=586 ;;
1796 esac
1797 test $_fast_clz = "auto" && _fast_clz=no
1798 fi # test "$_runtime_cpudetection" = no
1801 # check that gcc supports our CPU, if not, fall back to earlier ones
1802 # LGB: check -mcpu and -march swithing step by step with enabling
1803 # to fall back till 386.
1805 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1807 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1808 cpuopt=-mtune
1809 else
1810 cpuopt=-mcpu
1813 echocheck "GCC & CPU optimization abilities"
1814 cat > $TMPC << EOF
1815 int main(void) { return 0; }
1817 if test "$_runtime_cpudetection" = no ; then
1818 if test $cc_vendor != "intel" ; then
1819 cc_check -march=native && proc=native
1821 if test "$proc" = "k8"; then
1822 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1824 if test "$proc" = "athlon-xp"; then
1825 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1827 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1828 cc_check -march=$proc $cpuopt=$proc || proc=k6
1830 if test "$proc" = "k6" || test "$proc" = "c3"; then
1831 if ! cc_check -march=$proc $cpuopt=$proc; then
1832 if cc_check -march=i586 $cpuopt=i686; then
1833 proc=i586-i686
1834 else
1835 proc=i586
1839 if test "$proc" = "prescott" ; then
1840 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1842 if test "$proc" = "core2" ; then
1843 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1845 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then
1846 cc_check -march=$proc $cpuopt=$proc || proc=i686
1848 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1849 cc_check -march=$proc $cpuopt=$proc || proc=i586
1851 if test "$proc" = "i586"; then
1852 cc_check -march=$proc $cpuopt=$proc || proc=i486
1854 if test "$proc" = "i486" ; then
1855 cc_check -march=$proc $cpuopt=$proc || proc=i386
1857 if test "$proc" = "i386" ; then
1858 cc_check -march=$proc $cpuopt=$proc || proc=error
1860 if test "$proc" = "error" ; then
1861 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1862 _mcpu=""
1863 _march=""
1864 _optimizing=""
1865 elif test "$proc" = "i586-i686"; then
1866 _march="-march=i586"
1867 _mcpu="$cpuopt=i686"
1868 _optimizing="$proc"
1869 else
1870 _march="-march=$proc"
1871 _mcpu="$cpuopt=$proc"
1872 _optimizing="$proc"
1874 else # if test "$_runtime_cpudetection" = no
1875 _mcpu="$cpuopt=generic"
1876 # at least i486 required, for bswap instruction
1877 _march="-march=i486"
1878 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1879 cc_check $_mcpu || _mcpu=""
1880 cc_check $_march $_mcpu || _march=""
1883 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1884 ## autodetected mcpu/march parameters
1885 if test "$_target" ; then
1886 # TODO: it may be a good idea to check GCC and fall back in all cases
1887 if test "$host_arch" = "i586-i686"; then
1888 _march="-march=i586"
1889 _mcpu="$cpuopt=i686"
1890 else
1891 _march="-march=$host_arch"
1892 _mcpu="$cpuopt=$host_arch"
1895 proc="$host_arch"
1897 case "$proc" in
1898 i386) iproc=386 ;;
1899 i486) iproc=486 ;;
1900 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1901 i686|athlon*|pentium*) iproc=686 ;;
1902 *) iproc=586 ;;
1903 esac
1906 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1907 _fast_cmov="yes"
1908 else
1909 _fast_cmov="no"
1911 test $_fast_clz = "auto" && _fast_clz=yes
1913 echores "$proc"
1916 ia64)
1917 arch='ia64'
1918 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1919 iproc='ia64'
1922 x86_64|amd64)
1923 arch='x86'
1924 subarch='x86_64'
1925 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1926 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1927 iproc='x86_64'
1929 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1930 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1931 cpuopt=-mtune
1932 else
1933 cpuopt=-mcpu
1935 if test "$_runtime_cpudetection" = no ; then
1936 case "$pvendor" in
1937 AuthenticAMD)
1938 case "$pfamily" in
1939 15) proc=k8
1940 test $_fast_clz = "auto" && _fast_clz=no
1942 *) proc=amdfam10;;
1943 esac
1945 GenuineIntel)
1946 case "$pfamily" in
1947 6) proc=core2;;
1949 # 64-bit prescotts exist, but as far as GCC is concerned they
1950 # have the same capabilities as a nocona.
1951 proc=nocona
1952 test $_fast_cmov = "auto" && _fast_cmov=no
1953 test $_fast_clz = "auto" && _fast_clz=no
1955 esac
1958 proc=error;;
1959 esac
1960 fi # test "$_runtime_cpudetection" = no
1962 echocheck "GCC & CPU optimization abilities"
1963 cat > $TMPC << EOF
1964 int main(void) { return 0; }
1966 # This is a stripped-down version of the i386 fallback.
1967 if test "$_runtime_cpudetection" = no ; then
1968 if test $cc_vendor != "intel" ; then
1969 cc_check -march=native && proc=native
1971 # --- AMD processors ---
1972 if test "$proc" = "k8"; then
1973 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1975 # This will fail if gcc version < 3.3, which is ok because earlier
1976 # versions don't really support 64-bit on amd64.
1977 # Is this a valid assumption? -Corey
1978 if test "$proc" = "athlon-xp"; then
1979 cc_check -march=$proc $cpuopt=$proc || proc=error
1981 # --- Intel processors ---
1982 if test "$proc" = "core2"; then
1983 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
1985 if test "$proc" = "x86-64"; then
1986 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1988 if test "$proc" = "nocona"; then
1989 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1991 if test "$proc" = "pentium4"; then
1992 cc_check -march=$proc $cpuopt=$proc || proc=error
1995 _march="-march=$proc"
1996 _mcpu="$cpuopt=$proc"
1997 if test "$proc" = "error" ; then
1998 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1999 _mcpu=""
2000 _march=""
2002 else # if test "$_runtime_cpudetection" = no
2003 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2004 _march="-march=x86-64"
2005 _mcpu="$cpuopt=generic"
2006 cc_check $_mcpu || _mcpu="x86-64"
2007 cc_check $_mcpu || _mcpu=""
2008 cc_check $_march $_mcpu || _march=""
2011 _optimizing="$proc"
2012 test $_fast_cmov = "auto" && _fast_cmov=yes
2013 test $_fast_clz = "auto" && _fast_clz=yes
2015 echores "$proc"
2018 sparc|sparc64)
2019 arch='sparc'
2020 iproc='sparc'
2021 if test "$host_arch" = "sparc64" ; then
2022 _vis='yes'
2023 proc='ultrasparc'
2024 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2025 elif sunos ; then
2026 echocheck "CPU type"
2027 karch=$(uname -m)
2028 case "$(echo $karch)" in
2029 sun4) proc=v7 ;;
2030 sun4c) proc=v7 ;;
2031 sun4d) proc=v8 ;;
2032 sun4m) proc=v8 ;;
2033 sun4u) proc=ultrasparc _vis='yes' ;;
2034 sun4v) proc=v9 ;;
2035 *) proc=v8 ;;
2036 esac
2037 echores "$proc"
2038 else
2039 proc=v8
2041 _mcpu="-mcpu=$proc"
2042 _optimizing="$proc"
2045 arm*)
2046 arch='arm'
2047 iproc='arm'
2050 avr32)
2051 arch='avr32'
2052 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2053 iproc='avr32'
2054 test $_fast_clz = "auto" && _fast_clz=yes
2057 sh|sh4)
2058 arch='sh4'
2059 iproc='sh4'
2062 ppc|ppc64|powerpc|powerpc64)
2063 arch='ppc'
2064 def_dcbzl='#define HAVE_DCBZL 0'
2065 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2066 iproc='ppc'
2068 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2069 subarch='ppc64'
2070 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2072 echocheck "CPU type"
2073 case $system_name in
2074 Linux)
2075 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2076 if test -n "$($_cpuinfo | grep altivec)"; then
2077 test $_altivec = auto && _altivec=yes
2080 Darwin)
2081 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2082 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2083 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2084 test $_altivec = auto && _altivec=yes
2087 NetBSD)
2088 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2089 case $cc_version in
2090 2*|3.0*|3.1*|3.2*|3.3*)
2093 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2094 test $_altivec = auto && _altivec=yes
2097 esac
2099 AIX)
2100 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2102 esac
2103 if test "$_altivec" = yes; then
2104 echores "$proc altivec"
2105 else
2106 _altivec=no
2107 echores "$proc"
2110 echocheck "GCC & CPU optimization abilities"
2112 if test -n "$proc"; then
2113 case "$proc" in
2114 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2115 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2116 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2117 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2118 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2119 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2120 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2121 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2122 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2123 *) ;;
2124 esac
2125 # gcc 3.1(.1) and up supports 7400 and 7450
2126 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2127 case "$proc" in
2128 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2129 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2130 *) ;;
2131 esac
2133 # gcc 3.2 and up supports 970
2134 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2135 case "$proc" in
2136 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2137 def_dcbzl='#define HAVE_DCBZL 1' ;;
2138 *) ;;
2139 esac
2141 # gcc 3.3 and up supports POWER4
2142 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2143 case "$proc" in
2144 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2145 *) ;;
2146 esac
2148 # gcc 3.4 and up supports 440*
2149 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2150 case "$proc" in
2151 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2152 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2153 *) ;;
2154 esac
2156 # gcc 4.0 and up supports POWER5
2157 if test "$_cc_major" -ge "4"; then
2158 case "$proc" in
2159 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2160 *) ;;
2161 esac
2165 if test -n "$_mcpu"; then
2166 _optimizing=$(echo $_mcpu | cut -c 8-)
2167 echores "$_optimizing"
2168 else
2169 echores "none"
2172 test $_fast_clz = "auto" && _fast_clz=yes
2176 alpha*)
2177 arch='alpha'
2178 iproc='alpha'
2179 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2181 echocheck "CPU type"
2182 cat > $TMPC << EOF
2183 int main(void) {
2184 unsigned long ver, mask;
2185 __asm__ ("implver %0" : "=r" (ver));
2186 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2187 printf("%ld-%x\n", ver, ~mask);
2188 return 0;
2191 $_cc -o "$TMPEXE" "$TMPC"
2192 case $("$TMPEXE") in
2194 0-0) proc="ev4"; _mvi="0";;
2195 1-0) proc="ev5"; _mvi="0";;
2196 1-1) proc="ev56"; _mvi="0";;
2197 1-101) proc="pca56"; _mvi="1";;
2198 2-303) proc="ev6"; _mvi="1";;
2199 2-307) proc="ev67"; _mvi="1";;
2200 2-1307) proc="ev68"; _mvi="1";;
2201 esac
2202 echores "$proc"
2204 echocheck "GCC & CPU optimization abilities"
2205 if test "$proc" = "ev68" ; then
2206 cc_check -mcpu=$proc || proc=ev67
2208 if test "$proc" = "ev67" ; then
2209 cc_check -mcpu=$proc || proc=ev6
2211 _mcpu="-mcpu=$proc"
2212 echores "$proc"
2214 test $_fast_clz = "auto" && _fast_clz=yes
2216 _optimizing="$proc"
2219 mips)
2220 arch='mips'
2221 iproc='mips'
2223 if irix ; then
2224 echocheck "CPU type"
2225 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2226 case "$(echo $proc)" in
2227 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2228 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2229 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2230 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2231 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2232 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2233 esac
2234 # gcc < 3.x does not support -mtune.
2235 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2236 _mcpu=''
2238 echores "$proc"
2241 test $_fast_clz = "auto" && _fast_clz=yes
2245 hppa)
2246 arch='pa_risc'
2247 iproc='PA-RISC'
2250 s390)
2251 arch='s390'
2252 iproc='390'
2255 s390x)
2256 arch='s390x'
2257 iproc='390x'
2260 vax)
2261 arch='vax'
2262 iproc='vax'
2265 xtensa)
2266 arch='xtensa'
2267 iproc='xtensa'
2270 generic)
2271 arch='generic'
2275 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2276 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2277 die "unsupported architecture $host_arch"
2279 esac # case "$host_arch" in
2281 if test "$_runtime_cpudetection" = yes ; then
2282 if x86 ; then
2283 test "$_cmov" != no && _cmov=yes
2284 x86_32 && _cmov=no
2285 test "$_mmx" != no && _mmx=yes
2286 test "$_3dnow" != no && _3dnow=yes
2287 test "$_3dnowext" != no && _3dnowext=yes
2288 test "$_mmxext" != no && _mmxext=yes
2289 test "$_sse" != no && _sse=yes
2290 test "$_sse2" != no && _sse2=yes
2291 test "$_ssse3" != no && _ssse3=yes
2292 test "$_mtrr" != no && _mtrr=yes
2294 if ppc; then
2295 _altivec=yes
2300 # endian testing
2301 echocheck "byte order"
2302 if test "$_big_endian" = auto ; then
2303 cat > $TMPC <<EOF
2304 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2305 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2306 int main(void) { return (int)ascii_name; }
2308 if cc_check ; then
2309 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2310 _big_endian=yes
2311 else
2312 _big_endian=no
2314 else
2315 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2318 if test "$_big_endian" = yes ; then
2319 _byte_order='big-endian'
2320 def_words_endian='#define WORDS_BIGENDIAN 1'
2321 def_bigendian='#define HAVE_BIGENDIAN 1'
2322 else
2323 _byte_order='little-endian'
2324 def_words_endian='#undef WORDS_BIGENDIAN'
2325 def_bigendian='#define HAVE_BIGENDIAN 0'
2327 echores "$_byte_order"
2330 echocheck "extern symbol prefix"
2331 cat > $TMPC << EOF
2332 int ff_extern;
2334 cc_check -c || die "Symbol mangling check failed."
2335 sym=$($_nm -P -g $TMPEXE)
2336 extern_prefix=${sym%%ff_extern*}
2337 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2338 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2339 echores $extern_prefix
2342 echocheck "assembler support of -pipe option"
2343 cat > $TMPC << EOF
2344 int main(void) { return 0; }
2346 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2347 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2350 echocheck "compiler support of named assembler arguments"
2351 _named_asm_args=yes
2352 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2353 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2354 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2355 _named_asm_args=no
2356 def_named_asm_args="#undef NAMED_ASM_ARGS"
2358 echores $_named_asm_args
2361 if darwin && test "$cc_vendor" = "gnu" ; then
2362 echocheck "GCC support of -mstackrealign"
2363 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2364 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2365 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2366 # wrong code with this flag, but this can be worked around by adding
2367 # -fno-unit-at-a-time as described in the blog post at
2368 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2369 cat > $TMPC << EOF
2370 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2371 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2373 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2374 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2375 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2376 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2377 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2380 # Checking for CFLAGS
2381 _install_strip="-s"
2382 if test "$_profile" != "" || test "$_debug" != "" ; then
2383 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2384 _install_strip=
2385 elif test -z "$CFLAGS" ; then
2386 if test "$cc_vendor" = "intel" ; then
2387 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2388 elif test "$cc_vendor" = "sun" ; then
2389 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2390 elif test "$cc_vendor" != "gnu" ; then
2391 CFLAGS="-O2 $_march $_mcpu $_pipe"
2392 else
2393 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2394 extra_ldflags="$extra_ldflags -ffast-math"
2396 else
2397 _warn_CFLAGS=yes
2400 cat > $TMPC << EOF
2401 int main(void) { return 0; }
2403 if test "$cc_vendor" = "gnu" ; then
2404 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2405 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2406 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2407 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2408 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2409 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2410 else
2411 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2414 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2415 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2418 if test -n "$LDFLAGS" ; then
2419 extra_ldflags="$extra_ldflags $LDFLAGS"
2420 _warn_CFLAGS=yes
2421 elif test "$cc_vendor" = "intel" ; then
2422 extra_ldflags="$extra_ldflags -i-static"
2424 if test -n "$CPPFLAGS" ; then
2425 extra_cflags="$extra_cflags $CPPFLAGS"
2426 _warn_CFLAGS=yes
2431 if x86_32 ; then
2432 # Checking assembler (_as) compatibility...
2433 # Added workaround for older as that reads from stdin by default - atmos
2434 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2435 echocheck "assembler ($_as $as_version)"
2437 _pref_as_version='2.9.1'
2438 echo 'nop' > $TMPS
2439 if test "$_mmx" = yes ; then
2440 echo 'emms' >> $TMPS
2442 if test "$_3dnow" = yes ; then
2443 _pref_as_version='2.10.1'
2444 echo 'femms' >> $TMPS
2446 if test "$_3dnowext" = yes ; then
2447 _pref_as_version='2.10.1'
2448 echo 'pswapd %mm0, %mm0' >> $TMPS
2450 if test "$_mmxext" = yes ; then
2451 _pref_as_version='2.10.1'
2452 echo 'movntq %mm0, (%eax)' >> $TMPS
2454 if test "$_sse" = yes ; then
2455 _pref_as_version='2.10.1'
2456 echo 'xorps %xmm0, %xmm0' >> $TMPS
2458 #if test "$_sse2" = yes ; then
2459 # _pref_as_version='2.11'
2460 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2462 if test "$_cmov" = yes ; then
2463 _pref_as_version='2.10.1'
2464 echo 'cmovb %eax, %ebx' >> $TMPS
2466 if test "$_ssse3" = yes ; then
2467 _pref_as_version='2.16.92'
2468 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2470 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2472 if test "$as_verc_fail" != yes ; then
2473 echores "ok"
2474 else
2475 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2476 echores "failed"
2477 die "obsolete binutils version"
2480 fi #if x86_32
2482 echocheck ".align is a power of two"
2483 if test "$_asmalign_pot" = auto ; then
2484 _asmalign_pot=no
2485 cat > $TMPC << EOF
2486 int main(void) { __asm__ (".align 3"); return 0; }
2488 cc_check && _asmalign_pot=yes
2490 if test "$_asmalign_pot" = "yes" ; then
2491 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2492 else
2493 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2495 echores $_asmalign_pot
2497 if x86 ; then
2498 echocheck "10 assembler operands"
2499 ten_operands=no
2500 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2501 cat > $TMPC << EOF
2502 int main(void) {
2503 int x=0;
2504 __asm__ volatile(
2506 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2508 return 0;
2511 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2512 echores $ten_operands
2514 echocheck "ebx availability"
2515 ebx_available=no
2516 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2517 cat > $TMPC << EOF
2518 int main(void) {
2519 int x;
2520 __asm__ volatile(
2521 "xor %0, %0"
2522 :"=b"(x)
2523 // just adding ebx to clobber list seems unreliable with some
2524 // compilers, e.g. Haiku's gcc 2.95
2526 // and the above check does not work for OSX 64 bit...
2527 __asm__ volatile("":::"%ebx");
2528 return 0;
2531 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2532 echores $ebx_available
2534 echocheck "PIC"
2535 pic=no
2536 cat > $TMPC << EOF
2537 int main(void) {
2538 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2539 #error PIC not enabled
2540 #endif
2541 return 0;
2544 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2545 echores $pic
2547 echocheck "yasm"
2548 if test -z "$YASMFLAGS" ; then
2549 if darwin ; then
2550 x86_64 && objformat="macho64" || objformat="macho"
2551 elif win32 ; then
2552 objformat="win32"
2553 else
2554 objformat="elf"
2556 # currently tested for Linux x86, x86_64
2557 YASMFLAGS="-f $objformat"
2558 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2559 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2560 case "$objformat" in
2561 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2562 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2563 esac
2564 else
2565 _warn_CFLAGS=yes
2568 echo "pabsw xmm0, xmm0" > $TMPS
2569 yasm_check || _yasm=""
2570 if test $_yasm ; then
2571 def_yasm='#define HAVE_YASM 1'
2572 have_yasm="yes"
2573 echores "$_yasm"
2574 else
2575 def_yasm='#define HAVE_YASM 0'
2576 have_yasm="no"
2577 echores "no"
2580 echocheck "bswap"
2581 def_bswap='#define HAVE_BSWAP 0'
2582 echo 'bswap %eax' > $TMPS
2583 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2584 echores "$bswap"
2585 fi #if x86
2588 #FIXME: This should happen before the check for CFLAGS..
2589 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2590 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2592 # check if AltiVec is supported by the compiler, and how to enable it
2593 echocheck "GCC AltiVec flags"
2594 cat > $TMPC << EOF
2595 int main(void) { return 0; }
2597 if $(cc_check -maltivec -mabi=altivec) ; then
2598 _altivec_gcc_flags="-maltivec -mabi=altivec"
2599 # check if <altivec.h> should be included
2600 cat > $TMPC << EOF
2601 #include <altivec.h>
2602 int main(void) { return 0; }
2604 if $(cc_check $_altivec_gcc_flags) ; then
2605 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2606 inc_altivec_h='#include <altivec.h>'
2607 else
2608 cat > $TMPC << EOF
2609 int main(void) { return 0; }
2611 if $(cc_check -faltivec) ; then
2612 _altivec_gcc_flags="-faltivec"
2613 else
2614 _altivec=no
2615 _altivec_gcc_flags="none, AltiVec disabled"
2619 echores "$_altivec_gcc_flags"
2621 # check if the compiler supports braces for vector declarations
2622 cat > $TMPC << EOF
2623 $inc_altivec_h
2624 int main(void) { (vector int) {1}; return 0; }
2626 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2628 # Disable runtime cpudetection if we cannot generate AltiVec code or
2629 # AltiVec is disabled by the user.
2630 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2631 && _runtime_cpudetection=no
2633 # Show that we are optimizing for AltiVec (if enabled and supported).
2634 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2635 && _optimizing="$_optimizing altivec"
2637 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2638 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2641 if ppc ; then
2642 def_xform_asm='#define HAVE_XFORM_ASM 0'
2643 xform_asm=no
2644 echocheck "XFORM ASM support"
2645 cat > $TMPC << EOF
2646 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2648 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2649 echores "$xform_asm"
2652 if arm ; then
2653 echocheck "ARM pld instruction"
2654 cat > $TMPC << EOF
2655 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2657 pld=no
2658 cc_check && pld=yes
2659 echores "$pld"
2661 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2662 if test $_armv5te = "auto" ; then
2663 cat > $TMPC << EOF
2664 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2666 _armv5te=no
2667 cc_check && _armv5te=yes
2669 echores "$_armv5te"
2671 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2673 echocheck "ARMv6 (SIMD instructions)"
2674 if test $_armv6 = "auto" ; then
2675 cat > $TMPC << EOF
2676 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2678 _armv6=no
2679 cc_check && _armv6=yes
2681 echores "$_armv6"
2683 echocheck "ARMv6t2 (SIMD instructions)"
2684 if test $_armv6t2 = "auto" ; then
2685 cat > $TMPC << EOF
2686 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2688 _armv6t2=no
2689 cc_check && _armv6t2=yes
2691 echores "$_armv6"
2693 echocheck "ARM VFP"
2694 if test $_armvfp = "auto" ; then
2695 cat > $TMPC << EOF
2696 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2698 _armvfp=no
2699 cc_check && _armvfp=yes
2701 echores "$_armvfp"
2703 echocheck "ARM NEON"
2704 if test $neon = "auto" ; then
2705 cat > $TMPC << EOF
2706 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2708 neon=no
2709 cc_check && neon=yes
2711 echores "$neon"
2713 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2714 if test $_iwmmxt = "auto" ; then
2715 cat > $TMPC << EOF
2716 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2718 _iwmmxt=no
2719 cc_check && _iwmmxt=yes
2721 echores "$_iwmmxt"
2724 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2725 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2726 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2727 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2728 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2729 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2730 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2731 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2732 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2733 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2734 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2735 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2736 test "$pld" = yes && cpuexts="PLD $cpuexts"
2737 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2738 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2739 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2740 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2741 test "$neon" = yes && cpuexts="NEON $cpuexts"
2742 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2743 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2744 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2746 # Checking kernel version...
2747 if x86_32 && linux ; then
2748 _k_verc_problem=no
2749 kernel_version=$(uname -r 2>&1)
2750 echocheck "$system_name kernel version"
2751 case "$kernel_version" in
2752 '') kernel_version="?.??"; _k_verc_fail=yes;;
2753 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2754 _k_verc_problem=yes;;
2755 esac
2756 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2757 _k_verc_fail=yes
2759 if test "$_k_verc_fail" ; then
2760 echores "$kernel_version, fail"
2761 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2762 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2763 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2764 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2765 echo "2.2.x you must upgrade it to get SSE support!"
2766 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2767 else
2768 echores "$kernel_version, ok"
2772 ######################
2773 # MAIN TESTS GO HERE #
2774 ######################
2777 echocheck "-lposix"
2778 cat > $TMPC <<EOF
2779 int main(void) { return 0; }
2781 if cc_check -lposix ; then
2782 extra_ldflags="$extra_ldflags -lposix"
2783 echores "yes"
2784 else
2785 echores "no"
2788 echocheck "-lm"
2789 cat > $TMPC <<EOF
2790 int main(void) { return 0; }
2792 if cc_check -lm ; then
2793 _ld_lm="-lm"
2794 echores "yes"
2795 else
2796 _ld_lm=""
2797 echores "no"
2801 echocheck "langinfo"
2802 if test "$_langinfo" = auto ; then
2803 cat > $TMPC <<EOF
2804 #include <langinfo.h>
2805 int main(void) { nl_langinfo(CODESET); return 0; }
2807 _langinfo=no
2808 cc_check && _langinfo=yes
2810 if test "$_langinfo" = yes ; then
2811 def_langinfo='#define HAVE_LANGINFO 1'
2812 else
2813 def_langinfo='#undef HAVE_LANGINFO'
2815 echores "$_langinfo"
2818 echocheck "translation support"
2819 if test "$_translation" = yes; then
2820 def_translation="#define CONFIG_TRANSLATION 1"
2821 else
2822 def_translation="#undef CONFIG_TRANSLATION"
2824 echores "$_translation"
2826 echocheck "language"
2827 # Set preferred languages, "all" uses English as main language.
2828 test -z "$language" && language=$LINGUAS
2829 test -z "$language_doc" && language_doc=$language
2830 test -z "$language_man" && language_man=$language
2831 test -z "$language_msg" && language_msg="all"
2832 language_doc=$(echo $language_doc | tr , " ")
2833 language_man=$(echo $language_man | tr , " ")
2834 language_msg=$(echo $language_msg | tr , " ")
2836 test "$language_doc" = "all" && language_doc=$doc_lang_all
2837 test "$language_man" = "all" && language_man=$man_lang_all
2838 test "$language_msg" = "all" && language_msg=$msg_lang_all
2840 if test "$_translation" != yes ; then
2841 language_msg=""
2844 # Prune non-existing translations from language lists.
2845 # Set message translation to the first available language.
2846 # Fall back on English.
2847 for lang in $language_doc ; do
2848 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2849 done
2850 language_doc=$tmp_language_doc
2851 test -z "$language_doc" && language_doc=en
2853 for lang in $language_man ; do
2854 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2855 done
2856 language_man=$tmp_language_man
2857 test -z "$language_man" && language_man=en
2859 for lang in $language_msg ; do
2860 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2861 done
2862 language_msg=$tmp_language_msg
2864 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2867 echocheck "enable sighandler"
2868 if test "$_sighandler" = yes ; then
2869 def_sighandler='#define CONFIG_SIGHANDLER 1'
2870 else
2871 def_sighandler='#undef CONFIG_SIGHANDLER'
2873 echores "$_sighandler"
2875 echocheck "runtime cpudetection"
2876 if test "$_runtime_cpudetection" = yes ; then
2877 _optimizing="Runtime CPU-Detection enabled"
2878 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2879 else
2880 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2882 echores "$_runtime_cpudetection"
2885 echocheck "restrict keyword"
2886 for restrict_keyword in restrict __restrict __restrict__ ; do
2887 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2888 if cc_check; then
2889 def_restrict_keyword=$restrict_keyword
2890 break;
2892 done
2893 if [ -n "$def_restrict_keyword" ]; then
2894 echores "$def_restrict_keyword"
2895 else
2896 echores "none"
2898 # Avoid infinite recursion loop ("#define restrict restrict")
2899 if [ "$def_restrict_keyword" != "restrict" ]; then
2900 def_restrict_keyword="#define restrict $def_restrict_keyword"
2901 else
2902 def_restrict_keyword=""
2906 echocheck "__builtin_expect"
2907 # GCC branch prediction hint
2908 cat > $TMPC << EOF
2909 int foo(int a) {
2910 a = __builtin_expect(a, 10);
2911 return a == 10 ? 0 : 1;
2913 int main(void) { return foo(10) && foo(0); }
2915 _builtin_expect=no
2916 cc_check && _builtin_expect=yes
2917 if test "$_builtin_expect" = yes ; then
2918 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2919 else
2920 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2922 echores "$_builtin_expect"
2925 echocheck "kstat"
2926 cat > $TMPC << EOF
2927 #include <kstat.h>
2928 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2930 _kstat=no
2931 cc_check -lkstat && _kstat=yes
2932 if test "$_kstat" = yes ; then
2933 def_kstat="#define HAVE_LIBKSTAT 1"
2934 extra_ldflags="$extra_ldflags -lkstat"
2935 else
2936 def_kstat="#undef HAVE_LIBKSTAT"
2938 echores "$_kstat"
2941 echocheck "posix4"
2942 # required for nanosleep on some systems
2943 cat > $TMPC << EOF
2944 #include <time.h>
2945 int main(void) { (void) nanosleep(0, 0); return 0; }
2947 _posix4=no
2948 cc_check -lposix4 && _posix4=yes
2949 if test "$_posix4" = yes ; then
2950 extra_ldflags="$extra_ldflags -lposix4"
2952 echores "$_posix4"
2954 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2955 echocheck $func
2956 cat > $TMPC << EOF
2957 #include <math.h>
2958 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2960 eval _$func=no
2961 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2962 if eval test "x\$_$func" = "xyes"; then
2963 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2964 echores yes
2965 else
2966 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2967 echores no
2969 done
2972 echocheck "mkstemp"
2973 cat > $TMPC << EOF
2974 #include <stdlib.h>
2975 int main(void) { char a; mkstemp(&a); return 0; }
2977 _mkstemp=no
2978 cc_check && _mkstemp=yes
2979 if test "$_mkstemp" = yes ; then
2980 def_mkstemp='#define HAVE_MKSTEMP 1'
2981 else
2982 def_mkstemp='#undef HAVE_MKSTEMP'
2984 echores "$_mkstemp"
2987 echocheck "nanosleep"
2988 # also check for nanosleep
2989 cat > $TMPC << EOF
2990 #include <time.h>
2991 int main(void) { (void) nanosleep(0, 0); return 0; }
2993 _nanosleep=no
2994 cc_check && _nanosleep=yes
2995 if test "$_nanosleep" = yes ; then
2996 def_nanosleep='#define HAVE_NANOSLEEP 1'
2997 else
2998 def_nanosleep='#undef HAVE_NANOSLEEP'
3000 echores "$_nanosleep"
3003 echocheck "socklib"
3004 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3005 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3006 cat > $TMPC << EOF
3007 #include <netdb.h>
3008 #include <sys/socket.h>
3009 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3011 _socklib=no
3012 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3013 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3014 done
3015 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3016 if test $_winsock2_h = auto ; then
3017 _winsock2_h=no
3018 cat > $TMPC << EOF
3019 #include <winsock2.h>
3020 int main(void) { (void) gethostbyname(0); return 0; }
3022 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3024 test "$_ld_sock" && _res_comment="using $_ld_sock"
3025 echores "$_socklib"
3028 if test $_winsock2_h = yes ; then
3029 _ld_sock="-lws2_32"
3030 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3031 else
3032 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3036 echocheck "arpa/inet.h"
3037 arpa_inet_h=no
3038 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3039 cat > $TMPC << EOF
3040 #include <arpa/inet.h>
3041 int main(void) { return 0; }
3043 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3044 echores "$arpa_inet_h"
3047 echocheck "inet_pton()"
3048 def_inet_pton='#define HAVE_INET_PTON 0'
3049 inet_pton=no
3050 cat > $TMPC << EOF
3051 #include <sys/types.h>
3052 #include <sys/socket.h>
3053 #include <arpa/inet.h>
3054 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3056 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3057 cc_check $_ld_tmp && inet_pton=yes && break
3058 done
3059 if test $inet_pton = yes ; then
3060 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3061 def_inet_pton='#define HAVE_INET_PTON 1'
3063 echores "$inet_pton"
3066 echocheck "inet_aton()"
3067 def_inet_aton='#define HAVE_INET_ATON 0'
3068 inet_aton=no
3069 cat > $TMPC << EOF
3070 #include <sys/types.h>
3071 #include <sys/socket.h>
3072 #include <arpa/inet.h>
3073 int main(void) { (void) inet_aton(0, 0); return 0; }
3075 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3076 cc_check $_ld_tmp && inet_aton=yes && break
3077 done
3078 if test $inet_aton = yes ; then
3079 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3080 def_inet_aton='#define HAVE_INET_ATON 1'
3082 echores "$inet_aton"
3085 echocheck "socklen_t"
3086 _socklen_t=no
3087 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3088 cat > $TMPC << EOF
3089 #include <$header>
3090 int main(void) { socklen_t v = 0; return v; }
3092 cc_check && _socklen_t=yes && break
3093 done
3094 if test "$_socklen_t" = yes ; then
3095 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3096 else
3097 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3099 echores "$_socklen_t"
3102 echocheck "closesocket()"
3103 _closesocket=no
3104 cat > $TMPC << EOF
3105 #include <winsock2.h>
3106 int main(void) { closesocket(~0); return 0; }
3108 cc_check $_ld_sock && _closesocket=yes
3109 if test "$_closesocket" = yes ; then
3110 def_closesocket='#define HAVE_CLOSESOCKET 1'
3111 else
3112 def_closesocket='#define HAVE_CLOSESOCKET 0'
3114 echores "$_closesocket"
3117 echocheck "network"
3118 test $_winsock2_h = no && test $inet_pton = no &&
3119 test $inet_aton = no && _network=no
3120 if test "$_network" = yes ; then
3121 def_network='#define CONFIG_NETWORK 1'
3122 extra_ldflags="$extra_ldflags $_ld_sock"
3123 _inputmodules="network $_inputmodules"
3124 else
3125 _noinputmodules="network $_noinputmodules"
3126 def_network='#undef CONFIG_NETWORK'
3127 _ftp=no
3129 echores "$_network"
3132 echocheck "inet6"
3133 if test "$_inet6" = auto ; then
3134 cat > $TMPC << EOF
3135 #include <sys/types.h>
3136 #if !defined(_WIN32) || defined(__CYGWIN__)
3137 #include <sys/socket.h>
3138 #include <netinet/in.h>
3139 #else
3140 #include <ws2tcpip.h>
3141 #endif
3142 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3144 _inet6=no
3145 if cc_check $_ld_sock ; then
3146 _inet6=yes
3149 if test "$_inet6" = yes ; then
3150 def_inet6='#define HAVE_AF_INET6 1'
3151 else
3152 def_inet6='#undef HAVE_AF_INET6'
3154 echores "$_inet6"
3157 echocheck "gethostbyname2"
3158 if test "$_gethostbyname2" = auto ; then
3159 cat > $TMPC << EOF
3160 #include <sys/types.h>
3161 #include <sys/socket.h>
3162 #include <netdb.h>
3163 int main(void) { gethostbyname2("", AF_INET); return 0; }
3165 _gethostbyname2=no
3166 if cc_check ; then
3167 _gethostbyname2=yes
3170 if test "$_gethostbyname2" = yes ; then
3171 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3172 else
3173 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3175 echores "$_gethostbyname2"
3178 echocheck "inttypes.h (required)"
3179 cat > $TMPC << EOF
3180 #include <inttypes.h>
3181 int main(void) { return 0; }
3183 _inttypes=no
3184 cc_check && _inttypes=yes
3185 echores "$_inttypes"
3187 if test "$_inttypes" = no ; then
3188 echocheck "bitypes.h (inttypes.h predecessor)"
3189 cat > $TMPC << EOF
3190 #include <sys/bitypes.h>
3191 int main(void) { return 0; }
3193 cc_check && _inttypes=yes
3194 if test "$_inttypes" = yes ; then
3195 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
3196 else
3197 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3202 echocheck "int_fastXY_t in inttypes.h"
3203 cat > $TMPC << EOF
3204 #include <inttypes.h>
3205 int main(void) {
3206 volatile int_fast16_t v= 0;
3207 return v; }
3209 _fast_inttypes=no
3210 cc_check && _fast_inttypes=yes
3211 if test "$_fast_inttypes" = no ; then
3212 def_fast_inttypes='
3213 typedef signed char int_fast8_t;
3214 typedef signed int int_fast16_t;
3215 typedef signed int int_fast32_t;
3216 typedef signed long long int_fast64_t;
3217 typedef unsigned char uint_fast8_t;
3218 typedef unsigned int uint_fast16_t;
3219 typedef unsigned int uint_fast32_t;
3220 typedef unsigned long long uint_fast64_t;'
3222 echores "$_fast_inttypes"
3225 echocheck "malloc.h"
3226 cat > $TMPC << EOF
3227 #include <malloc.h>
3228 int main(void) { (void) malloc(0); return 0; }
3230 _malloc=no
3231 cc_check && _malloc=yes
3232 if test "$_malloc" = yes ; then
3233 def_malloc_h='#define HAVE_MALLOC_H 1'
3234 else
3235 def_malloc_h='#define HAVE_MALLOC_H 0'
3237 # malloc.h emits a warning in FreeBSD and OpenBSD
3238 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3239 echores "$_malloc"
3242 echocheck "memalign()"
3243 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3244 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3245 cat > $TMPC << EOF
3246 #include <malloc.h>
3247 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3249 _memalign=no
3250 cc_check && _memalign=yes
3251 if test "$_memalign" = yes ; then
3252 def_memalign='#define HAVE_MEMALIGN 1'
3253 else
3254 def_memalign='#define HAVE_MEMALIGN 0'
3255 def_map_memalign='#define memalign(a,b) malloc(b)'
3256 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3258 echores "$_memalign"
3261 echocheck "posix_memalign()"
3262 posix_memalign=no
3263 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3264 cat > $TMPC << EOF
3265 #define _XOPEN_SOURCE 600
3266 #include <stdlib.h>
3267 int main(void) { posix_memalign(NULL, 0, 0); }
3269 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3270 echores "$posix_memalign"
3273 echocheck "alloca.h"
3274 cat > $TMPC << EOF
3275 #include <alloca.h>
3276 int main(void) { (void) alloca(0); return 0; }
3278 _alloca=no
3279 cc_check && _alloca=yes
3280 if cc_check ; then
3281 def_alloca_h='#define HAVE_ALLOCA_H 1'
3282 else
3283 def_alloca_h='#undef HAVE_ALLOCA_H'
3285 echores "$_alloca"
3288 echocheck "fastmemcpy"
3289 if test "$_fastmemcpy" = yes ; then
3290 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3291 else
3292 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3294 echores "$_fastmemcpy"
3297 echocheck "mman.h"
3298 cat > $TMPC << EOF
3299 #include <sys/types.h>
3300 #include <sys/mman.h>
3301 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3303 _mman=no
3304 cc_check && _mman=yes
3305 if test "$_mman" = yes ; then
3306 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3307 else
3308 def_mman_h='#undef HAVE_SYS_MMAN_H'
3309 os2 && _need_mmap=yes
3311 echores "$_mman"
3313 cat > $TMPC << EOF
3314 #include <sys/types.h>
3315 #include <sys/mman.h>
3316 int main(void) { void *p = MAP_FAILED; return 0; }
3318 _mman_has_map_failed=no
3319 cc_check && _mman_has_map_failed=yes
3320 if test "$_mman_has_map_failed" = yes ; then
3321 def_mman_has_map_failed=''
3322 else
3323 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3326 echocheck "dynamic loader"
3327 cat > $TMPC << EOF
3328 #include <stddef.h>
3329 #include <dlfcn.h>
3330 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3332 _dl=no
3333 for _ld_tmp in "" "-ldl" ; do
3334 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3335 done
3336 if test "$_dl" = yes ; then
3337 def_dl='#define HAVE_LIBDL 1'
3338 else
3339 def_dl='#undef HAVE_LIBDL'
3341 echores "$_dl"
3344 echocheck "dynamic a/v plugins support"
3345 if test "$_dl" = no ; then
3346 _dynamic_plugins=no
3348 if test "$_dynamic_plugins" = yes ; then
3349 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3350 else
3351 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3353 echores "$_dynamic_plugins"
3356 def_threads='#define HAVE_THREADS 0'
3358 echocheck "pthread"
3359 if linux ; then
3360 THREAD_CFLAGS=-D_REENTRANT
3361 elif freebsd || netbsd || openbsd || bsdos ; then
3362 THREAD_CFLAGS=-D_THREAD_SAFE
3364 if test "$_pthreads" = auto ; then
3365 cat > $TMPC << EOF
3366 #include <pthread.h>
3367 void* func(void *arg) { return arg; }
3368 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3370 _pthreads=no
3371 if ! hpux ; then
3372 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3373 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3374 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3375 done
3378 if test "$_pthreads" = yes ; then
3379 test $_ld_pthread && _res_comment="using $_ld_pthread"
3380 def_pthreads='#define HAVE_PTHREADS 1'
3381 def_threads='#define HAVE_THREADS 1'
3382 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3383 else
3384 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3385 def_pthreads='#undef HAVE_PTHREADS'
3386 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3387 mingw32 || _win32dll=no
3389 echores "$_pthreads"
3391 if cygwin ; then
3392 if test "$_pthreads" = yes ; then
3393 def_pthread_cache="#define PTHREAD_CACHE 1"
3394 else
3395 _stream_cache=no
3396 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3400 echocheck "w32threads"
3401 if test "$_pthreads" = yes ; then
3402 _res_comment="using pthread instead"
3403 _w32threads=no
3405 if test "$_w32threads" = auto ; then
3406 _w32threads=no
3407 mingw32 && _w32threads=yes
3409 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3410 echores "$_w32threads"
3412 echocheck "rpath"
3413 netbsd &&_rpath=yes
3414 if test "$_rpath" = yes ; then
3415 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3416 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3417 done
3418 extra_ldflags=$tmp
3420 echores "$_rpath"
3422 echocheck "iconv"
3423 if test "$_iconv" = auto ; then
3424 cat > $TMPC << EOF
3425 #include <stdio.h>
3426 #include <unistd.h>
3427 #include <iconv.h>
3428 #define INBUFSIZE 1024
3429 #define OUTBUFSIZE 4096
3431 char inbuffer[INBUFSIZE];
3432 char outbuffer[OUTBUFSIZE];
3434 int main(void) {
3435 size_t numread;
3436 iconv_t icdsc;
3437 char *tocode="UTF-8";
3438 char *fromcode="cp1250";
3439 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3440 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3441 char *iptr=inbuffer;
3442 char *optr=outbuffer;
3443 size_t inleft=numread;
3444 size_t outleft=OUTBUFSIZE;
3445 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3446 != (size_t)(-1)) {
3447 write(1, outbuffer, OUTBUFSIZE - outleft);
3450 if (iconv_close(icdsc) == -1)
3453 return 0;
3456 _iconv=no
3457 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3458 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3459 _iconv=yes && break
3460 done
3462 if test "$_iconv" = yes ; then
3463 def_iconv='#define CONFIG_ICONV 1'
3464 else
3465 def_iconv='#undef CONFIG_ICONV'
3467 echores "$_iconv"
3470 echocheck "soundcard.h"
3471 _soundcard_h=no
3472 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3473 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3474 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3475 cat > $TMPC << EOF
3476 #include <$_soundcard_header>
3477 int main(void) { return 0; }
3479 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3480 done
3482 if test "$_soundcard_h" = yes ; then
3483 if test $_soundcard_header = "sys/soundcard.h"; then
3484 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3485 else
3486 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3489 echores "$_soundcard_h"
3492 echocheck "sys/dvdio.h"
3493 cat > $TMPC << EOF
3494 #include <unistd.h>
3495 #include <sys/dvdio.h>
3496 int main(void) { return 0; }
3498 _dvdio=no
3499 cc_check && _dvdio=yes
3500 if test "$_dvdio" = yes ; then
3501 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3502 else
3503 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3505 echores "$_dvdio"
3508 echocheck "sys/cdio.h"
3509 cat > $TMPC << EOF
3510 #include <unistd.h>
3511 #include <sys/cdio.h>
3512 int main(void) { return 0; }
3514 _cdio=no
3515 cc_check && _cdio=yes
3516 if test "$_cdio" = yes ; then
3517 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3518 else
3519 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3521 echores "$_cdio"
3524 echocheck "linux/cdrom.h"
3525 cat > $TMPC << EOF
3526 #include <sys/types.h>
3527 #include <linux/cdrom.h>
3528 int main(void) { return 0; }
3530 _cdrom=no
3531 cc_check && _cdrom=yes
3532 if test "$_cdrom" = yes ; then
3533 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3534 else
3535 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3537 echores "$_cdrom"
3540 echocheck "dvd.h"
3541 cat > $TMPC << EOF
3542 #include <dvd.h>
3543 int main(void) { return 0; }
3545 _dvd=no
3546 cc_check && _dvd=yes
3547 if test "$_dvd" = yes ; then
3548 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3549 else
3550 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3552 echores "$_dvd"
3555 if bsdos; then
3556 echocheck "BSDI dvd.h"
3557 cat > $TMPC << EOF
3558 #include <dvd.h>
3559 int main(void) { return 0; }
3561 _bsdi_dvd=no
3562 cc_check && _bsdi_dvd=yes
3563 if test "$_bsdi_dvd" = yes ; then
3564 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3565 else
3566 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3568 echores "$_bsdi_dvd"
3569 fi #if bsdos
3572 if hpux; then
3573 # also used by AIX, but AIX does not support VCD and/or libdvdread
3574 echocheck "HP-UX SCSI header"
3575 cat > $TMPC << EOF
3576 #include <sys/scsi.h>
3577 int main(void) { return 0; }
3579 _hpux_scsi_h=no
3580 cc_check && _hpux_scsi_h=yes
3581 if test "$_hpux_scsi_h" = yes ; then
3582 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3583 else
3584 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3586 echores "$_hpux_scsi_h"
3587 fi #if hpux
3590 if sunos; then
3591 echocheck "userspace SCSI headers (Solaris)"
3592 cat > $TMPC << EOF
3593 #include <unistd.h>
3594 #include <stropts.h>
3595 #include <sys/scsi/scsi_types.h>
3596 #include <sys/scsi/impl/uscsi.h>
3597 int main(void) { return 0; }
3599 _sol_scsi_h=no
3600 cc_check && _sol_scsi_h=yes
3601 if test "$_sol_scsi_h" = yes ; then
3602 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3603 else
3604 def_sol_scsi_h='#undef SOLARIS_USCSI'
3606 echores "$_sol_scsi_h"
3607 fi #if sunos
3610 echocheck "termcap"
3611 if test "$_termcap" = auto ; then
3612 cat > $TMPC <<EOF
3613 #include <stddef.h>
3614 #include <term.h>
3615 int main(void) { tgetent(NULL, NULL); return 0; }
3617 _termcap=no
3618 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3619 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3620 && _termcap=yes && break
3621 done
3623 if test "$_termcap" = yes ; then
3624 def_termcap='#define HAVE_TERMCAP 1'
3625 test $_ld_tmp && _res_comment="using $_ld_tmp"
3626 else
3627 def_termcap='#undef HAVE_TERMCAP'
3629 echores "$_termcap"
3632 echocheck "termios"
3633 def_termios='#undef HAVE_TERMIOS'
3634 def_termios_h='#undef HAVE_TERMIOS_H'
3635 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3636 if test "$_termios" = auto ; then
3637 _termios=no
3638 for _termios_header in "sys/termios.h" "termios.h"; do
3639 cat > $TMPC <<EOF
3640 #include <$_termios_header>
3641 int main(void) { return 0; }
3643 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3644 done
3647 if test "$_termios" = yes ; then
3648 def_termios='#define HAVE_TERMIOS 1'
3649 if test "$_termios_header" = "termios.h" ; then
3650 def_termios_h='#define HAVE_TERMIOS_H 1'
3651 else
3652 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3655 echores "$_termios"
3658 echocheck "shm"
3659 if test "$_shm" = auto ; then
3660 cat > $TMPC << EOF
3661 #include <sys/types.h>
3662 #include <sys/shm.h>
3663 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3665 _shm=no
3666 cc_check && _shm=yes
3668 if test "$_shm" = yes ; then
3669 def_shm='#define HAVE_SHM 1'
3670 else
3671 def_shm='#undef HAVE_SHM'
3673 echores "$_shm"
3676 echocheck "strsep()"
3677 cat > $TMPC << EOF
3678 #include <string.h>
3679 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3681 _strsep=no
3682 cc_check && _strsep=yes
3683 if test "$_strsep" = yes ; then
3684 def_strsep='#define HAVE_STRSEP 1'
3685 _need_strsep=no
3686 else
3687 def_strsep='#undef HAVE_STRSEP'
3688 _need_strsep=yes
3690 echores "$_strsep"
3693 echocheck "vsscanf()"
3694 cat > $TMPC << EOF
3695 #define _ISOC99_SOURCE
3696 #include <stdarg.h>
3697 #include <stdio.h>
3698 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3700 _vsscanf=no
3701 cc_check && _vsscanf=yes
3702 if test "$_vsscanf" = yes ; then
3703 def_vsscanf='#define HAVE_VSSCANF 1'
3704 _need_vsscanf=no
3705 else
3706 def_vsscanf='#undef HAVE_VSSCANF'
3707 _need_vsscanf=yes
3709 echores "$_vsscanf"
3712 echocheck "swab()"
3713 cat > $TMPC << EOF
3714 #define _XOPEN_SOURCE 600
3715 #include <unistd.h>
3716 int main(void) { swab(0, 0, 0); return 0; }
3718 _swab=no
3719 cc_check && _swab=yes
3720 if test "$_swab" = yes ; then
3721 def_swab='#define HAVE_SWAB 1'
3722 _need_swab=no
3723 else
3724 def_swab='#undef HAVE_SWAB'
3725 _need_swab=yes
3727 echores "$_swab"
3729 echocheck "POSIX select()"
3730 cat > $TMPC << EOF
3731 #include <stdio.h>
3732 #include <stdlib.h>
3733 #include <sys/types.h>
3734 #include <string.h>
3735 #include <sys/time.h>
3736 #include <unistd.h>
3737 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3739 _posix_select=no
3740 def_posix_select='#undef HAVE_POSIX_SELECT'
3741 #select() of kLIBC (OS/2) supports socket only
3742 ! os2 && cc_check && _posix_select=yes \
3743 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3744 echores "$_posix_select"
3747 echocheck "audio select()"
3748 if test "$_select" = no ; then
3749 def_select='#undef HAVE_AUDIO_SELECT'
3750 elif test "$_select" = yes ; then
3751 def_select='#define HAVE_AUDIO_SELECT 1'
3753 echores "$_select"
3756 echocheck "gettimeofday()"
3757 cat > $TMPC << EOF
3758 #include <stdio.h>
3759 #include <sys/time.h>
3760 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3762 _gettimeofday=no
3763 cc_check && _gettimeofday=yes
3764 if test "$_gettimeofday" = yes ; then
3765 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3766 _need_gettimeofday=no
3767 else
3768 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3769 _need_gettimeofday=yes
3771 echores "$_gettimeofday"
3774 echocheck "glob()"
3775 cat > $TMPC << EOF
3776 #include <stdio.h>
3777 #include <glob.h>
3778 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3780 _glob=no
3781 cc_check && _glob=yes
3782 if test "$_glob" = yes ; then
3783 def_glob='#define HAVE_GLOB 1'
3784 _need_glob=no
3785 else
3786 def_glob='#undef HAVE_GLOB'
3787 _need_glob=yes
3789 echores "$_glob"
3792 echocheck "setenv()"
3793 cat > $TMPC << EOF
3794 #include <stdlib.h>
3795 int main(void) { setenv("","",0); return 0; }
3797 _setenv=no
3798 cc_check && _setenv=yes
3799 if test "$_setenv" = yes ; then
3800 def_setenv='#define HAVE_SETENV 1'
3801 _need_setenv=no
3802 else
3803 def_setenv='#undef HAVE_SETENV'
3804 _need_setenv=yes
3806 echores "$_setenv"
3809 echocheck "setmode()"
3810 _setmode=no
3811 def_setmode='#define HAVE_SETMODE 0'
3812 cat > $TMPC << EOF
3813 #include <io.h>
3814 int main(void) { setmode(0, 0); return 0; }
3816 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3817 echores "$_setmode"
3820 if sunos; then
3821 echocheck "sysi86()"
3822 cat > $TMPC << EOF
3823 #include <sys/sysi86.h>
3824 int main(void) { sysi86(0); return 0; }
3826 _sysi86=no
3827 cc_check && _sysi86=yes
3828 if test "$_sysi86" = yes ; then
3829 def_sysi86='#define HAVE_SYSI86 1'
3830 cat > $TMPC << EOF
3831 #include <sys/sysi86.h>
3832 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3834 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3835 else
3836 def_sysi86='#undef HAVE_SYSI86'
3838 echores "$_sysi86"
3839 fi #if sunos
3842 echocheck "sys/sysinfo.h"
3843 cat > $TMPC << EOF
3844 #include <sys/sysinfo.h>
3845 int main(void) {
3846 struct sysinfo s_info;
3847 sysinfo(&s_info);
3848 return 0;
3851 _sys_sysinfo=no
3852 cc_check && _sys_sysinfo=yes
3853 if test "$_sys_sysinfo" = yes ; then
3854 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3855 else
3856 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3858 echores "$_sys_sysinfo"
3861 if darwin; then
3863 echocheck "Mac OS X Finder Support"
3864 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3865 if test "$_macosx_finder" = yes ; then
3866 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3867 extra_ldflags="$extra_ldflags -framework Carbon"
3869 echores "$_macosx_finder"
3871 echocheck "Mac OS X Bundle file locations"
3872 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3873 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3874 if test "$_macosx_bundle" = yes ; then
3875 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3876 extra_ldflags="$extra_ldflags -framework Carbon"
3878 echores "$_macosx_bundle"
3880 echocheck "Apple Remote"
3881 if test "$_apple_remote" = auto ; then
3882 _apple_remote=no
3883 cat > $TMPC <<EOF
3884 #include <stdio.h>
3885 #include <IOKit/IOCFPlugIn.h>
3886 int main(void) {
3887 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3888 CFMutableDictionaryRef hidMatchDictionary;
3889 IOReturn ioReturnValue;
3891 // Set up a matching dictionary to search the I/O Registry by class.
3892 // name for all HID class devices
3893 hidMatchDictionary = IOServiceMatching("AppleIRController");
3895 // Now search I/O Registry for matching devices.
3896 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3897 hidMatchDictionary, &hidObjectIterator);
3899 // If search is unsuccessful, return nonzero.
3900 if (ioReturnValue != kIOReturnSuccess ||
3901 !IOIteratorIsValid(hidObjectIterator)) {
3902 return 1;
3904 return 0;
3907 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3909 if test "$_apple_remote" = yes ; then
3910 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3911 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3912 else
3913 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3915 echores "$_apple_remote"
3917 fi #if darwin
3919 if linux; then
3921 echocheck "Apple IR"
3922 if test "$_apple_ir" = auto ; then
3923 _apple_ir=no
3924 cat > $TMPC <<EOF
3925 #include <linux/types.h>
3926 #include <linux/input.h>
3927 int main(void) {
3928 struct input_event ev;
3929 struct input_id id;
3930 return 0;
3933 cc_check && _apple_ir=yes
3935 if test "$_apple_ir" = yes ; then
3936 def_apple_ir='#define CONFIG_APPLE_IR 1'
3937 else
3938 def_apple_ir='#undef CONFIG_APPLE_IR'
3940 echores "$_apple_ir"
3941 fi #if linux
3943 echocheck "pkg-config"
3944 _pkg_config=pkg-config
3945 if $($_pkg_config --version > /dev/null 2>&1); then
3946 if test "$_ld_static"; then
3947 _pkg_config="$_pkg_config --static"
3949 echores "yes"
3950 else
3951 _pkg_config=false
3952 echores "no"
3956 echocheck "Samba support (libsmbclient)"
3957 if test "$_smb" = yes; then
3958 extra_ldflags="$extra_ldflags -lsmbclient"
3960 if test "$_smb" = auto; then
3961 _smb=no
3962 cat > $TMPC << EOF
3963 #include <libsmbclient.h>
3964 int main(void) { smbc_opendir("smb://"); return 0; }
3966 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3967 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3968 _smb=yes && break
3969 done
3972 if test "$_smb" = yes; then
3973 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3974 _inputmodules="smb $_inputmodules"
3975 else
3976 def_smb="#undef CONFIG_LIBSMBCLIENT"
3977 _noinputmodules="smb $_noinputmodules"
3979 echores "$_smb"
3982 #########
3983 # VIDEO #
3984 #########
3987 echocheck "tdfxfb"
3988 if test "$_tdfxfb" = yes ; then
3989 def_tdfxfb='#define CONFIG_TDFXFB 1'
3990 _vomodules="tdfxfb $_vomodules"
3991 else
3992 def_tdfxfb='#undef CONFIG_TDFXFB'
3993 _novomodules="tdfxfb $_novomodules"
3995 echores "$_tdfxfb"
3997 echocheck "s3fb"
3998 if test "$_s3fb" = yes ; then
3999 def_s3fb='#define CONFIG_S3FB 1'
4000 _vomodules="s3fb $_vomodules"
4001 else
4002 def_s3fb='#undef CONFIG_S3FB'
4003 _novomodules="s3fb $_novomodules"
4005 echores "$_s3fb"
4007 echocheck "wii"
4008 if test "$_wii" = yes ; then
4009 def_wii='#define CONFIG_WII 1'
4010 _vomodules="wii $_vomodules"
4011 else
4012 def_wii='#undef CONFIG_WII'
4013 _novomodules="wii $_novomodules"
4015 echores "$_wii"
4017 echocheck "tdfxvid"
4018 if test "$_tdfxvid" = yes ; then
4019 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4020 _vomodules="tdfx_vid $_vomodules"
4021 else
4022 def_tdfxvid='#undef CONFIG_TDFX_VID'
4023 _novomodules="tdfx_vid $_novomodules"
4025 echores "$_tdfxvid"
4027 echocheck "xvr100"
4028 if test "$_xvr100" = auto ; then
4029 cat > $TMPC << EOF
4030 #include <unistd.h>
4031 #include <sys/fbio.h>
4032 #include <sys/visual_io.h>
4033 int main(void) {
4034 struct vis_identifier ident;
4035 struct fbgattr attr;
4036 ioctl(0, VIS_GETIDENTIFIER, &ident);
4037 ioctl(0, FBIOGATTR, &attr);
4038 return 0;
4041 _xvr100=no
4042 cc_check && _xvr100=yes
4044 if test "$_xvr100" = yes ; then
4045 def_xvr100='#define CONFIG_XVR100 1'
4046 _vomodules="xvr100 $_vomodules"
4047 else
4048 def_tdfxvid='#undef CONFIG_XVR100'
4049 _novomodules="xvr100 $_novomodules"
4051 echores "$_xvr100"
4053 echocheck "tga"
4054 if test "$_tga" = yes ; then
4055 def_tga='#define CONFIG_TGA 1'
4056 _vomodules="tga $_vomodules"
4057 else
4058 def_tga='#undef CONFIG_TGA'
4059 _novomodules="tga $_novomodules"
4061 echores "$_tga"
4064 echocheck "md5sum support"
4065 if test "$_md5sum" = yes; then
4066 def_md5sum="#define CONFIG_MD5SUM 1"
4067 _vomodules="md5sum $_vomodules"
4068 else
4069 def_md5sum="#undef CONFIG_MD5SUM"
4070 _novomodules="md5sum $_novomodules"
4072 echores "$_md5sum"
4075 echocheck "yuv4mpeg support"
4076 if test "$_yuv4mpeg" = yes; then
4077 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4078 _vomodules="yuv4mpeg $_vomodules"
4079 else
4080 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4081 _novomodules="yuv4mpeg $_novomodules"
4083 echores "$_yuv4mpeg"
4086 echocheck "bl"
4087 if test "$_bl" = yes ; then
4088 def_bl='#define CONFIG_BL 1'
4089 _vomodules="bl $_vomodules"
4090 else
4091 def_bl='#undef CONFIG_BL'
4092 _novomodules="bl $_novomodules"
4094 echores "$_bl"
4097 echocheck "DirectFB"
4098 if test "$_directfb" = auto ; then
4099 _directfb=no
4100 cat > $TMPC <<EOF
4101 #include <directfb.h>
4102 int main(void) { DirectFBInit(0, 0); return 0; }
4104 for _inc_tmp in "" -I/usr/local/include/directfb \
4105 -I/usr/include/directfb -I/usr/local/include; do
4106 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4107 extra_cflags="$extra_cflags $_inc_tmp" && break
4108 done
4111 dfb_version() {
4112 expr $1 \* 65536 + $2 \* 256 + $3
4115 if test "$_directfb" = yes; then
4116 cat > $TMPC << EOF
4117 #include <directfb_version.h>
4119 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4122 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4123 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4124 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4125 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4126 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4127 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4128 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4129 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4130 _res_comment="$_directfb_version"
4131 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4132 else
4133 def_directfb_version='#undef DIRECTFBVERSION'
4134 _directfb=no
4135 _res_comment="version >=0.9.13 required"
4137 else
4138 _directfb=no
4139 _res_comment="failed to get version"
4142 echores "$_directfb"
4144 if test "$_directfb" = yes ; then
4145 def_directfb='#define CONFIG_DIRECTFB 1'
4146 _vomodules="directfb $_vomodules"
4147 libs_mplayer="$libs_mplayer -ldirectfb"
4148 else
4149 def_directfb='#undef CONFIG_DIRECTFB'
4150 _novomodules="directfb $_novomodules"
4152 if test "$_dfbmga" = yes; then
4153 _vomodules="dfbmga $_vomodules"
4154 def_dfbmga='#define CONFIG_DFBMGA 1'
4155 else
4156 _novomodules="dfbmga $_novomodules"
4157 def_dfbmga='#undef CONFIG_DFBMGA'
4161 echocheck "X11 headers presence"
4162 _x11_headers="no"
4163 _res_comment="check if the dev(el) packages are installed"
4164 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4165 if test -f "$I/X11/Xlib.h" ; then
4166 _x11_headers="yes"
4167 _res_comment=""
4168 break
4170 done
4171 if test $_cross_compile = no; then
4172 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4173 /usr/include/X11R6 /usr/openwin/include ; do
4174 if test -f "$I/X11/Xlib.h" ; then
4175 extra_cflags="$extra_cflags -I$I"
4176 _x11_headers="yes"
4177 _res_comment="using $I"
4178 break
4180 done
4182 echores "$_x11_headers"
4185 echocheck "X11"
4186 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4187 cat > $TMPC <<EOF
4188 #include <X11/Xlib.h>
4189 #include <X11/Xutil.h>
4190 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4192 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4193 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4194 -L/usr/lib ; do
4195 if netbsd; then
4196 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4197 else
4198 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4200 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4201 && _x11=yes && break
4202 done
4204 if test "$_x11" = yes ; then
4205 def_x11='#define CONFIG_X11 1'
4206 _vomodules="x11 xover $_vomodules"
4207 else
4208 _x11=no
4209 def_x11='#undef CONFIG_X11'
4210 _novomodules="x11 $_novomodules"
4211 _res_comment="check if the dev(el) packages are installed"
4212 # disable stuff that depends on X
4213 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4215 echores "$_x11"
4217 echocheck "Xss screensaver extensions"
4218 if test "$_xss" = auto ; then
4219 cat > $TMPC << EOF
4220 #include <X11/Xlib.h>
4221 #include <X11/extensions/scrnsaver.h>
4222 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4224 _xss=no
4225 cc_check -lXss && _xss=yes
4227 if test "$_xss" = yes ; then
4228 def_xss='#define CONFIG_XSS 1'
4229 libs_mplayer="$libs_mplayer -lXss"
4230 else
4231 def_xss='#undef CONFIG_XSS'
4233 echores "$_xss"
4235 echocheck "DPMS"
4236 _xdpms3=no
4237 _xdpms4=no
4238 if test "$_x11" = yes ; then
4239 cat > $TMPC <<EOF
4240 #include <X11/Xmd.h>
4241 #include <X11/Xlib.h>
4242 #include <X11/Xutil.h>
4243 #include <X11/Xatom.h>
4244 #include <X11/extensions/dpms.h>
4245 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4247 cc_check -lXdpms && _xdpms3=yes
4248 cat > $TMPC <<EOF
4249 #include <X11/Xlib.h>
4250 #include <X11/extensions/dpms.h>
4251 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4253 cc_check -lXext && _xdpms4=yes
4255 if test "$_xdpms4" = yes ; then
4256 def_xdpms='#define CONFIG_XDPMS 1'
4257 _res_comment="using Xdpms 4"
4258 echores "yes"
4259 elif test "$_xdpms3" = yes ; then
4260 def_xdpms='#define CONFIG_XDPMS 1'
4261 libs_mplayer="$libs_mplayer -lXdpms"
4262 _res_comment="using Xdpms 3"
4263 echores "yes"
4264 else
4265 def_xdpms='#undef CONFIG_XDPMS'
4266 echores "no"
4270 echocheck "Xv"
4271 if test "$_xv" = auto ; then
4272 cat > $TMPC <<EOF
4273 #include <X11/Xlib.h>
4274 #include <X11/extensions/Xvlib.h>
4275 int main(void) {
4276 (void) XvGetPortAttribute(0, 0, 0, 0);
4277 (void) XvQueryPortAttributes(0, 0, 0);
4278 return 0; }
4280 _xv=no
4281 cc_check -lXv && _xv=yes
4284 if test "$_xv" = yes ; then
4285 def_xv='#define CONFIG_XV 1'
4286 libs_mplayer="$libs_mplayer -lXv"
4287 _vomodules="xv $_vomodules"
4288 else
4289 def_xv='#undef CONFIG_XV'
4290 _novomodules="xv $_novomodules"
4292 echores "$_xv"
4295 echocheck "XvMC"
4296 if test "$_xv" = yes && test "$_xvmc" != no ; then
4297 _xvmc=no
4298 cat > $TMPC <<EOF
4299 #include <X11/Xlib.h>
4300 #include <X11/extensions/Xvlib.h>
4301 #include <X11/extensions/XvMClib.h>
4302 int main(void) {
4303 (void) XvMCQueryExtension(0,0,0);
4304 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4305 return 0; }
4307 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4308 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4309 done
4311 if test "$_xvmc" = yes ; then
4312 def_xvmc='#define CONFIG_XVMC 1'
4313 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4314 _vomodules="xvmc $_vomodules"
4315 _res_comment="using $_xvmclib"
4316 else
4317 def_xvmc='#define CONFIG_XVMC 0'
4318 _novomodules="xvmc $_novomodules"
4320 echores "$_xvmc"
4323 echocheck "VDPAU"
4324 if test "$_vdpau" = auto ; then
4325 _vdpau=no
4326 if test "$_dl" = yes ; then
4327 cat > $TMPC <<EOF
4328 #include <vdpau/vdpau_x11.h>
4329 int main(void) {
4330 (void) vdp_device_create_x11(0, 0, 0, 0);
4331 return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4333 cc_check -lvdpau && _vdpau=yes
4336 if test "$_vdpau" = yes ; then
4337 def_vdpau='#define CONFIG_VDPAU 1'
4338 libs_mplayer="$libs_mplayer -lvdpau"
4339 _vomodules="vdpau $_vomodules"
4340 else
4341 def_vdpau='#define CONFIG_VDPAU 0'
4342 _novomodules="vdpau $_novomodules"
4344 echores "$_vdpau"
4347 echocheck "Xinerama"
4348 if test "$_xinerama" = auto ; then
4349 cat > $TMPC <<EOF
4350 #include <X11/Xlib.h>
4351 #include <X11/extensions/Xinerama.h>
4352 int main(void) { (void) XineramaIsActive(0); return 0; }
4354 _xinerama=no
4355 cc_check -lXinerama && _xinerama=yes
4358 if test "$_xinerama" = yes ; then
4359 def_xinerama='#define CONFIG_XINERAMA 1'
4360 libs_mplayer="$libs_mplayer -lXinerama"
4361 else
4362 def_xinerama='#undef CONFIG_XINERAMA'
4364 echores "$_xinerama"
4367 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4368 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4369 # named 'X extensions' or something similar.
4370 # This check may be useful for future mplayer versions (to change resolution)
4371 # If you run into problems, remove '-lXxf86vm'.
4372 echocheck "Xxf86vm"
4373 if test "$_vm" = auto ; then
4374 cat > $TMPC <<EOF
4375 #include <X11/Xlib.h>
4376 #include <X11/extensions/xf86vmode.h>
4377 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4379 _vm=no
4380 cc_check -lXxf86vm && _vm=yes
4382 if test "$_vm" = yes ; then
4383 def_vm='#define CONFIG_XF86VM 1'
4384 libs_mplayer="$libs_mplayer -lXxf86vm"
4385 else
4386 def_vm='#undef CONFIG_XF86VM'
4388 echores "$_vm"
4390 # Check for the presence of special keycodes, like audio control buttons
4391 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4392 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4393 # have these new keycodes.
4394 echocheck "XF86keysym"
4395 if test "$_xf86keysym" = auto; then
4396 _xf86keysym=no
4397 cat > $TMPC <<EOF
4398 #include <X11/Xlib.h>
4399 #include <X11/XF86keysym.h>
4400 int main(void) { return XF86XK_AudioPause; }
4402 cc_check && _xf86keysym=yes
4404 if test "$_xf86keysym" = yes ; then
4405 def_xf86keysym='#define CONFIG_XF86XK 1'
4406 else
4407 def_xf86keysym='#undef CONFIG_XF86XK'
4409 echores "$_xf86keysym"
4411 echocheck "DGA"
4412 if test "$_dga2" = auto && test "$_x11" = yes ; then
4413 cat > $TMPC << EOF
4414 #include <X11/Xlib.h>
4415 #include <X11/extensions/xf86dga.h>
4416 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4418 _dga2=no
4419 cc_check -lXxf86dga && _dga2=yes
4421 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4422 cat > $TMPC << EOF
4423 #include <X11/Xlib.h>
4424 #include <X11/extensions/xf86dga.h>
4425 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4427 _dga1=no
4428 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4431 _dga=no
4432 def_dga='#undef CONFIG_DGA'
4433 def_dga1='#undef CONFIG_DGA1'
4434 def_dga2='#undef CONFIG_DGA2'
4435 if test "$_dga1" = yes ; then
4436 _dga=yes
4437 def_dga1='#define CONFIG_DGA1 1'
4438 _res_comment="using DGA 1.0"
4439 elif test "$_dga2" = yes ; then
4440 _dga=yes
4441 def_dga2='#define CONFIG_DGA2 1'
4442 _res_comment="using DGA 2.0"
4444 if test "$_dga" = yes ; then
4445 def_dga='#define CONFIG_DGA 1'
4446 libs_mplayer="$libs_mplayer -lXxf86dga"
4447 _vomodules="dga $_vomodules"
4448 else
4449 _novomodules="dga $_novomodules"
4451 echores "$_dga"
4454 echocheck "3dfx"
4455 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4456 def_3dfx='#define CONFIG_3DFX 1'
4457 _vomodules="3dfx $_vomodules"
4458 else
4459 def_3dfx='#undef CONFIG_3DFX'
4460 _novomodules="3dfx $_novomodules"
4462 echores "$_3dfx"
4465 echocheck "VIDIX"
4466 def_vidix='#undef CONFIG_VIDIX'
4467 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4468 _vidix_drv_cyberblade=no
4469 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4470 _vidix_drv_ivtv=no
4471 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4472 _vidix_drv_mach64=no
4473 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4474 _vidix_drv_mga=no
4475 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4476 _vidix_drv_mga_crtc2=no
4477 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4478 _vidix_drv_nvidia=no
4479 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4480 _vidix_drv_pm2=no
4481 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4482 _vidix_drv_pm3=no
4483 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4484 _vidix_drv_radeon=no
4485 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4486 _vidix_drv_rage128=no
4487 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4488 _vidix_drv_s3=no
4489 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4490 _vidix_drv_sh_veu=no
4491 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4492 _vidix_drv_sis=no
4493 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4494 _vidix_drv_unichrome=no
4495 if test "$_vidix" = auto ; then
4496 _vidix=no
4497 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4498 && _vidix=yes
4499 x86_64 && win32 && _vidix=no
4500 (ppc || alpha) && linux && _vidix=yes
4502 echores "$_vidix"
4504 if test "$_vidix" = yes ; then
4505 def_vidix='#define CONFIG_VIDIX 1'
4506 _vomodules="cvidix $_vomodules"
4507 # FIXME: ivtv driver temporarily disabled until we have a proper test
4508 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4509 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4511 # some vidix drivers are architecture and os specific, discard them elsewhere
4512 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4513 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4515 for driver in $_vidix_drivers ; do
4516 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4517 eval _vidix_drv_${driver}=yes
4518 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4519 done
4521 echocheck "VIDIX PCI device name database"
4522 echores "$_vidix_pcidb"
4523 if test "$_vidix_pcidb" = yes ; then
4524 _vidix_pcidb_val=1
4525 else
4526 _vidix_pcidb_val=0
4529 echocheck "VIDIX dhahelper support"
4530 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4531 echores "$_dhahelper"
4533 echocheck "VIDIX svgalib_helper support"
4534 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4535 echores "$_svgalib_helper"
4537 else
4538 _novomodules="cvidix $_novomodules"
4541 if test "$_vidix" = yes && win32; then
4542 winvidix=yes
4543 _vomodules="winvidix $_vomodules"
4544 libs_mplayer="$libs_mplayer -lgdi32"
4545 else
4546 _novomodules="winvidix $_novomodules"
4548 if test "$_vidix" = yes && test "$_x11" = yes; then
4549 xvidix=yes
4550 _vomodules="xvidix $_vomodules"
4551 else
4552 _novomodules="xvidix $_novomodules"
4555 echocheck "GGI"
4556 if test "$_ggi" = auto ; then
4557 cat > $TMPC << EOF
4558 #include <ggi/ggi.h>
4559 int main(void) { ggiInit(); return 0; }
4561 _ggi=no
4562 cc_check -lggi && _ggi=yes
4564 if test "$_ggi" = yes ; then
4565 def_ggi='#define CONFIG_GGI 1'
4566 libs_mplayer="$libs_mplayer -lggi"
4567 _vomodules="ggi $_vomodules"
4568 else
4569 def_ggi='#undef CONFIG_GGI'
4570 _novomodules="ggi $_novomodules"
4572 echores "$_ggi"
4574 echocheck "GGI extension: libggiwmh"
4575 if test "$_ggiwmh" = auto ; then
4576 _ggiwmh=no
4577 cat > $TMPC << EOF
4578 #include <ggi/ggi.h>
4579 #include <ggi/wmh.h>
4580 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4582 cc_check -lggi -lggiwmh && _ggiwmh=yes
4584 # needed to get right output on obscure combination
4585 # like --disable-ggi --enable-ggiwmh
4586 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4587 def_ggiwmh='#define CONFIG_GGIWMH 1'
4588 libs_mplayer="$libs_mplayer -lggiwmh"
4589 else
4590 _ggiwmh=no
4591 def_ggiwmh='#undef CONFIG_GGIWMH'
4593 echores "$_ggiwmh"
4596 echocheck "AA"
4597 if test "$_aa" = auto ; then
4598 cat > $TMPC << EOF
4599 #include <aalib.h>
4600 extern struct aa_hardware_params aa_defparams;
4601 extern struct aa_renderparams aa_defrenderparams;
4602 int main(void) {
4603 aa_context *c;
4604 aa_renderparams *p;
4605 (void) aa_init(0, 0, 0);
4606 c = aa_autoinit(&aa_defparams);
4607 p = aa_getrenderparams();
4608 aa_autoinitkbd(c,0);
4609 return 0; }
4611 _aa=no
4612 for _ld_tmp in "-laa" ; do
4613 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4614 done
4616 if test "$_aa" = yes ; then
4617 def_aa='#define CONFIG_AA 1'
4618 if cygwin ; then
4619 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4621 _vomodules="aa $_vomodules"
4622 else
4623 def_aa='#undef CONFIG_AA'
4624 _novomodules="aa $_novomodules"
4626 echores "$_aa"
4629 echocheck "CACA"
4630 if test "$_caca" = auto ; then
4631 _caca=no
4632 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4633 cat > $TMPC << EOF
4634 #include <caca.h>
4635 #ifdef CACA_API_VERSION_1
4636 #include <caca0.h>
4637 #endif
4638 int main(void) { (void) caca_init(); return 0; }
4640 cc_check $(caca-config --libs) && _caca=yes
4643 if test "$_caca" = yes ; then
4644 def_caca='#define CONFIG_CACA 1'
4645 extra_cflags="$extra_cflags $(caca-config --cflags)"
4646 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4647 _vomodules="caca $_vomodules"
4648 else
4649 def_caca='#undef CONFIG_CACA'
4650 _novomodules="caca $_novomodules"
4652 echores "$_caca"
4655 echocheck "SVGAlib"
4656 if test "$_svga" = auto ; then
4657 cat > $TMPC << EOF
4658 #include <vga.h>
4659 int main(void) { return 0; }
4661 _svga=no
4662 cc_check -lvga $_ld_lm && _svga=yes
4664 if test "$_svga" = yes ; then
4665 def_svga='#define CONFIG_SVGALIB 1'
4666 libs_mplayer="$libs_mplayer -lvga"
4667 _vomodules="svga $_vomodules"
4668 else
4669 def_svga='#undef CONFIG_SVGALIB'
4670 _novomodules="svga $_novomodules"
4672 echores "$_svga"
4675 echocheck "FBDev"
4676 if test "$_fbdev" = auto ; then
4677 _fbdev=no
4678 linux && _fbdev=yes
4680 if test "$_fbdev" = yes ; then
4681 def_fbdev='#define CONFIG_FBDEV 1'
4682 _vomodules="fbdev $_vomodules"
4683 else
4684 def_fbdev='#undef CONFIG_FBDEV'
4685 _novomodules="fbdev $_novomodules"
4687 echores "$_fbdev"
4691 echocheck "DVB"
4692 if test "$_dvb" = auto ; then
4693 _dvb=no
4694 cat >$TMPC << EOF
4695 #include <poll.h>
4696 #include <sys/ioctl.h>
4697 #include <stdio.h>
4698 #include <time.h>
4699 #include <unistd.h>
4700 #include <linux/dvb/dmx.h>
4701 #include <linux/dvb/frontend.h>
4702 #include <linux/dvb/video.h>
4703 #include <linux/dvb/audio.h>
4704 int main(void) {return 0;}
4706 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4707 cc_check $_inc_tmp && _dvb=yes && \
4708 extra_cflags="$extra_cflags $_inc_tmp" && break
4709 done
4711 echores "$_dvb"
4712 if test "$_dvb" = yes ; then
4713 _dvbin=yes
4714 _inputmodules="dvb $_inputmodules"
4715 def_dvb='#define CONFIG_DVB 1'
4716 def_dvbin='#define CONFIG_DVBIN 1'
4717 _aomodules="mpegpes(dvb) $_aomodules"
4718 _vomodules="mpegpes(dvb) $_vomodules"
4719 else
4720 _dvbin=no
4721 _noinputmodules="dvb $_noinputmodules"
4722 def_dvb='#undef CONFIG_DVB'
4723 def_dvbin='#undef CONFIG_DVBIN '
4724 _aomodules="mpegpes(file) $_aomodules"
4725 _vomodules="mpegpes(file) $_vomodules"
4729 if darwin; then
4731 echocheck "QuickTime"
4732 if test "$quicktime" = auto ; then
4733 cat > $TMPC <<EOF
4734 #include <QuickTime/QuickTime.h>
4735 int main(void) {
4736 ImageDescription *desc;
4737 EnterMovies();
4738 ExitMovies();
4739 return 0;
4742 quicktime=no
4743 cc_check -framework QuickTime && quicktime=yes
4745 if test "$quicktime" = yes ; then
4746 extra_ldflags="$extra_ldflags -framework QuickTime"
4747 def_quicktime='#define CONFIG_QUICKTIME 1'
4748 else
4749 def_quicktime='#undef CONFIG_QUICKTIME'
4750 _quartz=no
4752 echores $quicktime
4754 echocheck "Quartz"
4755 if test "$_quartz" = auto ; then
4756 cat > $TMPC <<EOF
4757 #include <Carbon/Carbon.h>
4758 int main(void) {
4759 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4760 return 0;
4763 _quartz=no
4764 cc_check -framework Carbon && _quartz=yes
4766 if test "$_quartz" = yes ; then
4767 libs_mplayer="$libs_mplayer -framework Carbon"
4768 def_quartz='#define CONFIG_QUARTZ 1'
4769 _vomodules="quartz $_vomodules"
4770 else
4771 def_quartz='#undef CONFIG_QUARTZ'
4772 _novomodules="quartz $_novomodules"
4774 echores $_quartz
4776 echocheck "CoreVideo"
4777 if test "$_corevideo" = auto ; then
4778 cat > $TMPC <<EOF
4779 #include <Carbon/Carbon.h>
4780 #include <CoreServices/CoreServices.h>
4781 #include <OpenGL/OpenGL.h>
4782 #include <QuartzCore/CoreVideo.h>
4783 int main(void) { return 0; }
4785 _corevideo=no
4786 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4788 if test "$_corevideo" = yes ; then
4789 _vomodules="corevideo $_vomodules"
4790 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4791 def_corevideo='#define CONFIG_COREVIDEO 1'
4792 else
4793 _novomodules="corevideo $_novomodules"
4794 def_corevideo='#undef CONFIG_COREVIDEO'
4796 echores "$_corevideo"
4798 fi #if darwin
4801 # make sure this stays below CoreVideo to avoid issues due to namespace
4802 # conflicts between -lGL and -framework OpenGL
4803 echocheck "OpenGL"
4804 #Note: this test is run even with --enable-gl since we autodetect linker flags
4805 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4806 cat > $TMPC << EOF
4807 #ifdef GL_WIN32
4808 #include <windows.h>
4809 #include <GL/gl.h>
4810 #else
4811 #include <GL/gl.h>
4812 #include <X11/Xlib.h>
4813 #include <GL/glx.h>
4814 #endif
4815 int main(void) {
4816 #ifdef GL_WIN32
4817 HDC dc;
4818 wglCreateContext(dc);
4819 #else
4820 glXCreateContext(NULL, NULL, NULL, True);
4821 #endif
4822 glFinish();
4823 return 0;
4826 _gl=no
4827 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4828 if cc_check $_ld_tmp $_ld_lm ; then
4829 _gl=yes
4830 _gl_x11=yes
4831 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4832 break
4834 done
4835 if cc_check -DGL_WIN32 -lopengl32 ; then
4836 _gl=yes
4837 _gl_win32=yes
4838 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4840 else
4841 _gl=no
4843 if test "$_gl" = yes ; then
4844 def_gl='#define CONFIG_GL 1'
4845 _res_comment="backends:"
4846 if test "$_gl_win32" = yes ; then
4847 def_gl_win32='#define CONFIG_GL_WIN32 1'
4848 _res_comment="$_res_comment win32"
4850 if test "$_gl_x11" = yes ; then
4851 def_gl_x11='#define CONFIG_GL_X11 1'
4852 _res_comment="$_res_comment x11"
4854 _vomodules="opengl $_vomodules"
4855 else
4856 def_gl='#undef CONFIG_GL'
4857 def_gl_win32='#undef CONFIG_GL_WIN32'
4858 def_gl_x11='#undef CONFIG_GL_X11'
4859 _novomodules="opengl $_novomodules"
4861 echores "$_gl"
4864 echocheck "MatrixView"
4865 if test "$_gl" = no ; then
4866 matrixview=no
4868 if test "$matrixview" = yes ; then
4869 _vomodules="matrixview $_vomodules"
4870 def_matrixview='#define CONFIG_MATRIXVIEW 1'
4871 else
4872 _novomodules="matrixview $_novomodules"
4873 def_matrixview='#undef CONFIG_MATRIXVIEW'
4875 echores "$matrixview"
4878 echocheck "PNG support"
4879 if test "$_png" = auto ; then
4880 _png=no
4881 if irix ; then
4882 # Don't check for -lpng on irix since it has its own libpng
4883 # incompatible with the GNU libpng
4884 _res_comment="disabled on irix (not GNU libpng)"
4885 else
4886 cat > $TMPC << EOF
4887 #include <png.h>
4888 #include <string.h>
4889 int main(void) {
4890 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4891 printf("libpng: %s\n", png_libpng_ver);
4892 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4895 cc_check -lpng -lz $_ld_lm && _png=yes
4898 echores "$_png"
4899 if test "$_png" = yes ; then
4900 def_png='#define CONFIG_PNG 1'
4901 extra_ldflags="$extra_ldflags -lpng -lz"
4902 else
4903 def_png='#undef CONFIG_PNG'
4906 echocheck "MNG support"
4907 if test "$_mng" = auto ; then
4908 _mng=no
4909 cat > $TMPC << EOF
4910 #include <libmng.h>
4911 int main(void) {
4912 const char * p_ver = mng_version_text();
4913 return !p_ver || p_ver[0] == 0;
4916 if cc_check -lmng -lz $_ld_lm ; then
4917 _mng=yes
4920 echores "$_mng"
4921 if test "$_mng" = yes ; then
4922 def_mng='#define CONFIG_MNG 1'
4923 extra_ldflags="$extra_ldflags -lmng -lz"
4924 else
4925 def_mng='#undef CONFIG_MNG'
4928 echocheck "JPEG support"
4929 if test "$_jpeg" = auto ; then
4930 _jpeg=no
4931 cat > $TMPC << EOF
4932 #include <stdio.h>
4933 #include <stdlib.h>
4934 #include <setjmp.h>
4935 #include <string.h>
4936 #include <jpeglib.h>
4937 int main(void) { return 0; }
4939 cc_check -ljpeg $_ld_lm && _jpeg=yes
4941 echores "$_jpeg"
4943 if test "$_jpeg" = yes ; then
4944 def_jpeg='#define CONFIG_JPEG 1'
4945 _vomodules="jpeg $_vomodules"
4946 extra_ldflags="$extra_ldflags -ljpeg"
4947 else
4948 def_jpeg='#undef CONFIG_JPEG'
4949 _novomodules="jpeg $_novomodules"
4954 echocheck "PNM support"
4955 if test "$_pnm" = yes; then
4956 def_pnm="#define CONFIG_PNM 1"
4957 _vomodules="pnm $_vomodules"
4958 else
4959 def_pnm="#undef CONFIG_PNM"
4960 _novomodules="pnm $_novomodules"
4962 echores "$_pnm"
4966 echocheck "GIF support"
4967 # This is to appease people who want to force gif support.
4968 # If it is forced to yes, then we still do checks to determine
4969 # which gif library to use.
4970 if test "$_gif" = yes ; then
4971 _force_gif=yes
4972 _gif=auto
4975 if test "$_gif" = auto ; then
4976 _gif=no
4977 cat > $TMPC << EOF
4978 #include <gif_lib.h>
4979 int main(void) { return 0; }
4981 for _ld_gif in "-lungif" "-lgif" ; do
4982 cc_check $_ld_gif && _gif=yes && break
4983 done
4986 # If no library was found, and the user wants support forced,
4987 # then we force it on with libgif, as this is the safest
4988 # assumption IMHO. (libungif & libregif both create symbolic
4989 # links to libgif. We also assume that no x11 support is needed,
4990 # because if you are forcing this, then you _should_ know what
4991 # you are doing. [ Besides, package maintainers should never
4992 # have compiled x11 deps into libungif in the first place. ] )
4993 # </rant>
4994 # --Joey
4995 if test "$_force_gif" = yes && test "$_gif" = no ; then
4996 _gif=yes
4997 _ld_gif="-lgif"
5000 if test "$_gif" = yes ; then
5001 def_gif='#define CONFIG_GIF 1'
5002 _codecmodules="gif $_codecmodules"
5003 _vomodules="gif89a $_vomodules"
5004 _res_comment="old version, some encoding functions disabled"
5005 def_gif_4='#undef CONFIG_GIF_4'
5006 extra_ldflags="$extra_ldflags $_ld_gif"
5008 cat > $TMPC << EOF
5009 #include <signal.h>
5010 #include <gif_lib.h>
5011 void catch() { exit(1); }
5012 int main(void) {
5013 signal(SIGSEGV, catch); // catch segfault
5014 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5015 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5016 return 0;
5019 if cc_check "$_ld_gif" ; then
5020 def_gif_4='#define CONFIG_GIF_4 1'
5021 _res_comment=""
5023 else
5024 def_gif='#undef CONFIG_GIF'
5025 def_gif_4='#undef CONFIG_GIF_4'
5026 _novomodules="gif89a $_novomodules"
5027 _nocodecmodules="gif $_nocodecmodules"
5029 echores "$_gif"
5032 case "$_gif" in yes*)
5033 echocheck "broken giflib workaround"
5034 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5036 cat > $TMPC << EOF
5037 #include <gif_lib.h>
5038 int main(void) {
5039 GifFileType gif;
5040 printf("UserData is at address %p\n", gif.UserData);
5041 return 0;
5044 if cc_check "$_ld_gif" ; then
5045 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5046 echores "disabled"
5047 else
5048 echores "enabled"
5051 esac
5054 echocheck "VESA support"
5055 if test "$_vesa" = auto ; then
5056 cat > $TMPC << EOF
5057 #include <vbe.h>
5058 int main(void) { vbeVersion(); return 0; }
5060 _vesa=no
5061 cc_check -lvbe -llrmi && _vesa=yes
5063 if test "$_vesa" = yes ; then
5064 def_vesa='#define CONFIG_VESA 1'
5065 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5066 _vomodules="vesa $_vomodules"
5067 else
5068 def_vesa='#undef CONFIG_VESA'
5069 _novomodules="vesa $_novomodules"
5071 echores "$_vesa"
5073 #################
5074 # VIDEO + AUDIO #
5075 #################
5078 echocheck "SDL"
5079 _inc_tmp=""
5080 _ld_tmp=""
5081 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5082 if test -z "$_sdlconfig" ; then
5083 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5084 _sdlconfig="sdl-config"
5085 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5086 _sdlconfig="sdl11-config"
5087 else
5088 _sdlconfig=false
5091 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5092 cat > $TMPC << EOF
5093 #ifdef CONFIG_SDL_SDL_H
5094 #include <SDL/SDL.h>
5095 #else
5096 #include <SDL.h>
5097 #endif
5098 #ifndef __APPLE__
5099 // we allow SDL hacking our main() only on OSX
5100 #undef main
5101 #endif
5102 int main(int argc, char *argv[]) {
5103 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5104 return 0;
5107 _sdl=no
5108 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5109 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5110 _sdl=yes
5111 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5112 break
5114 done
5115 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5116 _res_comment="using $_sdlconfig"
5117 if cygwin ; then
5118 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5119 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5120 elif mingw32 ; then
5121 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5122 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5123 else
5124 _inc_tmp="$($_sdlconfig --cflags)"
5125 _ld_tmp="$($_sdlconfig --libs)"
5127 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5128 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5129 if test "$_sdlversion" -gt 116 ; then
5130 if test "$_sdlversion" -lt 121 ; then
5131 def_sdlbuggy='#define BUGGY_SDL'
5132 else
5133 def_sdlbuggy='#undef BUGGY_SDL'
5135 _sdl=yes
5140 if test "$_sdl" = yes ; then
5141 def_sdl='#define CONFIG_SDL 1'
5142 extra_cflags="$extra_cflags $_inc_tmp"
5143 libs_mplayer="$libs_mplayer $_ld_tmp"
5144 _vomodules="sdl $_vomodules"
5145 _aomodules="sdl $_aomodules"
5146 else
5147 def_sdl='#undef CONFIG_SDL'
5148 _novomodules="sdl $_novomodules"
5149 _noaomodules="sdl $_noaomodules"
5151 echores "$_sdl"
5154 if os2 ; then
5155 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5156 if test "$_kva" = auto; then
5157 cat > $TMPC << EOF
5158 #include <os2.h>
5159 #include <kva.h>
5160 int main( void ) { return 0; }
5162 _kva=no;
5163 cc_check -lkva && _kva=yes
5165 if test "$_kva" = yes ; then
5166 def_kva='#define CONFIG_KVA 1'
5167 libs_mplayer="$libs_mplayer -lkva"
5168 _vomodules="kva $_vomodules"
5169 else
5170 def_kva='#undef CONFIG_KVA'
5171 _novomodules="kva $_novomodules"
5173 echores "$_kva"
5174 fi #if os2
5177 if win32; then
5179 echocheck "Windows waveout"
5180 if test "$_win32waveout" = auto ; then
5181 cat > $TMPC << EOF
5182 #include <windows.h>
5183 #include <mmsystem.h>
5184 int main(void) { return 0; }
5186 _win32waveout=no
5187 cc_check -lwinmm && _win32waveout=yes
5189 if test "$_win32waveout" = yes ; then
5190 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5191 libs_mplayer="$libs_mplayer -lwinmm"
5192 _aomodules="win32 $_aomodules"
5193 else
5194 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5195 _noaomodules="win32 $_noaomodules"
5197 echores "$_win32waveout"
5199 echocheck "Direct3D"
5200 if test "$_direct3d" = auto ; then
5201 cat > $TMPC << EOF
5202 #include <windows.h>
5203 #include <d3d9.h>
5204 int main(void) { return 0; }
5206 _direct3d=no
5207 cc_check && _direct3d=yes
5209 if test "$_direct3d" = yes ; then
5210 def_direct3d='#define CONFIG_DIRECT3D 1'
5211 _vomodules="direct3d $_vomodules"
5212 else
5213 def_direct3d='#undef CONFIG_DIRECT3D'
5214 _novomodules="direct3d $_novomodules"
5216 echores "$_direct3d"
5218 echocheck "Directx"
5219 if test "$_directx" = auto ; then
5220 cat > $TMPC << EOF
5221 #include <windows.h>
5222 #include <ddraw.h>
5223 #include <dsound.h>
5224 int main(void) { return 0; }
5226 _directx=no
5227 cc_check -lgdi32 && _directx=yes
5229 if test "$_directx" = yes ; then
5230 def_directx='#define CONFIG_DIRECTX 1'
5231 libs_mplayer="$libs_mplayer -lgdi32"
5232 _vomodules="directx $_vomodules"
5233 _aomodules="dsound $_aomodules"
5234 else
5235 def_directx='#undef CONFIG_DIRECTX'
5236 _novomodules="directx $_novomodules"
5237 _noaomodules="dsound $_noaomodules"
5239 echores "$_directx"
5241 fi #if win32; then
5244 echocheck "DXR2"
5245 if test "$_dxr2" = auto; then
5246 _dxr2=no
5247 cat > $TMPC << EOF
5248 #include <dxr2ioctl.h>
5249 int main(void) { return 0; }
5251 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5252 cc_check $_inc_tmp && _dxr2=yes && \
5253 extra_cflags="$extra_cflags $_inc_tmp" && break
5254 done
5256 if test "$_dxr2" = yes; then
5257 def_dxr2='#define CONFIG_DXR2 1'
5258 _aomodules="dxr2 $_aomodules"
5259 _vomodules="dxr2 $_vomodules"
5260 else
5261 def_dxr2='#undef CONFIG_DXR2'
5262 _noaomodules="dxr2 $_noaomodules"
5263 _novomodules="dxr2 $_novomodules"
5265 echores "$_dxr2"
5267 echocheck "DXR3/H+"
5268 if test "$_dxr3" = auto ; then
5269 cat > $TMPC << EOF
5270 #include <linux/em8300.h>
5271 int main(void) { return 0; }
5273 _dxr3=no
5274 cc_check && _dxr3=yes
5276 if test "$_dxr3" = yes ; then
5277 def_dxr3='#define CONFIG_DXR3 1'
5278 _vomodules="dxr3 $_vomodules"
5279 else
5280 def_dxr3='#undef CONFIG_DXR3'
5281 _novomodules="dxr3 $_novomodules"
5283 echores "$_dxr3"
5286 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5287 if test "$_ivtv" = auto ; then
5288 cat > $TMPC << EOF
5289 #include <stdlib.h>
5290 #include <inttypes.h>
5291 #include <linux/types.h>
5292 #include <linux/videodev2.h>
5293 #include <linux/ivtv.h>
5294 #include <sys/ioctl.h>
5295 int main(void) {
5296 struct ivtv_cfg_stop_decode sd;
5297 struct ivtv_cfg_start_decode sd1;
5298 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5299 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5300 return 0; }
5302 _ivtv=no
5303 cc_check && _ivtv=yes
5305 if test "$_ivtv" = yes ; then
5306 def_ivtv='#define CONFIG_IVTV 1'
5307 _vomodules="ivtv $_vomodules"
5308 _aomodules="ivtv $_aomodules"
5309 else
5310 def_ivtv='#undef CONFIG_IVTV'
5311 _novomodules="ivtv $_novomodules"
5312 _noaomodules="ivtv $_noaomodules"
5314 echores "$_ivtv"
5317 echocheck "V4L2 MPEG Decoder"
5318 if test "$_v4l2" = auto ; then
5319 cat > $TMPC << EOF
5320 #include <stdlib.h>
5321 #include <inttypes.h>
5322 #include <linux/types.h>
5323 #include <linux/videodev2.h>
5324 #include <linux/version.h>
5325 int main(void) {
5326 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5327 #error kernel headers too old, need 2.6.22
5328 #endif
5329 struct v4l2_ext_controls ctrls;
5330 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5331 return 0;
5334 _v4l2=no
5335 cc_check && _v4l2=yes
5337 if test "$_v4l2" = yes ; then
5338 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5339 _vomodules="v4l2 $_vomodules"
5340 _aomodules="v4l2 $_aomodules"
5341 else
5342 def_v4l2='#undef CONFIG_V4L2_DECODER'
5343 _novomodules="v4l2 $_novomodules"
5344 _noaomodules="v4l2 $_noaomodules"
5346 echores "$_v4l2"
5350 #########
5351 # AUDIO #
5352 #########
5355 echocheck "OSS Audio"
5356 if test "$_ossaudio" = auto ; then
5357 cat > $TMPC << EOF
5358 #include <sys/ioctl.h>
5359 #include <$_soundcard_header>
5360 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5362 _ossaudio=no
5363 cc_check && _ossaudio=yes
5365 if test "$_ossaudio" = yes ; then
5366 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5367 _aomodules="oss $_aomodules"
5368 if test "$_linux_devfs" = yes; then
5369 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5370 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5371 else
5372 cat > $TMPC << EOF
5373 #include <sys/ioctl.h>
5374 #include <$_soundcard_header>
5375 #ifdef OPEN_SOUND_SYSTEM
5376 int main(void) { return 0; }
5377 #else
5378 #error Not the real thing
5379 #endif
5381 _real_ossaudio=no
5382 cc_check && _real_ossaudio=yes
5383 if test "$_real_ossaudio" = yes; then
5384 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5385 # Check for OSS4 headers (override default headers)
5386 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5387 if test -f /etc/oss.conf; then
5388 . /etc/oss.conf
5389 _ossinc="$OSSLIBDIR/include"
5390 if test -f "$_ossinc/sys/soundcard.h"; then
5391 extra_cflags="-I$_ossinc $extra_cflags"
5394 elif netbsd || openbsd ; then
5395 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5396 extra_ldflags="$extra_ldflags -lossaudio"
5397 else
5398 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5400 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5402 else
5403 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5404 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5405 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5406 _noaomodules="oss $_noaomodules"
5408 echores "$_ossaudio"
5411 echocheck "aRts"
5412 if test "$_arts" = auto ; then
5413 _arts=no
5414 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5416 cat > $TMPC << EOF
5417 #include <artsc.h>
5418 int main(void) { return 0; }
5420 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5425 if test "$_arts" = yes ; then
5426 def_arts='#define CONFIG_ARTS 1'
5427 _aomodules="arts $_aomodules"
5428 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5429 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5430 else
5431 _noaomodules="arts $_noaomodules"
5433 echores "$_arts"
5436 echocheck "EsounD"
5437 if test "$_esd" = auto ; then
5438 _esd=no
5439 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5441 cat > $TMPC << EOF
5442 #include <esd.h>
5443 int main(void) { int fd = esd_open_sound("test"); return fd; }
5445 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5449 echores "$_esd"
5451 if test "$_esd" = yes ; then
5452 def_esd='#define CONFIG_ESD 1'
5453 _aomodules="esd $_aomodules"
5454 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5455 extra_cflags="$extra_cflags $(esd-config --cflags)"
5457 echocheck "esd_get_latency()"
5458 cat > $TMPC << EOF
5459 #include <esd.h>
5460 int main(void) { return esd_get_latency(0); }
5462 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5463 echores "$_esd_latency"
5464 else
5465 def_esd='#undef CONFIG_ESD'
5466 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5467 _noaomodules="esd $_noaomodules"
5471 echocheck "NAS"
5472 if test "$_nas" = auto ; then
5473 cat > $TMPC << EOF
5474 #include <audio/audiolib.h>
5475 int main(void) { return 0; }
5477 _nas=no
5478 cc_check $_ld_lm -laudio -lXt && _nas=yes
5480 if test "$_nas" = yes ; then
5481 def_nas='#define CONFIG_NAS 1'
5482 libs_mplayer="$libs_mplayer -laudio -lXt"
5483 _aomodules="nas $_aomodules"
5484 else
5485 _noaomodules="nas $_noaomodules"
5486 def_nas='#undef CONFIG_NAS'
5488 echores "$_nas"
5491 echocheck "pulse"
5492 if test "$_pulse" = auto ; then
5493 _pulse=no
5494 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5496 cat > $TMPC << EOF
5497 #include <pulse/pulseaudio.h>
5498 int main(void) { return 0; }
5500 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5504 echores "$_pulse"
5506 if test "$_pulse" = yes ; then
5507 def_pulse='#define CONFIG_PULSE 1'
5508 _aomodules="pulse $_aomodules"
5509 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5510 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5511 else
5512 def_pulse='#undef CONFIG_PULSE'
5513 _noaomodules="pulse $_noaomodules"
5517 echocheck "JACK"
5518 if test "$_jack" = auto ; then
5519 _jack=yes
5521 cat > $TMPC << EOF
5522 #include <jack/jack.h>
5523 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5525 if cc_check -ljack ; then
5526 libs_mplayer="$libs_mplayer -ljack"
5527 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5528 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5529 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5530 else
5531 _jack=no
5535 if test "$_jack" = yes ; then
5536 def_jack='#define CONFIG_JACK 1'
5537 _aomodules="jack $_aomodules"
5538 else
5539 _noaomodules="jack $_noaomodules"
5541 echores "$_jack"
5543 echocheck "OpenAL"
5544 if test "$_openal" = auto ; then
5545 _openal=no
5546 cat > $TMPC << EOF
5547 #ifdef OPENAL_AL_H
5548 #include <OpenAL/al.h>
5549 #else
5550 #include <AL/al.h>
5551 #endif
5552 int main(void) {
5553 alSourceQueueBuffers(0, 0, 0);
5554 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5555 return 0;
5558 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5559 cc_check $I && _openal=yes && break
5560 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5561 done
5562 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5564 if test "$_openal" = yes ; then
5565 def_openal='#define CONFIG_OPENAL 1'
5566 _aomodules="openal $_aomodules"
5567 else
5568 _noaomodules="openal $_noaomodules"
5570 echores "$_openal"
5572 echocheck "ALSA audio"
5573 if test "$_alloca" != yes ; then
5574 _alsa=no
5575 _res_comment="alloca missing"
5577 if test "$_alsa" != no ; then
5578 _alsa=no
5579 cat > $TMPC << EOF
5580 #include <sys/time.h>
5581 #include <sys/asoundlib.h>
5582 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5583 #error "alsa version != 0.5.x"
5584 #endif
5585 int main(void) { return 0; }
5587 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5589 cat > $TMPC << EOF
5590 #include <sys/time.h>
5591 #include <sys/asoundlib.h>
5592 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5593 #error "alsa version != 0.9.x"
5594 #endif
5595 int main(void) { return 0; }
5597 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5598 cat > $TMPC << EOF
5599 #include <sys/time.h>
5600 #include <alsa/asoundlib.h>
5601 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5602 #error "alsa version != 0.9.x"
5603 #endif
5604 int main(void) { return 0; }
5606 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5608 cat > $TMPC << EOF
5609 #include <sys/time.h>
5610 #include <sys/asoundlib.h>
5611 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5612 #error "alsa version != 1.0.x"
5613 #endif
5614 int main(void) { return 0; }
5616 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5617 cat > $TMPC << EOF
5618 #include <sys/time.h>
5619 #include <alsa/asoundlib.h>
5620 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5621 #error "alsa version != 1.0.x"
5622 #endif
5623 int main(void) { return 0; }
5625 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5627 def_alsa='#undef CONFIG_ALSA'
5628 def_alsa5='#undef CONFIG_ALSA5'
5629 def_alsa9='#undef CONFIG_ALSA9'
5630 def_alsa1x='#undef CONFIG_ALSA1X'
5631 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5632 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5633 if test "$_alsaver" ; then
5634 _alsa=yes
5635 if test "$_alsaver" = '0.5.x' ; then
5636 _alsa5=yes
5637 _aomodules="alsa5 $_aomodules"
5638 def_alsa5='#define CONFIG_ALSA5 1'
5639 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5640 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5641 elif test "$_alsaver" = '0.9.x-sys' ; then
5642 _alsa9=yes
5643 _aomodules="alsa $_aomodules"
5644 def_alsa='#define CONFIG_ALSA 1'
5645 def_alsa9='#define CONFIG_ALSA9 1'
5646 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5647 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5648 elif test "$_alsaver" = '0.9.x-alsa' ; then
5649 _alsa9=yes
5650 _aomodules="alsa $_aomodules"
5651 def_alsa='#define CONFIG_ALSA 1'
5652 def_alsa9='#define CONFIG_ALSA9 1'
5653 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5654 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5655 elif test "$_alsaver" = '1.0.x-sys' ; then
5656 _alsa1x=yes
5657 _aomodules="alsa $_aomodules"
5658 def_alsa='#define CONFIG_ALSA 1'
5659 def_alsa1x="#define CONFIG_ALSA1X 1"
5660 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5661 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5662 elif test "$_alsaver" = '1.0.x-alsa' ; then
5663 _alsa1x=yes
5664 _aomodules="alsa $_aomodules"
5665 def_alsa='#define CONFIG_ALSA 1'
5666 def_alsa1x="#define CONFIG_ALSA1X 1"
5667 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5668 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5669 else
5670 _alsa=no
5671 _res_comment="unknown version"
5673 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5674 else
5675 _noaomodules="alsa $_noaomodules"
5677 echores "$_alsa"
5680 echocheck "Sun audio"
5681 if test "$_sunaudio" = auto ; then
5682 cat > $TMPC << EOF
5683 #include <sys/types.h>
5684 #include <sys/audioio.h>
5685 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5687 _sunaudio=no
5688 cc_check && _sunaudio=yes
5690 if test "$_sunaudio" = yes ; then
5691 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5692 _aomodules="sun $_aomodules"
5693 else
5694 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5695 _noaomodules="sun $_noaomodules"
5697 echores "$_sunaudio"
5700 def_mlib='#define CONFIG_MLIB 0'
5701 if sunos; then
5702 echocheck "Sun mediaLib"
5703 if test "$_mlib" = auto ; then
5704 _mlib=no
5705 cat > $TMPC << EOF
5706 #include <mlib.h>
5707 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5709 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5711 echores "$_mlib"
5712 fi #if sunos
5715 if darwin; then
5716 echocheck "CoreAudio"
5717 if test "$_coreaudio" = auto ; then
5718 cat > $TMPC <<EOF
5719 #include <CoreAudio/CoreAudio.h>
5720 #include <AudioToolbox/AudioToolbox.h>
5721 #include <AudioUnit/AudioUnit.h>
5722 int main(void) { return 0; }
5724 _coreaudio=no
5725 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5727 if test "$_coreaudio" = yes ; then
5728 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5729 def_coreaudio='#define CONFIG_COREAUDIO 1'
5730 _aomodules="coreaudio $_aomodules"
5731 else
5732 def_coreaudio='#undef CONFIG_COREAUDIO'
5733 _noaomodules="coreaudio $_noaomodules"
5735 echores $_coreaudio
5736 fi #if darwin
5739 if irix; then
5740 echocheck "SGI audio"
5741 if test "$_sgiaudio" = auto ; then
5742 # check for SGI audio
5743 cat > $TMPC << EOF
5744 #include <dmedia/audio.h>
5745 int main(void) { return 0; }
5747 _sgiaudio=no
5748 cc_check && _sgiaudio=yes
5750 if test "$_sgiaudio" = "yes" ; then
5751 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5752 libs_mplayer="$libs_mplayer -laudio"
5753 _aomodules="sgi $_aomodules"
5754 else
5755 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5756 _noaomodules="sgi $_noaomodules"
5758 echores "$_sgiaudio"
5759 fi #if irix
5762 if os2 ; then
5763 echocheck "KAI (UNIAUD/DART)"
5764 if test "$_kai" = auto; then
5765 cat > $TMPC << EOF
5766 #include <os2.h>
5767 #include <kai.h>
5768 int main(void) { return 0; }
5770 _kai=no;
5771 cc_check -lkai && _kai=yes
5773 if test "$_kai" = yes ; then
5774 def_kai='#define CONFIG_KAI 1'
5775 libs_mplayer="$libs_mplayer -lkai"
5776 _aomodules="kai $_aomodules"
5777 else
5778 def_kai='#undef CONFIG_KAI'
5779 _noaomodules="kai $_noaomodules"
5781 echores "$_kai"
5783 echocheck "DART"
5784 if test "$_dart" = auto; then
5785 cat > $TMPC << EOF
5786 #include <os2.h>
5787 #include <dart.h>
5788 int main( void ) { return 0; }
5790 _dart=no;
5791 cc_check -ldart && _dart=yes
5793 if test "$_dart" = yes ; then
5794 def_dart='#define CONFIG_DART 1'
5795 libs_mplayer="$libs_mplayer -ldart"
5796 _aomodules="dart $_aomodules"
5797 else
5798 def_dart='#undef CONFIG_DART'
5799 _noaomodules="dart $_noaomodules"
5801 echores "$_dart"
5802 fi #if os2
5805 # set default CD/DVD devices
5806 if win32 || os2 ; then
5807 default_cdrom_device="D:"
5808 elif darwin ; then
5809 default_cdrom_device="/dev/disk1"
5810 elif dragonfly ; then
5811 default_cdrom_device="/dev/cd0"
5812 elif freebsd ; then
5813 default_cdrom_device="/dev/acd0"
5814 elif openbsd ; then
5815 default_cdrom_device="/dev/rcd0a"
5816 elif sunos ; then
5817 default_cdrom_device="/vol/dev/aliases/cdrom0"
5818 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5819 # file system and the volfs service.
5820 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5821 elif amigaos ; then
5822 default_cdrom_device="a1ide.device:2"
5823 else
5824 default_cdrom_device="/dev/cdrom"
5827 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5828 default_dvd_device=$default_cdrom_device
5829 elif darwin ; then
5830 default_dvd_device="/dev/rdiskN"
5831 else
5832 default_dvd_device="/dev/dvd"
5836 echocheck "VCD support"
5837 if test "$_vcd" = auto; then
5838 _vcd=no
5839 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5840 _vcd=yes
5841 elif mingw32; then
5842 cat > $TMPC << EOF
5843 #include <ddk/ntddcdrm.h>
5844 int main(void) { return 0; }
5846 cc_check && _vcd=yes
5849 if test "$_vcd" = yes; then
5850 _inputmodules="vcd $_inputmodules"
5851 def_vcd='#define CONFIG_VCD 1'
5852 else
5853 def_vcd='#undef CONFIG_VCD'
5854 _noinputmodules="vcd $_noinputmodules"
5855 _res_comment="not supported on this OS"
5857 echores "$_vcd"
5861 echocheck "dvdread"
5862 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5863 _dvdread_internal=no
5865 if test "$_dvdread_internal" = auto ; then
5866 _dvdread_internal=no
5867 _dvdread=no
5868 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5869 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5870 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5871 || darwin || win32 || os2; then
5872 _dvdread_internal=yes
5873 _dvdread=yes
5874 extra_cflags="-Ilibdvdread4 $extra_cflags"
5876 elif test "$_dvdread" = auto ; then
5877 _dvdread=no
5878 if test "$_dl" = yes; then
5879 cat > $TMPC << EOF
5880 #include <inttypes.h>
5881 #include <dvdread/dvd_reader.h>
5882 #include <dvdread/ifo_types.h>
5883 #include <dvdread/ifo_read.h>
5884 #include <dvdread/nav_read.h>
5885 int main(void) { return 0; }
5887 _dvdreadcflags=$($_dvdreadconfig --cflags)
5888 _dvdreadlibs=$($_dvdreadconfig --libs)
5889 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5890 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5891 _dvdread=yes
5892 extra_cflags="$extra_cflags $_dvdreadcflags"
5893 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5894 _res_comment="external"
5899 if test "$_dvdread_internal" = yes; then
5900 def_dvdread='#define CONFIG_DVDREAD 1'
5901 _inputmodules="dvdread(internal) $_inputmodules"
5902 _largefiles=yes
5903 _res_comment="internal"
5904 elif test "$_dvdread" = yes; then
5905 def_dvdread='#define CONFIG_DVDREAD 1'
5906 _largefiles=yes
5907 extra_ldflags="$extra_ldflags -ldvdread"
5908 _inputmodules="dvdread(external) $_inputmodules"
5909 _res_comment="external"
5910 else
5911 def_dvdread='#undef CONFIG_DVDREAD'
5912 _noinputmodules="dvdread $_noinputmodules"
5914 echores "$_dvdread"
5917 echocheck "internal libdvdcss"
5918 if test "$_libdvdcss_internal" = auto ; then
5919 _libdvdcss_internal=no
5920 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5921 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5923 if test "$_libdvdcss_internal" = yes ; then
5924 if linux || netbsd || openbsd || bsdos ; then
5925 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5926 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5927 elif freebsd || dragonfly ; then
5928 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5929 elif darwin ; then
5930 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5931 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5932 elif cygwin ; then
5933 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5934 elif beos ; then
5935 cflags_libdvdcss="-DSYS_BEOS"
5936 elif os2 ; then
5937 cflags_libdvdcss="-DSYS_OS2"
5939 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5940 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5941 _inputmodules="libdvdcss(internal) $_inputmodules"
5942 _largefiles=yes
5943 else
5944 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5946 echores "$_libdvdcss_internal"
5949 echocheck "cdparanoia"
5950 if test "$_cdparanoia" = auto ; then
5951 cat > $TMPC <<EOF
5952 #include <cdda_interface.h>
5953 #include <cdda_paranoia.h>
5954 // This need a better test. How ?
5955 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5957 _cdparanoia=no
5958 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5959 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5960 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5961 done
5963 if test "$_cdparanoia" = yes ; then
5964 _cdda='yes'
5965 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5966 openbsd && extra_ldflags="$extra_ldflags -lutil"
5968 echores "$_cdparanoia"
5971 echocheck "libcdio"
5972 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5973 cat > $TMPC << EOF
5974 #include <stdio.h>
5975 #include <cdio/version.h>
5976 #include <cdio/cdda.h>
5977 #include <cdio/paranoia.h>
5978 int main(void) {
5979 void *test = cdda_verbose_set;
5980 printf("%s\n", CDIO_VERSION);
5981 return test == (void *)1;
5984 _libcdio=no
5985 for _ld_tmp in "" "-lwinmm" ; do
5986 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5987 cc_check $_ld_tmp $_ld_lm \
5988 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5989 done
5990 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5991 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5992 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5993 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5994 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5997 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5998 _cdda='yes'
5999 def_libcdio='#define CONFIG_LIBCDIO 1'
6000 def_havelibcdio='yes'
6001 else
6002 if test "$_cdparanoia" = yes ; then
6003 _res_comment="using cdparanoia"
6005 def_libcdio='#undef CONFIG_LIBCDIO'
6006 def_havelibcdio='no'
6008 echores "$_libcdio"
6010 if test "$_cdda" = yes ; then
6011 test $_cddb = auto && test $_network = yes && _cddb=yes
6012 def_cdparanoia='#define CONFIG_CDDA 1'
6013 _inputmodules="cdda $_inputmodules"
6014 else
6015 def_cdparanoia='#undef CONFIG_CDDA'
6016 _noinputmodules="cdda $_noinputmodules"
6019 if test "$_cddb" = yes ; then
6020 def_cddb='#define CONFIG_CDDB 1'
6021 _inputmodules="cddb $_inputmodules"
6022 else
6023 _cddb=no
6024 def_cddb='#undef CONFIG_CDDB'
6025 _noinputmodules="cddb $_noinputmodules"
6028 echocheck "bitmap font support"
6029 if test "$_bitmap_font" = yes ; then
6030 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6031 else
6032 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6034 echores "$_bitmap_font"
6037 echocheck "freetype >= 2.0.9"
6039 # freetype depends on iconv
6040 if test "$_iconv" = no ; then
6041 _freetype=no
6042 _res_comment="iconv support needed"
6045 if test "$_freetype" = auto ; then
6046 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6047 cat > $TMPC << EOF
6048 #include <stdio.h>
6049 #include <ft2build.h>
6050 #include FT_FREETYPE_H
6051 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6052 #error "Need FreeType 2.0.9 or newer"
6053 #endif
6054 int main(void) {
6055 FT_Library library;
6056 FT_Int major=-1,minor=-1,patch=-1;
6057 int err=FT_Init_FreeType(&library);
6058 return 0;
6061 _freetype=no
6062 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6063 else
6064 _freetype=no
6067 if test "$_freetype" = yes ; then
6068 def_freetype='#define CONFIG_FREETYPE 1'
6069 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6070 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6071 else
6072 def_freetype='#undef CONFIG_FREETYPE'
6074 echores "$_freetype"
6076 if test "$_freetype" = no ; then
6077 _fontconfig=no
6078 _res_comment="FreeType support needed"
6080 echocheck "fontconfig"
6081 if test "$_fontconfig" = auto ; then
6082 cat > $TMPC << EOF
6083 #include <stdio.h>
6084 #include <stdlib.h>
6085 #include <fontconfig/fontconfig.h>
6086 #if FC_VERSION < 20402
6087 #error At least version 2.4.2 of fontconfig required
6088 #endif
6089 int main(void) {
6090 int err = FcInit();
6091 if (err == FcFalse) {
6092 printf("Couldn't initialize fontconfig lib\n");
6093 exit(err);
6095 return 0;
6098 _fontconfig=no
6099 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6100 _ld_tmp="-lfontconfig $_ld_tmp"
6101 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6102 done
6103 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6104 _inc_tmp=$($_pkg_config --cflags fontconfig)
6105 _ld_tmp=$($_pkg_config --libs fontconfig)
6106 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6107 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6110 if test "$_fontconfig" = yes ; then
6111 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6112 else
6113 def_fontconfig='#undef CONFIG_FONTCONFIG'
6115 echores "$_fontconfig"
6118 echocheck "SSA/ASS support"
6119 if test "$_ass" = auto -o "$_ass" = yes ; then
6120 if $_pkg_config libass; then
6121 _ass=yes
6122 def_ass='#define CONFIG_ASS 1'
6123 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
6124 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
6125 else
6126 _ass=no
6127 def_ass='#undef CONFIG_ASS'
6129 else
6130 def_ass='#undef CONFIG_ASS'
6132 echores "$_ass"
6135 echocheck "fribidi with charsets"
6136 _inc_tmp=""
6137 _ld_tmp=""
6138 if test "$_fribidi" = auto ; then
6139 cat > $TMPC << EOF
6140 #include <stdio.h>
6141 #include <stdlib.h>
6142 /* workaround for fribidi 0.10.4 and below */
6143 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6144 #include <fribidi/fribidi.h>
6145 int main(void) {
6146 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6147 printf("Fribidi headers are not consistents with the library!\n");
6148 exit(1);
6150 return 0;
6153 _fribidi=no
6154 _inc_tmp=""
6155 _ld_tmp="-lfribidi"
6156 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6157 if $_fribidiconfig --version > /dev/null 2>&1 &&
6158 test "$_fribidi" = no ; then
6159 _inc_tmp="$($_fribidiconfig --cflags)"
6160 _ld_tmp="$($_fribidiconfig --libs)"
6161 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6164 if test "$_fribidi" = yes ; then
6165 def_fribidi='#define CONFIG_FRIBIDI 1'
6166 extra_cflags="$extra_cflags $_inc_tmp"
6167 extra_ldflags="$extra_ldflags $_ld_tmp"
6168 else
6169 def_fribidi='#undef CONFIG_FRIBIDI'
6171 echores "$_fribidi"
6174 echocheck "ENCA"
6175 if test "$_enca" = auto ; then
6176 cat > $TMPC << EOF
6177 #include <sys/types.h>
6178 #include <enca.h>
6179 int main(void) {
6180 const char **langs;
6181 size_t langcnt;
6182 langs = enca_get_languages(&langcnt);
6183 return 0;
6186 _enca=no
6187 cc_check -lenca $_ld_lm && _enca=yes
6189 if test "$_enca" = yes ; then
6190 def_enca='#define CONFIG_ENCA 1'
6191 extra_ldflags="$extra_ldflags -lenca"
6192 else
6193 def_enca='#undef CONFIG_ENCA'
6195 echores "$_enca"
6198 echocheck "zlib"
6199 cat > $TMPC << EOF
6200 #include <zlib.h>
6201 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6203 _zlib=no
6204 cc_check -lz && _zlib=yes
6205 if test "$_zlib" = yes ; then
6206 def_zlib='#define CONFIG_ZLIB 1'
6207 extra_ldflags="$extra_ldflags -lz"
6208 else
6209 def_zlib='#define CONFIG_ZLIB 0'
6211 echores "$_zlib"
6214 echocheck "bzlib"
6215 bzlib=no
6216 def_bzlib='#define CONFIG_BZLIB 0'
6217 cat > $TMPC << EOF
6218 #include <bzlib.h>
6219 int main(void) { BZ2_bzlibVersion(); return 0; }
6221 cc_check -lbz2 && bzlib=yes
6222 if test "$bzlib" = yes ; then
6223 def_bzlib='#define CONFIG_BZLIB 1'
6224 extra_ldflags="$extra_ldflags -lbz2"
6226 echores "$bzlib"
6229 echocheck "RTC"
6230 if test "$_rtc" = auto ; then
6231 cat > $TMPC << EOF
6232 #include <sys/ioctl.h>
6233 #ifdef __linux__
6234 #include <linux/rtc.h>
6235 #else
6236 #include <rtc.h>
6237 #define RTC_PIE_ON RTCIO_PIE_ON
6238 #endif
6239 int main(void) { return RTC_PIE_ON; }
6241 _rtc=no
6242 cc_check && _rtc=yes
6243 ppc && _rtc=no
6245 if test "$_rtc" = yes ; then
6246 def_rtc='#define HAVE_RTC 1'
6247 else
6248 def_rtc='#undef HAVE_RTC'
6250 echores "$_rtc"
6253 echocheck "liblzo2 support"
6254 if test "$_liblzo" = auto ; then
6255 _liblzo=no
6256 cat > $TMPC << EOF
6257 #include <lzo/lzo1x.h>
6258 int main(void) { lzo_init();return 0; }
6260 cc_check -llzo2 && _liblzo=yes
6262 if test "$_liblzo" = yes ; then
6263 def_liblzo='#define CONFIG_LIBLZO 1'
6264 extra_ldflags="$extra_ldflags -llzo2"
6265 _codecmodules="liblzo $_codecmodules"
6266 else
6267 def_liblzo='#undef CONFIG_LIBLZO'
6268 _nocodecmodules="liblzo $_nocodecmodules"
6270 echores "$_liblzo"
6273 echocheck "mad support"
6274 if test "$_mad" = auto ; then
6275 _mad=no
6276 cat > $TMPC << EOF
6277 #include <mad.h>
6278 int main(void) { return 0; }
6280 cc_check -lmad && _mad=yes
6282 if test "$_mad" = yes ; then
6283 def_mad='#define CONFIG_LIBMAD 1'
6284 extra_ldflags="$extra_ldflags -lmad"
6285 _codecmodules="libmad $_codecmodules"
6286 else
6287 def_mad='#undef CONFIG_LIBMAD'
6288 _nocodecmodules="libmad $_nocodecmodules"
6290 echores "$_mad"
6292 echocheck "Twolame"
6293 if test "$_twolame" = auto ; then
6294 cat > $TMPC <<EOF
6295 #include <twolame.h>
6296 int main(void) { twolame_init(); return 0; }
6298 _twolame=no
6299 cc_check -ltwolame $_ld_lm && _twolame=yes
6301 if test "$_twolame" = yes ; then
6302 def_twolame='#define CONFIG_TWOLAME 1'
6303 libs_mencoder="$libs_mencoder -ltwolame"
6304 _codecmodules="twolame $_codecmodules"
6305 else
6306 def_twolame='#undef CONFIG_TWOLAME'
6307 _nocodecmodules="twolame $_nocodecmodules"
6309 echores "$_twolame"
6311 echocheck "Toolame"
6312 if test "$_toolame" = auto ; then
6313 _toolame=no
6314 if test "$_twolame" = yes ; then
6315 _res_comment="disabled by twolame"
6316 else
6317 cat > $TMPC <<EOF
6318 #include <toolame.h>
6319 int main(void) { toolame_init(); return 0; }
6321 cc_check -ltoolame $_ld_lm && _toolame=yes
6324 if test "$_toolame" = yes ; then
6325 def_toolame='#define CONFIG_TOOLAME 1'
6326 libs_mencoder="$libs_mencoder -ltoolame"
6327 _codecmodules="toolame $_codecmodules"
6328 else
6329 def_toolame='#undef CONFIG_TOOLAME'
6330 _nocodecmodules="toolame $_nocodecmodules"
6332 if test "$_toolamedir" ; then
6333 _res_comment="using $_toolamedir"
6335 echores "$_toolame"
6337 echocheck "OggVorbis support"
6338 if test "$_tremor_internal" = yes; then
6339 _libvorbis=no
6340 elif test "$_tremor" = auto; then
6341 _tremor=no
6342 cat > $TMPC << EOF
6343 #include <tremor/ivorbiscodec.h>
6344 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6346 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6348 if test "$_libvorbis" = auto; then
6349 _libvorbis=no
6350 cat > $TMPC << EOF
6351 #include <vorbis/codec.h>
6352 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6354 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6356 if test "$_tremor_internal" = yes ; then
6357 _vorbis=yes
6358 def_vorbis='#define CONFIG_OGGVORBIS 1'
6359 def_tremor='#define CONFIG_TREMOR 1'
6360 _codecmodules="tremor(internal) $_codecmodules"
6361 _res_comment="internal Tremor"
6362 if test "$_tremor_low" = yes ; then
6363 cflags_tremor_low="-D_LOW_ACCURACY_"
6364 _res_comment="internal low accuracy Tremor"
6366 elif test "$_tremor" = yes ; then
6367 _vorbis=yes
6368 def_vorbis='#define CONFIG_OGGVORBIS 1'
6369 def_tremor='#define CONFIG_TREMOR 1'
6370 _codecmodules="tremor(external) $_codecmodules"
6371 _res_comment="external Tremor"
6372 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6373 elif test "$_libvorbis" = yes ; then
6374 _vorbis=yes
6375 def_vorbis='#define CONFIG_OGGVORBIS 1'
6376 _codecmodules="libvorbis $_codecmodules"
6377 _res_comment="libvorbis"
6378 extra_ldflags="$extra_ldflags -lvorbis -logg"
6379 else
6380 _vorbis=no
6381 _nocodecmodules="libvorbis $_nocodecmodules"
6383 echores "$_vorbis"
6385 echocheck "libspeex (version >= 1.1 required)"
6386 if test "$_speex" = auto ; then
6387 _speex=no
6388 cat > $TMPC << EOF
6389 #include <speex/speex.h>
6390 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6392 cc_check -lspeex $_ld_lm && _speex=yes
6394 if test "$_speex" = yes ; then
6395 def_speex='#define CONFIG_SPEEX 1'
6396 extra_ldflags="$extra_ldflags -lspeex"
6397 _codecmodules="speex $_codecmodules"
6398 else
6399 def_speex='#undef CONFIG_SPEEX'
6400 _nocodecmodules="speex $_nocodecmodules"
6402 echores "$_speex"
6404 echocheck "OggTheora support"
6405 if test "$_theora" = auto ; then
6406 _theora=no
6407 cat > $TMPC << EOF
6408 #include <theora/theora.h>
6409 #include <string.h>
6410 int main(void) {
6411 /* Theora is in flux, make sure that all interface routines and datatypes
6412 * exist and work the way we expect it, so we don't break MPlayer. */
6413 ogg_packet op;
6414 theora_comment tc;
6415 theora_info inf;
6416 theora_state st;
6417 yuv_buffer yuv;
6418 int r;
6419 double t;
6421 theora_info_init(&inf);
6422 theora_comment_init(&tc);
6424 return 0;
6426 /* we don't want to execute this kind of nonsense; just for making sure
6427 * that compilation works... */
6428 memset(&op, 0, sizeof(op));
6429 r = theora_decode_header(&inf, &tc, &op);
6430 r = theora_decode_init(&st, &inf);
6431 t = theora_granule_time(&st, op.granulepos);
6432 r = theora_decode_packetin(&st, &op);
6433 r = theora_decode_YUVout(&st, &yuv);
6434 theora_clear(&st);
6436 return 0;
6439 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6440 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6441 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6442 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6443 if test _theora = no; then
6444 _ld_theora="-ltheora -logg"
6445 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6447 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6448 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6449 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6450 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6451 extra_ldflags="$extra_ldflags $_ld_theora" &&
6452 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6453 if test _theora = no; then
6454 _ld_theora="-ltheora -logg"
6455 cc_check tremor/bitwise.c $_ld_theora &&
6456 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6460 if test "$_theora" = yes ; then
6461 def_theora='#define CONFIG_OGGTHEORA 1'
6462 _codecmodules="libtheora $_codecmodules"
6463 # when --enable-theora is forced, we'd better provide a probably sane
6464 # $_ld_theora than nothing
6465 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6466 else
6467 def_theora='#undef CONFIG_OGGTHEORA'
6468 _nocodecmodules="libtheora $_nocodecmodules"
6470 echores "$_theora"
6472 echocheck "internal mp3lib support"
6473 if test "$_mp3lib" = auto ; then
6474 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6476 if test "$_mp3lib" = yes ; then
6477 def_mp3lib='#define CONFIG_MP3LIB 1'
6478 _codecmodules="mp3lib(internal) $_codecmodules"
6479 else
6480 def_mp3lib='#undef CONFIG_MP3LIB'
6481 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6483 echores "$_mp3lib"
6485 echocheck "liba52 support"
6486 if test "$_liba52_internal" = auto ; then
6487 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6489 def_liba52='#undef CONFIG_LIBA52'
6490 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6491 if test "$_liba52_internal" = yes ; then
6492 _liba52=yes
6493 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6494 _res_comment="internal"
6495 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6496 _liba52=no
6497 cat > $TMPC << EOF
6498 #include <inttypes.h>
6499 #include <a52dec/a52.h>
6500 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6502 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6504 if test "$_liba52" = yes ; then
6505 def_liba52='#define CONFIG_LIBA52 1'
6506 _codecmodules="liba52($_res_comment) $_codecmodules"
6507 else
6508 _nocodecmodules="liba52 $_nocodecmodules"
6510 echores "$_liba52"
6512 echocheck "internal libmpeg2 support"
6513 if test "$_libmpeg2" = auto ; then
6514 _libmpeg2=yes
6515 if alpha && test cc_vendor=gnu; then
6516 case $cc_version in
6517 2*|3.0*|3.1*) # cannot compile MVI instructions
6518 _libmpeg2=no
6519 _res_comment="broken gcc"
6521 esac
6524 if test "$_libmpeg2" = yes ; then
6525 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6526 _codecmodules="libmpeg2(internal) $_codecmodules"
6527 else
6528 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6529 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6531 echores "$_libmpeg2"
6533 echocheck "libdca support"
6534 if test "$_libdca" = auto ; then
6535 _libdca=no
6536 cat > $TMPC << EOF
6537 #include <inttypes.h>
6538 #include <dts.h>
6539 int main(void) { dts_init(0); return 0; }
6541 for _ld_dca in -ldca -ldts ; do
6542 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6543 && _libdca=yes && break
6544 done
6546 if test "$_libdca" = yes ; then
6547 def_libdca='#define CONFIG_LIBDCA 1'
6548 _codecmodules="libdca $_codecmodules"
6549 else
6550 def_libdca='#undef CONFIG_LIBDCA'
6551 _nocodecmodules="libdca $_nocodecmodules"
6553 echores "$_libdca"
6555 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6556 if test "$_musepack" = auto ; then
6557 _musepack=no
6558 cat > $TMPC << EOF
6559 #include <stddef.h>
6560 #include <mpcdec/mpcdec.h>
6561 int main(void) {
6562 mpc_streaminfo info;
6563 mpc_decoder decoder;
6564 mpc_decoder_set_streaminfo(&decoder, &info);
6565 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6566 return 0;
6569 cc_check -lmpcdec $_ld_lm && _musepack=yes
6571 if test "$_musepack" = yes ; then
6572 def_musepack='#define CONFIG_MUSEPACK 1'
6573 extra_ldflags="$extra_ldflags -lmpcdec"
6574 _codecmodules="musepack $_codecmodules"
6575 else
6576 def_musepack='#undef CONFIG_MUSEPACK'
6577 _nocodecmodules="musepack $_nocodecmodules"
6579 echores "$_musepack"
6582 echocheck "FAAC support"
6583 if test "$_faac" = auto ; then
6584 cat > $TMPC <<EOF
6585 #include <inttypes.h>
6586 #include <faac.h>
6587 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6589 _faac=no
6590 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6591 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6592 done
6594 if test "$_faac" = yes ; then
6595 def_faac="#define CONFIG_FAAC 1"
6596 _codecmodules="faac $_codecmodules"
6597 else
6598 def_faac="#undef CONFIG_FAAC"
6599 _nocodecmodules="faac $_nocodecmodules"
6601 echores "$_faac"
6604 echocheck "FAAD2 support"
6605 if test "$_faad_internal" = auto ; then
6606 if x86_32 && test cc_vendor=gnu; then
6607 case $cc_version in
6608 3.1*|3.2) # ICE/insn with these versions
6609 _faad_internal=no
6610 _res_comment="broken gcc"
6613 _faad=yes
6614 _faad_internal=yes
6616 esac
6617 else
6618 _faad=yes
6619 _faad_internal=yes
6622 if test "$_faad" = auto ; then
6623 cat > $TMPC << EOF
6624 #include <faad.h>
6625 #ifndef FAAD_MIN_STREAMSIZE
6626 #error Too old version
6627 #endif
6628 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6629 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6631 cc_check -lfaad $_ld_lm && _faad=yes
6634 def_faad='#undef CONFIG_FAAD'
6635 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6636 if test "$_faad_internal" = yes ; then
6637 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6638 _res_comment="internal floating-point"
6639 if test "$_faad_fixed" = yes ; then
6640 # The FIXED_POINT implementation of FAAD2 improves performance
6641 # on some platforms, especially for SBR files.
6642 cflags_faad_fixed="-DFIXED_POINT"
6643 _res_comment="internal fixed-point"
6645 elif test "$_faad" = yes ; then
6646 extra_ldflags="$extra_ldflags -lfaad"
6649 if test "$_faad" = yes ; then
6650 def_faad='#define CONFIG_FAAD 1'
6651 if test "$_faad_internal" = yes ; then
6652 _codecmodules="faad2(internal) $_codecmodules"
6653 else
6654 _codecmodules="faad2 $_codecmodules"
6656 else
6657 _faad=no
6658 _nocodecmodules="faad2 $_nocodecmodules"
6660 echores "$_faad"
6663 echocheck "LADSPA plugin support"
6664 if test "$_ladspa" = auto ; then
6665 cat > $TMPC <<EOF
6666 #include <stdio.h>
6667 #include <ladspa.h>
6668 int main(void) {
6669 const LADSPA_Descriptor *ld = NULL;
6670 return 0;
6673 _ladspa=no
6674 cc_check && _ladspa=yes
6676 if test "$_ladspa" = yes; then
6677 def_ladspa="#define CONFIG_LADSPA 1"
6678 else
6679 def_ladspa="#undef CONFIG_LADSPA"
6681 echores "$_ladspa"
6684 echocheck "libbs2b audio filter support"
6685 if test "$_libbs2b" = auto ; then
6686 cat > $TMPC <<EOF
6687 #include <bs2b.h>
6688 #if BS2B_VERSION_MAJOR < 3
6689 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6690 #endif
6691 int main(void) {
6692 t_bs2bdp filter;
6693 filter=bs2b_open();
6694 bs2b_close(filter);
6695 return 0;
6698 _libbs2b=no
6699 if $_pkg_config --exists libbs2b ; then
6700 _inc_tmp=$($_pkg_config --cflags libbs2b)
6701 _ld_tmp=$($_pkg_config --libs libbs2b)
6702 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6703 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6704 else
6705 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6706 -I/usr/local/include/bs2b ; do
6707 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6708 extra_ldflags="$extra_ldflags -lbs2b"
6709 extra_cflags="$extra_cflags $_inc_tmp"
6710 _libbs2b=yes
6711 break
6713 done
6716 def_libbs2b="#undef CONFIG_LIBBS2B"
6717 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6718 echores "$_libbs2b"
6721 if test -z "$_codecsdir" ; then
6722 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6723 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6724 if test -d "$dir" ; then
6725 _codecsdir="$dir"
6726 break;
6728 done
6730 # Fall back on default directory.
6731 if test -z "$_codecsdir" ; then
6732 _codecsdir="$_libdir/codecs"
6733 mingw32 || os2 && _codecsdir="codecs"
6737 echocheck "Win32 codecs"
6738 if test "$_win32dll" = auto ; then
6739 _win32dll=no
6740 if x86_32 && ! qnx; then
6741 _win32dll=yes
6744 if test "$_win32dll" = yes ; then
6745 def_win32dll='#define CONFIG_WIN32DLL 1'
6746 if ! win32 ; then
6747 def_win32_loader='#define WIN32_LOADER 1'
6748 _win32_emulation=yes
6749 else
6750 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6751 _res_comment="using native windows"
6753 _codecmodules="win32 $_codecmodules"
6754 else
6755 def_win32dll='#undef CONFIG_WIN32DLL'
6756 def_win32_loader='#undef WIN32_LOADER'
6757 _nocodecmodules="win32 $_nocodecmodules"
6759 echores "$_win32dll"
6762 echocheck "XAnim codecs"
6763 if test "$_xanim" = auto ; then
6764 _xanim=no
6765 _res_comment="dynamic loader support needed"
6766 if test "$_dl" = yes ; then
6767 _xanim=yes
6770 if test "$_xanim" = yes ; then
6771 def_xanim='#define CONFIG_XANIM 1'
6772 _codecmodules="xanim $_codecmodules"
6773 else
6774 def_xanim='#undef CONFIG_XANIM'
6775 _nocodecmodules="xanim $_nocodecmodules"
6777 echores "$_xanim"
6780 echocheck "RealPlayer codecs"
6781 if test "$_real" = auto ; then
6782 _real=no
6783 _res_comment="dynamic loader support needed"
6784 if test "$_dl" = yes || test "$_win32dll" = yes &&
6785 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
6786 _real=yes
6789 if test "$_real" = yes ; then
6790 def_real='#define CONFIG_REALCODECS 1'
6791 _codecmodules="real $_codecmodules"
6792 else
6793 def_real='#undef CONFIG_REALCODECS'
6794 _nocodecmodules="real $_nocodecmodules"
6796 echores "$_real"
6799 echocheck "QuickTime codecs"
6800 _qtx_emulation=no
6801 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6802 if test "$_qtx" = auto ; then
6803 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6805 if test "$_qtx" = yes ; then
6806 def_qtx='#define CONFIG_QTX_CODECS 1'
6807 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6808 _codecmodules="qtx $_codecmodules"
6809 darwin || win32 || _qtx_emulation=yes
6810 else
6811 def_qtx='#undef CONFIG_QTX_CODECS'
6812 _nocodecmodules="qtx $_nocodecmodules"
6814 echores "$_qtx"
6816 echocheck "Nemesi Streaming Media libraries"
6817 if test "$_nemesi" = auto && test "$_network" = yes ; then
6818 _nemesi=no
6819 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6820 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6821 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6822 _nemesi=yes
6825 if test "$_nemesi" = yes; then
6826 _native_rtsp=no
6827 def_nemesi='#define CONFIG_LIBNEMESI 1'
6828 _inputmodules="nemesi $_inputmodules"
6829 else
6830 _native_rtsp="$_network"
6831 _nemesi=no
6832 def_nemesi='#undef CONFIG_LIBNEMESI'
6833 _noinputmodules="nemesi $_noinputmodules"
6835 echores "$_nemesi"
6837 echocheck "LIVE555 Streaming Media libraries"
6838 if test "$_live" = auto && test "$_network" = yes ; then
6839 cat > $TMPCPP << EOF
6840 #include <liveMedia.hh>
6841 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6842 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6843 #endif
6844 int main(void) { return 0; }
6847 _live=no
6848 for I in $extra_cflags "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/lib64/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
6849 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6850 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6851 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6852 $_livelibdir/groupsock/libgroupsock.a \
6853 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6854 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6855 $extra_ldflags -lstdc++" \
6856 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6857 -I$_livelibdir/UsageEnvironment/include \
6858 -I$_livelibdir/BasicUsageEnvironment/include \
6859 -I$_livelibdir/groupsock/include" && \
6860 _live=yes && break
6861 done
6862 if test "$_live" != yes ; then
6863 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6864 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6865 _live_dist=yes
6869 if test "$_live" = yes && test "$_network" = yes; then
6870 test $_livelibdir && _res_comment="using $_livelibdir"
6871 def_live='#define CONFIG_LIVE555 1'
6872 _inputmodules="live555 $_inputmodules"
6873 elif test "$_live_dist" = yes && test "$_network" = yes; then
6874 _res_comment="using distribution version"
6875 _live="yes"
6876 def_live='#define CONFIG_LIVE555 1'
6877 extra_ldflags="$extra_ldflags $ld_tmp"
6878 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6879 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6880 _inputmodules="live555 $_inputmodules"
6881 else
6882 _live=no
6883 def_live='#undef CONFIG_LIVE555'
6884 _noinputmodules="live555 $_noinputmodules"
6886 echores "$_live"
6889 echocheck "FFmpeg libavutil"
6890 if test "$_libavutil" = auto ; then
6891 _libavutil=no
6892 cat > $TMPC << EOF
6893 #include <libavutil/common.h>
6894 int main(void) { av_clip(1, 1, 1); return 0; }
6896 if $_pkg_config --exists libavutil ; then
6897 _inc_libavutil=$($_pkg_config --cflags libavutil)
6898 _ld_tmp=$($_pkg_config --libs libavutil)
6899 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6900 && _libavutil=yes
6901 elif cc_check -lavutil $_ld_lm ; then
6902 extra_ldflags="$extra_ldflags -lavutil"
6903 _libavutil=yes
6906 def_libavutil='#undef CONFIG_LIBAVUTIL'
6907 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6908 # libavutil is not available, but it is mandatory ...
6909 if test "$_libavutil" = no ; then
6910 die "You need libavutil, MPlayer will not compile without!"
6912 echores "$_libavutil"
6914 echocheck "FFmpeg libavcodec"
6915 if test "$_libavcodec" = auto ; then
6916 _libavcodec=no
6917 cat > $TMPC << EOF
6918 #include <libavcodec/avcodec.h>
6919 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6921 if $_pkg_config --exists libavcodec ; then
6922 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6923 _ld_tmp=$($_pkg_config --libs libavcodec)
6924 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6925 && _libavcodec=yes
6926 elif cc_check -lavcodec $_ld_lm ; then
6927 extra_ldflags="$extra_ldflags -lavcodec"
6928 _libavcodec=yes
6931 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6932 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6933 if test "$_libavcodec" = yes ; then
6934 _codecmodules="libavcodec $_codecmodules"
6935 else
6936 _nocodecmodules="libavcodec $_nocodecmodules"
6938 echores "$_libavcodec"
6940 echocheck "FFmpeg libavformat"
6941 if test "$_libavformat" = auto ; then
6942 _libavformat=no
6943 cat > $TMPC <<EOF
6944 #include <libavformat/avformat.h>
6945 #include <libavcodec/opt.h>
6946 int main(void) { av_alloc_format_context(); return 0; }
6948 if $_pkg_config --exists libavformat ; then
6949 _inc_libavformat=$($_pkg_config --cflags libavformat)
6950 _ld_tmp=$($_pkg_config --libs libavformat)
6951 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6952 && _libavformat=yes
6953 elif cc_check $_ld_lm -lavformat ; then
6954 extra_ldflags="$extra_ldflags -lavformat"
6955 _libavformat=yes
6958 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6959 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6960 echores "$_libavformat"
6962 echocheck "FFmpeg libpostproc"
6963 if test "$_libpostproc" = auto ; then
6964 _libpostproc=no
6965 cat > $TMPC << EOF
6966 #include <inttypes.h>
6967 #include <libpostproc/postprocess.h>
6968 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6970 if $_pkg_config --exists libpostproc ; then
6971 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6972 _ld_tmp=$($_pkg_config --libs libpostproc)
6973 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6974 && _libpostproc=yes
6975 elif cc_check -lpostproc $_ld_lm ; then
6976 extra_ldflags="$extra_ldflags -lpostproc"
6977 _libpostproc=yes
6980 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6981 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6982 echores "$_libpostproc"
6984 echocheck "FFmpeg libswscale"
6985 if test "$_libswscale" = auto ; then
6986 _libswscale=no
6987 cat > $TMPC << EOF
6988 #include <libswscale/swscale.h>
6989 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6991 if $_pkg_config --exists libswscale ; then
6992 _inc_libswscale=$($_pkg_config --cflags libswscale)
6993 _ld_tmp=$($_pkg_config --libs libswscale)
6994 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6995 && _libswscale=yes
6996 elif cc_check -lswscale ; then
6997 extra_ldflags="$extra_ldflags -lswscale"
6998 _libswscale=yes
7001 def_libswscale='#undef CONFIG_LIBSWSCALE'
7002 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7003 echores "$_libswscale"
7005 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
7006 if ! test -z "$_ffmpeg_source" ; then
7007 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
7010 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
7011 if ! test -z "$_ffmpeg_source" ; then
7012 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
7015 echocheck "libdv-0.9.5+"
7016 if test "$_libdv" = auto ; then
7017 _libdv=no
7018 cat > $TMPC <<EOF
7019 #include <libdv/dv.h>
7020 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7022 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7024 if test "$_libdv" = yes ; then
7025 def_libdv='#define CONFIG_LIBDV095 1'
7026 extra_ldflags="$extra_ldflags -ldv"
7027 _codecmodules="libdv $_codecmodules"
7028 else
7029 def_libdv='#undef CONFIG_LIBDV095'
7030 _nocodecmodules="libdv $_nocodecmodules"
7032 echores "$_libdv"
7035 echocheck "Xvid"
7036 if test "$_xvid" = auto ; then
7037 _xvid=no
7038 cat > $TMPC << EOF
7039 #include <xvid.h>
7040 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7042 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7043 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7044 done
7047 if test "$_xvid" = yes ; then
7048 def_xvid='#define CONFIG_XVID4 1'
7049 _codecmodules="xvid $_codecmodules"
7050 else
7051 def_xvid='#undef CONFIG_XVID4'
7052 _nocodecmodules="xvid $_nocodecmodules"
7054 echores "$_xvid"
7056 echocheck "x264"
7057 if test "$_x264" = auto ; then
7058 cat > $TMPC << EOF
7059 #include <inttypes.h>
7060 #include <x264.h>
7061 #if X264_BUILD < 89
7062 #error We do not support old versions of x264. Get the latest from git.
7063 #endif
7064 int main(void) { x264_encoder_open((void*)0); return 0; }
7066 _x264=no
7067 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7068 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7069 done
7072 if test "$_x264" = yes ; then
7073 def_x264='#define CONFIG_X264 1'
7074 _codecmodules="x264 $_codecmodules"
7075 else
7076 def_x264='#undef CONFIG_X264'
7077 _nocodecmodules="x264 $_nocodecmodules"
7079 echores "$_x264"
7081 echocheck "libnut"
7082 if test "$_libnut" = auto ; then
7083 cat > $TMPC << EOF
7084 #include <stdio.h>
7085 #include <stdlib.h>
7086 #include <inttypes.h>
7087 #include <libnut.h>
7088 nut_context_tt * nut;
7089 int main(void) { (void)nut_error(0); return 0; }
7091 _libnut=no
7092 cc_check -lnut && _libnut=yes
7095 if test "$_libnut" = yes ; then
7096 def_libnut='#define CONFIG_LIBNUT 1'
7097 extra_ldflags="$extra_ldflags -lnut"
7098 else
7099 def_libnut='#undef CONFIG_LIBNUT'
7101 echores "$_libnut"
7103 # These VO checks must be done after libavcodec/libswscale one
7104 echocheck "/dev/mga_vid"
7105 if test "$_mga" = auto ; then
7106 _mga=no
7107 test -c /dev/mga_vid && _mga=yes
7109 if test "$_mga" = yes ; then
7110 if test "$_libswscale_internals" = yes ; then
7111 def_mga='#define CONFIG_MGA 1'
7112 _vomodules="mga $_vomodules"
7113 else
7114 _res_comment="libswscale internal headers are required by mga, sorry"
7115 def_mga='#undef CONFIG_MGA'
7116 _novomodules="mga $_novomodules"
7118 else
7119 def_mga='#undef CONFIG_MGA'
7120 _novomodules="mga $_novomodules"
7122 echores "$_mga"
7125 echocheck "xmga"
7126 if test "$_xmga" = auto ; then
7127 _xmga=no
7128 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
7130 if test "$_xmga" = yes ; then
7131 if test "$_libswscale_internals" = yes ; then
7132 def_xmga='#define CONFIG_XMGA 1'
7133 _vomodules="xmga $_vomodules"
7134 else
7135 _res_comment="libswscale internal headers are required by mga, sorry"
7136 def_xmga='#undef CONFIG_XMGA'
7137 _novomodules="xmga $_novomodules"
7139 else
7140 def_xmga='#undef CONFIG_XMGA'
7141 _novomodules="xmga $_novomodules"
7143 echores "$_xmga"
7145 echocheck "zr"
7146 if test "$_zr" = auto ; then
7147 #36067's seem to identify themselves as 36057PQC's, so the line
7148 #below should work for 36067's and 36057's.
7149 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7150 _zr=yes
7151 else
7152 _zr=no
7155 if test "$_zr" = yes ; then
7156 if test "$_libavcodec_internals" = yes ; then
7157 def_zr='#define CONFIG_ZR 1'
7158 _vomodules="zr zr2 $_vomodules"
7159 else
7160 _res_comment="libavcodec internal headers are required by zr, sorry"
7161 _novomodules="zr $_novomodules"
7162 def_zr='#undef CONFIG_ZR'
7164 else
7165 def_zr='#undef CONFIG_ZR'
7166 _novomodules="zr zr2 $_novomodules"
7168 echores "$_zr"
7170 # mencoder requires (optional) those libs: libmp3lame
7171 if test "$_mencoder" != no ; then
7173 echocheck "libmp3lame"
7174 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7175 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7176 if test "$_mp3lame" = auto ; then
7177 _mp3lame=no
7178 cat > $TMPC <<EOF
7179 #include <lame/lame.h>
7180 int main(void) { lame_version_t lv; (void) lame_init();
7181 get_lame_version_numerical(&lv);
7182 return 0; }
7184 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7186 if test "$_mp3lame" = yes ; then
7187 def_mp3lame="#define CONFIG_MP3LAME 1"
7188 _ld_mp3lame=-lmp3lame
7189 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7190 cat > $TMPC << EOF
7191 #include <lame/lame.h>
7192 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7194 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7195 cat > $TMPC << EOF
7196 #include <lame/lame.h>
7197 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7199 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7200 else
7201 def_mp3lame='#undef CONFIG_MP3LAME'
7203 echores "$_mp3lame"
7205 fi # test "$_mencoder" != no
7207 echocheck "mencoder"
7208 if test "$_mencoder" = yes ; then
7209 def_muxers='#define CONFIG_MUXERS 1'
7210 else
7211 def_muxers='#define CONFIG_MUXERS 0'
7213 echores "$_mencoder"
7216 echocheck "UnRAR executable"
7217 if test "$_unrar_exec" = auto ; then
7218 _unrar_exec="yes"
7219 mingw32 && _unrar_exec="no"
7221 if test "$_unrar_exec" = yes ; then
7222 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7223 else
7224 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7226 echores "$_unrar_exec"
7228 echocheck "TV interface"
7229 if test "$_tv" = yes ; then
7230 def_tv='#define CONFIG_TV 1'
7231 _inputmodules="tv $_inputmodules"
7232 else
7233 _noinputmodules="tv $_noinputmodules"
7234 def_tv='#undef CONFIG_TV'
7236 echores "$_tv"
7239 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7240 echocheck "*BSD BT848 bt8xx header"
7241 _ioctl_bt848_h=no
7242 for file in "machine/ioctl_bt848.h" \
7243 "dev/bktr/ioctl_bt848.h" \
7244 "dev/video/bktr/ioctl_bt848.h" \
7245 "dev/ic/bt8xx.h" ; do
7246 cat > $TMPC <<EOF
7247 #include <sys/types.h>
7248 #include <sys/ioctl.h>
7249 #include <$file>
7250 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7252 if cc_check ; then
7253 _ioctl_bt848_h=yes
7254 _ioctl_bt848_h_name="$file"
7255 break;
7257 done
7258 if test "$_ioctl_bt848_h" = yes ; then
7259 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7260 _res_comment="using $_ioctl_bt848_h_name"
7261 else
7262 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7264 echores "$_ioctl_bt848_h"
7266 echocheck "*BSD ioctl_meteor.h"
7267 _ioctl_meteor_h=no
7268 for file in "machine/ioctl_meteor.h" \
7269 "dev/bktr/ioctl_meteor.h" \
7270 "dev/video/bktr/ioctl_meteor.h" ; do
7271 cat > $TMPC <<EOF
7272 #include <sys/types.h>
7273 #include <$file>
7274 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7276 if cc_check ; then
7277 _ioctl_meteor_h=yes
7278 _ioctl_meteor_h_name="$file"
7279 break;
7281 done
7282 if test "$_ioctl_meteor_h" = yes ; then
7283 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7284 _res_comment="using $_ioctl_meteor_h_name"
7285 else
7286 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7288 echores "$_ioctl_meteor_h"
7290 echocheck "*BSD BrookTree 848 TV interface"
7291 if test "$_tv_bsdbt848" = auto ; then
7292 _tv_bsdbt848=no
7293 if test "$_tv" = yes ; then
7294 cat > $TMPC <<EOF
7295 #include <sys/types.h>
7296 $def_ioctl_meteor_h_name
7297 $def_ioctl_bt848_h_name
7298 #ifdef IOCTL_METEOR_H_NAME
7299 #include IOCTL_METEOR_H_NAME
7300 #endif
7301 #ifdef IOCTL_BT848_H_NAME
7302 #include IOCTL_BT848_H_NAME
7303 #endif
7304 int main(void) {
7305 ioctl(0, METEORSINPUT, 0);
7306 ioctl(0, TVTUNER_GETFREQ, 0);
7307 return 0;
7310 cc_check && _tv_bsdbt848=yes
7313 if test "$_tv_bsdbt848" = yes ; then
7314 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7315 _inputmodules="tv-bsdbt848 $_inputmodules"
7316 else
7317 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7318 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7320 echores "$_tv_bsdbt848"
7321 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7324 echocheck "DirectShow TV interface"
7325 if test "$_tv_dshow" = auto ; then
7326 _tv_dshow=no
7327 if test "$_tv" = yes && win32 ; then
7328 cat > $TMPC <<EOF
7329 #include <ole2.h>
7330 int main(void) {
7331 void* p;
7332 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7333 return 0;
7336 cc_check -lole32 -luuid && _tv_dshow=yes
7339 if test "$_tv_dshow" = yes ; then
7340 _inputmodules="tv-dshow $_inputmodules"
7341 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7342 extra_ldflags="$extra_ldflags -lole32 -luuid"
7343 else
7344 _noinputmodules="tv-dshow $_noinputmodules"
7345 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7347 echores "$_tv_dshow"
7350 echocheck "Video 4 Linux TV interface"
7351 if test "$_tv_v4l1" = auto ; then
7352 _tv_v4l1=no
7353 if test "$_tv" = yes && linux ; then
7354 cat > $TMPC <<EOF
7355 #include <stdlib.h>
7356 #include <linux/videodev.h>
7357 int main(void) { return 0; }
7359 cc_check && _tv_v4l1=yes
7362 if test "$_tv_v4l1" = yes ; then
7363 _audio_input=yes
7364 _tv_v4l=yes
7365 def_tv_v4l='#define CONFIG_TV_V4L 1'
7366 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7367 _inputmodules="tv-v4l $_inputmodules"
7368 else
7369 _noinputmodules="tv-v4l1 $_noinputmodules"
7370 def_tv_v4l='#undef CONFIG_TV_V4L'
7372 echores "$_tv_v4l1"
7375 echocheck "Video 4 Linux 2 TV interface"
7376 if test "$_tv_v4l2" = auto ; then
7377 _tv_v4l2=no
7378 if test "$_tv" = yes && linux ; then
7379 cat > $TMPC <<EOF
7380 #include <stdlib.h>
7381 #include <linux/types.h>
7382 #include <linux/videodev2.h>
7383 int main(void) { return 0; }
7385 cc_check && _tv_v4l2=yes
7388 if test "$_tv_v4l2" = yes ; then
7389 _audio_input=yes
7390 _tv_v4l=yes
7391 def_tv_v4l='#define CONFIG_TV_V4L 1'
7392 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7393 _inputmodules="tv-v4l2 $_inputmodules"
7394 else
7395 _noinputmodules="tv-v4l2 $_noinputmodules"
7396 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7398 echores "$_tv_v4l2"
7401 echocheck "Radio interface"
7402 if test "$_radio" = yes ; then
7403 def_radio='#define CONFIG_RADIO 1'
7404 _inputmodules="radio $_inputmodules"
7405 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7406 _radio_capture=no
7408 if test "$_radio_capture" = yes ; then
7409 _audio_input=yes
7410 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7411 else
7412 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7414 else
7415 _noinputmodules="radio $_noinputmodules"
7416 def_radio='#undef CONFIG_RADIO'
7417 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7418 _radio_capture=no
7420 echores "$_radio"
7421 echocheck "Capture for Radio interface"
7422 echores "$_radio_capture"
7424 echocheck "Video 4 Linux 2 Radio interface"
7425 if test "$_radio_v4l2" = auto ; then
7426 _radio_v4l2=no
7427 if test "$_radio" = yes && linux ; then
7428 cat > $TMPC <<EOF
7429 #include <stdlib.h>
7430 #include <linux/types.h>
7431 #include <linux/videodev2.h>
7432 int main(void) { return 0; }
7434 cc_check && _radio_v4l2=yes
7437 if test "$_radio_v4l2" = yes ; then
7438 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7439 else
7440 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7442 echores "$_radio_v4l2"
7444 echocheck "Video 4 Linux Radio interface"
7445 if test "$_radio_v4l" = auto ; then
7446 _radio_v4l=no
7447 if test "$_radio" = yes && linux ; then
7448 cat > $TMPC <<EOF
7449 #include <stdlib.h>
7450 #include <linux/videodev.h>
7451 int main(void) { return 0; }
7453 cc_check && _radio_v4l=yes
7456 if test "$_radio_v4l" = yes ; then
7457 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7458 else
7459 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7461 echores "$_radio_v4l"
7463 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7464 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7465 echocheck "*BSD BrookTree 848 Radio interface"
7466 _radio_bsdbt848=no
7467 cat > $TMPC <<EOF
7468 #include <sys/types.h>
7469 $def_ioctl_bt848_h_name
7470 #ifdef IOCTL_BT848_H_NAME
7471 #include IOCTL_BT848_H_NAME
7472 #endif
7473 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7475 cc_check && _radio_bsdbt848=yes
7476 echores "$_radio_bsdbt848"
7477 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7479 if test "$_radio_bsdbt848" = yes ; then
7480 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7481 else
7482 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7485 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7486 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7487 die "Radio driver requires BSD BT848, V4L or V4L2!"
7490 echocheck "Video 4 Linux 2 MPEG PVR interface"
7491 if test "$_pvr" = auto ; then
7492 _pvr=no
7493 if test "$_tv_v4l2" = yes && linux ; then
7494 cat > $TMPC <<EOF
7495 #include <stdlib.h>
7496 #include <inttypes.h>
7497 #include <linux/types.h>
7498 #include <linux/videodev2.h>
7499 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7501 cc_check && _pvr=yes
7504 if test "$_pvr" = yes ; then
7505 def_pvr='#define CONFIG_PVR 1'
7506 _inputmodules="pvr $_inputmodules"
7507 else
7508 _noinputmodules="pvr $_noinputmodules"
7509 def_pvr='#undef CONFIG_PVR'
7511 echores "$_pvr"
7514 echocheck "ftp"
7515 if ! beos && test "$_ftp" = yes ; then
7516 def_ftp='#define CONFIG_FTP 1'
7517 _inputmodules="ftp $_inputmodules"
7518 else
7519 _noinputmodules="ftp $_noinputmodules"
7520 def_ftp='#undef CONFIG_FTP'
7522 echores "$_ftp"
7524 echocheck "vstream client"
7525 if test "$_vstream" = auto ; then
7526 _vstream=no
7527 cat > $TMPC <<EOF
7528 #include <vstream-client.h>
7529 void vstream_error(const char *format, ... ) {}
7530 int main(void) { vstream_start(); return 0; }
7532 cc_check -lvstream-client && _vstream=yes
7534 if test "$_vstream" = yes ; then
7535 def_vstream='#define CONFIG_VSTREAM 1'
7536 _inputmodules="vstream $_inputmodules"
7537 extra_ldflags="$extra_ldflags -lvstream-client"
7538 else
7539 _noinputmodules="vstream $_noinputmodules"
7540 def_vstream='#undef CONFIG_VSTREAM'
7542 echores "$_vstream"
7545 echocheck "OSD menu"
7546 if test "$_menu" = yes ; then
7547 def_menu='#define CONFIG_MENU 1'
7548 test $_dvbin = "yes" && _menu_dvbin=yes
7549 else
7550 def_menu='#undef CONFIG_MENU'
7551 _menu_dvbin=no
7553 echores "$_menu"
7556 echocheck "Subtitles sorting"
7557 if test "$_sortsub" = yes ; then
7558 def_sortsub='#define CONFIG_SORTSUB 1'
7559 else
7560 def_sortsub='#undef CONFIG_SORTSUB'
7562 echores "$_sortsub"
7565 echocheck "XMMS inputplugin support"
7566 if test "$_xmms" = yes ; then
7567 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7568 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7569 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7570 else
7571 _xmmsplugindir=/usr/lib/xmms/Input
7572 _xmmslibdir=/usr/lib
7575 def_xmms='#define CONFIG_XMMS 1'
7576 if darwin ; then
7577 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7578 else
7579 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7581 else
7582 def_xmms='#undef CONFIG_XMMS'
7584 echores "$_xmms"
7586 if test "$_charset" != "noconv" ; then
7587 def_charset="#define MSG_CHARSET \"$_charset\""
7588 else
7589 def_charset="#undef MSG_CHARSET"
7590 _charset="UTF-8"
7593 #############################################################################
7595 echocheck "automatic gdb attach"
7596 if test "$_crash_debug" = yes ; then
7597 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7598 else
7599 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7600 _crash_debug=no
7602 echores "$_crash_debug"
7604 echocheck "compiler support for noexecstack"
7605 cat > $TMPC <<EOF
7606 int main(void) { return 0; }
7608 if cc_check -Wl,-z,noexecstack ; then
7609 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7610 echores "yes"
7611 else
7612 echores "no"
7615 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
7616 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
7617 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
7618 echores "yes"
7619 else
7620 echores "no"
7624 # Dynamic linking flags
7625 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7626 _ld_dl_dynamic=''
7627 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7628 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7629 _ld_dl_dynamic='-rdynamic'
7632 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7633 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7634 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7636 def_debug='#undef MP_DEBUG'
7637 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7640 echocheck "joystick"
7641 def_joystick='#undef CONFIG_JOYSTICK'
7642 if test "$_joystick" = yes ; then
7643 if linux ; then
7644 # TODO add some check
7645 def_joystick='#define CONFIG_JOYSTICK 1'
7646 else
7647 _joystick="no"
7648 _res_comment="unsupported under $system_name"
7651 echores "$_joystick"
7653 echocheck "lirc"
7654 if test "$_lirc" = auto ; then
7655 _lirc=no
7656 cat > $TMPC <<EOF
7657 #include <lirc/lirc_client.h>
7658 int main(void) { return 0; }
7660 cc_check -llirc_client && _lirc=yes
7662 if test "$_lirc" = yes ; then
7663 def_lirc='#define CONFIG_LIRC 1'
7664 libs_mplayer="$libs_mplayer -llirc_client"
7665 else
7666 def_lirc='#undef CONFIG_LIRC'
7668 echores "$_lirc"
7670 echocheck "lircc"
7671 if test "$_lircc" = auto ; then
7672 _lircc=no
7673 cat > $TMPC <<EOF
7674 #include <lirc/lircc.h>
7675 int main(void) { return 0; }
7677 cc_check -llircc && _lircc=yes
7679 if test "$_lircc" = yes ; then
7680 def_lircc='#define CONFIG_LIRCC 1'
7681 libs_mplayer="$libs_mplayer -llircc"
7682 else
7683 def_lircc='#undef CONFIG_LIRCC'
7685 echores "$_lircc"
7687 if arm; then
7688 # Detect maemo development platform libraries availability (http://www.maemo.org),
7689 # they are used when run on Nokia 770|8x0
7690 echocheck "maemo (Nokia 770|8x0)"
7691 if test "$_maemo" = auto ; then
7692 _maemo=no
7693 cat > $TMPC << EOF
7694 #include <libosso.h>
7695 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7697 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7699 if test "$_maemo" = yes ; then
7700 def_maemo='#define CONFIG_MAEMO 1'
7701 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7702 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7703 else
7704 def_maemo='#undef CONFIG_MAEMO'
7706 echores "$_maemo"
7709 #############################################################################
7711 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7712 # the OMF format needs to come after the 'extern symbol prefix' check, which
7713 # uses nm.
7714 if os2 ; then
7715 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7718 # linker paths should be the same for mencoder and mplayer
7719 _ld_tmp=""
7720 for I in $libs_mplayer ; do
7721 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7722 if test -z "$_tmp" ; then
7723 extra_ldflags="$extra_ldflags $I"
7724 else
7725 _ld_tmp="$_ld_tmp $I"
7727 done
7728 libs_mplayer=$_ld_tmp
7731 #############################################################################
7732 # 64 bit file offsets?
7733 if test "$_largefiles" = yes || freebsd ; then
7734 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7735 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7736 # dvdread support requires this (for off64_t)
7737 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7741 CXXFLAGS=" $CFLAGS -Iffmpeg -D__STDC_LIMIT_MACROS"
7743 # This must be the last test to be performed. Any other tests following it
7744 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7745 # against libdvdread (to permit MPlayer to use its own copy of the library).
7746 # So any compilation using the flags added here but not linking against
7747 # libdvdread can fail.
7748 echocheck "DVD support (libdvdnav)"
7749 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7750 _dvdnav=no
7752 dvdnav_internal=no
7753 if test "$_dvdnav" = auto ; then
7754 if test "$_dvdread_internal" = yes ; then
7755 _dvdnav=yes
7756 dvdnav_internal=yes
7757 _res_comment="internal"
7758 else
7759 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7762 if test "$_dvdnav" = auto ; then
7763 cat > $TMPC <<EOF
7764 #include <inttypes.h>
7765 #include <dvdnav/dvdnav.h>
7766 int main(void) { dvdnav_t *dvd=0; return 0; }
7768 _dvdnav=no
7769 _dvdnavdir=$($_dvdnavconfig --cflags)
7770 _dvdnavlibs=$($_dvdnavconfig --libs)
7771 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7773 if test "$_dvdnav" = yes ; then
7774 _largefiles=yes
7775 def_dvdnav='#define CONFIG_DVDNAV 1'
7776 if test "$dvdnav_internal" = yes ; then
7777 cflags_libdvdnav="-Ilibdvdnav"
7778 _inputmodules="dvdnav(internal) $_inputmodules"
7779 else
7780 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7781 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7782 _inputmodules="dvdnav $_inputmodules"
7784 else
7785 def_dvdnav='#undef CONFIG_DVDNAV'
7786 _noinputmodules="dvdnav $_noinputmodules"
7788 echores "$_dvdnav"
7790 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7791 # Read dvdnav comment above.
7793 mak_enable () {
7794 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7795 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7796 nprefix=$3;
7797 for part in $list; do
7798 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7799 echo "${nprefix}_$part = yes"
7801 done
7804 #############################################################################
7805 echo "Creating config.mak"
7806 cat > config.mak << EOF
7807 # -------- Generated by configure -----------
7809 # Ensure that locale settings do not interfere with shell commands.
7810 export LC_ALL = C
7812 CONFIGURATION = $_configuration
7814 CHARSET = $_charset
7815 DOC_LANGS = $language_doc
7816 DOC_LANG_ALL = $doc_lang_all
7817 MAN_LANGS = $language_man
7818 MAN_LANG_ALL = $man_lang_all
7819 MSG_LANGS = $language_msg
7820 MSG_LANG_ALL = $msg_lang_all
7822 prefix = \$(DESTDIR)$_prefix
7823 BINDIR = \$(DESTDIR)$_bindir
7824 DATADIR = \$(DESTDIR)$_datadir
7825 LIBDIR = \$(DESTDIR)$_libdir
7826 MANDIR = \$(DESTDIR)$_mandir
7827 CONFDIR = \$(DESTDIR)$_confdir
7828 LOCALEDIR = \$(DESTDIR)$_localedir
7830 AR = $_ar
7831 AS = $_cc
7832 CC = $_cc
7833 CXX = $_cc
7834 HOST_CC = $_host_cc
7835 INSTALL = $_install
7836 INSTALLSTRIP = $_install_strip
7837 WINDRES = $_windres
7839 CFLAGS = $CFLAGS $extra_cflags
7840 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7842 CFLAGS_DHAHELPER = $cflags_dhahelper
7843 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7844 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7845 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7846 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7847 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7848 CFLAGS_STACKREALIGN = $cflags_stackrealign
7849 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7850 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7852 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7853 EXTRALIBS_MPLAYER = $libs_mplayer
7854 EXTRALIBS_MENCODER = $libs_mencoder
7856 GETCH = $_getch
7857 TIMER = $_timer
7859 EXESUF = $_exesuf
7860 EXESUFS_ALL = .exe
7862 ARCH = $arch
7863 $(mak_enable "$arch_all" "$arch" ARCH)
7864 $(mak_enable "$subarch_all" "$subarch" ARCH)
7865 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
7867 MENCODER = $_mencoder
7868 MPLAYER = $_mplayer
7870 NEED_GETTIMEOFDAY = $_need_gettimeofday
7871 NEED_GLOB = $_need_glob
7872 NEED_MMAP = $_need_mmap
7873 NEED_SETENV = $_need_setenv
7874 NEED_SHMEM = $_need_shmem
7875 NEED_STRSEP = $_need_strsep
7876 NEED_SWAB = $_need_swab
7877 NEED_VSSCANF = $_need_vsscanf
7879 # features
7880 3DFX = $_3dfx
7881 AA = $_aa
7882 ALSA1X = $_alsa1x
7883 ALSA9 = $_alsa9
7884 ALSA5 = $_alsa5
7885 APPLE_IR = $_apple_ir
7886 APPLE_REMOTE = $_apple_remote
7887 ARTS = $_arts
7888 AUDIO_INPUT = $_audio_input
7889 BITMAP_FONT = $_bitmap_font
7890 BL = $_bl
7891 CACA = $_caca
7892 CDDA = $_cdda
7893 CDDB = $_cddb
7894 COREAUDIO = $_coreaudio
7895 COREVIDEO = $_corevideo
7896 DART = $_dart
7897 DFBMGA = $_dfbmga
7898 DGA = $_dga
7899 DIRECT3D = $_direct3d
7900 DIRECTFB = $_directfb
7901 DIRECTX = $_directx
7902 DVBIN = $_dvbin
7903 DVDNAV = $_dvdnav
7904 DVDNAV_INTERNAL = $dvdnav_internal
7905 DVDREAD = $_dvdread
7906 DVDREAD_INTERNAL = $_dvdread_internal
7907 DXR2 = $_dxr2
7908 DXR3 = $_dxr3
7909 ESD = $_esd
7910 FAAC=$_faac
7911 FAAD = $_faad
7912 FAAD_INTERNAL = $_faad_internal
7913 FASTMEMCPY = $_fastmemcpy
7914 FBDEV = $_fbdev
7915 FREETYPE = $_freetype
7916 FTP = $_ftp
7917 GIF = $_gif
7918 GGI = $_ggi
7919 GL = $_gl
7920 GL_WIN32 = $_gl_win32
7921 GL_X11 = $_gl_x11
7922 MATRIXVIEW = $matrixview
7923 HAVE_POSIX_SELECT = $_posix_select
7924 HAVE_SYS_MMAN_H = $_mman
7925 IVTV = $_ivtv
7926 JACK = $_jack
7927 JOYSTICK = $_joystick
7928 JPEG = $_jpeg
7929 KAI = $_kai
7930 KVA = $_kva
7931 LADSPA = $_ladspa
7932 LIBA52 = $_liba52
7933 LIBA52_INTERNAL = $_liba52_internal
7934 LIBASS = $_ass
7935 LIBBS2B = $_libbs2b
7936 LIBDCA = $_libdca
7937 LIBDV = $_libdv
7938 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7939 LIBLZO = $_liblzo
7940 LIBMAD = $_mad
7941 LIBMENU = $_menu
7942 LIBMENU_DVBIN = $_menu_dvbin
7943 LIBMPEG2 = $_libmpeg2
7944 LIBNEMESI = $_nemesi
7945 LIBNUT = $_libnut
7946 LIBSMBCLIENT = $_smb
7947 LIBTHEORA = $_theora
7948 LIRC = $_lirc
7949 LIVE555 = $_live
7950 MACOSX_FINDER = $_macosx_finder
7951 MD5SUM = $_md5sum
7952 MGA = $_mga
7953 MNG = $_mng
7954 MP3LAME = $_mp3lame
7955 MP3LIB = $_mp3lib
7956 MUSEPACK = $_musepack
7957 NAS = $_nas
7958 NATIVE_RTSP = $_native_rtsp
7959 NETWORK = $_network
7960 OPENAL = $_openal
7961 OSS = $_ossaudio
7962 PE_EXECUTABLE = $_pe_executable
7963 PNG = $_png
7964 PNM = $_pnm
7965 PRIORITY = $_priority
7966 PULSE = $_pulse
7967 PVR = $_pvr
7968 QTX_CODECS = $_qtx
7969 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7970 QTX_EMULATION = $_qtx_emulation
7971 QUARTZ = $_quartz
7972 RADIO=$_radio
7973 RADIO_CAPTURE=$_radio_capture
7974 REAL_CODECS = $_real
7975 S3FB = $_s3fb
7976 SDL = $_sdl
7977 SPEEX = $_speex
7978 STREAM_CACHE = $_stream_cache
7979 SGIAUDIO = $_sgiaudio
7980 SUNAUDIO = $_sunaudio
7981 SVGA = $_svga
7982 TDFXFB = $_tdfxfb
7983 TDFXVID = $_tdfxvid
7984 TGA = $_tga
7985 TOOLAME=$_toolame
7986 TREMOR_INTERNAL = $_tremor_internal
7987 TV = $_tv
7988 TV_BSDBT848 = $_tv_bsdbt848
7989 TV_DSHOW = $_tv_dshow
7990 TV_V4L = $_tv_v4l
7991 TV_V4L1 = $_tv_v4l1
7992 TV_V4L2 = $_tv_v4l2
7993 TWOLAME=$_twolame
7994 UNRAR_EXEC = $_unrar_exec
7995 V4L2 = $_v4l2
7996 VCD = $_vcd
7997 VDPAU = $_vdpau
7998 VESA = $_vesa
7999 VIDIX = $_vidix
8000 VIDIX_PCIDB = $_vidix_pcidb_val
8001 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8002 VIDIX_IVTV=$_vidix_drv_ivtv
8003 VIDIX_MACH64=$_vidix_drv_mach64
8004 VIDIX_MGA=$_vidix_drv_mga
8005 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8006 VIDIX_NVIDIA=$_vidix_drv_nvidia
8007 VIDIX_PM2=$_vidix_drv_pm2
8008 VIDIX_PM3=$_vidix_drv_pm3
8009 VIDIX_RADEON=$_vidix_drv_radeon
8010 VIDIX_RAGE128=$_vidix_drv_rage128
8011 VIDIX_S3=$_vidix_drv_s3
8012 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8013 VIDIX_SIS=$_vidix_drv_sis
8014 VIDIX_UNICHROME=$_vidix_drv_unichrome
8015 VORBIS = $_vorbis
8016 VSTREAM = $_vstream
8017 WII = $_wii
8018 WIN32DLL = $_win32dll
8019 WIN32WAVEOUT = $_win32waveout
8020 WIN32_EMULATION = $_win32_emulation
8021 WINVIDIX = $winvidix
8022 X11 = $_x11
8023 X264 = $_x264
8024 XANIM_CODECS = $_xanim
8025 XMGA = $_xmga
8026 XMMS_PLUGINS = $_xmms
8027 XV = $_xv
8028 XVID4 = $_xvid
8029 XVIDIX = $xvidix
8030 XVMC = $_xvmc
8031 XVR100 = $_xvr100
8032 YUV4MPEG = $_yuv4mpeg
8033 ZR = $_zr
8035 # FFmpeg
8036 LIBAVUTIL = $_libavutil
8037 LIBAVCODEC = $_libavcodec
8038 LIBAVFORMAT = $_libavformat
8039 LIBPOSTPROC = $_libpostproc
8040 LIBSWSCALE = $_libswscale
8041 LIBAVCODEC_INTERNALS = $_libavcodec_internals
8042 LIBSWSCALE_INTERNALS = $_libswscale_internals
8043 FFMPEG_SOURCE_PATH = $_ffmpeg_source
8045 RANLIB = $_ranlib
8046 YASM = $_yasm
8047 YASMFLAGS = $YASMFLAGS
8049 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8050 CONFIG_AANDCT = yes
8051 CONFIG_FFT = yes
8052 CONFIG_GOLOMB = yes
8053 CONFIG_H264DSP = yes
8054 CONFIG_LPC = yes
8055 CONFIG_MDCT = yes
8056 CONFIG_RDFT = yes
8058 CONFIG_BZLIB = $bzlib
8059 CONFIG_ENCODERS = yes
8060 CONFIG_GPL = yes
8061 CONFIG_MLIB = $_mlib
8062 CONFIG_MUXERS = $_mencoder
8063 CONFIG_VDPAU = $_vdpau
8064 CONFIG_XVMC = $_xvmc
8065 CONFIG_ZLIB = $_zlib
8067 HAVE_PTHREADS = $_pthreads
8068 HAVE_SHM = $_shm
8069 HAVE_W32THREADS = $_w32threads
8070 HAVE_YASM = $have_yasm
8074 #############################################################################
8076 ff_config_enable () {
8077 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8078 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8079 _nprefix=$3;
8080 test -z "$_nprefix" && _nprefix='CONFIG'
8081 for part in $list; do
8082 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8083 echo "#define ${_nprefix}_$part 1"
8084 else
8085 echo "#define ${_nprefix}_$part 0"
8087 done
8090 echo "Creating config.h"
8091 cat > $TMPH << EOF
8092 /*----------------------------------------------------------------------------
8093 ** This file has been automatically generated by configure any changes in it
8094 ** will be lost when you run configure again.
8095 ** Instead of modifying definitions here, use the --enable/--disable options
8096 ** of the configure script! See ./configure --help for details.
8097 *---------------------------------------------------------------------------*/
8099 #ifndef MPLAYER_CONFIG_H
8100 #define MPLAYER_CONFIG_H
8102 /* Undefine this if you do not want to select mono audio (left or right)
8103 with a stereo MPEG layer 2/3 audio stream. The command line option
8104 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8105 right-only), with 0 being the default.
8107 #define CONFIG_FAKE_MONO 1
8109 /* set up audio OUTBURST. Do not change this! */
8110 #define OUTBURST 512
8112 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8113 #undef FAST_OSD
8114 #undef FAST_OSD_TABLE
8116 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8117 #define MPEG12_POSTPROC 1
8118 #define ATTRIBUTE_ALIGNED_MAX 16
8122 #define CONFIGURATION "$_configuration"
8124 #define MPLAYER_DATADIR "$_datadir"
8125 #define MPLAYER_CONFDIR "$_confdir"
8126 #define MPLAYER_LIBDIR "$_libdir"
8127 #define MPLAYER_LOCALEDIR "$_localedir"
8129 $def_translation
8131 /* definitions needed by included libraries */
8132 #define HAVE_INTTYPES_H 1
8133 /* libmpeg2 + FFmpeg */
8134 $def_fast_inttypes
8135 /* libdvdcss */
8136 #define HAVE_ERRNO_H 1
8137 /* libdvdcss + libdvdread */
8138 #define HAVE_LIMITS_H 1
8139 /* libdvdcss + libfaad2 */
8140 #define HAVE_UNISTD_H 1
8141 /* libfaad2 + libdvdread */
8142 #define STDC_HEADERS 1
8143 #define HAVE_MEMCPY 1
8144 /* libfaad2 */
8145 #define HAVE_STRING_H 1
8146 #define HAVE_STRINGS_H 1
8147 #define HAVE_SYS_STAT_H 1
8148 #define HAVE_SYS_TYPES_H 1
8149 /* libdvdnav */
8150 #define READ_CACHE_TRACE 0
8151 /* libdvdread */
8152 #define HAVE_DLFCN_H 1
8153 $def_dvdcss
8156 /* system headers */
8157 $def_alloca_h
8158 $def_alsa_asoundlib_h
8159 $def_altivec_h
8160 $def_malloc_h
8161 $def_mman_h
8162 $def_mman_has_map_failed
8163 $def_soundcard_h
8164 $def_sys_asoundlib_h
8165 $def_sys_soundcard_h
8166 $def_sys_sysinfo_h
8167 $def_termios_h
8168 $def_termios_sys_h
8169 $def_winsock2_h
8172 /* system functions */
8173 $def_gethostbyname2
8174 $def_gettimeofday
8175 $def_glob
8176 $def_langinfo
8177 $def_lrintf
8178 $def_map_memalign
8179 $def_memalign
8180 $def_nanosleep
8181 $def_posix_select
8182 $def_select
8183 $def_setenv
8184 $def_setmode
8185 $def_shm
8186 $def_strsep
8187 $def_swab
8188 $def_sysi86
8189 $def_sysi86_iv
8190 $def_termcap
8191 $def_termios
8192 $def_vsscanf
8195 /* system-specific features */
8196 $def_asmalign_pot
8197 $def_builtin_expect
8198 $def_dl
8199 $def_dos_paths
8200 $def_extern_asm
8201 $def_extern_prefix
8202 $def_iconv
8203 $def_kstat
8204 $def_macosx_bundle
8205 $def_macosx_finder
8206 $def_maemo
8207 $def_named_asm_args
8208 $def_priority
8209 $def_quicktime
8210 $def_restrict_keyword
8211 $def_rtc
8212 $def_unrar_exec
8215 /* configurable options */
8216 $def_charset
8217 $def_crash_debug
8218 $def_debug
8219 $def_dynamic_plugins
8220 $def_fastmemcpy
8221 $def_menu
8222 $def_runtime_cpudetection
8223 $def_sighandler
8224 $def_sortsub
8225 $def_stream_cache
8226 $def_pthread_cache
8229 /* CPU stuff */
8230 #define __CPU__ $iproc
8231 $def_words_endian
8232 $def_bigendian
8233 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8234 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8235 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8238 /* DVD/VCD/CD */
8239 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8240 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8241 $def_bsdi_dvd
8242 $def_cddb
8243 $def_cdio
8244 $def_cdparanoia
8245 $def_cdrom
8246 $def_dvd
8247 $def_dvd_bsd
8248 $def_dvd_darwin
8249 $def_dvd_linux
8250 $def_dvd_openbsd
8251 $def_dvdio
8252 $def_dvdnav
8253 $def_dvdread
8254 $def_hpux_scsi_h
8255 $def_libcdio
8256 $def_sol_scsi_h
8257 $def_vcd
8260 /* codec libraries */
8261 $def_faac
8262 $def_faad
8263 $def_faad_internal
8264 $def_liba52
8265 $def_liba52_internal
8266 $def_libdca
8267 $def_libdv
8268 $def_liblzo
8269 $def_libmpeg2
8270 $def_mad
8271 $def_mp3lame
8272 $def_mp3lame_preset
8273 $def_mp3lame_preset_medium
8274 $def_mp3lib
8275 $def_musepack
8276 $def_speex
8277 $def_theora
8278 $def_toolame
8279 $def_tremor
8280 $def_twolame
8281 $def_vorbis
8282 $def_x264
8283 $def_xvid
8284 $def_zlib
8286 $def_libnut
8289 /* binary codecs */
8290 $def_qtx
8291 $def_qtx_win32
8292 $def_real
8293 $def_win32_loader
8294 $def_win32dll
8295 $def_xanim
8296 $def_xmms
8297 #define BINARY_CODECS_PATH "$_codecsdir"
8298 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8301 /* Audio output drivers */
8302 $def_alsa
8303 $def_alsa1x
8304 $def_alsa5
8305 $def_alsa9
8306 $def_arts
8307 $def_coreaudio
8308 $def_dart
8309 $def_esd
8310 $def_esd_latency
8311 $def_jack
8312 $def_kai
8313 $def_nas
8314 $def_openal
8315 $def_openal_h
8316 $def_ossaudio
8317 $def_ossaudio_devdsp
8318 $def_ossaudio_devmixer
8319 $def_pulse
8320 $def_sgiaudio
8321 $def_sunaudio
8322 $def_win32waveout
8324 $def_ladspa
8325 $def_libbs2b
8328 /* input */
8329 $def_apple_ir
8330 $def_apple_remote
8331 $def_ioctl_bt848_h_name
8332 $def_ioctl_meteor_h_name
8333 $def_joystick
8334 $def_lirc
8335 $def_lircc
8336 $def_pvr
8337 $def_radio
8338 $def_radio_bsdbt848
8339 $def_radio_capture
8340 $def_radio_v4l
8341 $def_radio_v4l2
8342 $def_tv
8343 $def_tv_bsdbt848
8344 $def_tv_dshow
8345 $def_tv_v4l
8346 $def_tv_v4l1
8347 $def_tv_v4l2
8350 /* font stuff */
8351 $def_ass
8352 $def_bitmap_font
8353 $def_enca
8354 $def_fontconfig
8355 $def_freetype
8356 $def_fribidi
8359 /* networking */
8360 $def_closesocket
8361 $def_ftp
8362 $def_inet6
8363 $def_inet_aton
8364 $def_inet_pton
8365 $def_live
8366 $def_nemesi
8367 $def_network
8368 $def_smb
8369 $def_socklen_t
8370 $def_vstream
8373 /* libvo options */
8374 $def_3dfx
8375 $def_aa
8376 $def_bl
8377 $def_caca
8378 $def_corevideo
8379 $def_dfbmga
8380 $def_dga
8381 $def_dga1
8382 $def_dga2
8383 $def_direct3d
8384 $def_directfb
8385 $def_directfb_version
8386 $def_directx
8387 $def_dvb
8388 $def_dvbin
8389 $def_dxr2
8390 $def_dxr3
8391 $def_fbdev
8392 $def_ggi
8393 $def_ggiwmh
8394 $def_gif
8395 $def_gif_4
8396 $def_gif_tvt_hack
8397 $def_gl
8398 $def_gl_win32
8399 $def_gl_x11
8400 $def_matrixview
8401 $def_ivtv
8402 $def_jpeg
8403 $def_kva
8404 $def_md5sum
8405 $def_mga
8406 $def_mng
8407 $def_png
8408 $def_pnm
8409 $def_quartz
8410 $def_s3fb
8411 $def_sdl
8412 $def_sdl_sdl_h
8413 $def_sdlbuggy
8414 $def_svga
8415 $def_tdfxfb
8416 $def_tdfxvid
8417 $def_tga
8418 $def_v4l2
8419 $def_vdpau
8420 $def_vesa
8421 $def_vidix
8422 $def_vidix_drv_cyberblade
8423 $def_vidix_drv_ivtv
8424 $def_vidix_drv_mach64
8425 $def_vidix_drv_mga
8426 $def_vidix_drv_mga_crtc2
8427 $def_vidix_drv_nvidia
8428 $def_vidix_drv_pm3
8429 $def_vidix_drv_radeon
8430 $def_vidix_drv_rage128
8431 $def_vidix_drv_s3
8432 $def_vidix_drv_sh_veu
8433 $def_vidix_drv_sis
8434 $def_vidix_drv_unichrome
8435 $def_vidix_pfx
8436 $def_vm
8437 $def_wii
8438 $def_x11
8439 $def_xdpms
8440 $def_xf86keysym
8441 $def_xinerama
8442 $def_xmga
8443 $def_xss
8444 $def_xv
8445 $def_xvmc
8446 $def_xvr100
8447 $def_yuv4mpeg
8448 $def_zr
8451 /* FFmpeg */
8452 $def_libavcodec
8453 $def_libavformat
8454 $def_libavutil
8455 $def_libpostproc
8456 $def_libswscale
8457 $def_libavcodec_internals
8458 $def_libswscale_internals
8460 #define CONFIG_DECODERS 1
8461 #define CONFIG_ENCODERS 1
8462 #define CONFIG_DEMUXERS 1
8463 $def_muxers
8465 $def_arpa_inet_h
8466 $def_bswap
8467 $def_bzlib
8468 $def_dcbzl
8469 $def_exp2
8470 $def_exp2f
8471 $def_fast_64bit
8472 $def_fast_unaligned
8473 $def_llrint
8474 $def_log2
8475 $def_log2f
8476 $def_lrint
8477 $def_memalign_hack
8478 $def_mlib
8479 $def_mkstemp
8480 $def_posix_memalign
8481 $def_pthreads
8482 $def_round
8483 $def_roundf
8484 $def_ten_operands
8485 $def_threads
8486 $def_truncf
8487 $def_xform_asm
8488 $def_yasm
8490 #define CONFIG_FASTDIV 0
8491 #define CONFIG_FFSERVER 0
8492 #define CONFIG_GPL 1
8493 #define CONFIG_GRAY 0
8494 #define CONFIG_HARDCODED_TABLES 0
8495 #define CONFIG_LIBVORBIS 0
8496 #define CONFIG_POWERPC_PERF 0
8497 #define CONFIG_SMALL 0
8498 #define CONFIG_SWSCALE_ALPHA 1
8500 #define HAVE_ATTRIBUTE_PACKED 1
8501 #define HAVE_GETHRTIME 0
8502 #define HAVE_INLINE_ASM 1
8503 #define HAVE_LDBRX 0
8504 #define HAVE_POLL_H 1
8505 #define HAVE_PPC4XX 0
8506 #define HAVE_VFP_ARGS 1
8507 #define HAVE_VIRTUALALLOC 0
8509 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8510 #define CONFIG_AANDCT 1
8511 #define CONFIG_DCT 1
8512 #define CONFIG_DWT 1
8513 #define CONFIG_FFT 1
8514 #define CONFIG_GOLOMB 1
8515 #define CONFIG_H264DSP 1
8516 #define CONFIG_LPC 1
8517 #define CONFIG_MDCT 1
8518 #define CONFIG_RDFT 1
8520 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8521 $def_ebx_available
8522 #ifndef MP_DEBUG
8523 #define HAVE_EBP_AVAILABLE 1
8524 #else
8525 #define HAVE_EBP_AVAILABLE 0
8526 #endif
8528 #define CONFIG_H263_VAAPI_HWACCEL 0
8529 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8530 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8531 #define CONFIG_H264_VAAPI_HWACCEL 0
8532 #define CONFIG_VC1_VAAPI_HWACCEL 0
8533 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8535 #endif /* MPLAYER_CONFIG_H */
8538 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8539 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8541 #############################################################################
8543 ./version.sh `$_cc -dumpversion`
8545 cat << EOF
8547 Config files successfully generated by ./configure $_configuration !
8549 Install prefix: $_prefix
8550 Data directory: $_datadir
8551 Config direct.: $_confdir
8553 Byte order: $_byte_order
8554 Optimizing for: $_optimizing
8556 Languages:
8557 Messages (in addition to English): $language_msg
8558 Manual pages: $language_man
8559 Documentation: $language_doc
8561 Enabled optional drivers:
8562 Input: $_inputmodules
8563 Codecs: $_codecmodules
8564 Audio output: $_aomodules
8565 Video output: $_vomodules
8567 Disabled optional drivers:
8568 Input: $_noinputmodules
8569 Codecs: $_nocodecmodules
8570 Audio output: $_noaomodules
8571 Video output: $_novomodules
8573 'config.h' and 'config.mak' contain your configuration options.
8574 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8575 compile *** DO NOT REPORT BUGS if you tweak these files ***
8577 'make' will now compile MPlayer and 'make install' will install it.
8578 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8583 if test "$_mtrr" = yes ; then
8584 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8585 echo
8588 if ! x86_32; then
8589 cat <<EOF
8590 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8591 operating system ($system_name). You may encounter a few files that cannot
8592 be played due to missing open source video/audio codec support.
8598 cat <<EOF
8599 Check $TMPLOG if you wonder why an autodetection failed (make sure
8600 development headers/packages are installed).
8602 NOTE: The --enable-* parameters unconditionally force options on, completely
8603 skipping autodetection. This behavior is unlike what you may be used to from
8604 autoconf-based configure scripts that can decide to override you. This greater
8605 level of control comes at a price. You may have to provide the correct compiler
8606 and linker flags yourself.
8607 If you used one of these options (except --enable-menu and similar ones that
8608 turn on internal features) and experience a compilation or linking failure,
8609 make sure you have passed the necessary compiler/linker flags to configure.
8611 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8615 if test "$_warn_CFLAGS" = yes; then
8616 cat <<EOF
8618 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8619 but:
8621 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8623 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8624 To do so, execute 'CFLAGS= ./configure <options>'
8629 # Last move:
8630 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"