configure: add function to check compiler flags directly
[mplayer.git] / configure
blob02de3c516fabf15ee4932f0109441a77f0f5d527
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 source="$1"
63 shift
64 echo >> "$TMPLOG"
65 cat "$source" >> "$TMPLOG"
66 echo >> "$TMPLOG"
67 echo "$_cc $source $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
68 rm -f "$TMPEXE"
69 $_cc $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
70 TMPRES="$?"
71 echo >> "$TMPLOG"
72 echo >> "$TMPLOG"
73 return "$TMPRES"
76 cc_check() {
77 compile_check $TMPC $@
80 cxx_check() {
81 compile_check $TMPCPP $@ -lstdc++
84 cflag_check() {
85 cat > $TMPC << EOF
86 int main(void) { return 0; }
87 EOF
88 compile_check $TMPC $@
91 function_check() {
92 cat > $TMPC << EOF
93 #include <$1>
94 int main(void) { $2; }
95 EOF
96 shift
97 compile_check $TMPC $@
100 header_check() {
101 cat > $TMPC << EOF
102 #include <$1>
103 int main(void) { return 0; }
105 shift
106 compile_check $TMPC $@
109 yasm_check() {
110 echo >> "$TMPLOG"
111 cat "$TMPS" >> "$TMPLOG"
112 echo >> "$TMPLOG"
113 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
114 rm -f "$TMPEXE"
115 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
116 TMPRES="$?"
117 echo >> "$TMPLOG"
118 echo >> "$TMPLOG"
119 return "$TMPRES"
122 tmp_run() {
123 "$TMPEXE" >> "$TMPLOG" 2>&1
126 # Display error message, flushes tempfile, exit
127 die () {
128 echo
129 echo "Error: $@" >&2
130 echo >&2
131 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
132 echo "Check \"$TMPLOG\" if you do not understand why it failed."
133 exit 1
136 # OS test booleans functions
137 issystem() {
138 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
140 aix() { issystem "AIX"; }
141 amigaos() { issystem "AmigaOS"; }
142 beos() { issystem "BEOS"; }
143 bsdos() { issystem "BSD/OS"; }
144 cygwin() { issystem "CYGWIN"; }
145 darwin() { issystem "Darwin"; }
146 dragonfly() { issystem "DragonFly"; }
147 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
148 gnu() { issystem "GNU"; }
149 hpux() { issystem "HP-UX"; }
150 irix() { issystem "IRIX"; }
151 linux() { issystem "Linux"; }
152 mingw32() { issystem "MINGW32"; }
153 morphos() { issystem "MorphOS"; }
154 netbsd() { issystem "NetBSD"; }
155 openbsd() { issystem "OpenBSD"; }
156 os2() { issystem "OS/2"; }
157 qnx() { issystem "QNX"; }
158 sunos() { issystem "SunOS"; }
159 win32() { cygwin || mingw32; }
161 # arch test boolean functions
162 # x86/x86pc is used by QNX
163 x86_32() {
164 case "$host_arch" in
165 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
166 *) return 1 ;;
167 esac
170 x86_64() {
171 case "$host_arch" in
172 x86_64|amd64) return 0 ;;
173 *) return 1 ;;
174 esac
177 x86() {
178 x86_32 || x86_64
181 ppc() {
182 case "$host_arch" in
183 ppc|ppc64|powerpc|powerpc64) return 0;;
184 *) return 1;;
185 esac
188 alpha() {
189 case "$host_arch" in
190 alpha*) return 0;;
191 *) return 1;;
192 esac
195 arm() {
196 case "$host_arch" in
197 arm*) return 0;;
198 *) return 1;;
199 esac
202 # Use this before starting a check
203 echocheck() {
204 echo "============ Checking for $@ ============" >> "$TMPLOG"
205 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
208 # Use this to echo the results of a check
209 echores() {
210 if test "$res_comment" ; then
211 res_comment="($res_comment)"
213 echo "Result is: $@ $res_comment" >> "$TMPLOG"
214 echo "##########################################" >> "$TMPLOG"
215 echo "" >> "$TMPLOG"
216 echo "$@ $res_comment"
217 res_comment=""
219 #############################################################################
221 # Check how echo works in this /bin/sh
222 case $(echo -n) in
223 -n) _echo_n= _echo_c='\c' ;; # SysV echo
224 *) _echo_n='-n ' _echo_c= ;; # BSD echo
225 esac
227 msg_lang_all=''
228 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
229 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")
230 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
232 show_help(){
233 cat << EOF
234 Usage: $0 [OPTIONS]...
236 Configuration:
237 -h, --help display this help and exit
239 Installation directories:
240 --prefix=DIR prefix directory for installation [/usr/local]
241 --bindir=DIR directory for installing binaries [PREFIX/bin]
242 --datadir=DIR directory for installing machine independent
243 data files (skins, etc) [PREFIX/share/mplayer]
244 --mandir=DIR directory for installing man pages [PREFIX/share/man]
245 --confdir=DIR directory for installing configuration files
246 [PREFIX/etc/mplayer]
247 --localedir=DIR directory for locale tree [PREFIX/share/locale]
248 --libdir=DIR directory for object code libraries [PREFIX/lib]
249 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
251 Optional features:
252 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
253 --disable-mplayer disable MPlayer compilation [enable]
254 --disable-largefiles disable support for files > 2GB [enable]
255 --enable-termcap use termcap database for key codes [autodetect]
256 --enable-termios use termios database for key codes [autodetect]
257 --disable-iconv disable iconv for encoding conversion [autodetect]
258 --disable-langinfo do not use langinfo [autodetect]
259 --enable-lirc enable LIRC (remote control) support [autodetect]
260 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
261 --enable-joystick enable joystick support [disable]
262 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
263 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
264 --disable-vm disable X video mode extensions [autodetect]
265 --disable-xf86keysym disable support for multimedia keys [autodetect]
266 --enable-radio enable radio interface [disable]
267 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
268 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
269 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
270 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
271 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
272 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
273 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
274 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
275 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
276 --disable-network disable networking [enable]
277 --enable-winsock2_h enable winsock2_h [autodetect]
278 --enable-smb enable Samba (SMB) input [autodetect]
279 --enable-live enable LIVE555 Streaming Media [autodetect]
280 --enable-nemesi enable Nemesi Streaming Media [autodetect]
281 --disable-vcd disable VCD support [autodetect]
282 --disable-dvdnav disable libdvdnav [autodetect]
283 --disable-dvdread disable libdvdread [autodetect]
284 --disable-dvdread-internal disable internal libdvdread [autodetect]
285 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
286 --disable-cdparanoia disable cdparanoia [autodetect]
287 --disable-cddb disable cddb [autodetect]
288 --disable-bitmap-font disable bitmap font support [enable]
289 --disable-freetype disable FreeType 2 font rendering [autodetect]
290 --disable-fontconfig disable fontconfig font lookup [autodetect]
291 --disable-unrarexec disable using of UnRAR executable [enabled]
292 --enable-menu enable OSD menu (not DVD menu) [disabled]
293 --disable-sortsub disable subtitle sorting [enabled]
294 --enable-fribidi enable the FriBiDi libs [autodetect]
295 --disable-enca disable ENCA charset oracle library [autodetect]
296 --disable-maemo disable maemo specific features [autodetect]
297 --enable-macosx-finder enable Mac OS X Finder invocation parameter
298 parsing [disabled]
299 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
300 --disable-inet6 disable IPv6 support [autodetect]
301 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
302 --disable-ftp disable FTP support [enabled]
303 --disable-vstream disable TiVo vstream client support [autodetect]
304 --disable-pthreads disable Posix threads support [autodetect]
305 --disable-w32threads disable Win32 threads support [autodetect]
306 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
307 --enable-rpath enable runtime linker path for extra libs [disabled]
309 Codecs:
310 --enable-gif enable GIF support [autodetect]
311 --enable-png enable PNG input/output support [autodetect]
312 --enable-mng enable MNG input support [autodetect]
313 --enable-jpeg enable JPEG input/output support [autodetect]
314 --enable-libcdio enable libcdio support [autodetect]
315 --enable-liblzo enable liblzo support [autodetect]
316 --disable-win32dll disable Win32 DLL support [autodetect]
317 --disable-qtx disable QuickTime codecs support [enabled]
318 --disable-xanim disable XAnim codecs support [enabled]
319 --disable-real disable RealPlayer codecs support [enabled]
320 --disable-xvid disable Xvid [autodetect]
321 --disable-x264 disable x264 [autodetect]
322 --disable-libnut disable libnut [autodetect]
323 --disable-libavutil disable libavutil [autodetect]
324 --disable-libavcodec disable libavcodec [autodetect]
325 --disable-libavformat disable libavformat [autodetect]
326 --disable-libpostproc disable libpostproc [autodetect]
327 --disable-libswscale disable libswscale [autodetect]
328 --disable-tremor-internal disable internal Tremor [enabled]
329 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
330 --enable-tremor enable external Tremor [autodetect]
331 --disable-libvorbis disable libvorbis support [autodetect]
332 --disable-speex disable Speex support [autodetect]
333 --enable-theora enable OggTheora libraries [autodetect]
334 --enable-faad enable external FAAD2 (AAC) [autodetect]
335 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
336 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
337 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
338 --disable-ladspa disable LADSPA plugin support [autodetect]
339 --disable-libbs2b disable libbs2b audio filter support [autodetect]
340 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
341 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
342 --disable-mad disable libmad (MPEG audio) support [autodetect]
343 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
344 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
345 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
346 --enable-xmms enable XMMS input plugin support [disabled]
347 --enable-libdca enable libdca support [autodetect]
348 --disable-mp3lib disable builtin mp3lib [autodetect]
349 --disable-liba52 disable liba52 [autodetect]
350 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
351 --disable-musepack disable musepack support [autodetect]
353 Video output:
354 --disable-vidix disable VIDIX [for x86 *nix]
355 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
356 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
357 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
358 --disable-vidix-pcidb disable VIDIX PCI device name database
359 --enable-dhahelper enable VIDIX dhahelper support
360 --enable-svgalib_helper enable VIDIX svgalib_helper support
361 --enable-gl enable OpenGL video output [autodetect]
362 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
363 --enable-dga2 enable DGA 2 support [autodetect]
364 --enable-dga1 enable DGA 1 support [autodetect]
365 --enable-vesa enable VESA video output [autodetect]
366 --enable-svga enable SVGAlib video output [autodetect]
367 --enable-sdl enable SDL video output [autodetect]
368 --enable-kva enable KVA video output [autodetect]
369 --enable-aa enable AAlib video output [autodetect]
370 --enable-caca enable CACA video output [autodetect]
371 --enable-ggi enable GGI video output [autodetect]
372 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
373 --enable-direct3d enable Direct3D video output [autodetect]
374 --enable-directx enable DirectX video output [autodetect]
375 --enable-dxr2 enable DXR2 video output [autodetect]
376 --enable-dxr3 enable DXR3/H+ video output [autodetect]
377 --enable-ivtv enable IVTV TV-Out video output [autodetect]
378 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
379 --enable-dvb enable DVB video output [autodetect]
380 --enable-mga enable mga_vid video output [autodetect]
381 --enable-xmga enable mga_vid X11 video output [autodetect]
382 --enable-xv enable Xv video output [autodetect]
383 --enable-xvmc enable XvMC acceleration [disable]
384 --enable-vdpau enable VDPAU acceleration [autodetect]
385 --enable-vm enable XF86VidMode support [autodetect]
386 --enable-xinerama enable Xinerama support [autodetect]
387 --enable-x11 enable X11 video output [autodetect]
388 --enable-xshape enable XShape support [autodetect]
389 --disable-xss disable screensaver support via xss [autodetect]
390 --enable-fbdev enable FBDev video output [autodetect]
391 --enable-mlib enable mediaLib video output (Solaris) [disable]
392 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
393 --enable-tdfxfb enable tdfxfb video output [disable]
394 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
395 --enable-wii enable Nintendo Wii/GameCube video output [disable]
396 --enable-directfb enable DirectFB video output [autodetect]
397 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
398 --enable-bl enable Blinkenlights video output [disable]
399 --enable-tdfxvid enable tdfx_vid video output [disable]
400 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
401 --disable-tga disable Targa video output [enable]
402 --disable-pnm disable PNM video output [enable]
403 --disable-md5sum disable md5sum video output [enable]
404 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
405 --disable-corevideo disable CoreVideo video output [autodetect]
406 --disable-quartz disable Quartz video output [autodetect]
408 Audio output:
409 --disable-alsa disable ALSA audio output [autodetect]
410 --disable-ossaudio disable OSS audio output [autodetect]
411 --disable-arts disable aRts audio output [autodetect]
412 --disable-esd disable esd audio output [autodetect]
413 --disable-pulse disable Pulseaudio audio output [autodetect]
414 --disable-jack disable JACK audio output [autodetect]
415 --enable-openal enable OpenAL audio output [disable]
416 --disable-nas disable NAS audio output [autodetect]
417 --disable-sgiaudio disable SGI audio output [autodetect]
418 --disable-sunaudio disable Sun audio output [autodetect]
419 --disable-kai disable KAI audio output [autodetect]
420 --disable-dart disable DART audio output [autodetect]
421 --disable-win32waveout disable Windows waveout audio output [autodetect]
422 --disable-coreaudio disable CoreAudio audio output [autodetect]
423 --disable-select disable using select() on the audio device [enable]
425 Language options:
426 --enable-translation enable support for translated output [disable]
427 --charset=charset convert the console messages to this character set
428 --language-doc=lang language to use for the documentation [en]
429 --language-man=lang language to use for the man pages [en]
430 --language-msg=lang extra languages for program messages [all]
431 --language=lang default language to use [en]
432 Specific options override --language. You can pass a list of languages separated
433 by whitespace or commas instead of a single language. Nonexisting translations
434 will be dropped from each list. All translations available in the list will be
435 installed. The value "all" will activate all translations. The LINGUAS
436 environment variable is honored. In all cases the fallback is English.
437 The program always supports English-language output; additional message
438 languages are only installed if --enable-translation is also specified.
439 Available values for --language-doc are: all $doc_lang_all
440 Available values for --language-man are: all $man_lang_all
441 Available values for --language-msg are: all $msg_lang_all
443 Miscellaneous options:
444 --enable-runtime-cpudetection enable runtime CPU detection [disable]
445 --enable-cross-compile enable cross-compilation [autodetect]
446 --cc=COMPILER C compiler to build MPlayer [gcc]
447 --host-cc=COMPILER C compiler for tools needed while building [gcc]
448 --as=ASSEMBLER assembler to build MPlayer [as]
449 --nm=NM nm tool to build MPlayer [nm]
450 --yasm=YASM Yasm assembler to build MPlayer [yasm]
451 --ar=AR librarian to build MPlayer [ar]
452 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
453 --windres=WINDRES windres to build MPlayer [windres]
454 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
455 --enable-static build a statically linked binary
456 --with-install=PATH path to a custom install program
458 Advanced options:
459 --enable-mmx enable MMX [autodetect]
460 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
461 --enable-3dnow enable 3DNow! [autodetect]
462 --enable-3dnowext enable extended 3DNow! [autodetect]
463 --enable-sse enable SSE [autodetect]
464 --enable-sse2 enable SSE2 [autodetect]
465 --enable-ssse3 enable SSSE3 [autodetect]
466 --enable-shm enable shm [autodetect]
467 --enable-altivec enable AltiVec (PowerPC) [autodetect]
468 --enable-armv5te enable DSP extensions (ARM) [autodetect]
469 --enable-armv6 enable ARMv6 (ARM) [autodetect]
470 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
471 --enable-armvfp enable ARM VFP (ARM) [autodetect]
472 --enable-neon enable NEON (ARM) [autodetect]
473 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
474 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
475 --enable-big-endian force byte order to big-endian [autodetect]
476 --enable-debug[=1-3] compile-in debugging information [disable]
477 --enable-profile compile-in profiling information [disable]
478 --disable-sighandler disable sighandler for crashes [enable]
479 --enable-crash-debug enable automatic gdb attach on crash [disable]
480 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
481 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
483 Use these options if autodetection fails:
484 --extra-cflags=FLAGS extra CFLAGS
485 --extra-ldflags=FLAGS extra LDFLAGS
486 --extra-libs=FLAGS extra linker flags
487 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
488 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
489 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
491 --with-freetype-config=PATH path to freetype-config
492 --with-glib-config=PATH path to glib*-config
493 --with-gtk-config=PATH path to gtk*-config
494 --with-sdl-config=PATH path to sdl*-config
495 --with-dvdnav-config=PATH path to dvdnav-config
496 --with-dvdread-config=PATH path to dvdread-config
498 This configure script is NOT autoconf-based, even though its output is similar.
499 It will try to autodetect all configuration options. If you --enable an option
500 it will be forcefully turned on, skipping autodetection. This can break
501 compilation, so you need to know what you are doing.
503 exit 0
504 } #show_help()
506 # GOTCHA: the variables below defines the default behavior for autodetection
507 # and have - unless stated otherwise - at least 2 states : yes no
508 # If autodetection is available then the third state is: auto
509 _mmx=auto
510 _3dnow=auto
511 _3dnowext=auto
512 _mmxext=auto
513 _sse=auto
514 _sse2=auto
515 _ssse3=auto
516 _cmov=auto
517 _fast_cmov=auto
518 _fast_clz=auto
519 _armv5te=auto
520 _armv6=auto
521 _armv6t2=auto
522 _armvfp=auto
523 neon=auto
524 _iwmmxt=auto
525 _mtrr=auto
526 _altivec=auto
527 _install=install
528 _ranlib=ranlib
529 _windres=windres
530 _cc=cc
531 _ar=ar
532 test "$CC" && _cc="$CC"
533 _as=auto
534 _nm=auto
535 _yasm=yasm
536 _runtime_cpudetection=no
537 _cross_compile=auto
538 _prefix="/usr/local"
539 _libavutil=auto
540 _libavcodec=auto
541 _libavformat=auto
542 _libpostproc=auto
543 _libswscale=auto
544 _libavcodec_internals=no
545 _libswscale_internals=no
546 _mencoder=yes
547 _mplayer=yes
548 _x11=auto
549 _xshape=auto
550 _xss=auto
551 _dga1=auto
552 _dga2=auto
553 _xv=auto
554 _xvmc=no #auto when complete
555 _vdpau=auto
556 _sdl=auto
557 _kva=auto
558 _direct3d=auto
559 _directx=auto
560 _win32waveout=auto
561 _nas=auto
562 _png=auto
563 _mng=auto
564 _jpeg=auto
565 _pnm=yes
566 _md5sum=yes
567 _yuv4mpeg=yes
568 _gif=auto
569 _gl=auto
570 matrixview=yes
571 _ggi=auto
572 _ggiwmh=auto
573 _aa=auto
574 _caca=auto
575 _svga=auto
576 _vesa=auto
577 _fbdev=auto
578 _dvb=auto
579 _dxr2=auto
580 _dxr3=auto
581 _ivtv=auto
582 _v4l2=auto
583 _iconv=auto
584 _langinfo=auto
585 _rtc=auto
586 _ossaudio=auto
587 _arts=auto
588 _esd=auto
589 _pulse=auto
590 _jack=auto
591 _kai=auto
592 _dart=auto
593 _openal=no
594 _libcdio=auto
595 _liblzo=auto
596 _mad=auto
597 _mp3lame=auto
598 _toolame=auto
599 _twolame=auto
600 _tremor=auto
601 _tremor_internal=yes
602 _tremor_low=no
603 _libvorbis=auto
604 _speex=auto
605 _theora=auto
606 _mpg123=auto
607 _mp3lib=auto
608 _liba52=auto
609 _libdca=auto
610 _libmpeg2=auto
611 _faad=auto
612 _faad_internal=auto
613 _faad_fixed=no
614 _faac=auto
615 _ladspa=auto
616 _libbs2b=auto
617 _xmms=no
618 _vcd=auto
619 _dvdnav=auto
620 _dvdnavconfig=dvdnav-config
621 _dvdreadconfig=dvdread-config
622 _dvdread=auto
623 _dvdread_internal=auto
624 _libdvdcss_internal=auto
625 _xanim=auto
626 _real=auto
627 _live=auto
628 _nemesi=auto
629 _native_rtsp=yes
630 _xinerama=auto
631 _mga=auto
632 _xmga=auto
633 _vm=auto
634 _xf86keysym=auto
635 _mlib=no #broken, thus disabled
636 _sgiaudio=auto
637 _sunaudio=auto
638 _alsa=auto
639 _fastmemcpy=yes
640 _unrar_exec=auto
641 _win32dll=auto
642 _select=yes
643 _radio=no
644 _radio_capture=no
645 _radio_v4l=auto
646 _radio_v4l2=auto
647 _radio_bsdbt848=auto
648 _tv=yes
649 _tv_v4l1=auto
650 _tv_v4l2=auto
651 _tv_bsdbt848=auto
652 _tv_dshow=auto
653 _pvr=auto
654 _network=yes
655 _winsock2_h=auto
656 _smb=auto
657 _vidix=auto
658 _vidix_pcidb=yes
659 _dhahelper=no
660 _svgalib_helper=no
661 _joystick=no
662 _xvid=auto
663 _x264=auto
664 _libnut=auto
665 _lirc=auto
666 _lircc=auto
667 _apple_remote=auto
668 _apple_ir=auto
669 _gui=no
670 _gtk1=no
671 _termcap=auto
672 _termios=auto
673 _3dfx=no
674 _s3fb=no
675 _wii=no
676 _tdfxfb=no
677 _tdfxvid=no
678 _xvr100=auto
679 _tga=yes
680 _directfb=auto
681 _zr=auto
682 _bl=no
683 _largefiles=yes
684 #language=en
685 _shm=auto
686 _translation=no
687 _charset="UTF-8"
688 _dynamic_plugins=no
689 _crash_debug=no
690 _sighandler=yes
691 _libdv=auto
692 _cdparanoia=auto
693 _cddb=auto
694 _big_endian=auto
695 _bitmap_font=yes
696 _freetype=auto
697 _fontconfig=auto
698 _menu=no
699 _qtx=auto
700 _maemo=auto
701 _coreaudio=auto
702 _corevideo=auto
703 _quartz=auto
704 quicktime=auto
705 _macosx_finder=no
706 _macosx_bundle=auto
707 _sortsub=yes
708 _freetypeconfig='freetype-config'
709 _fribidi=auto
710 _enca=auto
711 _inet6=auto
712 _gethostbyname2=auto
713 _ftp=yes
714 _musepack=auto
715 _vstream=auto
716 _pthreads=auto
717 _w32threads=auto
718 _ass=auto
719 _rpath=no
720 _asmalign_pot=auto
721 _stream_cache=yes
722 _priority=no
723 def_dos_paths="#define HAVE_DOS_PATHS 0"
724 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
725 def_priority="#undef CONFIG_PRIORITY"
726 def_pthread_cache="#undef PTHREAD_CACHE"
727 _need_shmem=yes
728 for ac_option do
729 case "$ac_option" in
730 --help|-help|-h)
731 show_help
733 --prefix=*)
734 _prefix=$(echo $ac_option | cut -d '=' -f 2)
736 --bindir=*)
737 _bindir=$(echo $ac_option | cut -d '=' -f 2)
739 --datadir=*)
740 _datadir=$(echo $ac_option | cut -d '=' -f 2)
742 --mandir=*)
743 _mandir=$(echo $ac_option | cut -d '=' -f 2)
745 --confdir=*)
746 _confdir=$(echo $ac_option | cut -d '=' -f 2)
748 --libdir=*)
749 _libdir=$(echo $ac_option | cut -d '=' -f 2)
751 --codecsdir=*)
752 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
754 --localedir=*)
755 _localedir=$(echo $ac_option | cut -d '=' -f 2)
758 --with-install=*)
759 _install=$(echo $ac_option | cut -d '=' -f 2 )
761 --with-xvmclib=*)
762 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
765 --with-sdl-config=*)
766 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
768 --with-freetype-config=*)
769 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
771 --with-gtk-config=*)
772 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
774 --with-glib-config=*)
775 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
777 --with-dvdnav-config=*)
778 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
780 --with-dvdread-config=*)
781 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
784 --extra-cflags=*)
785 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
787 --extra-ldflags=*)
788 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
790 --extra-libs=*)
791 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
793 --extra-libs-mplayer=*)
794 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
796 --extra-libs-mencoder=*)
797 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
800 --target=*)
801 _target=$(echo $ac_option | cut -d '=' -f 2)
803 --cc=*)
804 _cc=$(echo $ac_option | cut -d '=' -f 2)
806 --host-cc=*)
807 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
809 --as=*)
810 _as=$(echo $ac_option | cut -d '=' -f 2)
812 --nm=*)
813 _nm=$(echo $ac_option | cut -d '=' -f 2)
815 --yasm=*)
816 _yasm=$(echo $ac_option | cut -d '=' -f 2)
818 --ar=*)
819 _ar=$(echo $ac_option | cut -d '=' -f 2)
821 --ranlib=*)
822 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
824 --windres=*)
825 _windres=$(echo $ac_option | cut -d '=' -f 2)
827 --charset=*)
828 _charset=$(echo $ac_option | cut -d '=' -f 2)
830 --language-doc=*)
831 language_doc=$(echo $ac_option | cut -d '=' -f 2)
833 --language-man=*)
834 language_man=$(echo $ac_option | cut -d '=' -f 2)
836 --language-msg=*)
837 language_msg=$(echo $ac_option | cut -d '=' -f 2)
839 --language=*)
840 language=$(echo $ac_option | cut -d '=' -f 2)
843 --enable-static)
844 _ld_static='-static'
846 --disable-static)
847 _ld_static=''
849 --enable-profile)
850 _profile='-p'
852 --disable-profile)
853 _profile=
855 --enable-debug)
856 _debug='-g'
858 --enable-debug=*)
859 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
861 --disable-debug)
862 _debug=
864 --enable-translation) _translation=yes ;;
865 --disable-translation) _translation=no ;;
866 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
867 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
868 --enable-cross-compile) _cross_compile=yes ;;
869 --disable-cross-compile) _cross_compile=no ;;
870 --enable-mencoder) _mencoder=yes ;;
871 --disable-mencoder) _mencoder=no ;;
872 --enable-mplayer) _mplayer=yes ;;
873 --disable-mplayer) _mplayer=no ;;
874 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
875 --disable-dynamic-plugins) _dynamic_plugins=no ;;
876 --enable-x11) _x11=yes ;;
877 --disable-x11) _x11=no ;;
878 --enable-xshape) _xshape=yes ;;
879 --disable-xshape) _xshape=no ;;
880 --enable-xss) _xss=yes ;;
881 --disable-xss) _xss=no ;;
882 --enable-xv) _xv=yes ;;
883 --disable-xv) _xv=no ;;
884 --enable-xvmc) _xvmc=yes ;;
885 --disable-xvmc) _xvmc=no ;;
886 --enable-vdpau) _vdpau=yes ;;
887 --disable-vdpau) _vdpau=no ;;
888 --enable-sdl) _sdl=yes ;;
889 --disable-sdl) _sdl=no ;;
890 --enable-kva) _kva=yes ;;
891 --disable-kva) _kva=no ;;
892 --enable-direct3d) _direct3d=yes ;;
893 --disable-direct3d) _direct3d=no ;;
894 --enable-directx) _directx=yes ;;
895 --disable-directx) _directx=no ;;
896 --enable-win32waveout) _win32waveout=yes ;;
897 --disable-win32waveout) _win32waveout=no ;;
898 --enable-nas) _nas=yes ;;
899 --disable-nas) _nas=no ;;
900 --enable-png) _png=yes ;;
901 --disable-png) _png=no ;;
902 --enable-mng) _mng=yes ;;
903 --disable-mng) _mng=no ;;
904 --enable-jpeg) _jpeg=yes ;;
905 --disable-jpeg) _jpeg=no ;;
906 --enable-pnm) _pnm=yes ;;
907 --disable-pnm) _pnm=no ;;
908 --enable-md5sum) _md5sum=yes ;;
909 --disable-md5sum) _md5sum=no ;;
910 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
911 --disable-yuv4mpeg) _yuv4mpeg=no ;;
912 --enable-gif) _gif=yes ;;
913 --disable-gif) _gif=no ;;
914 --enable-gl) _gl=yes ;;
915 --disable-gl) _gl=no ;;
916 --enable-matrixview) matrixview=yes ;;
917 --disable-matrixview) matrixview=no ;;
918 --enable-ggi) _ggi=yes ;;
919 --disable-ggi) _ggi=no ;;
920 --enable-ggiwmh) _ggiwmh=yes ;;
921 --disable-ggiwmh) _ggiwmh=no ;;
922 --enable-aa) _aa=yes ;;
923 --disable-aa) _aa=no ;;
924 --enable-caca) _caca=yes ;;
925 --disable-caca) _caca=no ;;
926 --enable-svga) _svga=yes ;;
927 --disable-svga) _svga=no ;;
928 --enable-vesa) _vesa=yes ;;
929 --disable-vesa) _vesa=no ;;
930 --enable-fbdev) _fbdev=yes ;;
931 --disable-fbdev) _fbdev=no ;;
932 --enable-dvb) _dvb=yes ;;
933 --disable-dvb) _dvb=no ;;
934 --enable-dxr2) _dxr2=yes ;;
935 --disable-dxr2) _dxr2=no ;;
936 --enable-dxr3) _dxr3=yes ;;
937 --disable-dxr3) _dxr3=no ;;
938 --enable-ivtv) _ivtv=yes ;;
939 --disable-ivtv) _ivtv=no ;;
940 --enable-v4l2) _v4l2=yes ;;
941 --disable-v4l2) _v4l2=no ;;
942 --enable-iconv) _iconv=yes ;;
943 --disable-iconv) _iconv=no ;;
944 --enable-langinfo) _langinfo=yes ;;
945 --disable-langinfo) _langinfo=no ;;
946 --enable-rtc) _rtc=yes ;;
947 --disable-rtc) _rtc=no ;;
948 --enable-libdv) _libdv=yes ;;
949 --disable-libdv) _libdv=no ;;
950 --enable-ossaudio) _ossaudio=yes ;;
951 --disable-ossaudio) _ossaudio=no ;;
952 --enable-arts) _arts=yes ;;
953 --disable-arts) _arts=no ;;
954 --enable-esd) _esd=yes ;;
955 --disable-esd) _esd=no ;;
956 --enable-pulse) _pulse=yes ;;
957 --disable-pulse) _pulse=no ;;
958 --enable-jack) _jack=yes ;;
959 --disable-jack) _jack=no ;;
960 --enable-openal) _openal=yes ;;
961 --disable-openal) _openal=no ;;
962 --enable-kai) _kai=yes ;;
963 --disable-kai) _kai=no ;;
964 --enable-dart) _dart=yes ;;
965 --disable-dart) _dart=no ;;
966 --enable-mad) _mad=yes ;;
967 --disable-mad) _mad=no ;;
968 --enable-mp3lame) _mp3lame=yes ;;
969 --disable-mp3lame) _mp3lame=no ;;
970 --enable-toolame) _toolame=yes ;;
971 --disable-toolame) _toolame=no ;;
972 --enable-twolame) _twolame=yes ;;
973 --disable-twolame) _twolame=no ;;
974 --enable-libcdio) _libcdio=yes ;;
975 --disable-libcdio) _libcdio=no ;;
976 --enable-liblzo) _liblzo=yes ;;
977 --disable-liblzo) _liblzo=no ;;
978 --enable-libvorbis) _libvorbis=yes ;;
979 --disable-libvorbis) _libvorbis=no ;;
980 --enable-speex) _speex=yes ;;
981 --disable-speex) _speex=no ;;
982 --enable-tremor) _tremor=yes ;;
983 --disable-tremor) _tremor=no ;;
984 --enable-tremor-internal) _tremor_internal=yes ;;
985 --disable-tremor-internal) _tremor_internal=no ;;
986 --enable-tremor-low) _tremor_low=yes ;;
987 --disable-tremor-low) _tremor_low=no ;;
988 --enable-theora) _theora=yes ;;
989 --disable-theora) _theora=no ;;
990 --enable-mpg123) _mpg123=yes ;;
991 --disable-mpg123) _mpg123=no ;;
992 --enable-mp3lib) _mp3lib=yes ;;
993 --disable-mp3lib) _mp3lib=no ;;
994 --enable-liba52) _liba52=yes ;;
995 --disable-liba52) _liba52=no ;;
996 --enable-libdca) _libdca=yes ;;
997 --disable-libdca) _libdca=no ;;
998 --enable-libmpeg2) _libmpeg2=yes ;;
999 --disable-libmpeg2) _libmpeg2=no ;;
1000 --enable-musepack) _musepack=yes ;;
1001 --disable-musepack) _musepack=no ;;
1002 --enable-faad) _faad=yes ;;
1003 --disable-faad) _faad=no ;;
1004 --enable-faad-internal) _faad_internal=yes ;;
1005 --disable-faad-internal) _faad_internal=no ;;
1006 --enable-faad-fixed) _faad_fixed=yes ;;
1007 --disable-faad-fixed) _faad_fixed=no ;;
1008 --enable-faac) _faac=yes ;;
1009 --disable-faac) _faac=no ;;
1010 --enable-ladspa) _ladspa=yes ;;
1011 --disable-ladspa) _ladspa=no ;;
1012 --enable-libbs2b) _libbs2b=yes ;;
1013 --disable-libbs2b) _libbs2b=no ;;
1014 --enable-xmms) _xmms=yes ;;
1015 --disable-xmms) _xmms=no ;;
1016 --enable-vcd) _vcd=yes ;;
1017 --disable-vcd) _vcd=no ;;
1018 --enable-dvdread) _dvdread=yes ;;
1019 --disable-dvdread) _dvdread=no ;;
1020 --enable-dvdread-internal) _dvdread_internal=yes ;;
1021 --disable-dvdread-internal) _dvdread_internal=no ;;
1022 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1023 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1024 --enable-dvdnav) _dvdnav=yes ;;
1025 --disable-dvdnav) _dvdnav=no ;;
1026 --enable-xanim) _xanim=yes ;;
1027 --disable-xanim) _xanim=no ;;
1028 --enable-real) _real=yes ;;
1029 --disable-real) _real=no ;;
1030 --enable-live) _live=yes ;;
1031 --disable-live) _live=no ;;
1032 --enable-nemesi) _nemesi=yes ;;
1033 --disable-nemesi) _nemesi=no ;;
1034 --enable-xinerama) _xinerama=yes ;;
1035 --disable-xinerama) _xinerama=no ;;
1036 --enable-mga) _mga=yes ;;
1037 --disable-mga) _mga=no ;;
1038 --enable-xmga) _xmga=yes ;;
1039 --disable-xmga) _xmga=no ;;
1040 --enable-vm) _vm=yes ;;
1041 --disable-vm) _vm=no ;;
1042 --enable-xf86keysym) _xf86keysym=yes ;;
1043 --disable-xf86keysym) _xf86keysym=no ;;
1044 --enable-mlib) _mlib=yes ;;
1045 --disable-mlib) _mlib=no ;;
1046 --enable-sunaudio) _sunaudio=yes ;;
1047 --disable-sunaudio) _sunaudio=no ;;
1048 --enable-sgiaudio) _sgiaudio=yes ;;
1049 --disable-sgiaudio) _sgiaudio=no ;;
1050 --enable-alsa) _alsa=yes ;;
1051 --disable-alsa) _alsa=no ;;
1052 --enable-tv) _tv=yes ;;
1053 --disable-tv) _tv=no ;;
1054 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1055 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1056 --enable-tv-v4l1) _tv_v4l1=yes ;;
1057 --disable-tv-v4l1) _tv_v4l1=no ;;
1058 --enable-tv-v4l2) _tv_v4l2=yes ;;
1059 --disable-tv-v4l2) _tv_v4l2=no ;;
1060 --enable-tv-dshow) _tv_dshow=yes ;;
1061 --disable-tv-dshow) _tv_dshow=no ;;
1062 --enable-radio) _radio=yes ;;
1063 --enable-radio-capture) _radio_capture=yes ;;
1064 --disable-radio-capture) _radio_capture=no ;;
1065 --disable-radio) _radio=no ;;
1066 --enable-radio-v4l) _radio_v4l=yes ;;
1067 --disable-radio-v4l) _radio_v4l=no ;;
1068 --enable-radio-v4l2) _radio_v4l2=yes ;;
1069 --disable-radio-v4l2) _radio_v4l2=no ;;
1070 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1071 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1072 --enable-pvr) _pvr=yes ;;
1073 --disable-pvr) _pvr=no ;;
1074 --enable-fastmemcpy) _fastmemcpy=yes ;;
1075 --disable-fastmemcpy) _fastmemcpy=no ;;
1076 --enable-network) _network=yes ;;
1077 --disable-network) _network=no ;;
1078 --enable-winsock2_h) _winsock2_h=yes ;;
1079 --disable-winsock2_h) _winsock2_h=no ;;
1080 --enable-smb) _smb=yes ;;
1081 --disable-smb) _smb=no ;;
1082 --enable-vidix) _vidix=yes ;;
1083 --disable-vidix) _vidix=no ;;
1084 --with-vidix-drivers=*)
1085 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1087 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1088 --enable-dhahelper) _dhahelper=yes ;;
1089 --disable-dhahelper) _dhahelper=no ;;
1090 --enable-svgalib_helper) _svgalib_helper=yes ;;
1091 --disable-svgalib_helper) _svgalib_helper=no ;;
1092 --enable-joystick) _joystick=yes ;;
1093 --disable-joystick) _joystick=no ;;
1094 --enable-xvid) _xvid=yes ;;
1095 --disable-xvid) _xvid=no ;;
1096 --enable-x264) _x264=yes ;;
1097 --disable-x264) _x264=no ;;
1098 --enable-libnut) _libnut=yes ;;
1099 --disable-libnut) _libnut=no ;;
1100 --enable-libavutil) _libavutil=yes ;;
1101 --disable-libavutil) _libavutil=no ;;
1102 --enable-libavcodec) _libavcodec=yes ;;
1103 --disable-libavcodec) _libavcodec=no ;;
1104 --enable-libavformat) _libavformat=yes ;;
1105 --disable-libavformat) _libavformat=no ;;
1106 --enable-libpostproc) _libpostproc=yes ;;
1107 --disable-libpostproc) _libpostproc=no ;;
1108 --enable-libswscale) _libswscale=yes ;;
1109 --disable-libswscale) _libswscale=no ;;
1110 --ffmpeg-source-dir=*)
1111 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1113 --enable-lirc) _lirc=yes ;;
1114 --disable-lirc) _lirc=no ;;
1115 --enable-lircc) _lircc=yes ;;
1116 --disable-lircc) _lircc=no ;;
1117 --enable-apple-remote) _apple_remote=yes ;;
1118 --disable-apple-remote) _apple_remote=no ;;
1119 --enable-apple-ir) _apple_ir=yes ;;
1120 --disable-apple-ir) _apple_ir=no ;;
1121 --enable-gui) _gui=yes ;;
1122 --disable-gui) _gui=no ;;
1123 --enable-gtk1) _gtk1=yes ;;
1124 --disable-gtk1) _gtk1=no ;;
1125 --enable-termcap) _termcap=yes ;;
1126 --disable-termcap) _termcap=no ;;
1127 --enable-termios) _termios=yes ;;
1128 --disable-termios) _termios=no ;;
1129 --enable-3dfx) _3dfx=yes ;;
1130 --disable-3dfx) _3dfx=no ;;
1131 --enable-s3fb) _s3fb=yes ;;
1132 --disable-s3fb) _s3fb=no ;;
1133 --enable-wii) _wii=yes ;;
1134 --disable-wii) _wii=no ;;
1135 --enable-tdfxfb) _tdfxfb=yes ;;
1136 --disable-tdfxfb) _tdfxfb=no ;;
1137 --disable-tdfxvid) _tdfxvid=no ;;
1138 --enable-tdfxvid) _tdfxvid=yes ;;
1139 --disable-xvr100) _xvr100=no ;;
1140 --enable-xvr100) _xvr100=yes ;;
1141 --disable-tga) _tga=no ;;
1142 --enable-tga) _tga=yes ;;
1143 --enable-directfb) _directfb=yes ;;
1144 --disable-directfb) _directfb=no ;;
1145 --enable-zr) _zr=yes ;;
1146 --disable-zr) _zr=no ;;
1147 --enable-bl) _bl=yes ;;
1148 --disable-bl) _bl=no ;;
1149 --enable-mtrr) _mtrr=yes ;;
1150 --disable-mtrr) _mtrr=no ;;
1151 --enable-largefiles) _largefiles=yes ;;
1152 --disable-largefiles) _largefiles=no ;;
1153 --enable-shm) _shm=yes ;;
1154 --disable-shm) _shm=no ;;
1155 --enable-select) _select=yes ;;
1156 --disable-select) _select=no ;;
1157 --enable-cdparanoia) _cdparanoia=yes ;;
1158 --disable-cdparanoia) _cdparanoia=no ;;
1159 --enable-cddb) _cddb=yes ;;
1160 --disable-cddb) _cddb=no ;;
1161 --enable-big-endian) _big_endian=yes ;;
1162 --disable-big-endian) _big_endian=no ;;
1163 --enable-bitmap-font) _bitmap_font=yes ;;
1164 --disable-bitmap-font) _bitmap_font=no ;;
1165 --enable-freetype) _freetype=yes ;;
1166 --disable-freetype) _freetype=no ;;
1167 --enable-fontconfig) _fontconfig=yes ;;
1168 --disable-fontconfig) _fontconfig=no ;;
1169 --enable-unrarexec) _unrar_exec=yes ;;
1170 --disable-unrarexec) _unrar_exec=no ;;
1171 --enable-ftp) _ftp=yes ;;
1172 --disable-ftp) _ftp=no ;;
1173 --enable-vstream) _vstream=yes ;;
1174 --disable-vstream) _vstream=no ;;
1175 --enable-pthreads) _pthreads=yes ;;
1176 --disable-pthreads) _pthreads=no ;;
1177 --enable-w32threads) _w32threads=yes ;;
1178 --disable-w32threads) _w32threads=no ;;
1179 --enable-ass) _ass=yes ;;
1180 --disable-ass) _ass=no ;;
1181 --enable-rpath) _rpath=yes ;;
1182 --disable-rpath) _rpath=no ;;
1184 --enable-fribidi) _fribidi=yes ;;
1185 --disable-fribidi) _fribidi=no ;;
1187 --enable-enca) _enca=yes ;;
1188 --disable-enca) _enca=no ;;
1190 --enable-inet6) _inet6=yes ;;
1191 --disable-inet6) _inet6=no ;;
1193 --enable-gethostbyname2) _gethostbyname2=yes ;;
1194 --disable-gethostbyname2) _gethostbyname2=no ;;
1196 --enable-dga1) _dga1=yes ;;
1197 --disable-dga1) _dga1=no ;;
1198 --enable-dga2) _dga2=yes ;;
1199 --disable-dga2) _dga2=no ;;
1201 --enable-menu) _menu=yes ;;
1202 --disable-menu) _menu=no ;;
1204 --enable-qtx) _qtx=yes ;;
1205 --disable-qtx) _qtx=no ;;
1207 --enable-coreaudio) _coreaudio=yes ;;
1208 --disable-coreaudio) _coreaudio=no ;;
1209 --enable-corevideo) _corevideo=yes ;;
1210 --disable-corevideo) _corevideo=no ;;
1211 --enable-quartz) _quartz=yes ;;
1212 --disable-quartz) _quartz=no ;;
1213 --enable-macosx-finder) _macosx_finder=yes ;;
1214 --disable-macosx-finder) _macosx_finder=no ;;
1215 --enable-macosx-bundle) _macosx_bundle=yes ;;
1216 --disable-macosx-bundle) _macosx_bundle=no ;;
1218 --enable-maemo) _maemo=yes ;;
1219 --disable-maemo) _maemo=no ;;
1221 --enable-sortsub) _sortsub=yes ;;
1222 --disable-sortsub) _sortsub=no ;;
1224 --enable-crash-debug) _crash_debug=yes ;;
1225 --disable-crash-debug) _crash_debug=no ;;
1226 --enable-sighandler) _sighandler=yes ;;
1227 --disable-sighandler) _sighandler=no ;;
1228 --enable-win32dll) _win32dll=yes ;;
1229 --disable-win32dll) _win32dll=no ;;
1231 --enable-sse) _sse=yes ;;
1232 --disable-sse) _sse=no ;;
1233 --enable-sse2) _sse2=yes ;;
1234 --disable-sse2) _sse2=no ;;
1235 --enable-ssse3) _ssse3=yes ;;
1236 --disable-ssse3) _ssse3=no ;;
1237 --enable-mmxext) _mmxext=yes ;;
1238 --disable-mmxext) _mmxext=no ;;
1239 --enable-3dnow) _3dnow=yes ;;
1240 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1241 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1242 --disable-3dnowext) _3dnowext=no ;;
1243 --enable-cmov) _cmov=yes ;;
1244 --disable-cmov) _cmov=no ;;
1245 --enable-fast-cmov) _fast_cmov=yes ;;
1246 --disable-fast-cmov) _fast_cmov=no ;;
1247 --enable-fast-clz) _fast_clz=yes ;;
1248 --disable-fast-clz) _fast_clz=no ;;
1249 --enable-altivec) _altivec=yes ;;
1250 --disable-altivec) _altivec=no ;;
1251 --enable-armv5te) _armv5te=yes ;;
1252 --disable-armv5te) _armv5te=no ;;
1253 --enable-armv6) _armv6=yes ;;
1254 --disable-armv6) _armv6=no ;;
1255 --enable-armv6t2) _armv6t2=yes ;;
1256 --disable-armv6t2) _armv6t2=no ;;
1257 --enable-armvfp) _armvfp=yes ;;
1258 --disable-armvfp) _armvfp=no ;;
1259 --enable-neon) neon=yes ;;
1260 --disable-neon) neon=no ;;
1261 --enable-iwmmxt) _iwmmxt=yes ;;
1262 --disable-iwmmxt) _iwmmxt=no ;;
1263 --enable-mmx) _mmx=yes ;;
1264 --disable-mmx) # 3Dnow! and MMX2 require MMX
1265 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1268 echo "Unknown parameter: $ac_option"
1269 exit 1
1272 esac
1273 done
1275 if test "$_gui" = yes ; then
1276 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1277 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1280 # Atmos: moved this here, to be correct, if --prefix is specified
1281 test -z "$_bindir" && _bindir="$_prefix/bin"
1282 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1283 test -z "$_mandir" && _mandir="$_prefix/share/man"
1284 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1285 test -z "$_libdir" && _libdir="$_prefix/lib"
1286 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1288 # Determine our OS name and CPU architecture
1289 if test -z "$_target" ; then
1290 # OS name
1291 system_name=$(uname -s 2>&1)
1292 case "$system_name" in
1293 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1295 Haiku)
1296 system_name=BeOS
1298 IRIX*)
1299 system_name=IRIX
1301 GNU/kFreeBSD)
1302 system_name=FreeBSD
1304 HP-UX*)
1305 system_name=HP-UX
1307 [cC][yY][gG][wW][iI][nN]*)
1308 system_name=CYGWIN
1310 MINGW32*)
1311 system_name=MINGW32
1313 OS/2*)
1314 system_name=OS/2
1317 system_name="$system_name-UNKNOWN"
1319 esac
1322 # host's CPU/instruction set
1323 host_arch=$(uname -p 2>&1)
1324 case "$host_arch" in
1325 i386|sparc|ppc|alpha|arm|mips|vax)
1327 powerpc) # Darwin returns 'powerpc'
1328 host_arch=ppc
1330 *) # uname -p on Linux returns 'unknown' for the processor type,
1331 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1333 # Maybe uname -m (machine hardware name) returns something we
1334 # recognize.
1336 # x86/x86pc is used by QNX
1337 case "$(uname -m 2>&1)" in
1338 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 ;;
1339 ia64) host_arch=ia64 ;;
1340 macppc|ppc) host_arch=ppc ;;
1341 ppc64) host_arch=ppc64 ;;
1342 alpha) host_arch=alpha ;;
1343 sparc) host_arch=sparc ;;
1344 sparc64) host_arch=sparc64 ;;
1345 parisc*|hppa*|9000*) host_arch=hppa ;;
1346 arm*|zaurus|cats) host_arch=arm ;;
1347 sh3|sh4|sh4a) host_arch=sh ;;
1348 s390) host_arch=s390 ;;
1349 s390x) host_arch=s390x ;;
1350 *mips*) host_arch=mips ;;
1351 vax) host_arch=vax ;;
1352 xtensa*) host_arch=xtensa ;;
1353 *) host_arch=UNKNOWN ;;
1354 esac
1356 esac
1357 else # if test -z "$_target"
1358 system_name=$(echo $_target | cut -d '-' -f 2)
1359 case "$(echo $system_name | tr A-Z a-z)" in
1360 linux) system_name=Linux ;;
1361 freebsd) system_name=FreeBSD ;;
1362 gnu/kfreebsd) system_name=FreeBSD ;;
1363 netbsd) system_name=NetBSD ;;
1364 bsd/os) system_name=BSD/OS ;;
1365 openbsd) system_name=OpenBSD ;;
1366 dragonfly) system_name=DragonFly ;;
1367 sunos) system_name=SunOS ;;
1368 qnx) system_name=QNX ;;
1369 morphos) system_name=MorphOS ;;
1370 amigaos) system_name=AmigaOS ;;
1371 mingw32*) system_name=MINGW32 ;;
1372 esac
1373 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1374 host_arch=$(echo $_target | cut -d '-' -f 1)
1375 if test $(echo $host_arch) != "x86_64" ; then
1376 host_arch=$(echo $host_arch | tr '_' '-')
1380 extra_cflags="-I. $extra_cflags"
1381 _timer=timer-linux.c
1382 _getch=getch2.c
1383 if freebsd ; then
1384 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1385 extra_cflags="$extra_cflags -I/usr/local/include"
1388 if netbsd || dragonfly ; then
1389 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1390 extra_cflags="$extra_cflags -I/usr/pkg/include"
1393 if darwin; then
1394 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1395 _timer=timer-darwin.c
1398 if aix ; then
1399 extra_ldflags="$extra_ldflags -lC"
1402 if irix ; then
1403 _ranlib='ar -r'
1404 elif linux ; then
1405 _ranlib='true'
1408 if win32 ; then
1409 _exesuf=".exe"
1410 extra_cflags="$extra_cflags -fno-common"
1411 # -lwinmm is always needed for osdep/timer-win2.c
1412 extra_ldflags="$extra_ldflags -lwinmm"
1413 _pe_executable=yes
1414 _timer=timer-win2.c
1415 _priority=yes
1416 def_dos_paths="#define HAVE_DOS_PATHS 1"
1417 def_priority="#define CONFIG_PRIORITY 1"
1420 if mingw32 ; then
1421 _getch=getch2-win.c
1422 _need_shmem=no
1425 if amigaos ; then
1426 _select=no
1427 _sighandler=no
1428 _stream_cache=no
1429 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1430 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1433 if qnx ; then
1434 extra_ldflags="$extra_ldflags -lph"
1437 if os2 ; then
1438 _exesuf=".exe"
1439 _getch=getch2-os2.c
1440 _need_shmem=no
1441 _priority=yes
1442 def_dos_paths="#define HAVE_DOS_PATHS 1"
1443 def_priority="#define CONFIG_PRIORITY 1"
1446 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1447 test "$tmpdir" && break
1448 done
1450 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1451 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1453 TMPLOG="config.log"
1454 TMPC="$mplayer_tmpdir/tmp.c"
1455 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1456 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1457 TMPH="$mplayer_tmpdir/tmp.h"
1458 TMPS="$mplayer_tmpdir/tmp.S"
1460 rm -f "$TMPLOG"
1461 echo configuration: $configuration > "$TMPLOG"
1462 echo >> "$TMPLOG"
1465 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1466 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1470 # Checking CC version...
1471 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1472 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1473 echocheck "$_cc version"
1474 cc_vendor=intel
1475 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1476 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1477 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1478 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1479 # TODO verify older icc/ecc compatibility
1480 case $cc_version in
1482 cc_version="v. ?.??, bad"
1483 cc_fail=yes
1485 10.1|11.0|11.1)
1486 cc_version="$cc_version, ok"
1489 cc_version="$cc_version, bad"
1490 cc_fail=yes
1492 esac
1493 echores "$cc_version"
1494 else
1495 for _cc in "$_cc" gcc cc ; do
1496 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1497 if test "$cc_name_tmp" = "gcc"; then
1498 cc_name=$cc_name_tmp
1499 echocheck "$_cc version"
1500 cc_vendor=gnu
1501 cc_version=$($_cc -dumpversion 2>&1)
1502 case $cc_version in
1503 2.96*)
1504 cc_fail=yes
1507 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1508 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1509 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1511 esac
1512 echores "$cc_version"
1513 break
1515 cc_name_tmp=$($_cc -v 2>&1 | head -n 1 | cut -d ' ' -f 1)
1516 if test "$cc_name_tmp" = "clang"; then
1517 echocheck "$_cc version"
1518 cc_vendor=clang
1519 cc_version=$($_cc -dumpversion 2>&1)
1520 res_comment="experimental support only"
1521 echores "clang $cc_version"
1522 break
1524 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1525 if test "$cc_name_tmp" = "Sun C"; then
1526 echocheck "$_cc version"
1527 cc_vendor=sun
1528 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1529 res_comment="experimental support only"
1530 echores "Sun C $cc_version"
1531 break
1533 done
1534 fi # icc
1535 test "$cc_fail" = yes && die "unsupported compiler version"
1537 if test -z "$_target" && x86 ; then
1538 cat > $TMPC << EOF
1539 int main(void) {
1540 int test[(int)sizeof(char *)-7];
1541 return 0;
1544 cc_check && host_arch=x86_64 || host_arch=i386
1547 echo "Detected operating system: $system_name"
1548 echo "Detected host architecture: $host_arch"
1550 echocheck "host cc"
1551 test "$_host_cc" || _host_cc=$_cc
1552 echores $_host_cc
1554 echocheck "cross compilation"
1555 if test $_cross_compile = auto ; then
1556 cat > $TMPC << EOF
1557 int main(void) { return 0; }
1559 _cross_compile=yes
1560 cc_check && "$TMPEXE" && _cross_compile=no
1562 echores $_cross_compile
1564 if test $_cross_compile = yes; then
1565 tmp_run() {
1566 return 0
1570 # ---
1572 # now that we know what compiler should be used for compilation, try to find
1573 # out which assembler is used by the $_cc compiler
1574 if test "$_as" = auto ; then
1575 _as=$($_cc -print-prog-name=as)
1576 test -z "$_as" && _as=as
1579 if test "$_nm" = auto ; then
1580 _nm=$($_cc -print-prog-name=nm)
1581 test -z "$_nm" && _nm=nm
1584 # XXX: this should be ok..
1585 _cpuinfo="echo"
1587 if test "$_runtime_cpudetection" = no ; then
1589 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1590 # FIXME: Remove the cygwin check once AMD CPUs are supported
1591 if test -r /proc/cpuinfo && ! cygwin; then
1592 # Linux with /proc mounted, extract CPU information from it
1593 _cpuinfo="cat /proc/cpuinfo"
1594 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1595 # FreeBSD with Linux emulation /proc mounted,
1596 # extract CPU information from it
1597 # Don't use it on x86 though, it never reports 3Dnow
1598 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1599 elif darwin && ! x86 ; then
1600 # use hostinfo on Darwin
1601 _cpuinfo="hostinfo"
1602 elif aix; then
1603 # use 'lsattr' on AIX
1604 _cpuinfo="lsattr -E -l proc0 -a type"
1605 elif x86; then
1606 # all other OSes try to extract CPU information from a small helper
1607 # program cpuinfo instead
1608 $_cc -o cpuinfo$_exesuf cpuinfo.c
1609 _cpuinfo="./cpuinfo$_exesuf"
1612 if x86 ; then
1613 # gather more CPU information
1614 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1615 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1616 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1617 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1618 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1620 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1622 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1623 -e s/xmm/sse/ -e s/kni/sse/)
1625 for ext in $pparam ; do
1626 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1627 done
1629 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1630 test $_sse = kernel_check && _mmxext=kernel_check
1632 echocheck "CPU vendor"
1633 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1635 echocheck "CPU type"
1636 echores "$pname"
1639 fi # test "$_runtime_cpudetection" = no
1641 if x86 && test "$_runtime_cpudetection" = no ; then
1642 extcheck() {
1643 if test "$1" = kernel_check ; then
1644 echocheck "kernel support of $2"
1645 cat > $TMPC <<EOF
1646 #include <stdlib.h>
1647 #include <signal.h>
1648 void catch(void) { exit(1); }
1649 int main(void) {
1650 signal(SIGILL, catch);
1651 __asm__ volatile ("$3":::"memory"); return 0;
1655 if cc_check && tmp_run ; then
1656 eval _$2=yes
1657 echores "yes"
1658 _optimizing="$_optimizing $2"
1659 return 0
1660 else
1661 eval _$2=no
1662 echores "failed"
1663 echo "It seems that your kernel does not correctly support $2."
1664 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1665 return 1
1668 return 0
1671 extcheck $_mmx "mmx" "emms"
1672 extcheck $_mmxext "mmxext" "sfence"
1673 extcheck $_3dnow "3dnow" "femms"
1674 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1675 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1676 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1677 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1678 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1680 echocheck "mtrr support"
1681 if test "$_mtrr" = kernel_check ; then
1682 _mtrr="yes"
1683 _optimizing="$_optimizing mtrr"
1685 echores "$_mtrr"
1687 if test "$_gcc3_ext" != ""; then
1688 # if we had to disable sse/sse2 because the active kernel does not
1689 # support this instruction set extension, we also have to tell
1690 # gcc3 to not generate sse/sse2 instructions for normal C code
1691 cat > $TMPC << EOF
1692 int main(void) { return 0; }
1694 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1700 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1701 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1702 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1703 subarch_all='X86_32 X86_64 PPC64'
1704 case "$host_arch" in
1705 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1706 arch='x86'
1707 subarch='x86_32'
1708 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1709 iproc=486
1710 proc=i486
1713 if test "$_runtime_cpudetection" = no ; then
1714 case "$pvendor" in
1715 AuthenticAMD)
1716 case "$pfamily" in
1717 3) proc=i386 iproc=386 ;;
1718 4) proc=i486 iproc=486 ;;
1719 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1720 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1721 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1722 proc=k6-3
1723 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1724 proc=geode
1725 elif test "$pmodel" -ge 8; then
1726 proc=k6-2
1727 elif test "$pmodel" -ge 6; then
1728 proc=k6
1729 else
1730 proc=i586
1733 6) iproc=686
1734 # It's a bit difficult to determine the correct type of Family 6
1735 # AMD CPUs just from their signature. Instead, we check directly
1736 # whether it supports SSE.
1737 if test "$_sse" = yes; then
1738 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1739 proc=athlon-xp
1740 else
1741 # Again, gcc treats athlon and athlon-tbird similarly.
1742 proc=athlon
1745 15) iproc=686
1746 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1747 # caught and remedied in the optimization tests below.
1748 proc=k8
1751 *) proc=amdfam10 iproc=686
1752 test $_fast_clz = "auto" && _fast_clz=yes
1754 esac
1756 GenuineIntel)
1757 case "$pfamily" in
1758 3) proc=i386 iproc=386 ;;
1759 4) proc=i486 iproc=486 ;;
1760 5) iproc=586
1761 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1762 proc=pentium-mmx # 4 is desktop, 8 is mobile
1763 else
1764 proc=i586
1767 6) iproc=686
1768 if test "$pmodel" -ge 15; then
1769 proc=core2
1770 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1771 proc=pentium-m
1772 elif test "$pmodel" -ge 7; then
1773 proc=pentium3
1774 elif test "$pmodel" -ge 3; then
1775 proc=pentium2
1776 else
1777 proc=i686
1779 test $_fast_clz = "auto" && _fast_clz=yes
1781 15) iproc=686
1782 # A nocona in 32-bit mode has no more capabilities than a prescott.
1783 if test "$pmodel" -ge 3; then
1784 proc=prescott
1785 else
1786 proc=pentium4
1787 test $_fast_clz = "auto" && _fast_clz=yes
1789 test $_fast_cmov = "auto" && _fast_cmov=no
1791 *) proc=prescott iproc=686 ;;
1792 esac
1794 CentaurHauls)
1795 case "$pfamily" in
1796 5) iproc=586
1797 if test "$pmodel" -ge 8; then
1798 proc=winchip2
1799 elif test "$pmodel" -ge 4; then
1800 proc=winchip-c6
1801 else
1802 proc=i586
1805 6) iproc=686
1806 if test "$pmodel" -ge 9; then
1807 proc=c3-2
1808 else
1809 proc=c3
1810 iproc=586
1813 *) proc=i686 iproc=i686 ;;
1814 esac
1816 unknown)
1817 case "$pfamily" in
1818 3) proc=i386 iproc=386 ;;
1819 4) proc=i486 iproc=486 ;;
1820 *) proc=i586 iproc=586 ;;
1821 esac
1824 proc=i586 iproc=586 ;;
1825 esac
1826 test $_fast_clz = "auto" && _fast_clz=no
1827 fi # test "$_runtime_cpudetection" = no
1830 # check that gcc supports our CPU, if not, fall back to earlier ones
1831 # LGB: check -mcpu and -march swithing step by step with enabling
1832 # to fall back till 386.
1834 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1836 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1837 cpuopt=-mtune
1838 else
1839 cpuopt=-mcpu
1842 echocheck "GCC & CPU optimization abilities"
1843 cat > $TMPC << EOF
1844 int main(void) { return 0; }
1846 if test "$_runtime_cpudetection" = no ; then
1847 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1848 cc_check -march=native && proc=native
1850 if test "$proc" = "amdfam10"; then
1851 cc_check -march=$proc $cpuopt=$proc || proc=k8
1853 if test "$proc" = "k8"; then
1854 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1856 if test "$proc" = "athlon-xp"; then
1857 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1859 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1860 cc_check -march=$proc $cpuopt=$proc || proc=k6
1862 if test "$proc" = "k6" || test "$proc" = "c3"; then
1863 if ! cc_check -march=$proc $cpuopt=$proc; then
1864 if cc_check -march=i586 $cpuopt=i686; then
1865 proc=i586-i686
1866 else
1867 proc=i586
1871 if test "$proc" = "prescott" ; then
1872 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1874 if test "$proc" = "core2" ; then
1875 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1877 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
1878 cc_check -march=$proc $cpuopt=$proc || proc=i686
1880 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1881 cc_check -march=$proc $cpuopt=$proc || proc=i586
1883 if test "$proc" = "i586"; then
1884 cc_check -march=$proc $cpuopt=$proc || proc=i486
1886 if test "$proc" = "i486" ; then
1887 cc_check -march=$proc $cpuopt=$proc || proc=i386
1889 if test "$proc" = "i386" ; then
1890 cc_check -march=$proc $cpuopt=$proc || proc=error
1892 if test "$proc" = "error" ; then
1893 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1894 _mcpu=""
1895 _march=""
1896 _optimizing=""
1897 elif test "$proc" = "i586-i686"; then
1898 _march="-march=i586"
1899 _mcpu="$cpuopt=i686"
1900 _optimizing="$proc"
1901 else
1902 _march="-march=$proc"
1903 _mcpu="$cpuopt=$proc"
1904 _optimizing="$proc"
1906 else # if test "$_runtime_cpudetection" = no
1907 _mcpu="$cpuopt=generic"
1908 # at least i486 required, for bswap instruction
1909 _march="-march=i486"
1910 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1911 cc_check $_mcpu || _mcpu=""
1912 cc_check $_march $_mcpu || _march=""
1915 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1916 ## autodetected mcpu/march parameters
1917 if test "$_target" ; then
1918 # TODO: it may be a good idea to check GCC and fall back in all cases
1919 if test "$host_arch" = "i586-i686"; then
1920 _march="-march=i586"
1921 _mcpu="$cpuopt=i686"
1922 else
1923 _march="-march=$host_arch"
1924 _mcpu="$cpuopt=$host_arch"
1927 proc="$host_arch"
1929 case "$proc" in
1930 i386) iproc=386 ;;
1931 i486) iproc=486 ;;
1932 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1933 i686|athlon*|pentium*) iproc=686 ;;
1934 *) iproc=586 ;;
1935 esac
1938 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1939 _fast_cmov="yes"
1940 else
1941 _fast_cmov="no"
1943 test $_fast_clz = "auto" && _fast_clz=yes
1945 echores "$proc"
1948 ia64)
1949 arch='ia64'
1950 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1951 iproc='ia64'
1954 x86_64|amd64)
1955 arch='x86'
1956 subarch='x86_64'
1957 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1958 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1959 iproc='x86_64'
1961 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1962 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1963 cpuopt=-mtune
1964 else
1965 cpuopt=-mcpu
1967 if test "$_runtime_cpudetection" = no ; then
1968 case "$pvendor" in
1969 AuthenticAMD)
1970 case "$pfamily" in
1971 15) proc=k8
1972 test $_fast_clz = "auto" && _fast_clz=no
1974 *) proc=amdfam10;;
1975 esac
1977 GenuineIntel)
1978 case "$pfamily" in
1979 6) proc=core2;;
1981 # 64-bit prescotts exist, but as far as GCC is concerned they
1982 # have the same capabilities as a nocona.
1983 proc=nocona
1984 test $_fast_cmov = "auto" && _fast_cmov=no
1985 test $_fast_clz = "auto" && _fast_clz=no
1987 esac
1990 proc=error;;
1991 esac
1992 fi # test "$_runtime_cpudetection" = no
1994 echocheck "GCC & CPU optimization abilities"
1995 # This is a stripped-down version of the i386 fallback.
1996 if test "$_runtime_cpudetection" = no ; then
1997 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1998 cflag_check -march=native && proc=native
2000 # --- AMD processors ---
2001 if test "$proc" = "amdfam10"; then
2002 cflag_check -march=$proc $cpuopt=$proc || proc=k8
2004 if test "$proc" = "k8"; then
2005 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2007 # This will fail if gcc version < 3.3, which is ok because earlier
2008 # versions don't really support 64-bit on amd64.
2009 # Is this a valid assumption? -Corey
2010 if test "$proc" = "athlon-xp"; then
2011 cflag_check -march=$proc $cpuopt=$proc || proc=error
2013 # --- Intel processors ---
2014 if test "$proc" = "core2"; then
2015 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
2017 if test "$proc" = "x86-64"; then
2018 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
2020 if test "$proc" = "nocona"; then
2021 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
2023 if test "$proc" = "pentium4"; then
2024 cflag_check -march=$proc $cpuopt=$proc || proc=error
2027 _march="-march=$proc"
2028 _mcpu="$cpuopt=$proc"
2029 if test "$proc" = "error" ; then
2030 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2031 _mcpu=""
2032 _march=""
2034 else # if test "$_runtime_cpudetection" = no
2035 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2036 _march="-march=x86-64"
2037 _mcpu="$cpuopt=generic"
2038 cflag_check $_mcpu || _mcpu="x86-64"
2039 cflag_check $_mcpu || _mcpu=""
2040 cflag_check $_march $_mcpu || _march=""
2043 _optimizing="$proc"
2044 test $_fast_cmov = "auto" && _fast_cmov=yes
2045 test $_fast_clz = "auto" && _fast_clz=yes
2047 echores "$proc"
2050 sparc|sparc64)
2051 arch='sparc'
2052 iproc='sparc'
2053 if test "$host_arch" = "sparc64" ; then
2054 _vis='yes'
2055 proc='ultrasparc'
2056 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2057 elif sunos ; then
2058 echocheck "CPU type"
2059 karch=$(uname -m)
2060 case "$(echo $karch)" in
2061 sun4) proc=v7 ;;
2062 sun4c) proc=v7 ;;
2063 sun4d) proc=v8 ;;
2064 sun4m) proc=v8 ;;
2065 sun4u) proc=ultrasparc _vis='yes' ;;
2066 sun4v) proc=v9 ;;
2067 *) proc=v8 ;;
2068 esac
2069 echores "$proc"
2070 else
2071 proc=v8
2073 _mcpu="-mcpu=$proc"
2074 _optimizing="$proc"
2077 arm*)
2078 arch='arm'
2079 iproc='arm'
2082 avr32)
2083 arch='avr32'
2084 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2085 iproc='avr32'
2086 test $_fast_clz = "auto" && _fast_clz=yes
2089 sh|sh4)
2090 arch='sh4'
2091 iproc='sh4'
2094 ppc|ppc64|powerpc|powerpc64)
2095 arch='ppc'
2096 def_dcbzl='#define HAVE_DCBZL 0'
2097 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2098 iproc='ppc'
2100 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2101 subarch='ppc64'
2102 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2104 echocheck "CPU type"
2105 case $system_name in
2106 Linux)
2107 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2108 if test -n "$($_cpuinfo | grep altivec)"; then
2109 test $_altivec = auto && _altivec=yes
2112 Darwin)
2113 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2114 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2115 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2116 test $_altivec = auto && _altivec=yes
2119 NetBSD)
2120 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2121 case $cc_version in
2122 2*|3.0*|3.1*|3.2*|3.3*)
2125 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2126 test $_altivec = auto && _altivec=yes
2129 esac
2131 AIX)
2132 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2134 esac
2135 if test "$_altivec" = yes; then
2136 echores "$proc altivec"
2137 else
2138 _altivec=no
2139 echores "$proc"
2142 echocheck "GCC & CPU optimization abilities"
2144 if test -n "$proc"; then
2145 case "$proc" in
2146 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2147 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2148 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2149 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2150 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2151 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2152 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2153 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2154 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2155 *) ;;
2156 esac
2157 # gcc 3.1(.1) and up supports 7400 and 7450
2158 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2159 case "$proc" in
2160 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2161 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2162 *) ;;
2163 esac
2165 # gcc 3.2 and up supports 970
2166 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2167 case "$proc" in
2168 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2169 def_dcbzl='#define HAVE_DCBZL 1' ;;
2170 *) ;;
2171 esac
2173 # gcc 3.3 and up supports POWER4
2174 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2175 case "$proc" in
2176 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2177 *) ;;
2178 esac
2180 # gcc 3.4 and up supports 440*
2181 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2182 case "$proc" in
2183 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2184 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2185 *) ;;
2186 esac
2188 # gcc 4.0 and up supports POWER5
2189 if test "$_cc_major" -ge "4"; then
2190 case "$proc" in
2191 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2192 *) ;;
2193 esac
2197 if test -n "$_mcpu"; then
2198 _optimizing=$(echo $_mcpu | cut -c 8-)
2199 echores "$_optimizing"
2200 else
2201 echores "none"
2204 test $_fast_clz = "auto" && _fast_clz=yes
2208 alpha*)
2209 arch='alpha'
2210 iproc='alpha'
2211 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2213 echocheck "CPU type"
2214 cat > $TMPC << EOF
2215 int main(void) {
2216 unsigned long ver, mask;
2217 __asm__ ("implver %0" : "=r" (ver));
2218 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2219 printf("%ld-%x\n", ver, ~mask);
2220 return 0;
2223 $_cc -o "$TMPEXE" "$TMPC"
2224 case $("$TMPEXE") in
2226 0-0) proc="ev4"; _mvi="0";;
2227 1-0) proc="ev5"; _mvi="0";;
2228 1-1) proc="ev56"; _mvi="0";;
2229 1-101) proc="pca56"; _mvi="1";;
2230 2-303) proc="ev6"; _mvi="1";;
2231 2-307) proc="ev67"; _mvi="1";;
2232 2-1307) proc="ev68"; _mvi="1";;
2233 esac
2234 echores "$proc"
2236 echocheck "GCC & CPU optimization abilities"
2237 if test "$proc" = "ev68" ; then
2238 cc_check -mcpu=$proc || proc=ev67
2240 if test "$proc" = "ev67" ; then
2241 cc_check -mcpu=$proc || proc=ev6
2243 _mcpu="-mcpu=$proc"
2244 echores "$proc"
2246 test $_fast_clz = "auto" && _fast_clz=yes
2248 _optimizing="$proc"
2251 mips)
2252 arch='mips'
2253 iproc='mips'
2255 if irix ; then
2256 echocheck "CPU type"
2257 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2258 case "$(echo $proc)" in
2259 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2260 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2261 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2262 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2263 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2264 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2265 esac
2266 # gcc < 3.x does not support -mtune.
2267 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2268 _mcpu=''
2270 echores "$proc"
2273 test $_fast_clz = "auto" && _fast_clz=yes
2277 hppa)
2278 arch='pa_risc'
2279 iproc='PA-RISC'
2282 s390)
2283 arch='s390'
2284 iproc='390'
2287 s390x)
2288 arch='s390x'
2289 iproc='390x'
2292 vax)
2293 arch='vax'
2294 iproc='vax'
2297 xtensa)
2298 arch='xtensa'
2299 iproc='xtensa'
2302 generic)
2303 arch='generic'
2307 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2308 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2309 die "unsupported architecture $host_arch"
2311 esac # case "$host_arch" in
2313 if test "$_runtime_cpudetection" = yes ; then
2314 if x86 ; then
2315 test "$_cmov" != no && _cmov=yes
2316 x86_32 && _cmov=no
2317 test "$_mmx" != no && _mmx=yes
2318 test "$_3dnow" != no && _3dnow=yes
2319 test "$_3dnowext" != no && _3dnowext=yes
2320 test "$_mmxext" != no && _mmxext=yes
2321 test "$_sse" != no && _sse=yes
2322 test "$_sse2" != no && _sse2=yes
2323 test "$_ssse3" != no && _ssse3=yes
2324 test "$_mtrr" != no && _mtrr=yes
2326 if ppc; then
2327 _altivec=yes
2332 # endian testing
2333 echocheck "byte order"
2334 if test "$_big_endian" = auto ; then
2335 cat > $TMPC <<EOF
2336 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2337 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2338 int main(void) { return (int)ascii_name; }
2340 if cc_check ; then
2341 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2342 _big_endian=yes
2343 else
2344 _big_endian=no
2346 else
2347 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2350 if test "$_big_endian" = yes ; then
2351 _byte_order='big-endian'
2352 def_words_endian='#define WORDS_BIGENDIAN 1'
2353 def_bigendian='#define HAVE_BIGENDIAN 1'
2354 else
2355 _byte_order='little-endian'
2356 def_words_endian='#undef WORDS_BIGENDIAN'
2357 def_bigendian='#define HAVE_BIGENDIAN 0'
2359 echores "$_byte_order"
2362 echocheck "extern symbol prefix"
2363 cat > $TMPC << EOF
2364 int ff_extern;
2366 cc_check -c || die "Symbol mangling check failed."
2367 sym=$($_nm -P -g $TMPEXE)
2368 extern_prefix=${sym%%ff_extern*}
2369 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2370 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2371 echores $extern_prefix
2374 echocheck "assembler support of -pipe option"
2375 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2376 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2379 echocheck "compiler support of named assembler arguments"
2380 _named_asm_args=yes
2381 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2382 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2383 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2384 _named_asm_args=no
2385 def_named_asm_args="#undef NAMED_ASM_ARGS"
2387 echores $_named_asm_args
2390 if darwin && test "$cc_vendor" = "gnu" ; then
2391 echocheck "GCC support of -mstackrealign"
2392 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2393 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2394 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2395 # wrong code with this flag, but this can be worked around by adding
2396 # -fno-unit-at-a-time as described in the blog post at
2397 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2398 cat > $TMPC << EOF
2399 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2400 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2402 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2403 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2404 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2405 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2406 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2409 # Checking for CFLAGS
2410 _install_strip="-s"
2411 if test "$_profile" != "" || test "$_debug" != "" ; then
2412 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2413 _install_strip=
2414 elif test -z "$CFLAGS" ; then
2415 if test "$cc_vendor" = "intel" ; then
2416 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2417 elif test "$cc_vendor" = "sun" ; then
2418 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2419 elif test "$cc_vendor" != "gnu" ; then
2420 CFLAGS="-O2 $_march $_mcpu $_pipe"
2421 else
2422 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2423 extra_ldflags="$extra_ldflags -ffast-math"
2425 else
2426 warn_cflags=yes
2429 if test "$cc_vendor" = "gnu" ; then
2430 cflag_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2431 cflag_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2432 cflag_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2433 cflag_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2434 cflag_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2435 cflag_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2436 else
2437 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2440 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2441 cflag_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2444 if test -n "$LDFLAGS" ; then
2445 extra_ldflags="$extra_ldflags $LDFLAGS"
2446 warn_cflags=yes
2447 elif test "$cc_vendor" = "intel" ; then
2448 extra_ldflags="$extra_ldflags -i-static"
2450 if test -n "$CPPFLAGS" ; then
2451 extra_cflags="$extra_cflags $CPPFLAGS"
2452 warn_cflags=yes
2457 if x86_32 ; then
2458 # Checking assembler (_as) compatibility...
2459 # Added workaround for older as that reads from stdin by default - atmos
2460 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2461 echocheck "assembler ($_as $as_version)"
2463 _pref_as_version='2.9.1'
2464 echo 'nop' > $TMPS
2465 if test "$_mmx" = yes ; then
2466 echo 'emms' >> $TMPS
2468 if test "$_3dnow" = yes ; then
2469 _pref_as_version='2.10.1'
2470 echo 'femms' >> $TMPS
2472 if test "$_3dnowext" = yes ; then
2473 _pref_as_version='2.10.1'
2474 echo 'pswapd %mm0, %mm0' >> $TMPS
2476 if test "$_mmxext" = yes ; then
2477 _pref_as_version='2.10.1'
2478 echo 'movntq %mm0, (%eax)' >> $TMPS
2480 if test "$_sse" = yes ; then
2481 _pref_as_version='2.10.1'
2482 echo 'xorps %xmm0, %xmm0' >> $TMPS
2484 #if test "$_sse2" = yes ; then
2485 # _pref_as_version='2.11'
2486 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2488 if test "$_cmov" = yes ; then
2489 _pref_as_version='2.10.1'
2490 echo 'cmovb %eax, %ebx' >> $TMPS
2492 if test "$_ssse3" = yes ; then
2493 _pref_as_version='2.16.92'
2494 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2496 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2498 if test "$as_verc_fail" != yes ; then
2499 echores "ok"
2500 else
2501 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2502 echores "failed"
2503 die "obsolete binutils version"
2506 fi #if x86_32
2508 echocheck ".align is a power of two"
2509 if test "$_asmalign_pot" = auto ; then
2510 _asmalign_pot=no
2511 cat > $TMPC << EOF
2512 int main(void) { __asm__ (".align 3"); return 0; }
2514 cc_check && _asmalign_pot=yes
2516 if test "$_asmalign_pot" = "yes" ; then
2517 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2518 else
2519 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2521 echores $_asmalign_pot
2523 if x86 ; then
2524 echocheck "10 assembler operands"
2525 ten_operands=no
2526 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2527 cat > $TMPC << EOF
2528 int main(void) {
2529 int x=0;
2530 __asm__ volatile(
2532 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2534 return 0;
2537 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2538 echores $ten_operands
2540 echocheck "ebx availability"
2541 ebx_available=no
2542 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2543 cat > $TMPC << EOF
2544 int main(void) {
2545 int x;
2546 __asm__ volatile(
2547 "xor %0, %0"
2548 :"=b"(x)
2549 // just adding ebx to clobber list seems unreliable with some
2550 // compilers, e.g. Haiku's gcc 2.95
2552 // and the above check does not work for OSX 64 bit...
2553 __asm__ volatile("":::"%ebx");
2554 return 0;
2557 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2558 echores $ebx_available
2560 echocheck "PIC"
2561 pic=no
2562 cat > $TMPC << EOF
2563 int main(void) {
2564 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2565 #error PIC not enabled
2566 #endif
2567 return 0;
2570 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2571 echores $pic
2573 echocheck "yasm"
2574 if test -z "$YASMFLAGS" ; then
2575 if darwin ; then
2576 x86_64 && objformat="macho64" || objformat="macho"
2577 elif win32 ; then
2578 objformat="win32"
2579 else
2580 objformat="elf"
2582 # currently tested for Linux x86, x86_64
2583 YASMFLAGS="-f $objformat"
2584 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2585 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2586 case "$objformat" in
2587 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2588 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2589 esac
2590 else
2591 warn_cflags=yes
2594 echo "pabsw xmm0, xmm0" > $TMPS
2595 yasm_check || _yasm=""
2596 if test $_yasm ; then
2597 def_yasm='#define HAVE_YASM 1'
2598 have_yasm="yes"
2599 echores "$_yasm"
2600 else
2601 def_yasm='#define HAVE_YASM 0'
2602 have_yasm="no"
2603 echores "no"
2606 echocheck "bswap"
2607 def_bswap='#define HAVE_BSWAP 0'
2608 echo 'bswap %eax' > $TMPS
2609 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2610 echores "$bswap"
2611 fi #if x86
2614 #FIXME: This should happen before the check for CFLAGS..
2615 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2616 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2618 # check if AltiVec is supported by the compiler, and how to enable it
2619 echocheck "GCC AltiVec flags"
2620 if $(cflag_check -maltivec -mabi=altivec) ; then
2621 _altivec_gcc_flags="-maltivec -mabi=altivec"
2622 # check if <altivec.h> should be included
2623 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2624 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2625 inc_altivec_h='#include <altivec.h>'
2626 else
2627 if $(cflag_check -faltivec) ; then
2628 _altivec_gcc_flags="-faltivec"
2629 else
2630 _altivec=no
2631 _altivec_gcc_flags="none, AltiVec disabled"
2635 echores "$_altivec_gcc_flags"
2637 # check if the compiler supports braces for vector declarations
2638 cat > $TMPC << EOF
2639 $inc_altivec_h
2640 int main(void) { (vector int) {1}; return 0; }
2642 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2644 # Disable runtime cpudetection if we cannot generate AltiVec code or
2645 # AltiVec is disabled by the user.
2646 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2647 && _runtime_cpudetection=no
2649 # Show that we are optimizing for AltiVec (if enabled and supported).
2650 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2651 && _optimizing="$_optimizing altivec"
2653 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2654 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2657 if ppc ; then
2658 def_xform_asm='#define HAVE_XFORM_ASM 0'
2659 xform_asm=no
2660 echocheck "XFORM ASM support"
2661 cat > $TMPC << EOF
2662 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2664 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2665 echores "$xform_asm"
2668 if arm ; then
2669 echocheck "ARM pld instruction"
2670 cat > $TMPC << EOF
2671 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2673 pld=no
2674 cc_check && pld=yes
2675 echores "$pld"
2677 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2678 if test $_armv5te = "auto" ; then
2679 cat > $TMPC << EOF
2680 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2682 _armv5te=no
2683 cc_check && _armv5te=yes
2685 echores "$_armv5te"
2687 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2689 echocheck "ARMv6 (SIMD instructions)"
2690 if test $_armv6 = "auto" ; then
2691 cat > $TMPC << EOF
2692 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2694 _armv6=no
2695 cc_check && _armv6=yes
2697 echores "$_armv6"
2699 echocheck "ARMv6t2 (SIMD instructions)"
2700 if test $_armv6t2 = "auto" ; then
2701 cat > $TMPC << EOF
2702 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2704 _armv6t2=no
2705 cc_check && _armv6t2=yes
2707 echores "$_armv6"
2709 echocheck "ARM VFP"
2710 if test $_armvfp = "auto" ; then
2711 cat > $TMPC << EOF
2712 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2714 _armvfp=no
2715 cc_check && _armvfp=yes
2717 echores "$_armvfp"
2719 echocheck "ARM NEON"
2720 if test $neon = "auto" ; then
2721 cat > $TMPC << EOF
2722 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2724 neon=no
2725 cc_check && neon=yes
2727 echores "$neon"
2729 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2730 if test $_iwmmxt = "auto" ; then
2731 cat > $TMPC << EOF
2732 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2734 _iwmmxt=no
2735 cc_check && _iwmmxt=yes
2737 echores "$_iwmmxt"
2740 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'
2741 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2742 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2743 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2744 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2745 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2746 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2747 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2748 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2749 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2750 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2751 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2752 test "$pld" = yes && cpuexts="PLD $cpuexts"
2753 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2754 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2755 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2756 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2757 test "$neon" = yes && cpuexts="NEON $cpuexts"
2758 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2759 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2760 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2762 # Checking kernel version...
2763 if x86_32 && linux ; then
2764 _k_verc_problem=no
2765 kernel_version=$(uname -r 2>&1)
2766 echocheck "$system_name kernel version"
2767 case "$kernel_version" in
2768 '') kernel_version="?.??"; _k_verc_fail=yes;;
2769 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2770 _k_verc_problem=yes;;
2771 esac
2772 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2773 _k_verc_fail=yes
2775 if test "$_k_verc_fail" ; then
2776 echores "$kernel_version, fail"
2777 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2778 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2779 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2780 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2781 echo "2.2.x you must upgrade it to get SSE support!"
2782 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2783 else
2784 echores "$kernel_version, ok"
2788 ######################
2789 # MAIN TESTS GO HERE #
2790 ######################
2793 echocheck "-lposix"
2794 if cflag_check -lposix ; then
2795 extra_ldflags="$extra_ldflags -lposix"
2796 echores "yes"
2797 else
2798 echores "no"
2801 echocheck "-lm"
2802 if cflag_check -lm ; then
2803 _ld_lm="-lm"
2804 echores "yes"
2805 else
2806 _ld_lm=""
2807 echores "no"
2811 echocheck "langinfo"
2812 if test "$_langinfo" = auto ; then
2813 cat > $TMPC <<EOF
2814 #include <langinfo.h>
2815 int main(void) { nl_langinfo(CODESET); return 0; }
2817 _langinfo=no
2818 cc_check && _langinfo=yes
2820 if test "$_langinfo" = yes ; then
2821 def_langinfo='#define HAVE_LANGINFO 1'
2822 else
2823 def_langinfo='#undef HAVE_LANGINFO'
2825 echores "$_langinfo"
2828 echocheck "translation support"
2829 if test "$_translation" = yes; then
2830 def_translation="#define CONFIG_TRANSLATION 1"
2831 else
2832 def_translation="#undef CONFIG_TRANSLATION"
2834 echores "$_translation"
2836 echocheck "language"
2837 # Set preferred languages, "all" uses English as main language.
2838 test -z "$language" && language=$LINGUAS
2839 test -z "$language_doc" && language_doc=$language
2840 test -z "$language_man" && language_man=$language
2841 test -z "$language_msg" && language_msg="all"
2842 language_doc=$(echo $language_doc | tr , " ")
2843 language_man=$(echo $language_man | tr , " ")
2844 language_msg=$(echo $language_msg | tr , " ")
2846 test "$language_doc" = "all" && language_doc=$doc_lang_all
2847 test "$language_man" = "all" && language_man=$man_lang_all
2848 test "$language_msg" = "all" && language_msg=$msg_lang_all
2850 if test "$_translation" != yes ; then
2851 language_msg=""
2854 # Prune non-existing translations from language lists.
2855 # Set message translation to the first available language.
2856 # Fall back on English.
2857 for lang in $language_doc ; do
2858 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2859 done
2860 language_doc=$tmp_language_doc
2861 test -z "$language_doc" && language_doc=en
2863 for lang in $language_man ; do
2864 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2865 done
2866 language_man=$tmp_language_man
2867 test -z "$language_man" && language_man=en
2869 for lang in $language_msg ; do
2870 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2871 done
2872 language_msg=$tmp_language_msg
2874 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2877 echocheck "enable sighandler"
2878 if test "$_sighandler" = yes ; then
2879 def_sighandler='#define CONFIG_SIGHANDLER 1'
2880 else
2881 def_sighandler='#undef CONFIG_SIGHANDLER'
2883 echores "$_sighandler"
2885 echocheck "runtime cpudetection"
2886 if test "$_runtime_cpudetection" = yes ; then
2887 _optimizing="Runtime CPU-Detection enabled"
2888 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2889 else
2890 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2892 echores "$_runtime_cpudetection"
2895 echocheck "restrict keyword"
2896 for restrict_keyword in restrict __restrict __restrict__ ; do
2897 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2898 if cc_check; then
2899 def_restrict_keyword=$restrict_keyword
2900 break;
2902 done
2903 if [ -n "$def_restrict_keyword" ]; then
2904 echores "$def_restrict_keyword"
2905 else
2906 echores "none"
2908 # Avoid infinite recursion loop ("#define restrict restrict")
2909 if [ "$def_restrict_keyword" != "restrict" ]; then
2910 def_restrict_keyword="#define restrict $def_restrict_keyword"
2911 else
2912 def_restrict_keyword=""
2916 echocheck "__builtin_expect"
2917 # GCC branch prediction hint
2918 cat > $TMPC << EOF
2919 int foo(int a) {
2920 a = __builtin_expect(a, 10);
2921 return a == 10 ? 0 : 1;
2923 int main(void) { return foo(10) && foo(0); }
2925 _builtin_expect=no
2926 cc_check && _builtin_expect=yes
2927 if test "$_builtin_expect" = yes ; then
2928 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2929 else
2930 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2932 echores "$_builtin_expect"
2935 echocheck "kstat"
2936 cat > $TMPC << EOF
2937 #include <kstat.h>
2938 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2940 _kstat=no
2941 cc_check -lkstat && _kstat=yes
2942 if test "$_kstat" = yes ; then
2943 def_kstat="#define HAVE_LIBKSTAT 1"
2944 extra_ldflags="$extra_ldflags -lkstat"
2945 else
2946 def_kstat="#undef HAVE_LIBKSTAT"
2948 echores "$_kstat"
2951 echocheck "posix4"
2952 # required for nanosleep on some systems
2953 cat > $TMPC << EOF
2954 #include <time.h>
2955 int main(void) { (void) nanosleep(0, 0); return 0; }
2957 _posix4=no
2958 cc_check -lposix4 && _posix4=yes
2959 if test "$_posix4" = yes ; then
2960 extra_ldflags="$extra_ldflags -lposix4"
2962 echores "$_posix4"
2964 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2965 echocheck $func
2966 cat > $TMPC << EOF
2967 #include <math.h>
2968 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2970 eval _$func=no
2971 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2972 if eval test "x\$_$func" = "xyes"; then
2973 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2974 echores yes
2975 else
2976 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2977 echores no
2979 done
2982 echocheck "mkstemp"
2983 cat > $TMPC << EOF
2984 #include <stdlib.h>
2985 int main(void) { char a; mkstemp(&a); return 0; }
2987 _mkstemp=no
2988 cc_check && _mkstemp=yes
2989 if test "$_mkstemp" = yes ; then
2990 def_mkstemp='#define HAVE_MKSTEMP 1'
2991 else
2992 def_mkstemp='#undef HAVE_MKSTEMP'
2994 echores "$_mkstemp"
2997 echocheck "nanosleep"
2998 # also check for nanosleep
2999 cat > $TMPC << EOF
3000 #include <time.h>
3001 int main(void) { (void) nanosleep(0, 0); return 0; }
3003 _nanosleep=no
3004 cc_check && _nanosleep=yes
3005 if test "$_nanosleep" = yes ; then
3006 def_nanosleep='#define HAVE_NANOSLEEP 1'
3007 else
3008 def_nanosleep='#undef HAVE_NANOSLEEP'
3010 echores "$_nanosleep"
3013 echocheck "socklib"
3014 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3015 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3016 cat > $TMPC << EOF
3017 #include <netdb.h>
3018 #include <sys/socket.h>
3019 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3021 _socklib=no
3022 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3023 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3024 done
3025 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3026 if test $_winsock2_h = auto ; then
3027 _winsock2_h=no
3028 cat > $TMPC << EOF
3029 #include <winsock2.h>
3030 int main(void) { (void) gethostbyname(0); return 0; }
3032 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3034 test "$_ld_sock" && res_comment="using $_ld_sock"
3035 echores "$_socklib"
3038 if test $_winsock2_h = yes ; then
3039 _ld_sock="-lws2_32"
3040 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3041 else
3042 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3046 echocheck "arpa/inet.h"
3047 arpa_inet_h=no
3048 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3049 header_check arpa/inet.h && arpa_inet_h=yes &&
3050 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3051 echores "$arpa_inet_h"
3054 echocheck "inet_pton()"
3055 def_inet_pton='#define HAVE_INET_PTON 0'
3056 inet_pton=no
3057 cat > $TMPC << EOF
3058 #include <sys/types.h>
3059 #include <sys/socket.h>
3060 #include <arpa/inet.h>
3061 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3063 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3064 cc_check $_ld_tmp && inet_pton=yes && break
3065 done
3066 if test $inet_pton = yes ; then
3067 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3068 def_inet_pton='#define HAVE_INET_PTON 1'
3070 echores "$inet_pton"
3073 echocheck "inet_aton()"
3074 def_inet_aton='#define HAVE_INET_ATON 0'
3075 inet_aton=no
3076 cat > $TMPC << EOF
3077 #include <sys/types.h>
3078 #include <sys/socket.h>
3079 #include <arpa/inet.h>
3080 int main(void) { (void) inet_aton(0, 0); return 0; }
3082 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3083 cc_check $_ld_tmp && inet_aton=yes && break
3084 done
3085 if test $inet_aton = yes ; then
3086 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3087 def_inet_aton='#define HAVE_INET_ATON 1'
3089 echores "$inet_aton"
3092 echocheck "socklen_t"
3093 _socklen_t=no
3094 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3095 cat > $TMPC << EOF
3096 #include <$header>
3097 int main(void) { socklen_t v = 0; return v; }
3099 cc_check && _socklen_t=yes && break
3100 done
3101 if test "$_socklen_t" = yes ; then
3102 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3103 else
3104 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3106 echores "$_socklen_t"
3109 echocheck "closesocket()"
3110 _closesocket=no
3111 cat > $TMPC << EOF
3112 #include <winsock2.h>
3113 int main(void) { closesocket(~0); return 0; }
3115 cc_check $_ld_sock && _closesocket=yes
3116 if test "$_closesocket" = yes ; then
3117 def_closesocket='#define HAVE_CLOSESOCKET 1'
3118 else
3119 def_closesocket='#define HAVE_CLOSESOCKET 0'
3121 echores "$_closesocket"
3124 echocheck "network"
3125 test $_winsock2_h = no && test $inet_pton = no &&
3126 test $inet_aton = no && _network=no
3127 if test "$_network" = yes ; then
3128 def_network='#define CONFIG_NETWORK 1'
3129 extra_ldflags="$extra_ldflags $_ld_sock"
3130 inputmodules="network $inputmodules"
3131 else
3132 noinputmodules="network $noinputmodules"
3133 def_network='#undef CONFIG_NETWORK'
3134 _ftp=no
3136 echores "$_network"
3139 echocheck "inet6"
3140 if test "$_inet6" = auto ; then
3141 cat > $TMPC << EOF
3142 #include <sys/types.h>
3143 #if !defined(_WIN32) || defined(__CYGWIN__)
3144 #include <sys/socket.h>
3145 #include <netinet/in.h>
3146 #else
3147 #include <ws2tcpip.h>
3148 #endif
3149 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3151 _inet6=no
3152 if cc_check $_ld_sock ; then
3153 _inet6=yes
3156 if test "$_inet6" = yes ; then
3157 def_inet6='#define HAVE_AF_INET6 1'
3158 else
3159 def_inet6='#undef HAVE_AF_INET6'
3161 echores "$_inet6"
3164 echocheck "gethostbyname2"
3165 if test "$_gethostbyname2" = auto ; then
3166 cat > $TMPC << EOF
3167 #include <sys/types.h>
3168 #include <sys/socket.h>
3169 #include <netdb.h>
3170 int main(void) { gethostbyname2("", AF_INET); return 0; }
3172 _gethostbyname2=no
3173 if cc_check ; then
3174 _gethostbyname2=yes
3177 if test "$_gethostbyname2" = yes ; then
3178 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3179 else
3180 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3182 echores "$_gethostbyname2"
3185 echocheck "inttypes.h (required)"
3186 _inttypes=no
3187 header_check inttypes.h && _inttypes=yes
3188 echores "$_inttypes"
3190 if test "$_inttypes" = no ; then
3191 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3192 header_check sys/bitypes.h && _inttypes=yes
3193 if test "$_inttypes" = yes ; then
3194 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."
3195 else
3196 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3201 echocheck "int_fastXY_t in inttypes.h"
3202 cat > $TMPC << EOF
3203 #include <inttypes.h>
3204 int main(void) {
3205 volatile int_fast16_t v= 0;
3206 return v; }
3208 _fast_inttypes=no
3209 cc_check && _fast_inttypes=yes
3210 if test "$_fast_inttypes" = no ; then
3211 def_fast_inttypes='
3212 typedef signed char int_fast8_t;
3213 typedef signed int int_fast16_t;
3214 typedef signed int int_fast32_t;
3215 typedef signed long long int_fast64_t;
3216 typedef unsigned char uint_fast8_t;
3217 typedef unsigned int uint_fast16_t;
3218 typedef unsigned int uint_fast32_t;
3219 typedef unsigned long long uint_fast64_t;'
3221 echores "$_fast_inttypes"
3224 echocheck "malloc.h"
3225 _malloc=no
3226 header_check malloc.h && _malloc=yes
3227 if test "$_malloc" = yes ; then
3228 def_malloc_h='#define HAVE_MALLOC_H 1'
3229 else
3230 def_malloc_h='#define HAVE_MALLOC_H 0'
3232 echores "$_malloc"
3235 echocheck "memalign()"
3236 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3237 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3238 cat > $TMPC << EOF
3239 #include <malloc.h>
3240 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3242 _memalign=no
3243 cc_check && _memalign=yes
3244 if test "$_memalign" = yes ; then
3245 def_memalign='#define HAVE_MEMALIGN 1'
3246 else
3247 def_memalign='#define HAVE_MEMALIGN 0'
3248 def_map_memalign='#define memalign(a,b) malloc(b)'
3249 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3251 echores "$_memalign"
3254 echocheck "posix_memalign()"
3255 posix_memalign=no
3256 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3257 cat > $TMPC << EOF
3258 #define _XOPEN_SOURCE 600
3259 #include <stdlib.h>
3260 int main(void) { posix_memalign(NULL, 0, 0); }
3262 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3263 echores "$posix_memalign"
3266 echocheck "alloca.h"
3267 cat > $TMPC << EOF
3268 #include <alloca.h>
3269 int main(void) { (void) alloca(0); return 0; }
3271 _alloca=no
3272 cc_check && _alloca=yes
3273 if cc_check ; then
3274 def_alloca_h='#define HAVE_ALLOCA_H 1'
3275 else
3276 def_alloca_h='#undef HAVE_ALLOCA_H'
3278 echores "$_alloca"
3281 echocheck "fastmemcpy"
3282 if test "$_fastmemcpy" = yes ; then
3283 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3284 else
3285 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3287 echores "$_fastmemcpy"
3290 echocheck "mman.h"
3291 cat > $TMPC << EOF
3292 #include <sys/types.h>
3293 #include <sys/mman.h>
3294 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3296 _mman=no
3297 cc_check && _mman=yes
3298 if test "$_mman" = yes ; then
3299 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3300 else
3301 def_mman_h='#undef HAVE_SYS_MMAN_H'
3302 os2 && _need_mmap=yes
3304 echores "$_mman"
3306 cat > $TMPC << EOF
3307 #include <sys/types.h>
3308 #include <sys/mman.h>
3309 int main(void) { void *p = MAP_FAILED; return 0; }
3311 _mman_has_map_failed=no
3312 cc_check && _mman_has_map_failed=yes
3313 if test "$_mman_has_map_failed" = yes ; then
3314 def_mman_has_map_failed=''
3315 else
3316 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3319 echocheck "dynamic loader"
3320 cat > $TMPC << EOF
3321 #include <stddef.h>
3322 #include <dlfcn.h>
3323 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3325 _dl=no
3326 for _ld_tmp in "" "-ldl" ; do
3327 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3328 done
3329 if test "$_dl" = yes ; then
3330 def_dl='#define HAVE_LIBDL 1'
3331 else
3332 def_dl='#undef HAVE_LIBDL'
3334 echores "$_dl"
3337 echocheck "dynamic a/v plugins support"
3338 if test "$_dl" = no ; then
3339 _dynamic_plugins=no
3341 if test "$_dynamic_plugins" = yes ; then
3342 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3343 else
3344 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3346 echores "$_dynamic_plugins"
3349 def_threads='#define HAVE_THREADS 0'
3351 echocheck "pthread"
3352 if linux ; then
3353 THREAD_CFLAGS=-D_REENTRANT
3354 elif freebsd || netbsd || openbsd || bsdos ; then
3355 THREAD_CFLAGS=-D_THREAD_SAFE
3357 if test "$_pthreads" = auto ; then
3358 cat > $TMPC << EOF
3359 #include <pthread.h>
3360 void* func(void *arg) { return arg; }
3361 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3363 _pthreads=no
3364 if ! hpux ; then
3365 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3366 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3367 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3368 done
3371 if test "$_pthreads" = yes ; then
3372 test $_ld_pthread && res_comment="using $_ld_pthread"
3373 def_pthreads='#define HAVE_PTHREADS 1'
3374 def_threads='#define HAVE_THREADS 1'
3375 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3376 else
3377 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3378 def_pthreads='#undef HAVE_PTHREADS'
3379 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3380 mingw32 || _win32dll=no
3382 echores "$_pthreads"
3384 if cygwin ; then
3385 if test "$_pthreads" = yes ; then
3386 def_pthread_cache="#define PTHREAD_CACHE 1"
3387 else
3388 _stream_cache=no
3389 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3393 echocheck "w32threads"
3394 if test "$_pthreads" = yes ; then
3395 res_comment="using pthread instead"
3396 _w32threads=no
3398 if test "$_w32threads" = auto ; then
3399 _w32threads=no
3400 mingw32 && _w32threads=yes
3402 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3403 echores "$_w32threads"
3405 echocheck "rpath"
3406 netbsd &&_rpath=yes
3407 if test "$_rpath" = yes ; then
3408 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3409 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3410 done
3411 extra_ldflags=$tmp
3413 echores "$_rpath"
3415 echocheck "iconv"
3416 if test "$_iconv" = auto ; then
3417 cat > $TMPC << EOF
3418 #include <stdio.h>
3419 #include <unistd.h>
3420 #include <iconv.h>
3421 #define INBUFSIZE 1024
3422 #define OUTBUFSIZE 4096
3424 char inbuffer[INBUFSIZE];
3425 char outbuffer[OUTBUFSIZE];
3427 int main(void) {
3428 size_t numread;
3429 iconv_t icdsc;
3430 char *tocode="UTF-8";
3431 char *fromcode="cp1250";
3432 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3433 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3434 char *iptr=inbuffer;
3435 char *optr=outbuffer;
3436 size_t inleft=numread;
3437 size_t outleft=OUTBUFSIZE;
3438 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3439 != (size_t)(-1)) {
3440 write(1, outbuffer, OUTBUFSIZE - outleft);
3443 if (iconv_close(icdsc) == -1)
3446 return 0;
3449 _iconv=no
3450 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3451 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3452 _iconv=yes && break
3453 done
3455 if test "$_iconv" = yes ; then
3456 def_iconv='#define CONFIG_ICONV 1'
3457 else
3458 def_iconv='#undef CONFIG_ICONV'
3460 echores "$_iconv"
3463 echocheck "soundcard.h"
3464 _soundcard_h=no
3465 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3466 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3467 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3468 header_check $_soundcard_header && _soundcard_h=yes &&
3469 res_comment="$_soundcard_header" && break
3470 done
3472 if test "$_soundcard_h" = yes ; then
3473 if test $_soundcard_header = "sys/soundcard.h"; then
3474 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3475 else
3476 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3479 echores "$_soundcard_h"
3482 echocheck "sys/dvdio.h"
3483 _dvdio=no
3484 header_check sys/dvdio.h && _dvdio=yes
3485 if test "$_dvdio" = yes ; then
3486 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3487 else
3488 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3490 echores "$_dvdio"
3493 echocheck "sys/cdio.h"
3494 _cdio=no
3495 header_check sys/cdio.h && _cdio=yes
3496 if test "$_cdio" = yes ; then
3497 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3498 else
3499 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3501 echores "$_cdio"
3504 echocheck "linux/cdrom.h"
3505 _cdrom=no
3506 header_check linux/cdrom.h && _cdrom=yes
3507 if test "$_cdrom" = yes ; then
3508 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3509 else
3510 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3512 echores "$_cdrom"
3515 echocheck "dvd.h"
3516 _dvd=no
3517 header_check dvd.h && _dvd=yes
3518 if test "$_dvd" = yes ; then
3519 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3520 else
3521 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3523 echores "$_dvd"
3526 if bsdos; then
3527 echocheck "BSDI dvd.h"
3528 _bsdi_dvd=no
3529 header_check dvd.h && _bsdi_dvd=yes
3530 if test "$_bsdi_dvd" = yes ; then
3531 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3532 else
3533 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3535 echores "$_bsdi_dvd"
3536 fi #if bsdos
3539 if hpux; then
3540 # also used by AIX, but AIX does not support VCD and/or libdvdread
3541 echocheck "HP-UX SCSI header"
3542 _hpux_scsi_h=no
3543 header_check sys/scsi.h && _hpux_scsi_h=yes
3544 if test "$_hpux_scsi_h" = yes ; then
3545 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3546 else
3547 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3549 echores "$_hpux_scsi_h"
3550 fi #if hpux
3553 if sunos; then
3554 echocheck "userspace SCSI headers (Solaris)"
3555 _sol_scsi_h=no
3556 header_check sys/scsi/scsi_types.h && header_check sys/scsi/impl/uscsi.h &&
3557 _sol_scsi_h=yes
3558 if test "$_sol_scsi_h" = yes ; then
3559 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3560 else
3561 def_sol_scsi_h='#undef SOLARIS_USCSI'
3563 echores "$_sol_scsi_h"
3564 fi #if sunos
3567 echocheck "termcap"
3568 if test "$_termcap" = auto ; then
3569 cat > $TMPC <<EOF
3570 #include <stddef.h>
3571 #include <term.h>
3572 int main(void) { tgetent(NULL, NULL); return 0; }
3574 _termcap=no
3575 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3576 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3577 && _termcap=yes && break
3578 done
3580 if test "$_termcap" = yes ; then
3581 def_termcap='#define HAVE_TERMCAP 1'
3582 test $_ld_tmp && res_comment="using $_ld_tmp"
3583 else
3584 def_termcap='#undef HAVE_TERMCAP'
3586 echores "$_termcap"
3589 echocheck "termios"
3590 def_termios='#undef HAVE_TERMIOS'
3591 def_termios_h='#undef HAVE_TERMIOS_H'
3592 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3593 if test "$_termios" = auto ; then
3594 _termios=no
3595 for _termios_header in "termios.h" "sys/termios.h"; do
3596 header_check $_termios_header && _termios=yes &&
3597 res_comment="using $_termios_header" && break
3598 done
3601 if test "$_termios" = yes ; then
3602 def_termios='#define HAVE_TERMIOS 1'
3603 if test "$_termios_header" = "termios.h" ; then
3604 def_termios_h='#define HAVE_TERMIOS_H 1'
3605 else
3606 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3609 echores "$_termios"
3612 echocheck "shm"
3613 if test "$_shm" = auto ; then
3614 cat > $TMPC << EOF
3615 #include <sys/types.h>
3616 #include <sys/shm.h>
3617 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3619 _shm=no
3620 cc_check && _shm=yes
3622 if test "$_shm" = yes ; then
3623 def_shm='#define HAVE_SHM 1'
3624 else
3625 def_shm='#undef HAVE_SHM'
3627 echores "$_shm"
3630 echocheck "strsep()"
3631 cat > $TMPC << EOF
3632 #include <string.h>
3633 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3635 _strsep=no
3636 cc_check && _strsep=yes
3637 if test "$_strsep" = yes ; then
3638 def_strsep='#define HAVE_STRSEP 1'
3639 _need_strsep=no
3640 else
3641 def_strsep='#undef HAVE_STRSEP'
3642 _need_strsep=yes
3644 echores "$_strsep"
3647 echocheck "vsscanf()"
3648 cat > $TMPC << EOF
3649 #define _ISOC99_SOURCE
3650 #include <stdarg.h>
3651 #include <stdio.h>
3652 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3654 _vsscanf=no
3655 cc_check && _vsscanf=yes
3656 if test "$_vsscanf" = yes ; then
3657 def_vsscanf='#define HAVE_VSSCANF 1'
3658 _need_vsscanf=no
3659 else
3660 def_vsscanf='#undef HAVE_VSSCANF'
3661 _need_vsscanf=yes
3663 echores "$_vsscanf"
3666 echocheck "swab()"
3667 cat > $TMPC << EOF
3668 #define _XOPEN_SOURCE 600
3669 #include <unistd.h>
3670 int main(void) { swab(0, 0, 0); return 0; }
3672 _swab=no
3673 cc_check && _swab=yes
3674 if test "$_swab" = yes ; then
3675 def_swab='#define HAVE_SWAB 1'
3676 _need_swab=no
3677 else
3678 def_swab='#undef HAVE_SWAB'
3679 _need_swab=yes
3681 echores "$_swab"
3683 echocheck "POSIX select()"
3684 cat > $TMPC << EOF
3685 #include <stdio.h>
3686 #include <stdlib.h>
3687 #include <sys/types.h>
3688 #include <string.h>
3689 #include <sys/time.h>
3690 #include <unistd.h>
3691 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3693 _posix_select=no
3694 def_posix_select='#undef HAVE_POSIX_SELECT'
3695 #select() of kLIBC (OS/2) supports socket only
3696 ! os2 && cc_check && _posix_select=yes \
3697 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3698 echores "$_posix_select"
3701 echocheck "audio select()"
3702 if test "$_select" = no ; then
3703 def_select='#undef HAVE_AUDIO_SELECT'
3704 elif test "$_select" = yes ; then
3705 def_select='#define HAVE_AUDIO_SELECT 1'
3707 echores "$_select"
3710 echocheck "gettimeofday()"
3711 cat > $TMPC << EOF
3712 #include <sys/time.h>
3713 int main(void) {struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz); return 0; }
3715 _gettimeofday=no
3716 cc_check && _gettimeofday=yes
3717 if test "$_gettimeofday" = yes ; then
3718 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3719 _need_gettimeofday=no
3720 else
3721 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3722 _need_gettimeofday=yes
3724 echores "$_gettimeofday"
3727 echocheck "glob()"
3728 cat > $TMPC << EOF
3729 #include <stdio.h>
3730 #include <glob.h>
3731 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3733 _glob=no
3734 cc_check && _glob=yes
3735 if test "$_glob" = yes ; then
3736 def_glob='#define HAVE_GLOB 1'
3737 _need_glob=no
3738 else
3739 def_glob='#undef HAVE_GLOB'
3740 _need_glob=yes
3742 echores "$_glob"
3745 echocheck "setenv()"
3746 cat > $TMPC << EOF
3747 #include <stdlib.h>
3748 int main(void) { setenv("","",0); return 0; }
3750 _setenv=no
3751 cc_check && _setenv=yes
3752 if test "$_setenv" = yes ; then
3753 def_setenv='#define HAVE_SETENV 1'
3754 _need_setenv=no
3755 else
3756 def_setenv='#undef HAVE_SETENV'
3757 _need_setenv=yes
3759 echores "$_setenv"
3762 echocheck "setmode()"
3763 _setmode=no
3764 def_setmode='#define HAVE_SETMODE 0'
3765 cat > $TMPC << EOF
3766 #include <io.h>
3767 int main(void) { setmode(0, 0); return 0; }
3769 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3770 echores "$_setmode"
3773 if sunos; then
3774 echocheck "sysi86()"
3775 cat > $TMPC << EOF
3776 #include <sys/sysi86.h>
3777 int main(void) { sysi86(0); return 0; }
3779 _sysi86=no
3780 cc_check && _sysi86=yes
3781 if test "$_sysi86" = yes ; then
3782 def_sysi86='#define HAVE_SYSI86 1'
3783 cat > $TMPC << EOF
3784 #include <sys/sysi86.h>
3785 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3787 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3788 else
3789 def_sysi86='#undef HAVE_SYSI86'
3791 echores "$_sysi86"
3792 fi #if sunos
3795 echocheck "sys/sysinfo.h"
3796 cat > $TMPC << EOF
3797 #include <sys/sysinfo.h>
3798 int main(void) {
3799 struct sysinfo s_info;
3800 sysinfo(&s_info);
3801 return 0;
3804 _sys_sysinfo=no
3805 cc_check && _sys_sysinfo=yes
3806 if test "$_sys_sysinfo" = yes ; then
3807 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3808 else
3809 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3811 echores "$_sys_sysinfo"
3814 if darwin; then
3816 echocheck "Mac OS X Finder Support"
3817 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3818 if test "$_macosx_finder" = yes ; then
3819 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3820 extra_ldflags="$extra_ldflags -framework Carbon"
3822 echores "$_macosx_finder"
3824 echocheck "Mac OS X Bundle file locations"
3825 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3826 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3827 if test "$_macosx_bundle" = yes ; then
3828 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3829 extra_ldflags="$extra_ldflags -framework Carbon"
3831 echores "$_macosx_bundle"
3833 echocheck "Apple Remote"
3834 if test "$_apple_remote" = auto ; then
3835 _apple_remote=no
3836 cat > $TMPC <<EOF
3837 #include <stdio.h>
3838 #include <IOKit/IOCFPlugIn.h>
3839 int main(void) {
3840 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3841 CFMutableDictionaryRef hidMatchDictionary;
3842 IOReturn ioReturnValue;
3844 // Set up a matching dictionary to search the I/O Registry by class.
3845 // name for all HID class devices
3846 hidMatchDictionary = IOServiceMatching("AppleIRController");
3848 // Now search I/O Registry for matching devices.
3849 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3850 hidMatchDictionary, &hidObjectIterator);
3852 // If search is unsuccessful, return nonzero.
3853 if (ioReturnValue != kIOReturnSuccess ||
3854 !IOIteratorIsValid(hidObjectIterator)) {
3855 return 1;
3857 return 0;
3860 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3862 if test "$_apple_remote" = yes ; then
3863 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3864 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3865 else
3866 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3868 echores "$_apple_remote"
3870 fi #if darwin
3872 if linux; then
3874 echocheck "Apple IR"
3875 if test "$_apple_ir" = auto ; then
3876 _apple_ir=no
3877 cat > $TMPC <<EOF
3878 #include <linux/types.h>
3879 #include <linux/input.h>
3880 int main(void) {
3881 struct input_event ev;
3882 struct input_id id;
3883 return 0;
3886 cc_check && _apple_ir=yes
3888 if test "$_apple_ir" = yes ; then
3889 def_apple_ir='#define CONFIG_APPLE_IR 1'
3890 else
3891 def_apple_ir='#undef CONFIG_APPLE_IR'
3893 echores "$_apple_ir"
3894 fi #if linux
3896 echocheck "pkg-config"
3897 _pkg_config=pkg-config
3898 if $($_pkg_config --version > /dev/null 2>&1); then
3899 if test "$_ld_static"; then
3900 _pkg_config="$_pkg_config --static"
3902 echores "yes"
3903 else
3904 _pkg_config=false
3905 echores "no"
3909 echocheck "Samba support (libsmbclient)"
3910 if test "$_smb" = yes; then
3911 extra_ldflags="$extra_ldflags -lsmbclient"
3913 if test "$_smb" = auto; then
3914 _smb=no
3915 cat > $TMPC << EOF
3916 #include <libsmbclient.h>
3917 int main(void) { smbc_opendir("smb://"); return 0; }
3919 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3920 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3921 _smb=yes && break
3922 done
3925 if test "$_smb" = yes; then
3926 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3927 inputmodules="smb $inputmodules"
3928 else
3929 def_smb="#undef CONFIG_LIBSMBCLIENT"
3930 noinputmodules="smb $noinputmodules"
3932 echores "$_smb"
3935 #########
3936 # VIDEO #
3937 #########
3940 echocheck "tdfxfb"
3941 if test "$_tdfxfb" = yes ; then
3942 def_tdfxfb='#define CONFIG_TDFXFB 1'
3943 vomodules="tdfxfb $vomodules"
3944 else
3945 def_tdfxfb='#undef CONFIG_TDFXFB'
3946 novomodules="tdfxfb $novomodules"
3948 echores "$_tdfxfb"
3950 echocheck "s3fb"
3951 if test "$_s3fb" = yes ; then
3952 def_s3fb='#define CONFIG_S3FB 1'
3953 vomodules="s3fb $vomodules"
3954 else
3955 def_s3fb='#undef CONFIG_S3FB'
3956 novomodules="s3fb $novomodules"
3958 echores "$_s3fb"
3960 echocheck "wii"
3961 if test "$_wii" = yes ; then
3962 def_wii='#define CONFIG_WII 1'
3963 vomodules="wii $vomodules"
3964 else
3965 def_wii='#undef CONFIG_WII'
3966 novomodules="wii $novomodules"
3968 echores "$_wii"
3970 echocheck "tdfxvid"
3971 if test "$_tdfxvid" = yes ; then
3972 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3973 vomodules="tdfx_vid $vomodules"
3974 else
3975 def_tdfxvid='#undef CONFIG_TDFX_VID'
3976 novomodules="tdfx_vid $novomodules"
3978 echores "$_tdfxvid"
3980 echocheck "xvr100"
3981 if test "$_xvr100" = auto ; then
3982 cat > $TMPC << EOF
3983 #include <unistd.h>
3984 #include <sys/fbio.h>
3985 #include <sys/visual_io.h>
3986 int main(void) {
3987 struct vis_identifier ident;
3988 struct fbgattr attr;
3989 ioctl(0, VIS_GETIDENTIFIER, &ident);
3990 ioctl(0, FBIOGATTR, &attr);
3991 return 0;
3994 _xvr100=no
3995 cc_check && _xvr100=yes
3997 if test "$_xvr100" = yes ; then
3998 def_xvr100='#define CONFIG_XVR100 1'
3999 vomodules="xvr100 $vomodules"
4000 else
4001 def_tdfxvid='#undef CONFIG_XVR100'
4002 novomodules="xvr100 $novomodules"
4004 echores "$_xvr100"
4006 echocheck "tga"
4007 if test "$_tga" = yes ; then
4008 def_tga='#define CONFIG_TGA 1'
4009 vomodules="tga $vomodules"
4010 else
4011 def_tga='#undef CONFIG_TGA'
4012 novomodules="tga $novomodules"
4014 echores "$_tga"
4017 echocheck "md5sum support"
4018 if test "$_md5sum" = yes; then
4019 def_md5sum="#define CONFIG_MD5SUM 1"
4020 vomodules="md5sum $vomodules"
4021 else
4022 def_md5sum="#undef CONFIG_MD5SUM"
4023 novomodules="md5sum $novomodules"
4025 echores "$_md5sum"
4028 echocheck "yuv4mpeg support"
4029 if test "$_yuv4mpeg" = yes; then
4030 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4031 vomodules="yuv4mpeg $vomodules"
4032 else
4033 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4034 novomodules="yuv4mpeg $novomodules"
4036 echores "$_yuv4mpeg"
4039 echocheck "bl"
4040 if test "$_bl" = yes ; then
4041 def_bl='#define CONFIG_BL 1'
4042 vomodules="bl $vomodules"
4043 else
4044 def_bl='#undef CONFIG_BL'
4045 novomodules="bl $novomodules"
4047 echores "$_bl"
4050 echocheck "DirectFB"
4051 if test "$_directfb" = auto ; then
4052 _directfb=no
4053 cat > $TMPC <<EOF
4054 #include <directfb.h>
4055 int main(void) { DirectFBInit(0, 0); return 0; }
4057 for _inc_tmp in "" -I/usr/local/include/directfb \
4058 -I/usr/include/directfb -I/usr/local/include; do
4059 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4060 extra_cflags="$extra_cflags $_inc_tmp" && break
4061 done
4064 dfb_version() {
4065 expr $1 \* 65536 + $2 \* 256 + $3
4068 if test "$_directfb" = yes; then
4069 cat > $TMPC << EOF
4070 #include <directfb_version.h>
4072 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4075 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4076 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4077 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4078 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4079 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4080 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4081 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4082 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4083 res_comment="$_directfb_version"
4084 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4085 else
4086 def_directfb_version='#undef DIRECTFBVERSION'
4087 _directfb=no
4088 res_comment="version >=0.9.13 required"
4090 else
4091 _directfb=no
4092 res_comment="failed to get version"
4095 echores "$_directfb"
4097 if test "$_directfb" = yes ; then
4098 def_directfb='#define CONFIG_DIRECTFB 1'
4099 vomodules="directfb $vomodules"
4100 libs_mplayer="$libs_mplayer -ldirectfb"
4101 else
4102 def_directfb='#undef CONFIG_DIRECTFB'
4103 novomodules="directfb $novomodules"
4105 if test "$_dfbmga" = yes; then
4106 vomodules="dfbmga $vomodules"
4107 def_dfbmga='#define CONFIG_DFBMGA 1'
4108 else
4109 novomodules="dfbmga $novomodules"
4110 def_dfbmga='#undef CONFIG_DFBMGA'
4114 echocheck "X11 headers presence"
4115 _x11_headers="no"
4116 res_comment="check if the dev(el) packages are installed"
4117 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4118 if test -f "$I/X11/Xlib.h" ; then
4119 _x11_headers="yes"
4120 res_comment=""
4121 break
4123 done
4124 if test $_cross_compile = no; then
4125 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4126 /usr/include/X11R6 /usr/openwin/include ; do
4127 if test -f "$I/X11/Xlib.h" ; then
4128 extra_cflags="$extra_cflags -I$I"
4129 _x11_headers="yes"
4130 res_comment="using $I"
4131 break
4133 done
4135 echores "$_x11_headers"
4138 echocheck "X11"
4139 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4140 cat > $TMPC <<EOF
4141 #include <X11/Xlib.h>
4142 #include <X11/Xutil.h>
4143 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4145 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4146 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4147 -L/usr/lib ; do
4148 if netbsd; then
4149 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4150 else
4151 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4153 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4154 && _x11=yes && break
4155 done
4157 if test "$_x11" = yes ; then
4158 def_x11='#define CONFIG_X11 1'
4159 vomodules="x11 xover $vomodules"
4160 else
4161 _x11=no
4162 def_x11='#undef CONFIG_X11'
4163 novomodules="x11 $novomodules"
4164 res_comment="check if the dev(el) packages are installed"
4165 # disable stuff that depends on X
4166 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4168 echores "$_x11"
4170 echocheck "Xss screensaver extensions"
4171 if test "$_xss" = auto ; then
4172 cat > $TMPC << EOF
4173 #include <X11/Xlib.h>
4174 #include <X11/extensions/scrnsaver.h>
4175 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4177 _xss=no
4178 cc_check -lXss && _xss=yes
4180 if test "$_xss" = yes ; then
4181 def_xss='#define CONFIG_XSS 1'
4182 libs_mplayer="$libs_mplayer -lXss"
4183 else
4184 def_xss='#undef CONFIG_XSS'
4186 echores "$_xss"
4188 echocheck "DPMS"
4189 _xdpms3=no
4190 _xdpms4=no
4191 if test "$_x11" = yes ; then
4192 cat > $TMPC <<EOF
4193 #include <X11/Xmd.h>
4194 #include <X11/Xlib.h>
4195 #include <X11/Xutil.h>
4196 #include <X11/Xatom.h>
4197 #include <X11/extensions/dpms.h>
4198 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4200 cc_check -lXdpms && _xdpms3=yes
4201 cat > $TMPC <<EOF
4202 #include <X11/Xlib.h>
4203 #include <X11/extensions/dpms.h>
4204 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4206 cc_check -lXext && _xdpms4=yes
4208 if test "$_xdpms4" = yes ; then
4209 def_xdpms='#define CONFIG_XDPMS 1'
4210 res_comment="using Xdpms 4"
4211 echores "yes"
4212 elif test "$_xdpms3" = yes ; then
4213 def_xdpms='#define CONFIG_XDPMS 1'
4214 libs_mplayer="$libs_mplayer -lXdpms"
4215 res_comment="using Xdpms 3"
4216 echores "yes"
4217 else
4218 def_xdpms='#undef CONFIG_XDPMS'
4219 echores "no"
4223 echocheck "Xv"
4224 if test "$_xv" = auto ; then
4225 cat > $TMPC <<EOF
4226 #include <X11/Xlib.h>
4227 #include <X11/extensions/Xvlib.h>
4228 int main(void) {
4229 (void) XvGetPortAttribute(0, 0, 0, 0);
4230 (void) XvQueryPortAttributes(0, 0, 0);
4231 return 0; }
4233 _xv=no
4234 cc_check -lXv && _xv=yes
4237 if test "$_xv" = yes ; then
4238 def_xv='#define CONFIG_XV 1'
4239 libs_mplayer="$libs_mplayer -lXv"
4240 vomodules="xv $vomodules"
4241 else
4242 def_xv='#undef CONFIG_XV'
4243 novomodules="xv $novomodules"
4245 echores "$_xv"
4248 echocheck "XvMC"
4249 if test "$_xv" = yes && test "$_xvmc" != no ; then
4250 _xvmc=no
4251 cat > $TMPC <<EOF
4252 #include <X11/Xlib.h>
4253 #include <X11/extensions/Xvlib.h>
4254 #include <X11/extensions/XvMClib.h>
4255 int main(void) {
4256 (void) XvMCQueryExtension(0,0,0);
4257 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4258 return 0; }
4260 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4261 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4262 done
4264 if test "$_xvmc" = yes ; then
4265 def_xvmc='#define CONFIG_XVMC 1'
4266 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4267 vomodules="xvmc $vomodules"
4268 res_comment="using $_xvmclib"
4269 else
4270 def_xvmc='#define CONFIG_XVMC 0'
4271 novomodules="xvmc $novomodules"
4273 echores "$_xvmc"
4276 echocheck "VDPAU"
4277 if test "$_vdpau" = auto ; then
4278 _vdpau=no
4279 if test "$_dl" = yes ; then
4280 cat > $TMPC <<EOF
4281 #include <vdpau/vdpau_x11.h>
4282 int main(void) {
4283 (void) vdp_device_create_x11(0, 0, 0, 0);
4284 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4286 cc_check -lvdpau && _vdpau=yes
4289 if test "$_vdpau" = yes ; then
4290 def_vdpau='#define CONFIG_VDPAU 1'
4291 libs_mplayer="$libs_mplayer -lvdpau"
4292 vomodules="vdpau $vomodules"
4293 else
4294 def_vdpau='#define CONFIG_VDPAU 0'
4295 novomodules="vdpau $novomodules"
4297 echores "$_vdpau"
4300 echocheck "Xinerama"
4301 if test "$_xinerama" = auto ; then
4302 cat > $TMPC <<EOF
4303 #include <X11/Xlib.h>
4304 #include <X11/extensions/Xinerama.h>
4305 int main(void) { (void) XineramaIsActive(0); return 0; }
4307 _xinerama=no
4308 cc_check -lXinerama && _xinerama=yes
4311 if test "$_xinerama" = yes ; then
4312 def_xinerama='#define CONFIG_XINERAMA 1'
4313 libs_mplayer="$libs_mplayer -lXinerama"
4314 else
4315 def_xinerama='#undef CONFIG_XINERAMA'
4317 echores "$_xinerama"
4320 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4321 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4322 # named 'X extensions' or something similar.
4323 # This check may be useful for future mplayer versions (to change resolution)
4324 # If you run into problems, remove '-lXxf86vm'.
4325 echocheck "Xxf86vm"
4326 if test "$_vm" = auto ; then
4327 cat > $TMPC <<EOF
4328 #include <X11/Xlib.h>
4329 #include <X11/extensions/xf86vmode.h>
4330 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4332 _vm=no
4333 cc_check -lXxf86vm && _vm=yes
4335 if test "$_vm" = yes ; then
4336 def_vm='#define CONFIG_XF86VM 1'
4337 libs_mplayer="$libs_mplayer -lXxf86vm"
4338 else
4339 def_vm='#undef CONFIG_XF86VM'
4341 echores "$_vm"
4343 # Check for the presence of special keycodes, like audio control buttons
4344 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4345 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4346 # have these new keycodes.
4347 echocheck "XF86keysym"
4348 if test "$_xf86keysym" = auto; then
4349 _xf86keysym=no
4350 cat > $TMPC <<EOF
4351 #include <X11/Xlib.h>
4352 #include <X11/XF86keysym.h>
4353 int main(void) { return XF86XK_AudioPause; }
4355 cc_check && _xf86keysym=yes
4357 if test "$_xf86keysym" = yes ; then
4358 def_xf86keysym='#define CONFIG_XF86XK 1'
4359 else
4360 def_xf86keysym='#undef CONFIG_XF86XK'
4362 echores "$_xf86keysym"
4364 echocheck "DGA"
4365 if test "$_dga2" = auto && test "$_x11" = yes ; then
4366 cat > $TMPC << EOF
4367 #include <X11/Xlib.h>
4368 #include <X11/extensions/xf86dga.h>
4369 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4371 _dga2=no
4372 cc_check -lXxf86dga && _dga2=yes
4374 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4375 cat > $TMPC << EOF
4376 #include <X11/Xlib.h>
4377 #include <X11/extensions/xf86dga.h>
4378 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4380 _dga1=no
4381 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4384 _dga=no
4385 def_dga='#undef CONFIG_DGA'
4386 def_dga1='#undef CONFIG_DGA1'
4387 def_dga2='#undef CONFIG_DGA2'
4388 if test "$_dga1" = yes ; then
4389 _dga=yes
4390 def_dga1='#define CONFIG_DGA1 1'
4391 res_comment="using DGA 1.0"
4392 elif test "$_dga2" = yes ; then
4393 _dga=yes
4394 def_dga2='#define CONFIG_DGA2 1'
4395 res_comment="using DGA 2.0"
4397 if test "$_dga" = yes ; then
4398 def_dga='#define CONFIG_DGA 1'
4399 libs_mplayer="$libs_mplayer -lXxf86dga"
4400 vomodules="dga $vomodules"
4401 else
4402 novomodules="dga $novomodules"
4404 echores "$_dga"
4407 echocheck "3dfx"
4408 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4409 def_3dfx='#define CONFIG_3DFX 1'
4410 vomodules="3dfx $vomodules"
4411 else
4412 def_3dfx='#undef CONFIG_3DFX'
4413 novomodules="3dfx $novomodules"
4415 echores "$_3dfx"
4418 echocheck "VIDIX"
4419 def_vidix='#undef CONFIG_VIDIX'
4420 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4421 _vidix_drv_cyberblade=no
4422 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4423 _vidix_drv_ivtv=no
4424 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4425 _vidix_drv_mach64=no
4426 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4427 _vidix_drv_mga=no
4428 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4429 _vidix_drv_mga_crtc2=no
4430 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4431 _vidix_drv_nvidia=no
4432 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4433 _vidix_drv_pm2=no
4434 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4435 _vidix_drv_pm3=no
4436 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4437 _vidix_drv_radeon=no
4438 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4439 _vidix_drv_rage128=no
4440 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4441 _vidix_drv_s3=no
4442 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4443 _vidix_drv_sh_veu=no
4444 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4445 _vidix_drv_sis=no
4446 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4447 _vidix_drv_unichrome=no
4448 if test "$_vidix" = auto ; then
4449 _vidix=no
4450 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4451 && _vidix=yes
4452 x86_64 && ! linux && _vidix=no
4453 (ppc || alpha) && linux && _vidix=yes
4455 echores "$_vidix"
4457 if test "$_vidix" = yes ; then
4458 def_vidix='#define CONFIG_VIDIX 1'
4459 vomodules="cvidix $vomodules"
4460 # FIXME: ivtv driver temporarily disabled until we have a proper test
4461 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4462 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4464 # some vidix drivers are architecture and os specific, discard them elsewhere
4465 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4466 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4468 for driver in $_vidix_drivers ; do
4469 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4470 eval _vidix_drv_${driver}=yes
4471 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4472 done
4474 echocheck "VIDIX PCI device name database"
4475 echores "$_vidix_pcidb"
4476 if test "$_vidix_pcidb" = yes ; then
4477 _vidix_pcidb_val=1
4478 else
4479 _vidix_pcidb_val=0
4482 echocheck "VIDIX dhahelper support"
4483 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4484 echores "$_dhahelper"
4486 echocheck "VIDIX svgalib_helper support"
4487 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4488 echores "$_svgalib_helper"
4490 else
4491 novomodules="cvidix $novomodules"
4494 if test "$_vidix" = yes && win32; then
4495 winvidix=yes
4496 vomodules="winvidix $vomodules"
4497 libs_mplayer="$libs_mplayer -lgdi32"
4498 else
4499 novomodules="winvidix $novomodules"
4501 if test "$_vidix" = yes && test "$_x11" = yes; then
4502 xvidix=yes
4503 vomodules="xvidix $vomodules"
4504 else
4505 novomodules="xvidix $novomodules"
4508 echocheck "GGI"
4509 if test "$_ggi" = auto ; then
4510 cat > $TMPC << EOF
4511 #include <ggi/ggi.h>
4512 int main(void) { ggiInit(); return 0; }
4514 _ggi=no
4515 cc_check -lggi && _ggi=yes
4517 if test "$_ggi" = yes ; then
4518 def_ggi='#define CONFIG_GGI 1'
4519 libs_mplayer="$libs_mplayer -lggi"
4520 vomodules="ggi $vomodules"
4521 else
4522 def_ggi='#undef CONFIG_GGI'
4523 novomodules="ggi $novomodules"
4525 echores "$_ggi"
4527 echocheck "GGI extension: libggiwmh"
4528 if test "$_ggiwmh" = auto ; then
4529 _ggiwmh=no
4530 cat > $TMPC << EOF
4531 #include <ggi/ggi.h>
4532 #include <ggi/wmh.h>
4533 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4535 cc_check -lggi -lggiwmh && _ggiwmh=yes
4537 # needed to get right output on obscure combination
4538 # like --disable-ggi --enable-ggiwmh
4539 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4540 def_ggiwmh='#define CONFIG_GGIWMH 1'
4541 libs_mplayer="$libs_mplayer -lggiwmh"
4542 else
4543 _ggiwmh=no
4544 def_ggiwmh='#undef CONFIG_GGIWMH'
4546 echores "$_ggiwmh"
4549 echocheck "AA"
4550 if test "$_aa" = auto ; then
4551 cat > $TMPC << EOF
4552 #include <aalib.h>
4553 extern struct aa_hardware_params aa_defparams;
4554 extern struct aa_renderparams aa_defrenderparams;
4555 int main(void) {
4556 aa_context *c;
4557 aa_renderparams *p;
4558 (void) aa_init(0, 0, 0);
4559 c = aa_autoinit(&aa_defparams);
4560 p = aa_getrenderparams();
4561 aa_autoinitkbd(c,0);
4562 return 0; }
4564 _aa=no
4565 for _ld_tmp in "-laa" ; do
4566 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4567 done
4569 if test "$_aa" = yes ; then
4570 def_aa='#define CONFIG_AA 1'
4571 if cygwin ; then
4572 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4574 vomodules="aa $vomodules"
4575 else
4576 def_aa='#undef CONFIG_AA'
4577 novomodules="aa $novomodules"
4579 echores "$_aa"
4582 echocheck "CACA"
4583 if test "$_caca" = auto ; then
4584 _caca=no
4585 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4586 cat > $TMPC << EOF
4587 #include <caca.h>
4588 #ifdef CACA_API_VERSION_1
4589 #include <caca0.h>
4590 #endif
4591 int main(void) { (void) caca_init(); return 0; }
4593 cc_check $(caca-config --libs) && _caca=yes
4596 if test "$_caca" = yes ; then
4597 def_caca='#define CONFIG_CACA 1'
4598 extra_cflags="$extra_cflags $(caca-config --cflags)"
4599 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4600 vomodules="caca $vomodules"
4601 else
4602 def_caca='#undef CONFIG_CACA'
4603 novomodules="caca $novomodules"
4605 echores "$_caca"
4608 echocheck "SVGAlib"
4609 if test "$_svga" = auto ; then
4610 _svga=no
4611 header_check vga.h -lvga $_ld_lm && _svga=yes
4613 if test "$_svga" = yes ; then
4614 def_svga='#define CONFIG_SVGALIB 1'
4615 libs_mplayer="$libs_mplayer -lvga"
4616 vomodules="svga $vomodules"
4617 else
4618 def_svga='#undef CONFIG_SVGALIB'
4619 novomodules="svga $novomodules"
4621 echores "$_svga"
4624 echocheck "FBDev"
4625 if test "$_fbdev" = auto ; then
4626 _fbdev=no
4627 linux && _fbdev=yes
4629 if test "$_fbdev" = yes ; then
4630 def_fbdev='#define CONFIG_FBDEV 1'
4631 vomodules="fbdev $vomodules"
4632 else
4633 def_fbdev='#undef CONFIG_FBDEV'
4634 novomodules="fbdev $novomodules"
4636 echores "$_fbdev"
4640 echocheck "DVB"
4641 if test "$_dvb" = auto ; then
4642 _dvb=no
4643 cat >$TMPC << EOF
4644 #include <poll.h>
4645 #include <sys/ioctl.h>
4646 #include <stdio.h>
4647 #include <time.h>
4648 #include <unistd.h>
4649 #include <linux/dvb/dmx.h>
4650 #include <linux/dvb/frontend.h>
4651 #include <linux/dvb/video.h>
4652 #include <linux/dvb/audio.h>
4653 int main(void) {return 0;}
4655 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4656 cc_check $_inc_tmp && _dvb=yes && \
4657 extra_cflags="$extra_cflags $_inc_tmp" && break
4658 done
4660 echores "$_dvb"
4661 if test "$_dvb" = yes ; then
4662 _dvbin=yes
4663 inputmodules="dvb $inputmodules"
4664 def_dvb='#define CONFIG_DVB 1'
4665 def_dvbin='#define CONFIG_DVBIN 1'
4666 aomodules="mpegpes(dvb) $aomodules"
4667 vomodules="mpegpes(dvb) $vomodules"
4668 else
4669 _dvbin=no
4670 noinputmodules="dvb $noinputmodules"
4671 def_dvb='#undef CONFIG_DVB'
4672 def_dvbin='#undef CONFIG_DVBIN '
4673 aomodules="mpegpes(file) $aomodules"
4674 vomodules="mpegpes(file) $vomodules"
4678 if darwin; then
4680 echocheck "QuickTime"
4681 if test "$quicktime" = auto ; then
4682 cat > $TMPC <<EOF
4683 #include <QuickTime/QuickTime.h>
4684 int main(void) {
4685 ImageDescription *desc;
4686 EnterMovies();
4687 ExitMovies();
4688 return 0;
4691 quicktime=no
4692 cc_check -framework QuickTime && quicktime=yes
4694 if test "$quicktime" = yes ; then
4695 extra_ldflags="$extra_ldflags -framework QuickTime"
4696 def_quicktime='#define CONFIG_QUICKTIME 1'
4697 else
4698 def_quicktime='#undef CONFIG_QUICKTIME'
4699 _quartz=no
4701 echores $quicktime
4703 echocheck "Quartz"
4704 if test "$_quartz" = auto ; then
4705 cat > $TMPC <<EOF
4706 #include <Carbon/Carbon.h>
4707 int main(void) {
4708 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4709 return 0;
4712 _quartz=no
4713 cc_check -framework Carbon && _quartz=yes
4715 if test "$_quartz" = yes ; then
4716 libs_mplayer="$libs_mplayer -framework Carbon"
4717 def_quartz='#define CONFIG_QUARTZ 1'
4718 vomodules="quartz $vomodules"
4719 else
4720 def_quartz='#undef CONFIG_QUARTZ'
4721 novomodules="quartz $novomodules"
4723 echores $_quartz
4725 echocheck "CoreVideo"
4726 if test "$_corevideo" = auto ; then
4727 cat > $TMPC <<EOF
4728 #include <Carbon/Carbon.h>
4729 #include <CoreServices/CoreServices.h>
4730 #include <OpenGL/OpenGL.h>
4731 #include <QuartzCore/CoreVideo.h>
4732 int main(void) { return 0; }
4734 _corevideo=no
4735 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4737 if test "$_corevideo" = yes ; then
4738 vomodules="corevideo $vomodules"
4739 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4740 def_corevideo='#define CONFIG_COREVIDEO 1'
4741 else
4742 novomodules="corevideo $novomodules"
4743 def_corevideo='#undef CONFIG_COREVIDEO'
4745 echores "$_corevideo"
4747 fi #if darwin
4750 echocheck "PNG support"
4751 if test "$_png" = auto ; then
4752 _png=no
4753 if irix ; then
4754 # Don't check for -lpng on irix since it has its own libpng
4755 # incompatible with the GNU libpng
4756 res_comment="disabled on irix (not GNU libpng)"
4757 else
4758 cat > $TMPC << EOF
4759 #include <png.h>
4760 #include <string.h>
4761 int main(void) {
4762 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4763 printf("libpng: %s\n", png_libpng_ver);
4764 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4767 cc_check -lpng -lz $_ld_lm && _png=yes
4770 echores "$_png"
4771 if test "$_png" = yes ; then
4772 def_png='#define CONFIG_PNG 1'
4773 extra_ldflags="$extra_ldflags -lpng -lz"
4774 else
4775 def_png='#undef CONFIG_PNG'
4778 echocheck "MNG support"
4779 if test "$_mng" = auto ; then
4780 _mng=no
4781 cat > $TMPC << EOF
4782 #include <libmng.h>
4783 int main(void) {
4784 const char * p_ver = mng_version_text();
4785 return !p_ver || p_ver[0] == 0;
4788 if cc_check -lmng -lz $_ld_lm ; then
4789 _mng=yes
4792 echores "$_mng"
4793 if test "$_mng" = yes ; then
4794 def_mng='#define CONFIG_MNG 1'
4795 extra_ldflags="$extra_ldflags -lmng -lz"
4796 else
4797 def_mng='#undef CONFIG_MNG'
4800 echocheck "JPEG support"
4801 if test "$_jpeg" = auto ; then
4802 _jpeg=no
4803 cat > $TMPC << EOF
4804 #include <stdio.h>
4805 #include <stdlib.h>
4806 #include <setjmp.h>
4807 #include <string.h>
4808 #include <jpeglib.h>
4809 int main(void) { return 0; }
4811 cc_check -ljpeg $_ld_lm && _jpeg=yes
4813 echores "$_jpeg"
4815 if test "$_jpeg" = yes ; then
4816 def_jpeg='#define CONFIG_JPEG 1'
4817 vomodules="jpeg $vomodules"
4818 extra_ldflags="$extra_ldflags -ljpeg"
4819 else
4820 def_jpeg='#undef CONFIG_JPEG'
4821 novomodules="jpeg $novomodules"
4826 echocheck "PNM support"
4827 if test "$_pnm" = yes; then
4828 def_pnm="#define CONFIG_PNM 1"
4829 vomodules="pnm $vomodules"
4830 else
4831 def_pnm="#undef CONFIG_PNM"
4832 novomodules="pnm $novomodules"
4834 echores "$_pnm"
4838 echocheck "GIF support"
4839 # This is to appease people who want to force gif support.
4840 # If it is forced to yes, then we still do checks to determine
4841 # which gif library to use.
4842 if test "$_gif" = yes ; then
4843 _force_gif=yes
4844 _gif=auto
4847 if test "$_gif" = auto ; then
4848 _gif=no
4849 cat > $TMPC << EOF
4850 #include <gif_lib.h>
4851 int main(void) { QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0); return 0; }
4853 for _ld_gif in "-lungif" "-lgif" ; do
4854 cc_check $_ld_gif && _gif=yes && break
4855 done
4858 # If no library was found, and the user wants support forced,
4859 # then we force it on with libgif, as this is the safest
4860 # assumption IMHO. (libungif & libregif both create symbolic
4861 # links to libgif. We also assume that no x11 support is needed,
4862 # because if you are forcing this, then you _should_ know what
4863 # you are doing. [ Besides, package maintainers should never
4864 # have compiled x11 deps into libungif in the first place. ] )
4865 # </rant>
4866 # --Joey
4867 if test "$_force_gif" = yes && test "$_gif" = no ; then
4868 _gif=yes
4869 _ld_gif="-lgif"
4872 if test "$_gif" = yes ; then
4873 def_gif='#define CONFIG_GIF 1'
4874 codecmodules="gif $codecmodules"
4875 vomodules="gif89a $vomodules"
4876 res_comment="old version, some encoding functions disabled"
4877 def_gif_4='#undef CONFIG_GIF_4'
4878 extra_ldflags="$extra_ldflags $_ld_gif"
4880 cat > $TMPC << EOF
4881 #include <signal.h>
4882 #include <gif_lib.h>
4883 void catch(void) { exit(1); }
4884 int main(void) {
4885 signal(SIGSEGV, catch); // catch segfault
4886 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4887 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4888 return 0;
4891 if cc_check "$_ld_gif" ; then
4892 def_gif_4='#define CONFIG_GIF_4 1'
4893 res_comment=""
4895 else
4896 def_gif='#undef CONFIG_GIF'
4897 def_gif_4='#undef CONFIG_GIF_4'
4898 novomodules="gif89a $novomodules"
4899 nocodecmodules="gif $nocodecmodules"
4901 echores "$_gif"
4904 case "$_gif" in yes*)
4905 echocheck "broken giflib workaround"
4906 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4908 cat > $TMPC << EOF
4909 #include <gif_lib.h>
4910 int main(void) {
4911 GifFileType gif;
4912 printf("UserData is at address %p\n", gif.UserData);
4913 return 0;
4916 if cc_check "$_ld_gif" ; then
4917 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4918 echores "disabled"
4919 else
4920 echores "enabled"
4923 esac
4926 echocheck "VESA support"
4927 if test "$_vesa" = auto ; then
4928 cat > $TMPC << EOF
4929 #include <vbe.h>
4930 int main(void) { vbeVersion(); return 0; }
4932 _vesa=no
4933 cc_check -lvbe -llrmi && _vesa=yes
4935 if test "$_vesa" = yes ; then
4936 def_vesa='#define CONFIG_VESA 1'
4937 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4938 vomodules="vesa $vomodules"
4939 else
4940 def_vesa='#undef CONFIG_VESA'
4941 novomodules="vesa $novomodules"
4943 echores "$_vesa"
4945 #################
4946 # VIDEO + AUDIO #
4947 #################
4950 echocheck "SDL"
4951 _inc_tmp=""
4952 _ld_tmp=""
4953 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4954 if test -z "$_sdlconfig" ; then
4955 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4956 _sdlconfig="sdl-config"
4957 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4958 _sdlconfig="sdl11-config"
4959 else
4960 _sdlconfig=false
4963 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4964 cat > $TMPC << EOF
4965 #ifdef CONFIG_SDL_SDL_H
4966 #include <SDL/SDL.h>
4967 #else
4968 #include <SDL.h>
4969 #endif
4970 #ifndef __APPLE__
4971 // we allow SDL hacking our main() only on OSX
4972 #undef main
4973 #endif
4974 int main(int argc, char *argv[]) {
4975 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4976 return 0;
4979 _sdl=no
4980 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4981 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4982 _sdl=yes
4983 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4984 break
4986 done
4987 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4988 res_comment="using $_sdlconfig"
4989 if cygwin ; then
4990 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4991 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4992 elif mingw32 ; then
4993 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4994 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4995 else
4996 _inc_tmp="$($_sdlconfig --cflags)"
4997 _ld_tmp="$($_sdlconfig --libs)"
4999 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5000 _sdl=yes
5004 if test "$_sdl" = yes ; then
5005 def_sdl='#define CONFIG_SDL 1'
5006 extra_cflags="$extra_cflags $_inc_tmp"
5007 libs_mplayer="$libs_mplayer $_ld_tmp"
5008 vomodules="sdl $vomodules"
5009 aomodules="sdl $aomodules"
5010 else
5011 def_sdl='#undef CONFIG_SDL'
5012 novomodules="sdl $novomodules"
5013 noaomodules="sdl $noaomodules"
5015 echores "$_sdl"
5018 # make sure this stays below CoreVideo to avoid issues due to namespace
5019 # conflicts between -lGL and -framework OpenGL
5020 echocheck "OpenGL"
5021 #Note: this test is run even with --enable-gl since we autodetect linker flags
5022 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
5023 cat > $TMPC << EOF
5024 #ifdef GL_WIN32
5025 #include <windows.h>
5026 #include <GL/gl.h>
5027 #elif defined(GL_SDL)
5028 #include <GL/gl.h>
5029 #ifdef CONFIG_SDL_SDL_H
5030 #include <SDL/SDL.h>
5031 #else
5032 #include <SDL.h>
5033 #endif
5034 #ifndef __APPLE__
5035 // we allow SDL hacking our main() only on OSX
5036 #undef main
5037 #endif
5038 #else
5039 #include <GL/gl.h>
5040 #include <X11/Xlib.h>
5041 #include <GL/glx.h>
5042 #endif
5043 int main(int argc, char *argv[]) {
5044 #ifdef GL_WIN32
5045 HDC dc;
5046 wglCreateContext(dc);
5047 #elif defined(GL_SDL)
5048 SDL_GL_SwapBuffers();
5049 #else
5050 glXCreateContext(NULL, NULL, NULL, True);
5051 #endif
5052 glFinish();
5053 return 0;
5056 _gl=no
5057 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5058 if cc_check $_ld_tmp $_ld_lm ; then
5059 _gl=yes
5060 _gl_x11=yes
5061 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5062 break
5064 done
5065 if cc_check -DGL_WIN32 -lopengl32 ; then
5066 _gl=yes
5067 _gl_win32=yes
5068 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5070 # last so it can reuse any linker etc. flags detected before
5071 if test "$_sdl" = yes ; then
5072 if cc_check -DGL_SDL ||
5073 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
5074 _gl=yes
5075 _gl_sdl=yes
5076 elif cc_check -DGL_SDL -lGL ||
5077 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
5078 _gl=yes
5079 _gl_sdl=yes
5080 libs_mplayer="$libs_mplayer -lGL"
5083 else
5084 _gl=no
5086 if test "$_gl" = yes ; then
5087 def_gl='#define CONFIG_GL 1'
5088 res_comment="backends:"
5089 if test "$_gl_win32" = yes ; then
5090 def_gl_win32='#define CONFIG_GL_WIN32 1'
5091 res_comment="$res_comment win32"
5093 if test "$_gl_x11" = yes ; then
5094 def_gl_x11='#define CONFIG_GL_X11 1'
5095 res_comment="$res_comment x11"
5097 if test "$_gl_sdl" = yes ; then
5098 def_gl_sdl='#define CONFIG_GL_SDL 1'
5099 res_comment="$res_comment sdl"
5101 vomodules="opengl $vomodules"
5102 else
5103 def_gl='#undef CONFIG_GL'
5104 def_gl_win32='#undef CONFIG_GL_WIN32'
5105 def_gl_x11='#undef CONFIG_GL_X11'
5106 def_gl_sdl='#undef CONFIG_GL_SDL'
5107 novomodules="opengl $novomodules"
5109 echores "$_gl"
5112 echocheck "MatrixView"
5113 if test "$_gl" = no ; then
5114 matrixview=no
5116 if test "$matrixview" = yes ; then
5117 vomodules="matrixview $vomodules"
5118 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5119 else
5120 novomodules="matrixview $novomodules"
5121 def_matrixview='#undef CONFIG_MATRIXVIEW'
5123 echores "$matrixview"
5126 if os2 ; then
5127 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5128 if test "$_kva" = auto; then
5129 cat > $TMPC << EOF
5130 #include <os2.h>
5131 #include <kva.h>
5132 int main(void) { return 0; }
5134 _kva=no;
5135 cc_check -lkva && _kva=yes
5137 if test "$_kva" = yes ; then
5138 def_kva='#define CONFIG_KVA 1'
5139 libs_mplayer="$libs_mplayer -lkva"
5140 vomodules="kva $vomodules"
5141 else
5142 def_kva='#undef CONFIG_KVA'
5143 novomodules="kva $novomodules"
5145 echores "$_kva"
5146 fi #if os2
5149 if win32; then
5151 echocheck "Windows waveout"
5152 if test "$_win32waveout" = auto ; then
5153 cat > $TMPC << EOF
5154 #include <windows.h>
5155 #include <mmsystem.h>
5156 int main(void) { return 0; }
5158 _win32waveout=no
5159 cc_check -lwinmm && _win32waveout=yes
5161 if test "$_win32waveout" = yes ; then
5162 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5163 libs_mplayer="$libs_mplayer -lwinmm"
5164 aomodules="win32 $aomodules"
5165 else
5166 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5167 noaomodules="win32 $noaomodules"
5169 echores "$_win32waveout"
5171 echocheck "Direct3D"
5172 if test "$_direct3d" = auto ; then
5173 cat > $TMPC << EOF
5174 #include <windows.h>
5175 #include <d3d9.h>
5176 int main(void) { return 0; }
5178 _direct3d=no
5179 cc_check && _direct3d=yes
5181 if test "$_direct3d" = yes ; then
5182 def_direct3d='#define CONFIG_DIRECT3D 1'
5183 vomodules="direct3d $vomodules"
5184 else
5185 def_direct3d='#undef CONFIG_DIRECT3D'
5186 novomodules="direct3d $novomodules"
5188 echores "$_direct3d"
5190 echocheck "Directx"
5191 if test "$_directx" = auto ; then
5192 cat > $TMPC << EOF
5193 #include <windows.h>
5194 #include <ddraw.h>
5195 #include <dsound.h>
5196 int main(void) { return 0; }
5198 _directx=no
5199 cc_check -lgdi32 && _directx=yes
5201 if test "$_directx" = yes ; then
5202 def_directx='#define CONFIG_DIRECTX 1'
5203 libs_mplayer="$libs_mplayer -lgdi32"
5204 vomodules="directx $vomodules"
5205 aomodules="dsound $aomodules"
5206 else
5207 def_directx='#undef CONFIG_DIRECTX'
5208 novomodules="directx $novomodules"
5209 noaomodules="dsound $noaomodules"
5211 echores "$_directx"
5213 fi #if win32; then
5216 echocheck "DXR2"
5217 if test "$_dxr2" = auto; then
5218 _dxr2=no
5219 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5220 header_check dxr2ioctl.h $_inc_tmp && _dxr2=yes &&
5221 extra_cflags="$extra_cflags $_inc_tmp" && break
5222 done
5224 if test "$_dxr2" = yes; then
5225 def_dxr2='#define CONFIG_DXR2 1'
5226 aomodules="dxr2 $aomodules"
5227 vomodules="dxr2 $vomodules"
5228 else
5229 def_dxr2='#undef CONFIG_DXR2'
5230 noaomodules="dxr2 $noaomodules"
5231 novomodules="dxr2 $novomodules"
5233 echores "$_dxr2"
5235 echocheck "DXR3/H+"
5236 if test "$_dxr3" = auto ; then
5237 _dxr3=no
5238 header_check linux/em8300.h && _dxr3=yes
5240 if test "$_dxr3" = yes ; then
5241 def_dxr3='#define CONFIG_DXR3 1'
5242 vomodules="dxr3 $vomodules"
5243 else
5244 def_dxr3='#undef CONFIG_DXR3'
5245 novomodules="dxr3 $novomodules"
5247 echores "$_dxr3"
5250 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5251 if test "$_ivtv" = auto ; then
5252 cat > $TMPC << EOF
5253 #include <stdlib.h>
5254 #include <inttypes.h>
5255 #include <linux/types.h>
5256 #include <linux/videodev2.h>
5257 #include <linux/ivtv.h>
5258 #include <sys/ioctl.h>
5259 int main(void) {
5260 struct ivtv_cfg_stop_decode sd;
5261 struct ivtv_cfg_start_decode sd1;
5262 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5263 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5264 return 0; }
5266 _ivtv=no
5267 cc_check && _ivtv=yes
5269 if test "$_ivtv" = yes ; then
5270 def_ivtv='#define CONFIG_IVTV 1'
5271 vomodules="ivtv $vomodules"
5272 aomodules="ivtv $aomodules"
5273 else
5274 def_ivtv='#undef CONFIG_IVTV'
5275 novomodules="ivtv $novomodules"
5276 noaomodules="ivtv $noaomodules"
5278 echores "$_ivtv"
5281 echocheck "V4L2 MPEG Decoder"
5282 if test "$_v4l2" = auto ; then
5283 cat > $TMPC << EOF
5284 #include <stdlib.h>
5285 #include <inttypes.h>
5286 #include <linux/types.h>
5287 #include <linux/videodev2.h>
5288 #include <linux/version.h>
5289 int main(void) {
5290 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5291 #error kernel headers too old, need 2.6.22
5292 #endif
5293 struct v4l2_ext_controls ctrls;
5294 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5295 return 0;
5298 _v4l2=no
5299 cc_check && _v4l2=yes
5301 if test "$_v4l2" = yes ; then
5302 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5303 vomodules="v4l2 $vomodules"
5304 aomodules="v4l2 $aomodules"
5305 else
5306 def_v4l2='#undef CONFIG_V4L2_DECODER'
5307 novomodules="v4l2 $novomodules"
5308 noaomodules="v4l2 $noaomodules"
5310 echores "$_v4l2"
5314 #########
5315 # AUDIO #
5316 #########
5319 echocheck "OSS Audio"
5320 if test "$_ossaudio" = auto ; then
5321 cat > $TMPC << EOF
5322 #include <sys/ioctl.h>
5323 #include <$_soundcard_header>
5324 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5326 _ossaudio=no
5327 cc_check && _ossaudio=yes
5329 if test "$_ossaudio" = yes ; then
5330 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5331 aomodules="oss $aomodules"
5332 cat > $TMPC << EOF
5333 #include <sys/ioctl.h>
5334 #include <$_soundcard_header>
5335 #ifdef OPEN_SOUND_SYSTEM
5336 int main(void) { return 0; }
5337 #else
5338 #error Not the real thing
5339 #endif
5341 _real_ossaudio=no
5342 cc_check && _real_ossaudio=yes
5343 if test "$_real_ossaudio" = yes; then
5344 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5345 # Check for OSS4 headers (override default headers)
5346 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5347 if test -f /etc/oss.conf; then
5348 . /etc/oss.conf
5349 _ossinc="$OSSLIBDIR/include"
5350 if test -f "$_ossinc/sys/soundcard.h"; then
5351 extra_cflags="-I$_ossinc $extra_cflags"
5354 elif netbsd || openbsd ; then
5355 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5356 extra_ldflags="$extra_ldflags -lossaudio"
5357 else
5358 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5360 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5361 else
5362 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5363 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5364 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5365 noaomodules="oss $noaomodules"
5367 echores "$_ossaudio"
5370 echocheck "aRts"
5371 if test "$_arts" = auto ; then
5372 _arts=no
5373 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5374 header_check artsc.h $(artsc-config --libs) $(artsc-config --cflags) &&
5375 _arts=yes
5379 if test "$_arts" = yes ; then
5380 def_arts='#define CONFIG_ARTS 1'
5381 aomodules="arts $aomodules"
5382 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5383 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5384 else
5385 noaomodules="arts $noaomodules"
5387 echores "$_arts"
5390 echocheck "EsounD"
5391 if test "$_esd" = auto ; then
5392 _esd=no
5393 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5395 cat > $TMPC << EOF
5396 #include <esd.h>
5397 int main(void) { int fd = esd_open_sound("test"); return fd; }
5399 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5403 echores "$_esd"
5405 if test "$_esd" = yes ; then
5406 def_esd='#define CONFIG_ESD 1'
5407 aomodules="esd $aomodules"
5408 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5409 extra_cflags="$extra_cflags $(esd-config --cflags)"
5411 echocheck "esd_get_latency()"
5412 cat > $TMPC << EOF
5413 #include <esd.h>
5414 int main(void) { return esd_get_latency(0); }
5416 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5417 echores "$_esd_latency"
5418 else
5419 def_esd='#undef CONFIG_ESD'
5420 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5421 noaomodules="esd $noaomodules"
5425 echocheck "NAS"
5426 if test "$_nas" = auto ; then
5427 _nas=no
5428 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
5430 if test "$_nas" = yes ; then
5431 def_nas='#define CONFIG_NAS 1'
5432 libs_mplayer="$libs_mplayer -laudio -lXt"
5433 aomodules="nas $aomodules"
5434 else
5435 noaomodules="nas $noaomodules"
5436 def_nas='#undef CONFIG_NAS'
5438 echores "$_nas"
5441 echocheck "pulse"
5442 if test "$_pulse" = auto ; then
5443 _pulse=no
5444 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5445 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
5446 _pulse=yes
5449 echores "$_pulse"
5451 if test "$_pulse" = yes ; then
5452 def_pulse='#define CONFIG_PULSE 1'
5453 aomodules="pulse $aomodules"
5454 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5455 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5456 else
5457 def_pulse='#undef CONFIG_PULSE'
5458 noaomodules="pulse $noaomodules"
5462 echocheck "JACK"
5463 if test "$_jack" = auto ; then
5464 _jack=yes
5466 cat > $TMPC << EOF
5467 #include <jack/jack.h>
5468 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5470 if cc_check -ljack ; then
5471 libs_mplayer="$libs_mplayer -ljack"
5472 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5473 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5474 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5475 else
5476 _jack=no
5480 if test "$_jack" = yes ; then
5481 def_jack='#define CONFIG_JACK 1'
5482 aomodules="jack $aomodules"
5483 else
5484 noaomodules="jack $noaomodules"
5486 echores "$_jack"
5488 echocheck "OpenAL"
5489 if test "$_openal" = auto ; then
5490 _openal=no
5491 cat > $TMPC << EOF
5492 #ifdef OPENAL_AL_H
5493 #include <OpenAL/al.h>
5494 #else
5495 #include <AL/al.h>
5496 #endif
5497 int main(void) {
5498 alSourceQueueBuffers(0, 0, 0);
5499 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5500 return 0;
5503 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5504 cc_check $I && _openal=yes && break
5505 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5506 done
5507 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5509 if test "$_openal" = yes ; then
5510 def_openal='#define CONFIG_OPENAL 1'
5511 aomodules="openal $aomodules"
5512 else
5513 noaomodules="openal $noaomodules"
5515 echores "$_openal"
5517 echocheck "ALSA audio"
5518 if test "$_alloca" != yes ; then
5519 _alsa=no
5520 res_comment="alloca missing"
5522 if test "$_alsa" != no ; then
5523 _alsa=no
5524 cat > $TMPC << EOF
5525 #include <sys/asoundlib.h>
5526 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5527 #error "alsa version != 0.5.x"
5528 #endif
5529 int main(void) { return 0; }
5531 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5533 cat > $TMPC << EOF
5534 #include <sys/asoundlib.h>
5535 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5536 #error "alsa version != 0.9.x"
5537 #endif
5538 int main(void) { return 0; }
5540 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5541 cat > $TMPC << EOF
5542 #include <alsa/asoundlib.h>
5543 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5544 #error "alsa version != 0.9.x"
5545 #endif
5546 int main(void) { return 0; }
5548 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5550 cat > $TMPC << EOF
5551 #include <sys/asoundlib.h>
5552 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5553 #error "alsa version != 1.0.x"
5554 #endif
5555 int main(void) { return 0; }
5557 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5558 cat > $TMPC << EOF
5559 #include <alsa/asoundlib.h>
5560 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5561 #error "alsa version != 1.0.x"
5562 #endif
5563 int main(void) { return 0; }
5565 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5567 def_alsa='#undef CONFIG_ALSA'
5568 def_alsa5='#undef CONFIG_ALSA5'
5569 def_alsa9='#undef CONFIG_ALSA9'
5570 def_alsa1x='#undef CONFIG_ALSA1X'
5571 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5572 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5573 if test "$_alsaver" ; then
5574 _alsa=yes
5575 if test "$_alsaver" = '0.5.x' ; then
5576 _alsa5=yes
5577 aomodules="alsa5 $aomodules"
5578 def_alsa5='#define CONFIG_ALSA5 1'
5579 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5580 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5581 elif test "$_alsaver" = '0.9.x-sys' ; then
5582 _alsa9=yes
5583 aomodules="alsa $aomodules"
5584 def_alsa='#define CONFIG_ALSA 1'
5585 def_alsa9='#define CONFIG_ALSA9 1'
5586 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5587 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5588 elif test "$_alsaver" = '0.9.x-alsa' ; then
5589 _alsa9=yes
5590 aomodules="alsa $aomodules"
5591 def_alsa='#define CONFIG_ALSA 1'
5592 def_alsa9='#define CONFIG_ALSA9 1'
5593 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5594 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5595 elif test "$_alsaver" = '1.0.x-sys' ; then
5596 _alsa1x=yes
5597 aomodules="alsa $aomodules"
5598 def_alsa='#define CONFIG_ALSA 1'
5599 def_alsa1x="#define CONFIG_ALSA1X 1"
5600 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5601 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5602 elif test "$_alsaver" = '1.0.x-alsa' ; then
5603 _alsa1x=yes
5604 aomodules="alsa $aomodules"
5605 def_alsa='#define CONFIG_ALSA 1'
5606 def_alsa1x="#define CONFIG_ALSA1X 1"
5607 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5608 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5609 else
5610 _alsa=no
5611 res_comment="unknown version"
5613 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5614 else
5615 noaomodules="alsa $noaomodules"
5617 echores "$_alsa"
5620 echocheck "Sun audio"
5621 if test "$_sunaudio" = auto ; then
5622 cat > $TMPC << EOF
5623 #include <sys/types.h>
5624 #include <sys/audioio.h>
5625 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5627 _sunaudio=no
5628 cc_check && _sunaudio=yes
5630 if test "$_sunaudio" = yes ; then
5631 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5632 aomodules="sun $aomodules"
5633 else
5634 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5635 noaomodules="sun $noaomodules"
5637 echores "$_sunaudio"
5640 def_mlib='#define CONFIG_MLIB 0'
5641 if sunos; then
5642 echocheck "Sun mediaLib"
5643 if test "$_mlib" = auto ; then
5644 _mlib=no
5645 cat > $TMPC << EOF
5646 #include <mlib.h>
5647 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5649 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5651 echores "$_mlib"
5652 fi #if sunos
5655 if darwin; then
5656 echocheck "CoreAudio"
5657 if test "$_coreaudio" = auto ; then
5658 cat > $TMPC <<EOF
5659 #include <CoreAudio/CoreAudio.h>
5660 #include <AudioToolbox/AudioToolbox.h>
5661 #include <AudioUnit/AudioUnit.h>
5662 int main(void) { return 0; }
5664 _coreaudio=no
5665 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5667 if test "$_coreaudio" = yes ; then
5668 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5669 def_coreaudio='#define CONFIG_COREAUDIO 1'
5670 aomodules="coreaudio $aomodules"
5671 else
5672 def_coreaudio='#undef CONFIG_COREAUDIO'
5673 noaomodules="coreaudio $noaomodules"
5675 echores $_coreaudio
5676 fi #if darwin
5679 if irix; then
5680 echocheck "SGI audio"
5681 if test "$_sgiaudio" = auto ; then
5682 _sgiaudio=no
5683 header_check dmedia/audio.h && _sgiaudio=yes
5685 if test "$_sgiaudio" = "yes" ; then
5686 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5687 libs_mplayer="$libs_mplayer -laudio"
5688 aomodules="sgi $aomodules"
5689 else
5690 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5691 noaomodules="sgi $noaomodules"
5693 echores "$_sgiaudio"
5694 fi #if irix
5697 if os2 ; then
5698 echocheck "KAI (UNIAUD/DART)"
5699 if test "$_kai" = auto; then
5700 cat > $TMPC << EOF
5701 #include <os2.h>
5702 #include <kai.h>
5703 int main(void) { return 0; }
5705 _kai=no;
5706 cc_check -lkai && _kai=yes
5708 if test "$_kai" = yes ; then
5709 def_kai='#define CONFIG_KAI 1'
5710 libs_mplayer="$libs_mplayer -lkai"
5711 aomodules="kai $aomodules"
5712 else
5713 def_kai='#undef CONFIG_KAI'
5714 noaomodules="kai $noaomodules"
5716 echores "$_kai"
5718 echocheck "DART"
5719 if test "$_dart" = auto; then
5720 cat > $TMPC << EOF
5721 #include <os2.h>
5722 #include <dart.h>
5723 int main(void) { return 0; }
5725 _dart=no;
5726 cc_check -ldart && _dart=yes
5728 if test "$_dart" = yes ; then
5729 def_dart='#define CONFIG_DART 1'
5730 libs_mplayer="$libs_mplayer -ldart"
5731 aomodules="dart $aomodules"
5732 else
5733 def_dart='#undef CONFIG_DART'
5734 noaomodules="dart $noaomodules"
5736 echores "$_dart"
5737 fi #if os2
5740 # set default CD/DVD devices
5741 if win32 || os2 ; then
5742 default_cdrom_device="D:"
5743 elif darwin ; then
5744 default_cdrom_device="/dev/disk1"
5745 elif dragonfly ; then
5746 default_cdrom_device="/dev/cd0"
5747 elif freebsd ; then
5748 default_cdrom_device="/dev/acd0"
5749 elif openbsd ; then
5750 default_cdrom_device="/dev/rcd0a"
5751 elif sunos ; then
5752 default_cdrom_device="/vol/dev/aliases/cdrom0"
5753 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5754 # file system and the volfs service.
5755 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5756 elif amigaos ; then
5757 default_cdrom_device="a1ide.device:2"
5758 else
5759 default_cdrom_device="/dev/cdrom"
5762 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5763 default_dvd_device=$default_cdrom_device
5764 elif darwin ; then
5765 default_dvd_device="/dev/rdiskN"
5766 else
5767 default_dvd_device="/dev/dvd"
5771 echocheck "VCD support"
5772 if test "$_vcd" = auto; then
5773 _vcd=no
5774 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5775 _vcd=yes
5776 elif mingw32; then
5777 header_check ddk/ntddcdrm.h && _vcd=yes
5780 if test "$_vcd" = yes; then
5781 inputmodules="vcd $inputmodules"
5782 def_vcd='#define CONFIG_VCD 1'
5783 else
5784 def_vcd='#undef CONFIG_VCD'
5785 noinputmodules="vcd $noinputmodules"
5786 res_comment="not supported on this OS"
5788 echores "$_vcd"
5792 echocheck "dvdread"
5793 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5794 _dvdread_internal=no
5796 if test "$_dvdread_internal" = auto ; then
5797 _dvdread_internal=no
5798 _dvdread=no
5799 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5800 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5801 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5802 || darwin || win32 || os2; then
5803 _dvdread_internal=yes
5804 _dvdread=yes
5805 extra_cflags="-Ilibdvdread4 $extra_cflags"
5807 elif test "$_dvdread" = auto ; then
5808 _dvdread=no
5809 if test "$_dl" = yes; then
5810 cat > $TMPC << EOF
5811 #include <inttypes.h>
5812 #include <dvdread/dvd_reader.h>
5813 #include <dvdread/ifo_types.h>
5814 #include <dvdread/ifo_read.h>
5815 #include <dvdread/nav_read.h>
5816 int main(void) { return 0; }
5818 _dvdreadcflags=$($_dvdreadconfig --cflags)
5819 _dvdreadlibs=$($_dvdreadconfig --libs)
5820 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5821 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5822 _dvdread=yes
5823 extra_cflags="$extra_cflags $_dvdreadcflags"
5824 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5825 res_comment="external"
5830 if test "$_dvdread_internal" = yes; then
5831 def_dvdread='#define CONFIG_DVDREAD 1'
5832 inputmodules="dvdread(internal) $inputmodules"
5833 _largefiles=yes
5834 res_comment="internal"
5835 elif test "$_dvdread" = yes; then
5836 def_dvdread='#define CONFIG_DVDREAD 1'
5837 _largefiles=yes
5838 extra_ldflags="$extra_ldflags -ldvdread"
5839 inputmodules="dvdread(external) $inputmodules"
5840 res_comment="external"
5841 else
5842 def_dvdread='#undef CONFIG_DVDREAD'
5843 noinputmodules="dvdread $noinputmodules"
5845 echores "$_dvdread"
5848 echocheck "internal libdvdcss"
5849 if test "$_libdvdcss_internal" = auto ; then
5850 _libdvdcss_internal=no
5851 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5852 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5854 if test "$_libdvdcss_internal" = yes ; then
5855 if linux || netbsd || openbsd || bsdos ; then
5856 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5857 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5858 elif freebsd || dragonfly ; then
5859 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5860 elif darwin ; then
5861 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5862 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5863 elif cygwin ; then
5864 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5865 elif beos ; then
5866 cflags_libdvdcss="-DSYS_BEOS"
5867 elif os2 ; then
5868 cflags_libdvdcss="-DSYS_OS2"
5870 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5871 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5872 inputmodules="libdvdcss(internal) $inputmodules"
5873 _largefiles=yes
5874 else
5875 noinputmodules="libdvdcss(internal) $noinputmodules"
5877 echores "$_libdvdcss_internal"
5880 echocheck "cdparanoia"
5881 if test "$_cdparanoia" = auto ; then
5882 cat > $TMPC <<EOF
5883 #include <cdda_interface.h>
5884 #include <cdda_paranoia.h>
5885 // This need a better test. How ?
5886 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5888 _cdparanoia=no
5889 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5890 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5891 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5892 done
5894 if test "$_cdparanoia" = yes ; then
5895 _cdda='yes'
5896 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5897 openbsd && extra_ldflags="$extra_ldflags -lutil"
5899 echores "$_cdparanoia"
5902 echocheck "libcdio"
5903 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5904 cat > $TMPC << EOF
5905 #include <stdio.h>
5906 #include <cdio/version.h>
5907 #include <cdio/cdda.h>
5908 #include <cdio/paranoia.h>
5909 int main(void) {
5910 void *test = cdda_verbose_set;
5911 printf("%s\n", CDIO_VERSION);
5912 return test == (void *)1;
5915 _libcdio=no
5916 for _ld_tmp in "" "-lwinmm" ; do
5917 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5918 cc_check $_ld_tmp $_ld_lm \
5919 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5920 done
5921 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5922 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5923 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5924 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5925 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5928 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5929 _cdda='yes'
5930 def_libcdio='#define CONFIG_LIBCDIO 1'
5931 def_havelibcdio='yes'
5932 else
5933 if test "$_cdparanoia" = yes ; then
5934 res_comment="using cdparanoia"
5936 def_libcdio='#undef CONFIG_LIBCDIO'
5937 def_havelibcdio='no'
5939 echores "$_libcdio"
5941 if test "$_cdda" = yes ; then
5942 test $_cddb = auto && test $_network = yes && _cddb=yes
5943 def_cdparanoia='#define CONFIG_CDDA 1'
5944 inputmodules="cdda $inputmodules"
5945 else
5946 def_cdparanoia='#undef CONFIG_CDDA'
5947 noinputmodules="cdda $noinputmodules"
5950 if test "$_cddb" = yes ; then
5951 def_cddb='#define CONFIG_CDDB 1'
5952 inputmodules="cddb $inputmodules"
5953 else
5954 _cddb=no
5955 def_cddb='#undef CONFIG_CDDB'
5956 noinputmodules="cddb $noinputmodules"
5959 echocheck "bitmap font support"
5960 if test "$_bitmap_font" = yes ; then
5961 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5962 else
5963 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5965 echores "$_bitmap_font"
5968 echocheck "freetype >= 2.0.9"
5970 # freetype depends on iconv
5971 if test "$_iconv" = no ; then
5972 _freetype=no
5973 res_comment="iconv support needed"
5976 if test "$_freetype" = auto ; then
5977 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5978 cat > $TMPC << EOF
5979 #include <stdio.h>
5980 #include <ft2build.h>
5981 #include FT_FREETYPE_H
5982 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5983 #error "Need FreeType 2.0.9 or newer"
5984 #endif
5985 int main(void) {
5986 FT_Library library;
5987 FT_Int major=-1,minor=-1,patch=-1;
5988 int err=FT_Init_FreeType(&library);
5989 return 0;
5992 _freetype=no
5993 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5994 else
5995 _freetype=no
5998 if test "$_freetype" = yes ; then
5999 def_freetype='#define CONFIG_FREETYPE 1'
6000 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6001 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6002 else
6003 def_freetype='#undef CONFIG_FREETYPE'
6005 echores "$_freetype"
6007 if test "$_freetype" = no ; then
6008 _fontconfig=no
6009 res_comment="FreeType support needed"
6011 echocheck "fontconfig"
6012 if test "$_fontconfig" = auto ; then
6013 cat > $TMPC << EOF
6014 #include <stdio.h>
6015 #include <stdlib.h>
6016 #include <fontconfig/fontconfig.h>
6017 #if FC_VERSION < 20402
6018 #error At least version 2.4.2 of fontconfig required
6019 #endif
6020 int main(void) {
6021 int err = FcInit();
6022 if (err == FcFalse) {
6023 printf("Couldn't initialize fontconfig lib\n");
6024 exit(err);
6026 return 0;
6029 _fontconfig=no
6030 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6031 _ld_tmp="-lfontconfig $_ld_tmp"
6032 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6033 done
6034 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6035 _inc_tmp=$($_pkg_config --cflags fontconfig)
6036 _ld_tmp=$($_pkg_config --libs fontconfig)
6037 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6038 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6041 if test "$_fontconfig" = yes ; then
6042 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6043 else
6044 def_fontconfig='#undef CONFIG_FONTCONFIG'
6046 echores "$_fontconfig"
6049 echocheck "SSA/ASS support"
6050 if test "$_ass" = auto -o "$_ass" = yes ; then
6051 if $_pkg_config libass; then
6052 _ass=yes
6053 def_ass='#define CONFIG_ASS 1'
6054 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
6055 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
6056 else
6057 _ass=no
6058 def_ass='#undef CONFIG_ASS'
6060 else
6061 def_ass='#undef CONFIG_ASS'
6063 echores "$_ass"
6066 echocheck "fribidi with charsets"
6067 _inc_tmp=""
6068 _ld_tmp=""
6069 if test "$_fribidi" = auto ; then
6070 cat > $TMPC << EOF
6071 #include <stdlib.h>
6072 /* workaround for fribidi 0.10.4 and below */
6073 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6074 #include <fribidi/fribidi.h>
6075 int main(void) {
6076 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
6077 exit(1);
6078 return 0;
6081 _fribidi=no
6082 _inc_tmp=""
6083 _ld_tmp="-lfribidi"
6084 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6085 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
6086 test "$_fribidi" = no ; then
6087 _inc_tmp="$($_pkg_config --cflags)"
6088 _ld_tmp="$($_pkg_config --libs)"
6089 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6092 if test "$_fribidi" = yes ; then
6093 def_fribidi='#define CONFIG_FRIBIDI 1'
6094 extra_cflags="$extra_cflags $_inc_tmp"
6095 extra_ldflags="$extra_ldflags $_ld_tmp"
6096 else
6097 def_fribidi='#undef CONFIG_FRIBIDI'
6099 echores "$_fribidi"
6102 echocheck "ENCA"
6103 if test "$_enca" = auto ; then
6104 cat > $TMPC << EOF
6105 #include <sys/types.h>
6106 #include <enca.h>
6107 int main(void) {
6108 const char **langs;
6109 size_t langcnt;
6110 langs = enca_get_languages(&langcnt);
6111 return 0;
6114 _enca=no
6115 cc_check -lenca $_ld_lm && _enca=yes
6117 if test "$_enca" = yes ; then
6118 def_enca='#define CONFIG_ENCA 1'
6119 extra_ldflags="$extra_ldflags -lenca"
6120 else
6121 def_enca='#undef CONFIG_ENCA'
6123 echores "$_enca"
6126 echocheck "zlib"
6127 cat > $TMPC << EOF
6128 #include <zlib.h>
6129 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6131 _zlib=no
6132 cc_check -lz && _zlib=yes
6133 if test "$_zlib" = yes ; then
6134 def_zlib='#define CONFIG_ZLIB 1'
6135 extra_ldflags="$extra_ldflags -lz"
6136 else
6137 def_zlib='#define CONFIG_ZLIB 0'
6139 echores "$_zlib"
6142 echocheck "bzlib"
6143 bzlib=no
6144 def_bzlib='#define CONFIG_BZLIB 0'
6145 cat > $TMPC << EOF
6146 #include <bzlib.h>
6147 int main(void) { BZ2_bzlibVersion(); return 0; }
6149 cc_check -lbz2 && bzlib=yes
6150 if test "$bzlib" = yes ; then
6151 def_bzlib='#define CONFIG_BZLIB 1'
6152 extra_ldflags="$extra_ldflags -lbz2"
6154 echores "$bzlib"
6157 echocheck "RTC"
6158 if test "$_rtc" = auto ; then
6159 cat > $TMPC << EOF
6160 #include <sys/ioctl.h>
6161 #ifdef __linux__
6162 #include <linux/rtc.h>
6163 #else
6164 #include <rtc.h>
6165 #define RTC_PIE_ON RTCIO_PIE_ON
6166 #endif
6167 int main(void) { return RTC_PIE_ON; }
6169 _rtc=no
6170 cc_check && _rtc=yes
6171 ppc && _rtc=no
6173 if test "$_rtc" = yes ; then
6174 def_rtc='#define HAVE_RTC 1'
6175 else
6176 def_rtc='#undef HAVE_RTC'
6178 echores "$_rtc"
6181 echocheck "liblzo2 support"
6182 if test "$_liblzo" = auto ; then
6183 _liblzo=no
6184 cat > $TMPC << EOF
6185 #include <lzo/lzo1x.h>
6186 int main(void) { lzo_init(); return 0; }
6188 cc_check -llzo2 && _liblzo=yes
6190 if test "$_liblzo" = yes ; then
6191 def_liblzo='#define CONFIG_LIBLZO 1'
6192 extra_ldflags="$extra_ldflags -llzo2"
6193 codecmodules="liblzo $codecmodules"
6194 else
6195 def_liblzo='#undef CONFIG_LIBLZO'
6196 nocodecmodules="liblzo $nocodecmodules"
6198 echores "$_liblzo"
6201 echocheck "mad support"
6202 if test "$_mad" = auto ; then
6203 _mad=no
6204 header_check mad.h -lmad && _mad=yes
6206 if test "$_mad" = yes ; then
6207 def_mad='#define CONFIG_LIBMAD 1'
6208 extra_ldflags="$extra_ldflags -lmad"
6209 codecmodules="libmad $codecmodules"
6210 else
6211 def_mad='#undef CONFIG_LIBMAD'
6212 nocodecmodules="libmad $nocodecmodules"
6214 echores "$_mad"
6216 echocheck "Twolame"
6217 if test "$_twolame" = auto ; then
6218 cat > $TMPC <<EOF
6219 #include <twolame.h>
6220 int main(void) { twolame_init(); return 0; }
6222 _twolame=no
6223 cc_check -ltwolame $_ld_lm && _twolame=yes
6225 if test "$_twolame" = yes ; then
6226 def_twolame='#define CONFIG_TWOLAME 1'
6227 libs_mencoder="$libs_mencoder -ltwolame"
6228 codecmodules="twolame $codecmodules"
6229 else
6230 def_twolame='#undef CONFIG_TWOLAME'
6231 nocodecmodules="twolame $nocodecmodules"
6233 echores "$_twolame"
6235 echocheck "Toolame"
6236 if test "$_toolame" = auto ; then
6237 _toolame=no
6238 if test "$_twolame" = yes ; then
6239 res_comment="disabled by twolame"
6240 else
6241 cat > $TMPC <<EOF
6242 #include <toolame.h>
6243 int main(void) { toolame_init(); return 0; }
6245 cc_check -ltoolame $_ld_lm && _toolame=yes
6248 if test "$_toolame" = yes ; then
6249 def_toolame='#define CONFIG_TOOLAME 1'
6250 libs_mencoder="$libs_mencoder -ltoolame"
6251 codecmodules="toolame $codecmodules"
6252 else
6253 def_toolame='#undef CONFIG_TOOLAME'
6254 nocodecmodules="toolame $nocodecmodules"
6256 if test "$_toolamedir" ; then
6257 res_comment="using $_toolamedir"
6259 echores "$_toolame"
6261 echocheck "OggVorbis support"
6262 if test "$_tremor_internal" = yes; then
6263 _libvorbis=no
6264 elif test "$_tremor" = auto; then
6265 _tremor=no
6266 cat > $TMPC << EOF
6267 #include <tremor/ivorbiscodec.h>
6268 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6270 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6272 if test "$_libvorbis" = auto; then
6273 _libvorbis=no
6274 cat > $TMPC << EOF
6275 #include <vorbis/codec.h>
6276 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6278 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6280 if test "$_tremor_internal" = yes ; then
6281 _vorbis=yes
6282 def_vorbis='#define CONFIG_OGGVORBIS 1'
6283 def_tremor='#define CONFIG_TREMOR 1'
6284 codecmodules="tremor(internal) $codecmodules"
6285 res_comment="internal Tremor"
6286 if test "$_tremor_low" = yes ; then
6287 cflags_tremor_low="-D_LOW_ACCURACY_"
6288 res_comment="internal low accuracy Tremor"
6290 elif test "$_tremor" = yes ; then
6291 _vorbis=yes
6292 def_vorbis='#define CONFIG_OGGVORBIS 1'
6293 def_tremor='#define CONFIG_TREMOR 1'
6294 codecmodules="tremor(external) $codecmodules"
6295 res_comment="external Tremor"
6296 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6297 elif test "$_libvorbis" = yes ; then
6298 _vorbis=yes
6299 def_vorbis='#define CONFIG_OGGVORBIS 1'
6300 codecmodules="libvorbis $codecmodules"
6301 res_comment="libvorbis"
6302 extra_ldflags="$extra_ldflags -lvorbis -logg"
6303 else
6304 _vorbis=no
6305 nocodecmodules="libvorbis $nocodecmodules"
6307 echores "$_vorbis"
6309 echocheck "libspeex (version >= 1.1 required)"
6310 if test "$_speex" = auto ; then
6311 _speex=no
6312 cat > $TMPC << EOF
6313 #include <speex/speex.h>
6314 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6316 cc_check -lspeex $_ld_lm && _speex=yes
6318 if test "$_speex" = yes ; then
6319 def_speex='#define CONFIG_SPEEX 1'
6320 extra_ldflags="$extra_ldflags -lspeex"
6321 codecmodules="speex $codecmodules"
6322 else
6323 def_speex='#undef CONFIG_SPEEX'
6324 nocodecmodules="speex $nocodecmodules"
6326 echores "$_speex"
6328 echocheck "OggTheora support"
6329 if test "$_theora" = auto ; then
6330 _theora=no
6331 cat > $TMPC << EOF
6332 #include <theora/theora.h>
6333 #include <string.h>
6334 int main(void) {
6335 /* Theora is in flux, make sure that all interface routines and datatypes
6336 * exist and work the way we expect it, so we don't break MPlayer. */
6337 ogg_packet op;
6338 theora_comment tc;
6339 theora_info inf;
6340 theora_state st;
6341 yuv_buffer yuv;
6342 int r;
6343 double t;
6345 theora_info_init(&inf);
6346 theora_comment_init(&tc);
6348 return 0;
6350 /* we don't want to execute this kind of nonsense; just for making sure
6351 * that compilation works... */
6352 memset(&op, 0, sizeof(op));
6353 r = theora_decode_header(&inf, &tc, &op);
6354 r = theora_decode_init(&st, &inf);
6355 t = theora_granule_time(&st, op.granulepos);
6356 r = theora_decode_packetin(&st, &op);
6357 r = theora_decode_YUVout(&st, &yuv);
6358 theora_clear(&st);
6360 return 0;
6363 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6364 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6365 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6366 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6367 if test _theora = no; then
6368 _ld_theora="-ltheora -logg"
6369 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6371 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6372 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6373 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6374 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6375 extra_ldflags="$extra_ldflags $_ld_theora" &&
6376 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6377 if test _theora = no; then
6378 _ld_theora="-ltheora -logg"
6379 cc_check tremor/bitwise.c $_ld_theora &&
6380 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6384 if test "$_theora" = yes ; then
6385 def_theora='#define CONFIG_OGGTHEORA 1'
6386 codecmodules="libtheora $codecmodules"
6387 # when --enable-theora is forced, we'd better provide a probably sane
6388 # $_ld_theora than nothing
6389 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6390 else
6391 def_theora='#undef CONFIG_OGGTHEORA'
6392 nocodecmodules="libtheora $nocodecmodules"
6394 echores "$_theora"
6396 echocheck "mp3lib support"
6397 if test "$_mp3lib" = auto ; then
6398 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6400 if test "$_mp3lib" = yes ; then
6401 def_mp3lib='#define CONFIG_MP3LIB 1'
6402 codecmodules="mp3lib(internal) $codecmodules"
6403 else
6404 def_mp3lib='#undef CONFIG_MP3LIB'
6405 nocodecmodules="mp3lib(internal) $nocodecmodules"
6407 echores "$_mp3lib"
6409 # Any version of libmpg123 shall be fine.
6410 echocheck "mpg123 support"
6411 def_mpg123='#undef CONFIG_MPG123'
6412 if test "$_mpg123" = auto; then
6413 _mpg123=no
6414 cat > $TMPC <<EOF
6415 #include <mpg123.h>
6416 int main(void){ mpg123_init(); return 0; }
6418 cc_check -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
6420 if test "$_mpg123" = yes ; then
6421 def_mpg123='#define CONFIG_MPG123 1'
6422 codecmodules="mpg123 $codecmodules"
6423 else
6424 nocodecmodules="mpg123 $nocodecmodules"
6426 echores "$_mpg123"
6428 echocheck "liba52 support"
6429 def_liba52='#undef CONFIG_LIBA52'
6430 if test "$_liba52" = auto ; then
6431 _liba52=no
6432 cat > $TMPC << EOF
6433 #include <inttypes.h>
6434 #include <a52dec/a52.h>
6435 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6437 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6439 if test "$_liba52" = yes ; then
6440 def_liba52='#define CONFIG_LIBA52 1'
6441 codecmodules="liba52 $codecmodules"
6442 else
6443 nocodecmodules="liba52 $nocodecmodules"
6445 echores "$_liba52"
6447 echocheck "internal libmpeg2 support"
6448 if test "$_libmpeg2" = auto ; then
6449 _libmpeg2=yes
6450 if alpha && test cc_vendor=gnu; then
6451 case $cc_version in
6452 2*|3.0*|3.1*) # cannot compile MVI instructions
6453 _libmpeg2=no
6454 res_comment="broken gcc"
6456 esac
6459 if test "$_libmpeg2" = yes ; then
6460 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6461 codecmodules="libmpeg2(internal) $codecmodules"
6462 else
6463 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6464 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6466 echores "$_libmpeg2"
6468 echocheck "libdca support"
6469 if test "$_libdca" = auto ; then
6470 _libdca=no
6471 cat > $TMPC << EOF
6472 #include <inttypes.h>
6473 #include <dts.h>
6474 int main(void) { dts_init(0); return 0; }
6476 for _ld_dca in -ldca -ldts ; do
6477 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6478 && _libdca=yes && break
6479 done
6481 if test "$_libdca" = yes ; then
6482 def_libdca='#define CONFIG_LIBDCA 1'
6483 codecmodules="libdca $codecmodules"
6484 else
6485 def_libdca='#undef CONFIG_LIBDCA'
6486 nocodecmodules="libdca $nocodecmodules"
6488 echores "$_libdca"
6490 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6491 if test "$_musepack" = auto ; then
6492 _musepack=no
6493 cat > $TMPC << EOF
6494 #include <stddef.h>
6495 #include <mpcdec/mpcdec.h>
6496 int main(void) {
6497 mpc_streaminfo info;
6498 mpc_decoder decoder;
6499 mpc_decoder_set_streaminfo(&decoder, &info);
6500 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6501 return 0;
6504 cc_check -lmpcdec $_ld_lm && _musepack=yes
6506 if test "$_musepack" = yes ; then
6507 def_musepack='#define CONFIG_MUSEPACK 1'
6508 extra_ldflags="$extra_ldflags -lmpcdec"
6509 codecmodules="musepack $codecmodules"
6510 else
6511 def_musepack='#undef CONFIG_MUSEPACK'
6512 nocodecmodules="musepack $nocodecmodules"
6514 echores "$_musepack"
6517 echocheck "FAAC support"
6518 if test "$_faac" = auto ; then
6519 cat > $TMPC <<EOF
6520 #include <inttypes.h>
6521 #include <faac.h>
6522 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6524 _faac=no
6525 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6526 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6527 done
6529 if test "$_faac" = yes ; then
6530 def_faac="#define CONFIG_FAAC 1"
6531 codecmodules="faac $codecmodules"
6532 else
6533 def_faac="#undef CONFIG_FAAC"
6534 nocodecmodules="faac $nocodecmodules"
6536 echores "$_faac"
6539 echocheck "FAAD2 support"
6540 if test "$_faad_internal" = auto ; then
6541 if x86_32 && test cc_vendor=gnu; then
6542 case $cc_version in
6543 3.1*|3.2) # ICE/insn with these versions
6544 _faad_internal=no
6545 res_comment="broken gcc"
6548 _faad=yes
6549 _faad_internal=yes
6551 esac
6552 else
6553 _faad=yes
6554 _faad_internal=yes
6557 if test "$_faad" = auto ; then
6558 cat > $TMPC << EOF
6559 #include <faad.h>
6560 #ifndef FAAD_MIN_STREAMSIZE
6561 #error Too old version
6562 #endif
6563 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6564 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6566 cc_check -lfaad $_ld_lm && _faad=yes
6569 def_faad='#undef CONFIG_FAAD'
6570 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6571 if test "$_faad_internal" = yes ; then
6572 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6573 res_comment="internal floating-point"
6574 if test "$_faad_fixed" = yes ; then
6575 # The FIXED_POINT implementation of FAAD2 improves performance
6576 # on some platforms, especially for SBR files.
6577 cflags_faad_fixed="-DFIXED_POINT"
6578 res_comment="internal fixed-point"
6580 elif test "$_faad" = yes ; then
6581 extra_ldflags="$extra_ldflags -lfaad"
6584 if test "$_faad" = yes ; then
6585 def_faad='#define CONFIG_FAAD 1'
6586 if test "$_faad_internal" = yes ; then
6587 codecmodules="faad2(internal) $codecmodules"
6588 else
6589 codecmodules="faad2 $codecmodules"
6591 else
6592 _faad=no
6593 nocodecmodules="faad2 $nocodecmodules"
6595 echores "$_faad"
6598 echocheck "LADSPA plugin support"
6599 if test "$_ladspa" = auto ; then
6600 cat > $TMPC <<EOF
6601 #include <ladspa.h>
6602 int main(void) {
6603 const LADSPA_Descriptor *ld = NULL;
6604 return 0;
6607 _ladspa=no
6608 cc_check && _ladspa=yes
6610 if test "$_ladspa" = yes; then
6611 def_ladspa="#define CONFIG_LADSPA 1"
6612 else
6613 def_ladspa="#undef CONFIG_LADSPA"
6615 echores "$_ladspa"
6618 echocheck "libbs2b audio filter support"
6619 if test "$_libbs2b" = auto ; then
6620 cat > $TMPC <<EOF
6621 #include <bs2b.h>
6622 #if BS2B_VERSION_MAJOR < 3
6623 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6624 #endif
6625 int main(void) {
6626 t_bs2bdp filter;
6627 filter=bs2b_open();
6628 bs2b_close(filter);
6629 return 0;
6632 _libbs2b=no
6633 if $_pkg_config --exists libbs2b ; then
6634 _inc_tmp=$($_pkg_config --cflags libbs2b)
6635 _ld_tmp=$($_pkg_config --libs libbs2b)
6636 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6637 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6638 else
6639 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6640 -I/usr/local/include/bs2b ; do
6641 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6642 extra_ldflags="$extra_ldflags -lbs2b"
6643 extra_cflags="$extra_cflags $_inc_tmp"
6644 _libbs2b=yes
6645 break
6647 done
6650 def_libbs2b="#undef CONFIG_LIBBS2B"
6651 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6652 echores "$_libbs2b"
6655 if test -z "$_codecsdir" ; then
6656 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6657 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6658 if test -d "$dir" ; then
6659 _codecsdir="$dir"
6660 break;
6662 done
6664 # Fall back on default directory.
6665 if test -z "$_codecsdir" ; then
6666 _codecsdir="$_libdir/codecs"
6667 mingw32 || os2 && _codecsdir="codecs"
6671 echocheck "Win32 codecs"
6672 if test "$_win32dll" = auto ; then
6673 _win32dll=no
6674 if x86_32 && ! qnx; then
6675 _win32dll=yes
6678 if test "$_win32dll" = yes ; then
6679 def_win32dll='#define CONFIG_WIN32DLL 1'
6680 if ! win32 ; then
6681 def_win32_loader='#define WIN32_LOADER 1'
6682 _win32_emulation=yes
6683 else
6684 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6685 res_comment="using native windows"
6687 codecmodules="win32 $codecmodules"
6688 else
6689 def_win32dll='#undef CONFIG_WIN32DLL'
6690 def_win32_loader='#undef WIN32_LOADER'
6691 nocodecmodules="win32 $nocodecmodules"
6693 echores "$_win32dll"
6696 echocheck "XAnim codecs"
6697 if test "$_xanim" = auto ; then
6698 _xanim=no
6699 res_comment="dynamic loader support needed"
6700 if test "$_dl" = yes ; then
6701 _xanim=yes
6704 if test "$_xanim" = yes ; then
6705 def_xanim='#define CONFIG_XANIM 1'
6706 codecmodules="xanim $codecmodules"
6707 else
6708 def_xanim='#undef CONFIG_XANIM'
6709 nocodecmodules="xanim $nocodecmodules"
6711 echores "$_xanim"
6714 echocheck "RealPlayer codecs"
6715 if test "$_real" = auto ; then
6716 _real=no
6717 res_comment="dynamic loader support needed"
6718 if test "$_dl" = yes || test "$_win32dll" = yes &&
6719 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
6720 _real=yes
6723 if test "$_real" = yes ; then
6724 def_real='#define CONFIG_REALCODECS 1'
6725 codecmodules="real $codecmodules"
6726 else
6727 def_real='#undef CONFIG_REALCODECS'
6728 nocodecmodules="real $nocodecmodules"
6730 echores "$_real"
6733 echocheck "QuickTime codecs"
6734 _qtx_emulation=no
6735 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6736 if test "$_qtx" = auto ; then
6737 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6739 if test "$_qtx" = yes ; then
6740 def_qtx='#define CONFIG_QTX_CODECS 1'
6741 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6742 codecmodules="qtx $codecmodules"
6743 darwin || win32 || _qtx_emulation=yes
6744 else
6745 def_qtx='#undef CONFIG_QTX_CODECS'
6746 nocodecmodules="qtx $nocodecmodules"
6748 echores "$_qtx"
6750 echocheck "Nemesi Streaming Media libraries"
6751 if test "$_nemesi" = auto && test "$_network" = yes ; then
6752 _nemesi=no
6753 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6754 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6755 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6756 _nemesi=yes
6759 if test "$_nemesi" = yes; then
6760 _native_rtsp=no
6761 def_nemesi='#define CONFIG_LIBNEMESI 1'
6762 inputmodules="nemesi $inputmodules"
6763 else
6764 _native_rtsp="$_network"
6765 _nemesi=no
6766 def_nemesi='#undef CONFIG_LIBNEMESI'
6767 noinputmodules="nemesi $noinputmodules"
6769 echores "$_nemesi"
6771 echocheck "LIVE555 Streaming Media libraries"
6772 if test "$_live" = auto && test "$_network" = yes ; then
6773 cat > $TMPCPP << EOF
6774 #include <liveMedia.hh>
6775 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6776 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6777 #endif
6778 int main(void) { return 0; }
6781 _live=no
6782 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
6783 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6784 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6785 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6786 $_livelibdir/groupsock/libgroupsock.a \
6787 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6788 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6789 $extra_ldflags -lstdc++" \
6790 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6791 -I$_livelibdir/UsageEnvironment/include \
6792 -I$_livelibdir/BasicUsageEnvironment/include \
6793 -I$_livelibdir/groupsock/include" && \
6794 _live=yes && break
6795 done
6796 if test "$_live" != yes ; then
6797 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6798 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6799 _live_dist=yes
6803 if test "$_live" = yes && test "$_network" = yes; then
6804 test $_livelibdir && res_comment="using $_livelibdir"
6805 def_live='#define CONFIG_LIVE555 1'
6806 inputmodules="live555 $inputmodules"
6807 elif test "$_live_dist" = yes && test "$_network" = yes; then
6808 res_comment="using distribution version"
6809 _live="yes"
6810 def_live='#define CONFIG_LIVE555 1'
6811 extra_ldflags="$extra_ldflags $ld_tmp"
6812 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6813 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6814 inputmodules="live555 $inputmodules"
6815 else
6816 _live=no
6817 def_live='#undef CONFIG_LIVE555'
6818 noinputmodules="live555 $noinputmodules"
6820 echores "$_live"
6823 echocheck "FFmpeg libavutil"
6824 if test "$_libavutil" = auto ; then
6825 _libavutil=no
6826 cat > $TMPC << EOF
6827 #include <libavutil/common.h>
6828 int main(void) { av_clip(1, 1, 1); return 0; }
6830 if $_pkg_config --exists libavutil ; then
6831 _inc_libavutil=$($_pkg_config --cflags libavutil)
6832 _ld_tmp=$($_pkg_config --libs libavutil)
6833 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6834 && _libavutil=yes
6835 elif cc_check -lavutil $_ld_lm ; then
6836 extra_ldflags="$extra_ldflags -lavutil"
6837 _libavutil=yes
6840 def_libavutil='#undef CONFIG_LIBAVUTIL'
6841 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6842 # libavutil is not available, but it is mandatory ...
6843 if test "$_libavutil" = no ; then
6844 die "You need libavutil, MPlayer will not compile without!"
6846 echores "$_libavutil"
6848 echocheck "FFmpeg libavcodec"
6849 if test "$_libavcodec" = auto ; then
6850 _libavcodec=no
6851 cat > $TMPC << EOF
6852 #include <libavcodec/avcodec.h>
6853 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6855 if $_pkg_config --exists libavcodec ; then
6856 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6857 _ld_tmp=$($_pkg_config --libs libavcodec)
6858 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6859 && _libavcodec=yes
6860 elif cc_check -lavcodec $_ld_lm ; then
6861 extra_ldflags="$extra_ldflags -lavcodec"
6862 _libavcodec=yes
6865 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6866 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6867 if test "$_libavcodec" = yes ; then
6868 codecmodules="libavcodec $codecmodules"
6869 else
6870 nocodecmodules="libavcodec $nocodecmodules"
6872 echores "$_libavcodec"
6874 echocheck "FFmpeg libavformat"
6875 if test "$_libavformat" = auto ; then
6876 _libavformat=no
6877 cat > $TMPC <<EOF
6878 #include <libavformat/avformat.h>
6879 int main(void) { av_alloc_format_context(); return 0; }
6881 if $_pkg_config --exists libavformat ; then
6882 _inc_libavformat=$($_pkg_config --cflags libavformat)
6883 _ld_tmp=$($_pkg_config --libs libavformat)
6884 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6885 && _libavformat=yes
6886 elif cc_check $_ld_lm -lavformat ; then
6887 extra_ldflags="$extra_ldflags -lavformat"
6888 _libavformat=yes
6891 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6892 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6893 echores "$_libavformat"
6895 echocheck "FFmpeg libpostproc"
6896 if test "$_libpostproc" = auto ; then
6897 _libpostproc=no
6898 cat > $TMPC << EOF
6899 #include <libpostproc/postprocess.h>
6900 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6902 if $_pkg_config --exists libpostproc ; then
6903 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6904 _ld_tmp=$($_pkg_config --libs libpostproc)
6905 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6906 && _libpostproc=yes
6907 elif cc_check -lpostproc $_ld_lm ; then
6908 extra_ldflags="$extra_ldflags -lpostproc"
6909 _libpostproc=yes
6912 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6913 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6914 echores "$_libpostproc"
6916 echocheck "FFmpeg libswscale"
6917 if test "$_libswscale" = auto ; then
6918 _libswscale=no
6919 cat > $TMPC << EOF
6920 #include <libswscale/swscale.h>
6921 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6923 if $_pkg_config --exists libswscale ; then
6924 _inc_libswscale=$($_pkg_config --cflags libswscale)
6925 _ld_tmp=$($_pkg_config --libs libswscale)
6926 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6927 && _libswscale=yes
6928 elif cc_check -lswscale ; then
6929 extra_ldflags="$extra_ldflags -lswscale"
6930 _libswscale=yes
6933 def_libswscale='#undef CONFIG_LIBSWSCALE'
6934 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
6935 echores "$_libswscale"
6937 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
6938 if ! test -z "$_ffmpeg_source" ; then
6939 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
6942 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
6943 if ! test -z "$_ffmpeg_source" ; then
6944 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
6947 echocheck "libdv-0.9.5+"
6948 if test "$_libdv" = auto ; then
6949 _libdv=no
6950 cat > $TMPC <<EOF
6951 #include <libdv/dv.h>
6952 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6954 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6956 if test "$_libdv" = yes ; then
6957 def_libdv='#define CONFIG_LIBDV095 1'
6958 extra_ldflags="$extra_ldflags -ldv"
6959 codecmodules="libdv $codecmodules"
6960 else
6961 def_libdv='#undef CONFIG_LIBDV095'
6962 nocodecmodules="libdv $nocodecmodules"
6964 echores "$_libdv"
6967 echocheck "Xvid"
6968 if test "$_xvid" = auto ; then
6969 _xvid=no
6970 cat > $TMPC << EOF
6971 #include <xvid.h>
6972 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6974 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6975 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6976 done
6979 if test "$_xvid" = yes ; then
6980 def_xvid='#define CONFIG_XVID4 1'
6981 codecmodules="xvid $codecmodules"
6982 else
6983 def_xvid='#undef CONFIG_XVID4'
6984 nocodecmodules="xvid $nocodecmodules"
6986 echores "$_xvid"
6988 echocheck "x264"
6989 if test "$_x264" = auto ; then
6990 cat > $TMPC << EOF
6991 #include <inttypes.h>
6992 #include <x264.h>
6993 #if X264_BUILD < 98
6994 #error We do not support old versions of x264. Get the latest from git.
6995 #endif
6996 int main(void) { x264_encoder_open((void*)0); return 0; }
6998 _x264=no
6999 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7000 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7001 done
7004 if test "$_x264" = yes ; then
7005 def_x264='#define CONFIG_X264 1'
7006 codecmodules="x264 $codecmodules"
7007 else
7008 def_x264='#undef CONFIG_X264'
7009 nocodecmodules="x264 $nocodecmodules"
7011 echores "$_x264"
7013 echocheck "libnut"
7014 if test "$_libnut" = auto ; then
7015 cat > $TMPC << EOF
7016 #include <libnut.h>
7017 nut_context_tt * nut;
7018 int main(void) { (void)nut_error(0); return 0; }
7020 _libnut=no
7021 cc_check -lnut && _libnut=yes
7024 if test "$_libnut" = yes ; then
7025 def_libnut='#define CONFIG_LIBNUT 1'
7026 extra_ldflags="$extra_ldflags -lnut"
7027 else
7028 def_libnut='#undef CONFIG_LIBNUT'
7030 echores "$_libnut"
7032 # These VO checks must be done after libavcodec/libswscale one
7033 echocheck "/dev/mga_vid"
7034 if test "$_mga" = auto ; then
7035 _mga=no
7036 test -c /dev/mga_vid && _mga=yes
7038 if test "$_mga" = yes ; then
7039 if test "$_libswscale_internals" = yes ; then
7040 def_mga='#define CONFIG_MGA 1'
7041 vomodules="mga $vomodules"
7042 else
7043 res_comment="libswscale internal headers are required by mga, sorry"
7044 _mga=no
7045 def_mga='#undef CONFIG_MGA'
7046 novomodules="mga $novomodules"
7048 else
7049 def_mga='#undef CONFIG_MGA'
7050 novomodules="mga $novomodules"
7052 echores "$_mga"
7055 echocheck "xmga"
7056 if test "$_xmga" = auto ; then
7057 _xmga=no
7058 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
7060 if test "$_xmga" = yes ; then
7061 if test "$_libswscale_internals" = yes ; then
7062 def_xmga='#define CONFIG_XMGA 1'
7063 vomodules="xmga $vomodules"
7064 else
7065 res_comment="libswscale internal headers are required by xmga, sorry"
7066 _xmga=no
7067 def_xmga='#undef CONFIG_XMGA'
7068 novomodules="xmga $novomodules"
7070 else
7071 def_xmga='#undef CONFIG_XMGA'
7072 novomodules="xmga $novomodules"
7074 echores "$_xmga"
7076 echocheck "zr"
7077 if test "$_zr" = auto ; then
7078 #36067's seem to identify themselves as 36057PQC's, so the line
7079 #below should work for 36067's and 36057's.
7080 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7081 _zr=yes
7082 else
7083 _zr=no
7086 if test "$_zr" = yes ; then
7087 if test "$_libavcodec_internals" = yes ; then
7088 def_zr='#define CONFIG_ZR 1'
7089 vomodules="zr zr2 $vomodules"
7090 else
7091 res_comment="libavcodec internal headers are required by zr, sorry"
7092 novomodules="zr $novomodules"
7093 def_zr='#undef CONFIG_ZR'
7095 else
7096 def_zr='#undef CONFIG_ZR'
7097 novomodules="zr zr2 $novomodules"
7099 echores "$_zr"
7101 # mencoder requires (optional) those libs: libmp3lame
7102 if test "$_mencoder" != no ; then
7104 echocheck "libmp3lame"
7105 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7106 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7107 if test "$_mp3lame" = auto ; then
7108 _mp3lame=no
7109 cat > $TMPC <<EOF
7110 #include <lame/lame.h>
7111 int main(void) { lame_version_t lv; (void) lame_init();
7112 get_lame_version_numerical(&lv);
7113 return 0; }
7115 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7117 if test "$_mp3lame" = yes ; then
7118 def_mp3lame="#define CONFIG_MP3LAME 1"
7119 _ld_mp3lame=-lmp3lame
7120 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7121 cat > $TMPC << EOF
7122 #include <lame/lame.h>
7123 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7125 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7126 cat > $TMPC << EOF
7127 #include <lame/lame.h>
7128 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7130 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7131 else
7132 def_mp3lame='#undef CONFIG_MP3LAME'
7134 echores "$_mp3lame"
7136 fi # test "$_mencoder" != no
7138 echocheck "mencoder"
7139 if test "$_mencoder" = yes ; then
7140 def_muxers='#define CONFIG_MUXERS 1'
7141 else
7142 def_muxers='#define CONFIG_MUXERS 0'
7144 echores "$_mencoder"
7147 echocheck "UnRAR executable"
7148 if test "$_unrar_exec" = auto ; then
7149 _unrar_exec="yes"
7150 mingw32 && _unrar_exec="no"
7152 if test "$_unrar_exec" = yes ; then
7153 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7154 else
7155 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7157 echores "$_unrar_exec"
7159 echocheck "TV interface"
7160 if test "$_tv" = yes ; then
7161 def_tv='#define CONFIG_TV 1'
7162 inputmodules="tv $inputmodules"
7163 else
7164 noinputmodules="tv $noinputmodules"
7165 def_tv='#undef CONFIG_TV'
7167 echores "$_tv"
7170 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7171 echocheck "*BSD BT848 bt8xx header"
7172 _ioctl_bt848_h=no
7173 for file in "machine/ioctl_bt848.h" \
7174 "dev/bktr/ioctl_bt848.h" \
7175 "dev/video/bktr/ioctl_bt848.h" \
7176 "dev/ic/bt8xx.h" ; do
7177 cat > $TMPC <<EOF
7178 #include <sys/types.h>
7179 #include <sys/ioctl.h>
7180 #include <$file>
7181 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7183 if cc_check ; then
7184 _ioctl_bt848_h=yes
7185 _ioctl_bt848_h_name="$file"
7186 break;
7188 done
7189 if test "$_ioctl_bt848_h" = yes ; then
7190 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7191 res_comment="using $_ioctl_bt848_h_name"
7192 else
7193 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7195 echores "$_ioctl_bt848_h"
7197 echocheck "*BSD ioctl_meteor.h"
7198 _ioctl_meteor_h=no
7199 for file in "machine/ioctl_meteor.h" \
7200 "dev/bktr/ioctl_meteor.h" \
7201 "dev/video/bktr/ioctl_meteor.h" ; do
7202 cat > $TMPC <<EOF
7203 #include <sys/types.h>
7204 #include <$file>
7205 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7207 if cc_check ; then
7208 _ioctl_meteor_h=yes
7209 _ioctl_meteor_h_name="$file"
7210 break;
7212 done
7213 if test "$_ioctl_meteor_h" = yes ; then
7214 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7215 res_comment="using $_ioctl_meteor_h_name"
7216 else
7217 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7219 echores "$_ioctl_meteor_h"
7221 echocheck "*BSD BrookTree 848 TV interface"
7222 if test "$_tv_bsdbt848" = auto ; then
7223 _tv_bsdbt848=no
7224 if test "$_tv" = yes ; then
7225 cat > $TMPC <<EOF
7226 #include <sys/types.h>
7227 $def_ioctl_meteor_h_name
7228 $def_ioctl_bt848_h_name
7229 #ifdef IOCTL_METEOR_H_NAME
7230 #include IOCTL_METEOR_H_NAME
7231 #endif
7232 #ifdef IOCTL_BT848_H_NAME
7233 #include IOCTL_BT848_H_NAME
7234 #endif
7235 int main(void) {
7236 ioctl(0, METEORSINPUT, 0);
7237 ioctl(0, TVTUNER_GETFREQ, 0);
7238 return 0;
7241 cc_check && _tv_bsdbt848=yes
7244 if test "$_tv_bsdbt848" = yes ; then
7245 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7246 inputmodules="tv-bsdbt848 $inputmodules"
7247 else
7248 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7249 noinputmodules="tv-bsdbt848 $noinputmodules"
7251 echores "$_tv_bsdbt848"
7252 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7255 echocheck "DirectShow TV interface"
7256 if test "$_tv_dshow" = auto ; then
7257 _tv_dshow=no
7258 if test "$_tv" = yes && win32 ; then
7259 cat > $TMPC <<EOF
7260 #include <ole2.h>
7261 int main(void) {
7262 void* p;
7263 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7264 return 0;
7267 cc_check -lole32 -luuid && _tv_dshow=yes
7270 if test "$_tv_dshow" = yes ; then
7271 inputmodules="tv-dshow $inputmodules"
7272 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7273 extra_ldflags="$extra_ldflags -lole32 -luuid"
7274 else
7275 noinputmodules="tv-dshow $noinputmodules"
7276 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7278 echores "$_tv_dshow"
7281 echocheck "Video 4 Linux TV interface"
7282 if test "$_tv_v4l1" = auto ; then
7283 _tv_v4l1=no
7284 if test "$_tv" = yes && linux ; then
7285 header_check linux/videodev.h && _tv_v4l1=yes
7288 if test "$_tv_v4l1" = yes ; then
7289 _audio_input=yes
7290 _tv_v4l=yes
7291 def_tv_v4l='#define CONFIG_TV_V4L 1'
7292 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7293 inputmodules="tv-v4l $inputmodules"
7294 else
7295 noinputmodules="tv-v4l1 $noinputmodules"
7296 def_tv_v4l='#undef CONFIG_TV_V4L'
7298 echores "$_tv_v4l1"
7301 echocheck "Video 4 Linux 2 TV interface"
7302 if test "$_tv_v4l2" = auto ; then
7303 _tv_v4l2=no
7304 if test "$_tv" = yes && linux ; then
7305 header_check linux/videodev2.h && _tv_v4l2=yes
7308 if test "$_tv_v4l2" = yes ; then
7309 _audio_input=yes
7310 _tv_v4l=yes
7311 def_tv_v4l='#define CONFIG_TV_V4L 1'
7312 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7313 inputmodules="tv-v4l2 $inputmodules"
7314 else
7315 noinputmodules="tv-v4l2 $noinputmodules"
7316 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7318 echores "$_tv_v4l2"
7321 echocheck "Radio interface"
7322 if test "$_radio" = yes ; then
7323 def_radio='#define CONFIG_RADIO 1'
7324 inputmodules="radio $inputmodules"
7325 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7326 _radio_capture=no
7328 if test "$_radio_capture" = yes ; then
7329 _audio_input=yes
7330 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7331 else
7332 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7334 else
7335 noinputmodules="radio $noinputmodules"
7336 def_radio='#undef CONFIG_RADIO'
7337 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7338 _radio_capture=no
7340 echores "$_radio"
7341 echocheck "Capture for Radio interface"
7342 echores "$_radio_capture"
7344 echocheck "Video 4 Linux 2 Radio interface"
7345 if test "$_radio_v4l2" = auto ; then
7346 _radio_v4l2=no
7347 if test "$_radio" = yes && linux ; then
7348 header_check linux/videodev2.h && _radio_v4l2=yes
7351 if test "$_radio_v4l2" = yes ; then
7352 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7353 else
7354 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7356 echores "$_radio_v4l2"
7358 echocheck "Video 4 Linux Radio interface"
7359 if test "$_radio_v4l" = auto ; then
7360 _radio_v4l=no
7361 if test "$_radio" = yes && linux ; then
7362 header_check linux/videodev.h && _radio_v4l=yes
7365 if test "$_radio_v4l" = yes ; then
7366 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7367 else
7368 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7370 echores "$_radio_v4l"
7372 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7373 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7374 echocheck "*BSD BrookTree 848 Radio interface"
7375 _radio_bsdbt848=no
7376 cat > $TMPC <<EOF
7377 #include <sys/types.h>
7378 $def_ioctl_bt848_h_name
7379 #ifdef IOCTL_BT848_H_NAME
7380 #include IOCTL_BT848_H_NAME
7381 #endif
7382 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7384 cc_check && _radio_bsdbt848=yes
7385 echores "$_radio_bsdbt848"
7386 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7388 if test "$_radio_bsdbt848" = yes ; then
7389 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7390 else
7391 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7394 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7395 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7396 die "Radio driver requires BSD BT848, V4L or V4L2!"
7399 echocheck "Video 4 Linux 2 MPEG PVR interface"
7400 if test "$_pvr" = auto ; then
7401 _pvr=no
7402 if test "$_tv_v4l2" = yes && linux ; then
7403 cat > $TMPC <<EOF
7404 #include <linux/videodev2.h>
7405 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7407 cc_check && _pvr=yes
7410 if test "$_pvr" = yes ; then
7411 def_pvr='#define CONFIG_PVR 1'
7412 inputmodules="pvr $inputmodules"
7413 else
7414 noinputmodules="pvr $noinputmodules"
7415 def_pvr='#undef CONFIG_PVR'
7417 echores "$_pvr"
7420 echocheck "ftp"
7421 if ! beos && test "$_ftp" = yes ; then
7422 def_ftp='#define CONFIG_FTP 1'
7423 inputmodules="ftp $inputmodules"
7424 else
7425 noinputmodules="ftp $noinputmodules"
7426 def_ftp='#undef CONFIG_FTP'
7428 echores "$_ftp"
7430 echocheck "vstream client"
7431 if test "$_vstream" = auto ; then
7432 _vstream=no
7433 cat > $TMPC <<EOF
7434 #include <vstream-client.h>
7435 void vstream_error(const char *format, ... ) {}
7436 int main(void) { vstream_start(); return 0; }
7438 cc_check -lvstream-client && _vstream=yes
7440 if test "$_vstream" = yes ; then
7441 def_vstream='#define CONFIG_VSTREAM 1'
7442 inputmodules="vstream $inputmodules"
7443 extra_ldflags="$extra_ldflags -lvstream-client"
7444 else
7445 noinputmodules="vstream $noinputmodules"
7446 def_vstream='#undef CONFIG_VSTREAM'
7448 echores "$_vstream"
7451 echocheck "OSD menu"
7452 if test "$_menu" = yes ; then
7453 def_menu='#define CONFIG_MENU 1'
7454 test $_dvbin = "yes" && _menu_dvbin=yes
7455 else
7456 def_menu='#undef CONFIG_MENU'
7457 _menu_dvbin=no
7459 echores "$_menu"
7462 echocheck "Subtitles sorting"
7463 if test "$_sortsub" = yes ; then
7464 def_sortsub='#define CONFIG_SORTSUB 1'
7465 else
7466 def_sortsub='#undef CONFIG_SORTSUB'
7468 echores "$_sortsub"
7471 echocheck "XMMS inputplugin support"
7472 if test "$_xmms" = yes ; then
7473 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7474 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7475 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7476 else
7477 _xmmsplugindir=/usr/lib/xmms/Input
7478 _xmmslibdir=/usr/lib
7481 def_xmms='#define CONFIG_XMMS 1'
7482 if darwin ; then
7483 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7484 else
7485 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7487 else
7488 def_xmms='#undef CONFIG_XMMS'
7490 echores "$_xmms"
7492 if test "$_charset" != "noconv" ; then
7493 def_charset="#define MSG_CHARSET \"$_charset\""
7494 else
7495 def_charset="#undef MSG_CHARSET"
7496 _charset="UTF-8"
7499 #############################################################################
7501 echocheck "automatic gdb attach"
7502 if test "$_crash_debug" = yes ; then
7503 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7504 else
7505 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7506 _crash_debug=no
7508 echores "$_crash_debug"
7510 echocheck "compiler support for noexecstack"
7511 if cflag_check -Wl,-z,noexecstack ; then
7512 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7513 echores "yes"
7514 else
7515 echores "no"
7518 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
7519 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
7520 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
7521 echores "yes"
7522 else
7523 echores "no"
7527 # Dynamic linking flags
7528 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7529 _ld_dl_dynamic=''
7530 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7531 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7532 _ld_dl_dynamic='-rdynamic'
7535 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7536 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7537 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7539 def_debug='#undef MP_DEBUG'
7540 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7543 echocheck "joystick"
7544 def_joystick='#undef CONFIG_JOYSTICK'
7545 if test "$_joystick" = yes ; then
7546 if linux ; then
7547 # TODO add some check
7548 def_joystick='#define CONFIG_JOYSTICK 1'
7549 else
7550 _joystick="no"
7551 res_comment="unsupported under $system_name"
7554 echores "$_joystick"
7556 echocheck "lirc"
7557 if test "$_lirc" = auto ; then
7558 _lirc=no
7559 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
7561 if test "$_lirc" = yes ; then
7562 def_lirc='#define CONFIG_LIRC 1'
7563 libs_mplayer="$libs_mplayer -llirc_client"
7564 else
7565 def_lirc='#undef CONFIG_LIRC'
7567 echores "$_lirc"
7569 echocheck "lircc"
7570 if test "$_lircc" = auto ; then
7571 _lircc=no
7572 header_check lirc/lircc.h -llircc && _lircc=yes
7574 if test "$_lircc" = yes ; then
7575 def_lircc='#define CONFIG_LIRCC 1'
7576 libs_mplayer="$libs_mplayer -llircc"
7577 else
7578 def_lircc='#undef CONFIG_LIRCC'
7580 echores "$_lircc"
7582 if arm; then
7583 # Detect maemo development platform libraries availability (http://www.maemo.org),
7584 # they are used when run on Nokia 770|8x0
7585 echocheck "maemo (Nokia 770|8x0)"
7586 if test "$_maemo" = auto ; then
7587 _maemo=no
7588 cat > $TMPC << EOF
7589 #include <libosso.h>
7590 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7592 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7594 if test "$_maemo" = yes ; then
7595 def_maemo='#define CONFIG_MAEMO 1'
7596 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7597 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7598 else
7599 def_maemo='#undef CONFIG_MAEMO'
7601 echores "$_maemo"
7604 #############################################################################
7606 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7607 # the OMF format needs to come after the 'extern symbol prefix' check, which
7608 # uses nm.
7609 if os2 ; then
7610 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7613 # linker paths should be the same for mencoder and mplayer
7614 _ld_tmp=""
7615 for I in $libs_mplayer ; do
7616 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7617 if test -z "$_tmp" ; then
7618 extra_ldflags="$extra_ldflags $I"
7619 else
7620 _ld_tmp="$_ld_tmp $I"
7622 done
7623 libs_mplayer=$_ld_tmp
7626 #############################################################################
7627 # 64 bit file offsets?
7628 if test "$_largefiles" = yes || freebsd ; then
7629 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7630 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7631 # dvdread support requires this (for off64_t)
7632 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7636 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
7638 # This must be the last test to be performed. Any other tests following it
7639 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7640 # against libdvdread (to permit MPlayer to use its own copy of the library).
7641 # So any compilation using the flags added here but not linking against
7642 # libdvdread can fail.
7643 echocheck "DVD support (libdvdnav)"
7644 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7645 _dvdnav=no
7647 dvdnav_internal=no
7648 if test "$_dvdnav" = auto ; then
7649 if test "$_dvdread_internal" = yes ; then
7650 _dvdnav=yes
7651 dvdnav_internal=yes
7652 res_comment="internal"
7653 else
7654 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7657 if test "$_dvdnav" = auto ; then
7658 cat > $TMPC <<EOF
7659 #include <inttypes.h>
7660 #include <dvdnav/dvdnav.h>
7661 int main(void) { dvdnav_t *dvd=0; return 0; }
7663 _dvdnav=no
7664 _dvdnavdir=$($_dvdnavconfig --cflags)
7665 _dvdnavlibs=$($_dvdnavconfig --libs)
7666 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7668 if test "$_dvdnav" = yes ; then
7669 _largefiles=yes
7670 def_dvdnav='#define CONFIG_DVDNAV 1'
7671 if test "$dvdnav_internal" = yes ; then
7672 cflags_libdvdnav="-Ilibdvdnav"
7673 inputmodules="dvdnav(internal) $inputmodules"
7674 else
7675 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7676 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7677 inputmodules="dvdnav $inputmodules"
7679 else
7680 def_dvdnav='#undef CONFIG_DVDNAV'
7681 noinputmodules="dvdnav $noinputmodules"
7683 echores "$_dvdnav"
7685 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7686 # Read dvdnav comment above.
7688 mak_enable () {
7689 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7690 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7691 nprefix=$3;
7692 for part in $list; do
7693 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7694 echo "${nprefix}_$part = yes"
7696 done
7699 #############################################################################
7700 echo "Creating config.mak"
7701 cat > config.mak << EOF
7702 # -------- Generated by configure -----------
7704 # Ensure that locale settings do not interfere with shell commands.
7705 export LC_ALL = C
7707 CONFIGURATION = $configuration
7709 CHARSET = $_charset
7710 DOC_LANGS = $language_doc
7711 DOC_LANG_ALL = $doc_lang_all
7712 MAN_LANGS = $language_man
7713 MAN_LANG_ALL = $man_lang_all
7714 MSG_LANGS = $language_msg
7715 MSG_LANG_ALL = $msg_lang_all
7717 prefix = \$(DESTDIR)$_prefix
7718 BINDIR = \$(DESTDIR)$_bindir
7719 DATADIR = \$(DESTDIR)$_datadir
7720 LIBDIR = \$(DESTDIR)$_libdir
7721 MANDIR = \$(DESTDIR)$_mandir
7722 CONFDIR = \$(DESTDIR)$_confdir
7723 LOCALEDIR = \$(DESTDIR)$_localedir
7725 AR = $_ar
7726 AS = $_cc
7727 CC = $_cc
7728 CXX = $_cc
7729 HOST_CC = $_host_cc
7730 INSTALL = $_install
7731 INSTALLSTRIP = $_install_strip
7732 WINDRES = $_windres
7734 CFLAGS = $CFLAGS $extra_cflags
7735 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7737 CFLAGS_DHAHELPER = $cflags_dhahelper
7738 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7739 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7740 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7741 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7742 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7743 CFLAGS_STACKREALIGN = $cflags_stackrealign
7744 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7745 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7747 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7748 EXTRALIBS_MPLAYER = $libs_mplayer
7749 EXTRALIBS_MENCODER = $libs_mencoder
7751 GETCH = $_getch
7752 TIMER = $_timer
7754 EXESUF = $_exesuf
7755 EXESUFS_ALL = .exe
7757 ARCH = $arch
7758 $(mak_enable "$arch_all" "$arch" ARCH)
7759 $(mak_enable "$subarch_all" "$subarch" ARCH)
7760 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
7762 MENCODER = $_mencoder
7763 MPLAYER = $_mplayer
7765 NEED_GETTIMEOFDAY = $_need_gettimeofday
7766 NEED_GLOB = $_need_glob
7767 NEED_MMAP = $_need_mmap
7768 NEED_SETENV = $_need_setenv
7769 NEED_SHMEM = $_need_shmem
7770 NEED_STRSEP = $_need_strsep
7771 NEED_SWAB = $_need_swab
7772 NEED_VSSCANF = $_need_vsscanf
7774 # features
7775 3DFX = $_3dfx
7776 AA = $_aa
7777 ALSA1X = $_alsa1x
7778 ALSA9 = $_alsa9
7779 ALSA5 = $_alsa5
7780 APPLE_IR = $_apple_ir
7781 APPLE_REMOTE = $_apple_remote
7782 ARTS = $_arts
7783 AUDIO_INPUT = $_audio_input
7784 BITMAP_FONT = $_bitmap_font
7785 BL = $_bl
7786 CACA = $_caca
7787 CDDA = $_cdda
7788 CDDB = $_cddb
7789 COREAUDIO = $_coreaudio
7790 COREVIDEO = $_corevideo
7791 DART = $_dart
7792 DFBMGA = $_dfbmga
7793 DGA = $_dga
7794 DIRECT3D = $_direct3d
7795 DIRECTFB = $_directfb
7796 DIRECTX = $_directx
7797 DVBIN = $_dvbin
7798 DVDNAV = $_dvdnav
7799 DVDNAV_INTERNAL = $dvdnav_internal
7800 DVDREAD = $_dvdread
7801 DVDREAD_INTERNAL = $_dvdread_internal
7802 DXR2 = $_dxr2
7803 DXR3 = $_dxr3
7804 ESD = $_esd
7805 FAAC=$_faac
7806 FAAD = $_faad
7807 FAAD_INTERNAL = $_faad_internal
7808 FASTMEMCPY = $_fastmemcpy
7809 FBDEV = $_fbdev
7810 FREETYPE = $_freetype
7811 FTP = $_ftp
7812 GIF = $_gif
7813 GGI = $_ggi
7814 GL = $_gl
7815 GL_WIN32 = $_gl_win32
7816 GL_X11 = $_gl_x11
7817 GL_SDL = $_gl_sdl
7818 MATRIXVIEW = $matrixview
7819 HAVE_POSIX_SELECT = $_posix_select
7820 HAVE_SYS_MMAN_H = $_mman
7821 IVTV = $_ivtv
7822 JACK = $_jack
7823 JOYSTICK = $_joystick
7824 JPEG = $_jpeg
7825 KAI = $_kai
7826 KVA = $_kva
7827 LADSPA = $_ladspa
7828 LIBA52 = $_liba52
7829 LIBASS = $_ass
7830 LIBBS2B = $_libbs2b
7831 LIBDCA = $_libdca
7832 LIBDV = $_libdv
7833 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7834 LIBLZO = $_liblzo
7835 LIBMAD = $_mad
7836 LIBMENU = $_menu
7837 LIBMENU_DVBIN = $_menu_dvbin
7838 LIBMPEG2 = $_libmpeg2
7839 LIBNEMESI = $_nemesi
7840 LIBNUT = $_libnut
7841 LIBSMBCLIENT = $_smb
7842 LIBTHEORA = $_theora
7843 LIRC = $_lirc
7844 LIVE555 = $_live
7845 MACOSX_FINDER = $_macosx_finder
7846 MD5SUM = $_md5sum
7847 MGA = $_mga
7848 MNG = $_mng
7849 MP3LAME = $_mp3lame
7850 MP3LIB = $_mp3lib
7851 MPG123 = $_mpg123
7852 MUSEPACK = $_musepack
7853 NAS = $_nas
7854 NATIVE_RTSP = $_native_rtsp
7855 NETWORK = $_network
7856 OPENAL = $_openal
7857 OSS = $_ossaudio
7858 PE_EXECUTABLE = $_pe_executable
7859 PNG = $_png
7860 PNM = $_pnm
7861 PRIORITY = $_priority
7862 PULSE = $_pulse
7863 PVR = $_pvr
7864 QTX_CODECS = $_qtx
7865 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7866 QTX_EMULATION = $_qtx_emulation
7867 QUARTZ = $_quartz
7868 RADIO=$_radio
7869 RADIO_CAPTURE=$_radio_capture
7870 REAL_CODECS = $_real
7871 S3FB = $_s3fb
7872 SDL = $_sdl
7873 SPEEX = $_speex
7874 STREAM_CACHE = $_stream_cache
7875 SGIAUDIO = $_sgiaudio
7876 SUNAUDIO = $_sunaudio
7877 SVGA = $_svga
7878 TDFXFB = $_tdfxfb
7879 TDFXVID = $_tdfxvid
7880 TGA = $_tga
7881 TOOLAME=$_toolame
7882 TREMOR_INTERNAL = $_tremor_internal
7883 TV = $_tv
7884 TV_BSDBT848 = $_tv_bsdbt848
7885 TV_DSHOW = $_tv_dshow
7886 TV_V4L = $_tv_v4l
7887 TV_V4L1 = $_tv_v4l1
7888 TV_V4L2 = $_tv_v4l2
7889 TWOLAME=$_twolame
7890 UNRAR_EXEC = $_unrar_exec
7891 V4L2 = $_v4l2
7892 VCD = $_vcd
7893 VDPAU = $_vdpau
7894 VESA = $_vesa
7895 VIDIX = $_vidix
7896 VIDIX_PCIDB = $_vidix_pcidb_val
7897 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7898 VIDIX_IVTV=$_vidix_drv_ivtv
7899 VIDIX_MACH64=$_vidix_drv_mach64
7900 VIDIX_MGA=$_vidix_drv_mga
7901 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7902 VIDIX_NVIDIA=$_vidix_drv_nvidia
7903 VIDIX_PM2=$_vidix_drv_pm2
7904 VIDIX_PM3=$_vidix_drv_pm3
7905 VIDIX_RADEON=$_vidix_drv_radeon
7906 VIDIX_RAGE128=$_vidix_drv_rage128
7907 VIDIX_S3=$_vidix_drv_s3
7908 VIDIX_SH_VEU=$_vidix_drv_sh_veu
7909 VIDIX_SIS=$_vidix_drv_sis
7910 VIDIX_UNICHROME=$_vidix_drv_unichrome
7911 VORBIS = $_vorbis
7912 VSTREAM = $_vstream
7913 WII = $_wii
7914 WIN32DLL = $_win32dll
7915 WIN32WAVEOUT = $_win32waveout
7916 WIN32_EMULATION = $_win32_emulation
7917 WINVIDIX = $winvidix
7918 X11 = $_x11
7919 X264 = $_x264
7920 XANIM_CODECS = $_xanim
7921 XMGA = $_xmga
7922 XMMS_PLUGINS = $_xmms
7923 XV = $_xv
7924 XVID4 = $_xvid
7925 XVIDIX = $xvidix
7926 XVMC = $_xvmc
7927 XVR100 = $_xvr100
7928 YUV4MPEG = $_yuv4mpeg
7929 ZR = $_zr
7931 # FFmpeg
7932 LIBAVUTIL = $_libavutil
7933 LIBAVCODEC = $_libavcodec
7934 LIBAVFORMAT = $_libavformat
7935 LIBPOSTPROC = $_libpostproc
7936 LIBSWSCALE = $_libswscale
7937 LIBAVCODEC_INTERNALS = $_libavcodec_internals
7938 LIBSWSCALE_INTERNALS = $_libswscale_internals
7939 FFMPEG_SOURCE_PATH = $_ffmpeg_source
7941 RANLIB = $_ranlib
7942 YASM = $_yasm
7943 YASMFLAGS = $YASMFLAGS
7945 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
7946 CONFIG_AANDCT = yes
7947 CONFIG_FFT = yes
7948 CONFIG_GOLOMB = yes
7949 CONFIG_H264DSP = yes
7950 CONFIG_LPC = yes
7951 CONFIG_MDCT = yes
7952 CONFIG_RDFT = yes
7954 CONFIG_BZLIB = $bzlib
7955 CONFIG_ENCODERS = yes
7956 CONFIG_GPL = yes
7957 CONFIG_MLIB = $_mlib
7958 CONFIG_MUXERS = $_mencoder
7959 CONFIG_VDPAU = $_vdpau
7960 CONFIG_XVMC = $_xvmc
7961 CONFIG_ZLIB = $_zlib
7963 HAVE_PTHREADS = $_pthreads
7964 HAVE_SHM = $_shm
7965 HAVE_W32THREADS = $_w32threads
7966 HAVE_YASM = $have_yasm
7970 #############################################################################
7972 ff_config_enable () {
7973 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7974 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7975 _nprefix=$3;
7976 test -z "$_nprefix" && _nprefix='CONFIG'
7977 for part in $list; do
7978 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7979 echo "#define ${_nprefix}_$part 1"
7980 else
7981 echo "#define ${_nprefix}_$part 0"
7983 done
7986 echo "Creating config.h"
7987 cat > $TMPH << EOF
7988 /*----------------------------------------------------------------------------
7989 ** This file has been automatically generated by configure any changes in it
7990 ** will be lost when you run configure again.
7991 ** Instead of modifying definitions here, use the --enable/--disable options
7992 ** of the configure script! See ./configure --help for details.
7993 *---------------------------------------------------------------------------*/
7995 #ifndef MPLAYER_CONFIG_H
7996 #define MPLAYER_CONFIG_H
7998 /* Undefine this if you do not want to select mono audio (left or right)
7999 with a stereo MPEG layer 2/3 audio stream. The command line option
8000 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8001 right-only), with 0 being the default.
8003 #define CONFIG_FAKE_MONO 1
8005 /* set up audio OUTBURST. Do not change this! */
8006 #define OUTBURST 512
8008 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8009 #undef FAST_OSD
8010 #undef FAST_OSD_TABLE
8012 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8013 #define MPEG12_POSTPROC 1
8014 #define ATTRIBUTE_ALIGNED_MAX 16
8018 #define CONFIGURATION "$configuration"
8020 #define MPLAYER_DATADIR "$_datadir"
8021 #define MPLAYER_CONFDIR "$_confdir"
8022 #define MPLAYER_LIBDIR "$_libdir"
8023 #define MPLAYER_LOCALEDIR "$_localedir"
8025 $def_translation
8027 /* definitions needed by included libraries */
8028 #define HAVE_INTTYPES_H 1
8029 /* libmpeg2 + FFmpeg */
8030 $def_fast_inttypes
8031 /* libdvdcss */
8032 #define HAVE_ERRNO_H 1
8033 /* libdvdcss + libdvdread */
8034 #define HAVE_LIMITS_H 1
8035 /* libdvdcss + libfaad2 */
8036 #define HAVE_UNISTD_H 1
8037 /* libfaad2 + libdvdread */
8038 #define STDC_HEADERS 1
8039 #define HAVE_MEMCPY 1
8040 /* libfaad2 */
8041 #define HAVE_STRING_H 1
8042 #define HAVE_STRINGS_H 1
8043 #define HAVE_SYS_STAT_H 1
8044 #define HAVE_SYS_TYPES_H 1
8045 /* libdvdnav */
8046 #define READ_CACHE_TRACE 0
8047 /* libdvdread */
8048 #define HAVE_DLFCN_H 1
8049 $def_dvdcss
8052 /* system headers */
8053 $def_alloca_h
8054 $def_alsa_asoundlib_h
8055 $def_altivec_h
8056 $def_malloc_h
8057 $def_mman_h
8058 $def_mman_has_map_failed
8059 $def_soundcard_h
8060 $def_sys_asoundlib_h
8061 $def_sys_soundcard_h
8062 $def_sys_sysinfo_h
8063 $def_termios_h
8064 $def_termios_sys_h
8065 $def_winsock2_h
8068 /* system functions */
8069 $def_gethostbyname2
8070 $def_gettimeofday
8071 $def_glob
8072 $def_langinfo
8073 $def_lrintf
8074 $def_map_memalign
8075 $def_memalign
8076 $def_nanosleep
8077 $def_posix_select
8078 $def_select
8079 $def_setenv
8080 $def_setmode
8081 $def_shm
8082 $def_strsep
8083 $def_swab
8084 $def_sysi86
8085 $def_sysi86_iv
8086 $def_termcap
8087 $def_termios
8088 $def_vsscanf
8091 /* system-specific features */
8092 $def_asmalign_pot
8093 $def_builtin_expect
8094 $def_dl
8095 $def_dos_paths
8096 $def_extern_asm
8097 $def_extern_prefix
8098 $def_iconv
8099 $def_kstat
8100 $def_macosx_bundle
8101 $def_macosx_finder
8102 $def_maemo
8103 $def_named_asm_args
8104 $def_priority
8105 $def_quicktime
8106 $def_restrict_keyword
8107 $def_rtc
8108 $def_unrar_exec
8111 /* configurable options */
8112 $def_charset
8113 $def_crash_debug
8114 $def_debug
8115 $def_dynamic_plugins
8116 $def_fastmemcpy
8117 $def_menu
8118 $def_runtime_cpudetection
8119 $def_sighandler
8120 $def_sortsub
8121 $def_stream_cache
8122 $def_pthread_cache
8125 /* CPU stuff */
8126 #define __CPU__ $iproc
8127 $def_words_endian
8128 $def_bigendian
8129 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8130 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8131 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8134 /* DVD/VCD/CD */
8135 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8136 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8137 $def_bsdi_dvd
8138 $def_cddb
8139 $def_cdio
8140 $def_cdparanoia
8141 $def_cdrom
8142 $def_dvd
8143 $def_dvd_bsd
8144 $def_dvd_darwin
8145 $def_dvd_linux
8146 $def_dvd_openbsd
8147 $def_dvdio
8148 $def_dvdnav
8149 $def_dvdread
8150 $def_hpux_scsi_h
8151 $def_libcdio
8152 $def_sol_scsi_h
8153 $def_vcd
8156 /* codec libraries */
8157 $def_faac
8158 $def_faad
8159 $def_faad_internal
8160 $def_liba52
8161 $def_libdca
8162 $def_libdv
8163 $def_liblzo
8164 $def_libmpeg2
8165 $def_mad
8166 $def_mp3lame
8167 $def_mp3lame_preset
8168 $def_mp3lame_preset_medium
8169 $def_mp3lib
8170 $def_mpg123
8171 $def_musepack
8172 $def_speex
8173 $def_theora
8174 $def_toolame
8175 $def_tremor
8176 $def_twolame
8177 $def_vorbis
8178 $def_x264
8179 $def_xvid
8180 $def_zlib
8182 $def_libnut
8185 /* binary codecs */
8186 $def_qtx
8187 $def_qtx_win32
8188 $def_real
8189 $def_win32_loader
8190 $def_win32dll
8191 $def_xanim
8192 $def_xmms
8193 #define BINARY_CODECS_PATH "$_codecsdir"
8194 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8197 /* Audio output drivers */
8198 $def_alsa
8199 $def_alsa1x
8200 $def_alsa5
8201 $def_alsa9
8202 $def_arts
8203 $def_coreaudio
8204 $def_dart
8205 $def_esd
8206 $def_esd_latency
8207 $def_jack
8208 $def_kai
8209 $def_nas
8210 $def_openal
8211 $def_openal_h
8212 $def_ossaudio
8213 $def_ossaudio_devdsp
8214 $def_ossaudio_devmixer
8215 $def_pulse
8216 $def_sgiaudio
8217 $def_sunaudio
8218 $def_win32waveout
8220 $def_ladspa
8221 $def_libbs2b
8224 /* input */
8225 $def_apple_ir
8226 $def_apple_remote
8227 $def_ioctl_bt848_h_name
8228 $def_ioctl_meteor_h_name
8229 $def_joystick
8230 $def_lirc
8231 $def_lircc
8232 $def_pvr
8233 $def_radio
8234 $def_radio_bsdbt848
8235 $def_radio_capture
8236 $def_radio_v4l
8237 $def_radio_v4l2
8238 $def_tv
8239 $def_tv_bsdbt848
8240 $def_tv_dshow
8241 $def_tv_v4l
8242 $def_tv_v4l1
8243 $def_tv_v4l2
8246 /* font stuff */
8247 $def_ass
8248 $def_bitmap_font
8249 $def_enca
8250 $def_fontconfig
8251 $def_freetype
8252 $def_fribidi
8255 /* networking */
8256 $def_closesocket
8257 $def_ftp
8258 $def_inet6
8259 $def_inet_aton
8260 $def_inet_pton
8261 $def_live
8262 $def_nemesi
8263 $def_network
8264 $def_smb
8265 $def_socklen_t
8266 $def_vstream
8269 /* libvo options */
8270 $def_3dfx
8271 $def_aa
8272 $def_bl
8273 $def_caca
8274 $def_corevideo
8275 $def_dfbmga
8276 $def_dga
8277 $def_dga1
8278 $def_dga2
8279 $def_direct3d
8280 $def_directfb
8281 $def_directfb_version
8282 $def_directx
8283 $def_dvb
8284 $def_dvbin
8285 $def_dxr2
8286 $def_dxr3
8287 $def_fbdev
8288 $def_ggi
8289 $def_ggiwmh
8290 $def_gif
8291 $def_gif_4
8292 $def_gif_tvt_hack
8293 $def_gl
8294 $def_gl_win32
8295 $def_gl_x11
8296 $def_gl_sdl
8297 $def_matrixview
8298 $def_ivtv
8299 $def_jpeg
8300 $def_kva
8301 $def_md5sum
8302 $def_mga
8303 $def_mng
8304 $def_png
8305 $def_pnm
8306 $def_quartz
8307 $def_s3fb
8308 $def_sdl
8309 $def_sdl_sdl_h
8310 $def_svga
8311 $def_tdfxfb
8312 $def_tdfxvid
8313 $def_tga
8314 $def_v4l2
8315 $def_vdpau
8316 $def_vesa
8317 $def_vidix
8318 $def_vidix_drv_cyberblade
8319 $def_vidix_drv_ivtv
8320 $def_vidix_drv_mach64
8321 $def_vidix_drv_mga
8322 $def_vidix_drv_mga_crtc2
8323 $def_vidix_drv_nvidia
8324 $def_vidix_drv_pm3
8325 $def_vidix_drv_radeon
8326 $def_vidix_drv_rage128
8327 $def_vidix_drv_s3
8328 $def_vidix_drv_sh_veu
8329 $def_vidix_drv_sis
8330 $def_vidix_drv_unichrome
8331 $def_vidix_pfx
8332 $def_vm
8333 $def_wii
8334 $def_x11
8335 $def_xdpms
8336 $def_xf86keysym
8337 $def_xinerama
8338 $def_xmga
8339 $def_xss
8340 $def_xv
8341 $def_xvmc
8342 $def_xvr100
8343 $def_yuv4mpeg
8344 $def_zr
8347 /* FFmpeg */
8348 $def_libavcodec
8349 $def_libavformat
8350 $def_libavutil
8351 $def_libpostproc
8352 $def_libswscale
8353 $def_libavcodec_internals
8354 $def_libswscale_internals
8356 #define CONFIG_DECODERS 1
8357 #define CONFIG_ENCODERS 1
8358 #define CONFIG_DEMUXERS 1
8359 $def_muxers
8361 $def_arpa_inet_h
8362 $def_bswap
8363 $def_bzlib
8364 $def_dcbzl
8365 $def_exp2
8366 $def_exp2f
8367 $def_fast_64bit
8368 $def_fast_unaligned
8369 $def_llrint
8370 $def_log2
8371 $def_log2f
8372 $def_lrint
8373 $def_memalign_hack
8374 $def_mlib
8375 $def_mkstemp
8376 $def_posix_memalign
8377 $def_pthreads
8378 $def_round
8379 $def_roundf
8380 $def_ten_operands
8381 $def_threads
8382 $def_truncf
8383 $def_xform_asm
8384 $def_yasm
8386 #define CONFIG_FASTDIV 0
8387 #define CONFIG_FFSERVER 0
8388 #define CONFIG_GPL 1
8389 #define CONFIG_GRAY 0
8390 #define CONFIG_HARDCODED_TABLES 0
8391 #define CONFIG_LIBVORBIS 0
8392 #define CONFIG_POWERPC_PERF 0
8393 #define CONFIG_SMALL 0
8394 #define CONFIG_SWSCALE_ALPHA 1
8396 #define HAVE_ATTRIBUTE_PACKED 1
8397 #define HAVE_GETHRTIME 0
8398 #define HAVE_INLINE_ASM 1
8399 #define HAVE_LDBRX 0
8400 #define HAVE_POLL_H 1
8401 #define HAVE_PPC4XX 0
8402 #define HAVE_VFP_ARGS 1
8403 #define HAVE_VIRTUALALLOC 0
8405 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8406 #define CONFIG_AANDCT 1
8407 #define CONFIG_DCT 1
8408 #define CONFIG_DWT 1
8409 #define CONFIG_FFT 1
8410 #define CONFIG_GOLOMB 1
8411 #define CONFIG_H264DSP 1
8412 #define CONFIG_LPC 1
8413 #define CONFIG_MDCT 1
8414 #define CONFIG_RDFT 1
8416 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8417 $def_ebx_available
8418 #ifndef MP_DEBUG
8419 #define HAVE_EBP_AVAILABLE 1
8420 #else
8421 #define HAVE_EBP_AVAILABLE 0
8422 #endif
8424 #define CONFIG_H263_VAAPI_HWACCEL 0
8425 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8426 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8427 #define CONFIG_H264_VAAPI_HWACCEL 0
8428 #define CONFIG_VC1_VAAPI_HWACCEL 0
8429 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8431 #endif /* MPLAYER_CONFIG_H */
8434 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8435 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8437 #############################################################################
8439 ./version.sh `$_cc -dumpversion`
8441 cat << EOF
8443 Config files successfully generated by ./configure $configuration !
8445 Install prefix: $_prefix
8446 Data directory: $_datadir
8447 Config direct.: $_confdir
8449 Byte order: $_byte_order
8450 Optimizing for: $_optimizing
8452 Languages:
8453 Messages (in addition to English): $language_msg
8454 Manual pages: $language_man
8455 Documentation: $language_doc
8457 Enabled optional drivers:
8458 Input: $inputmodules
8459 Codecs: $codecmodules
8460 Audio output: $aomodules
8461 Video output: $vomodules
8463 Disabled optional drivers:
8464 Input: $noinputmodules
8465 Codecs: $nocodecmodules
8466 Audio output: $noaomodules
8467 Video output: $novomodules
8469 'config.h' and 'config.mak' contain your configuration options.
8470 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8471 compile *** DO NOT REPORT BUGS if you tweak these files ***
8473 'make' will now compile MPlayer and 'make install' will install it.
8474 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8479 if test "$_mtrr" = yes ; then
8480 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8481 echo
8484 if ! x86_32; then
8485 cat <<EOF
8486 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8487 operating system ($system_name). You may encounter a few files that cannot
8488 be played due to missing open source video/audio codec support.
8494 cat <<EOF
8495 Check $TMPLOG if you wonder why an autodetection failed (make sure
8496 development headers/packages are installed).
8498 NOTE: The --enable-* parameters unconditionally force options on, completely
8499 skipping autodetection. This behavior is unlike what you may be used to from
8500 autoconf-based configure scripts that can decide to override you. This greater
8501 level of control comes at a price. You may have to provide the correct compiler
8502 and linker flags yourself.
8503 If you used one of these options (except --enable-menu and similar ones that
8504 turn on internal features) and experience a compilation or linking failure,
8505 make sure you have passed the necessary compiler/linker flags to configure.
8507 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8511 if test "$warn_cflags" = yes; then
8512 cat <<EOF
8514 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8515 but:
8517 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8519 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8520 To do so, execute 'CFLAGS= ./configure <options>'
8525 # Last move:
8526 rm -rf "$mplayer_tmpdir"