cfg-common*: Replace common options template by a common options array
[mplayer/glamo.git] / configure
blobcc687907b2c929932024d49dc891ca303fa32926
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 yasm_check() {
85 echo >> "$TMPLOG"
86 cat "$TMPS" >> "$TMPLOG"
87 echo >> "$TMPLOG"
88 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
89 rm -f "$TMPEXE"
90 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
91 TMPRES="$?"
92 echo >> "$TMPLOG"
93 echo >> "$TMPLOG"
94 return "$TMPRES"
97 tmp_run() {
98 "$TMPEXE" >> "$TMPLOG" 2>&1
101 # Display error message, flushes tempfile, exit
102 die () {
103 echo
104 echo "Error: $@" >&2
105 echo >&2
106 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
107 echo "Check \"$TMPLOG\" if you do not understand why it failed."
108 exit 1
111 # OS test booleans functions
112 issystem() {
113 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
115 aix() { issystem "AIX"; }
116 amigaos() { issystem "AmigaOS"; }
117 beos() { issystem "BEOS"; }
118 bsdos() { issystem "BSD/OS"; }
119 cygwin() { issystem "CYGWIN"; }
120 darwin() { issystem "Darwin"; }
121 dragonfly() { issystem "DragonFly"; }
122 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
123 gnu() { issystem "GNU"; }
124 hpux() { issystem "HP-UX"; }
125 irix() { issystem "IRIX"; }
126 linux() { issystem "Linux"; }
127 mingw32() { issystem "MINGW32"; }
128 morphos() { issystem "MorphOS"; }
129 netbsd() { issystem "NetBSD"; }
130 openbsd() { issystem "OpenBSD"; }
131 os2() { issystem "OS/2"; }
132 qnx() { issystem "QNX"; }
133 sunos() { issystem "SunOS"; }
134 win32() { cygwin || mingw32; }
136 # arch test boolean functions
137 # x86/x86pc is used by QNX
138 x86_32() {
139 case "$host_arch" in
140 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
141 *) return 1 ;;
142 esac
145 x86_64() {
146 case "$host_arch" in
147 x86_64|amd64) return 0 ;;
148 *) return 1 ;;
149 esac
152 x86() {
153 x86_32 || x86_64
156 ppc() {
157 case "$host_arch" in
158 ppc|ppc64|powerpc|powerpc64) return 0;;
159 *) return 1;;
160 esac
163 alpha() {
164 case "$host_arch" in
165 alpha*) return 0;;
166 *) return 1;;
167 esac
170 arm() {
171 case "$host_arch" in
172 arm*) return 0;;
173 *) return 1;;
174 esac
177 # Use this before starting a check
178 echocheck() {
179 echo "============ Checking for $@ ============" >> "$TMPLOG"
180 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
183 # Use this to echo the results of a check
184 echores() {
185 if test "$res_comment" ; then
186 res_comment="($res_comment)"
188 echo "Result is: $@ $res_comment" >> "$TMPLOG"
189 echo "##########################################" >> "$TMPLOG"
190 echo "" >> "$TMPLOG"
191 echo "$@ $res_comment"
192 res_comment=""
194 #############################################################################
196 # Check how echo works in this /bin/sh
197 case $(echo -n) in
198 -n) _echo_n= _echo_c='\c' ;; # SysV echo
199 *) _echo_n='-n ' _echo_c= ;; # BSD echo
200 esac
202 msg_lang_all=''
203 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
204 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")
205 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
207 show_help(){
208 cat << EOF
209 Usage: $0 [OPTIONS]...
211 Configuration:
212 -h, --help display this help and exit
214 Installation directories:
215 --prefix=DIR prefix directory for installation [/usr/local]
216 --bindir=DIR directory for installing binaries [PREFIX/bin]
217 --datadir=DIR directory for installing machine independent
218 data files (skins, etc) [PREFIX/share/mplayer]
219 --mandir=DIR directory for installing man pages [PREFIX/share/man]
220 --confdir=DIR directory for installing configuration files
221 [PREFIX/etc/mplayer]
222 --localedir=DIR directory for locale tree [PREFIX/share/locale]
223 --libdir=DIR directory for object code libraries [PREFIX/lib]
224 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
226 Optional features:
227 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
228 --disable-mplayer disable MPlayer compilation [enable]
229 --disable-largefiles disable support for files > 2GB [enable]
230 --enable-termcap use termcap database for key codes [autodetect]
231 --enable-termios use termios database for key codes [autodetect]
232 --disable-iconv disable iconv for encoding conversion [autodetect]
233 --disable-langinfo do not use langinfo [autodetect]
234 --enable-lirc enable LIRC (remote control) support [autodetect]
235 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
236 --enable-joystick enable joystick support [disable]
237 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
238 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
239 --disable-vm disable X video mode extensions [autodetect]
240 --disable-xf86keysym disable support for multimedia keys [autodetect]
241 --enable-radio enable radio interface [disable]
242 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
243 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
244 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
245 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
246 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
247 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
248 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
249 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
250 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
251 --disable-network disable networking [enable]
252 --enable-winsock2_h enable winsock2_h [autodetect]
253 --enable-smb enable Samba (SMB) input [autodetect]
254 --enable-live enable LIVE555 Streaming Media [autodetect]
255 --enable-nemesi enable Nemesi Streaming Media [autodetect]
256 --disable-vcd disable VCD support [autodetect]
257 --disable-dvdnav disable libdvdnav [autodetect]
258 --disable-dvdread disable libdvdread [autodetect]
259 --disable-dvdread-internal disable internal libdvdread [autodetect]
260 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
261 --disable-cdparanoia disable cdparanoia [autodetect]
262 --disable-cddb disable cddb [autodetect]
263 --disable-bitmap-font disable bitmap font support [enable]
264 --disable-freetype disable FreeType 2 font rendering [autodetect]
265 --disable-fontconfig disable fontconfig font lookup [autodetect]
266 --disable-unrarexec disable using of UnRAR executable [enabled]
267 --enable-menu enable OSD menu (not DVD menu) [disabled]
268 --disable-sortsub disable subtitle sorting [enabled]
269 --enable-fribidi enable the FriBiDi libs [autodetect]
270 --disable-enca disable ENCA charset oracle library [autodetect]
271 --disable-maemo disable maemo specific features [autodetect]
272 --enable-macosx-finder enable Mac OS X Finder invocation parameter
273 parsing [disabled]
274 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
275 --disable-inet6 disable IPv6 support [autodetect]
276 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
277 --disable-ftp disable FTP support [enabled]
278 --disable-vstream disable TiVo vstream client support [autodetect]
279 --disable-pthreads disable Posix threads support [autodetect]
280 --disable-w32threads disable Win32 threads support [autodetect]
281 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
282 --enable-rpath enable runtime linker path for extra libs [disabled]
284 Codecs:
285 --enable-gif enable GIF support [autodetect]
286 --enable-png enable PNG input/output support [autodetect]
287 --enable-mng enable MNG input support [autodetect]
288 --enable-jpeg enable JPEG input/output support [autodetect]
289 --enable-libcdio enable libcdio support [autodetect]
290 --enable-liblzo enable liblzo support [autodetect]
291 --disable-win32dll disable Win32 DLL support [autodetect]
292 --disable-qtx disable QuickTime codecs support [enabled]
293 --disable-xanim disable XAnim codecs support [enabled]
294 --disable-real disable RealPlayer codecs support [enabled]
295 --disable-xvid disable Xvid [autodetect]
296 --disable-x264 disable x264 [autodetect]
297 --disable-libnut disable libnut [autodetect]
298 --disable-libavutil disable libavutil [autodetect]
299 --disable-libavcodec disable libavcodec [autodetect]
300 --disable-libavformat disable libavformat [autodetect]
301 --disable-libpostproc disable libpostproc [autodetect]
302 --disable-libswscale disable libswscale [autodetect]
303 --disable-tremor-internal disable internal Tremor [enabled]
304 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
305 --enable-tremor enable external Tremor [autodetect]
306 --disable-libvorbis disable libvorbis support [autodetect]
307 --disable-speex disable Speex support [autodetect]
308 --enable-theora enable OggTheora libraries [autodetect]
309 --enable-faad enable external FAAD2 (AAC) [autodetect]
310 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
311 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
312 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
313 --disable-ladspa disable LADSPA plugin support [autodetect]
314 --disable-libbs2b disable libbs2b audio filter support [autodetect]
315 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
316 --disable-mad disable libmad (MPEG audio) support [autodetect]
317 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
318 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
319 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
320 --enable-xmms enable XMMS input plugin support [disabled]
321 --enable-libdca enable libdca support [autodetect]
322 --disable-mp3lib disable builtin mp3lib [autodetect]
323 --disable-liba52 disable liba52 [autodetect]
324 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
325 --disable-musepack disable musepack support [autodetect]
327 Video output:
328 --disable-vidix disable VIDIX [for x86 *nix]
329 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
330 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
331 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
332 --disable-vidix-pcidb disable VIDIX PCI device name database
333 --enable-dhahelper enable VIDIX dhahelper support
334 --enable-svgalib_helper enable VIDIX svgalib_helper support
335 --enable-gl enable OpenGL video output [autodetect]
336 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
337 --enable-dga2 enable DGA 2 support [autodetect]
338 --enable-dga1 enable DGA 1 support [autodetect]
339 --enable-vesa enable VESA video output [autodetect]
340 --enable-svga enable SVGAlib video output [autodetect]
341 --enable-sdl enable SDL video output [autodetect]
342 --enable-kva enable KVA video output [autodetect]
343 --enable-aa enable AAlib video output [autodetect]
344 --enable-caca enable CACA video output [autodetect]
345 --enable-ggi enable GGI video output [autodetect]
346 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
347 --enable-direct3d enable Direct3D video output [autodetect]
348 --enable-directx enable DirectX video output [autodetect]
349 --enable-dxr2 enable DXR2 video output [autodetect]
350 --enable-dxr3 enable DXR3/H+ video output [autodetect]
351 --enable-ivtv enable IVTV TV-Out video output [autodetect]
352 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
353 --enable-dvb enable DVB video output [autodetect]
354 --enable-mga enable mga_vid video output [autodetect]
355 --enable-xmga enable mga_vid X11 video output [autodetect]
356 --enable-xv enable Xv video output [autodetect]
357 --enable-xvmc enable XvMC acceleration [disable]
358 --enable-vdpau enable VDPAU acceleration [autodetect]
359 --enable-vm enable XF86VidMode support [autodetect]
360 --enable-xinerama enable Xinerama support [autodetect]
361 --enable-x11 enable X11 video output [autodetect]
362 --enable-xshape enable XShape support [autodetect]
363 --disable-xss disable screensaver support via xss [autodetect]
364 --enable-fbdev enable FBDev video output [autodetect]
365 --enable-mlib enable mediaLib video output (Solaris) [disable]
366 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
367 --enable-tdfxfb enable tdfxfb video output [disable]
368 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
369 --enable-wii enable Nintendo Wii/GameCube video output [disable]
370 --enable-directfb enable DirectFB video output [autodetect]
371 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
372 --enable-bl enable Blinkenlights video output [disable]
373 --enable-tdfxvid enable tdfx_vid video output [disable]
374 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
375 --disable-tga disable Targa video output [enable]
376 --disable-pnm disable PNM video output [enable]
377 --disable-md5sum disable md5sum video output [enable]
378 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
379 --disable-corevideo disable CoreVideo video output [autodetect]
380 --disable-quartz disable Quartz video output [autodetect]
382 Audio output:
383 --disable-alsa disable ALSA audio output [autodetect]
384 --disable-ossaudio disable OSS audio output [autodetect]
385 --disable-arts disable aRts audio output [autodetect]
386 --disable-esd disable esd audio output [autodetect]
387 --disable-pulse disable Pulseaudio audio output [autodetect]
388 --disable-jack disable JACK audio output [autodetect]
389 --enable-openal enable OpenAL audio output [disable]
390 --disable-nas disable NAS audio output [autodetect]
391 --disable-sgiaudio disable SGI audio output [autodetect]
392 --disable-sunaudio disable Sun audio output [autodetect]
393 --disable-kai disable KAI audio output [autodetect]
394 --disable-dart disable DART audio output [autodetect]
395 --disable-win32waveout disable Windows waveout audio output [autodetect]
396 --disable-coreaudio disable CoreAudio audio output [autodetect]
397 --disable-select disable using select() on the audio device [enable]
399 Language options:
400 --enable-translation enable support for translated output [disable]
401 --charset=charset convert the console messages to this character set
402 --language-doc=lang language to use for the documentation [en]
403 --language-man=lang language to use for the man pages [en]
404 --language-msg=lang extra languages for program messages [all]
405 --language=lang default language to use [en]
406 Specific options override --language. You can pass a list of languages separated
407 by whitespace or commas instead of a single language. Nonexisting translations
408 will be dropped from each list. All translations available in the list will be
409 installed. The value "all" will activate all translations. The LINGUAS
410 environment variable is honored. In all cases the fallback is English.
411 The program always supports English-language output; additional message
412 languages are only installed if --enable-translation is also specified.
413 Available values for --language-doc are: all $doc_lang_all
414 Available values for --language-man are: all $man_lang_all
415 Available values for --language-msg are: all $msg_lang_all
417 Miscellaneous options:
418 --enable-runtime-cpudetection enable runtime CPU detection [disable]
419 --enable-cross-compile enable cross-compilation [autodetect]
420 --cc=COMPILER C compiler to build MPlayer [gcc]
421 --host-cc=COMPILER C compiler for tools needed while building [gcc]
422 --as=ASSEMBLER assembler to build MPlayer [as]
423 --nm=NM nm tool to build MPlayer [nm]
424 --yasm=YASM Yasm assembler to build MPlayer [yasm]
425 --ar=AR librarian to build MPlayer [ar]
426 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
427 --windres=WINDRES windres to build MPlayer [windres]
428 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
429 --enable-static build a statically linked binary
430 --with-install=PATH path to a custom install program
432 Advanced options:
433 --enable-mmx enable MMX [autodetect]
434 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
435 --enable-3dnow enable 3DNow! [autodetect]
436 --enable-3dnowext enable extended 3DNow! [autodetect]
437 --enable-sse enable SSE [autodetect]
438 --enable-sse2 enable SSE2 [autodetect]
439 --enable-ssse3 enable SSSE3 [autodetect]
440 --enable-shm enable shm [autodetect]
441 --enable-altivec enable AltiVec (PowerPC) [autodetect]
442 --enable-armv5te enable DSP extensions (ARM) [autodetect]
443 --enable-armv6 enable ARMv6 (ARM) [autodetect]
444 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
445 --enable-armvfp enable ARM VFP (ARM) [autodetect]
446 --enable-neon enable NEON (ARM) [autodetect]
447 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
448 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
449 --enable-big-endian force byte order to big-endian [autodetect]
450 --enable-debug[=1-3] compile-in debugging information [disable]
451 --enable-profile compile-in profiling information [disable]
452 --disable-sighandler disable sighandler for crashes [enable]
453 --enable-crash-debug enable automatic gdb attach on crash [disable]
454 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
455 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
457 Use these options if autodetection fails:
458 --extra-cflags=FLAGS extra CFLAGS
459 --extra-ldflags=FLAGS extra LDFLAGS
460 --extra-libs=FLAGS extra linker flags
461 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
462 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
463 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
465 --with-freetype-config=PATH path to freetype-config
466 --with-glib-config=PATH path to glib*-config
467 --with-gtk-config=PATH path to gtk*-config
468 --with-sdl-config=PATH path to sdl*-config
469 --with-dvdnav-config=PATH path to dvdnav-config
470 --with-dvdread-config=PATH path to dvdread-config
472 This configure script is NOT autoconf-based, even though its output is similar.
473 It will try to autodetect all configuration options. If you --enable an option
474 it will be forcefully turned on, skipping autodetection. This can break
475 compilation, so you need to know what you are doing.
477 exit 0
478 } #show_help()
480 # GOTCHA: the variables below defines the default behavior for autodetection
481 # and have - unless stated otherwise - at least 2 states : yes no
482 # If autodetection is available then the third state is: auto
483 _mmx=auto
484 _3dnow=auto
485 _3dnowext=auto
486 _mmxext=auto
487 _sse=auto
488 _sse2=auto
489 _ssse3=auto
490 _cmov=auto
491 _fast_cmov=auto
492 _fast_clz=auto
493 _armv5te=auto
494 _armv6=auto
495 _armv6t2=auto
496 _armvfp=auto
497 neon=auto
498 _iwmmxt=auto
499 _mtrr=auto
500 _altivec=auto
501 _install=install
502 _ranlib=ranlib
503 _windres=windres
504 _cc=cc
505 _ar=ar
506 test "$CC" && _cc="$CC"
507 _as=auto
508 _nm=auto
509 _yasm=yasm
510 _runtime_cpudetection=no
511 _cross_compile=auto
512 _prefix="/usr/local"
513 _libavutil=auto
514 _libavcodec=auto
515 _libavformat=auto
516 _libpostproc=auto
517 _libswscale=auto
518 _libavcodec_internals=no
519 _libswscale_internals=no
520 _mencoder=yes
521 _mplayer=yes
522 _x11=auto
523 _xshape=auto
524 _xss=auto
525 _dga1=auto
526 _dga2=auto
527 _xv=auto
528 _xvmc=no #auto when complete
529 _vdpau=auto
530 _sdl=auto
531 _kva=auto
532 _direct3d=auto
533 _directx=auto
534 _win32waveout=auto
535 _nas=auto
536 _png=auto
537 _mng=auto
538 _jpeg=auto
539 _pnm=yes
540 _md5sum=yes
541 _yuv4mpeg=yes
542 _gif=auto
543 _gl=auto
544 matrixview=yes
545 _ggi=auto
546 _ggiwmh=auto
547 _aa=auto
548 _caca=auto
549 _svga=auto
550 _vesa=auto
551 _fbdev=auto
552 _dvb=auto
553 _dxr2=auto
554 _dxr3=auto
555 _ivtv=auto
556 _v4l2=auto
557 _iconv=auto
558 _langinfo=auto
559 _rtc=auto
560 _ossaudio=auto
561 _arts=auto
562 _esd=auto
563 _pulse=auto
564 _jack=auto
565 _kai=auto
566 _dart=auto
567 _openal=no
568 _libcdio=auto
569 _liblzo=auto
570 _mad=auto
571 _mp3lame=auto
572 _toolame=auto
573 _twolame=auto
574 _tremor=auto
575 _tremor_internal=yes
576 _tremor_low=no
577 _libvorbis=auto
578 _speex=auto
579 _theora=auto
580 _mp3lib=auto
581 _liba52=auto
582 _libdca=auto
583 _libmpeg2=auto
584 _faad=auto
585 _faad_internal=auto
586 _faad_fixed=no
587 _faac=auto
588 _ladspa=auto
589 _libbs2b=auto
590 _xmms=no
591 _vcd=auto
592 _dvdnav=auto
593 _dvdnavconfig=dvdnav-config
594 _dvdreadconfig=dvdread-config
595 _dvdread=auto
596 _dvdread_internal=auto
597 _libdvdcss_internal=auto
598 _xanim=auto
599 _real=auto
600 _live=auto
601 _nemesi=auto
602 _native_rtsp=yes
603 _xinerama=auto
604 _mga=auto
605 _xmga=auto
606 _vm=auto
607 _xf86keysym=auto
608 _mlib=no #broken, thus disabled
609 _sgiaudio=auto
610 _sunaudio=auto
611 _alsa=auto
612 _fastmemcpy=yes
613 _unrar_exec=auto
614 _win32dll=auto
615 _select=yes
616 _radio=no
617 _radio_capture=no
618 _radio_v4l=auto
619 _radio_v4l2=auto
620 _radio_bsdbt848=auto
621 _tv=yes
622 _tv_v4l1=auto
623 _tv_v4l2=auto
624 _tv_bsdbt848=auto
625 _tv_dshow=auto
626 _pvr=auto
627 _network=yes
628 _winsock2_h=auto
629 _smb=auto
630 _vidix=auto
631 _vidix_pcidb=yes
632 _dhahelper=no
633 _svgalib_helper=no
634 _joystick=no
635 _xvid=auto
636 _x264=auto
637 _libnut=auto
638 _lirc=auto
639 _lircc=auto
640 _apple_remote=auto
641 _apple_ir=auto
642 _gui=no
643 _gtk1=no
644 _termcap=auto
645 _termios=auto
646 _3dfx=no
647 _s3fb=no
648 _wii=no
649 _tdfxfb=no
650 _tdfxvid=no
651 _xvr100=auto
652 _tga=yes
653 _directfb=auto
654 _zr=auto
655 _bl=no
656 _largefiles=yes
657 #language=en
658 _shm=auto
659 _translation=no
660 _charset="UTF-8"
661 _dynamic_plugins=no
662 _crash_debug=no
663 _sighandler=yes
664 _libdv=auto
665 _cdparanoia=auto
666 _cddb=auto
667 _big_endian=auto
668 _bitmap_font=yes
669 _freetype=auto
670 _fontconfig=auto
671 _menu=no
672 _qtx=auto
673 _maemo=auto
674 _coreaudio=auto
675 _corevideo=auto
676 _quartz=auto
677 quicktime=auto
678 _macosx_finder=no
679 _macosx_bundle=auto
680 _sortsub=yes
681 _freetypeconfig='freetype-config'
682 _fribidi=auto
683 _enca=auto
684 _inet6=auto
685 _gethostbyname2=auto
686 _ftp=yes
687 _musepack=auto
688 _vstream=auto
689 _pthreads=auto
690 _w32threads=auto
691 _ass=auto
692 _rpath=no
693 _asmalign_pot=auto
694 _stream_cache=yes
695 _priority=no
696 def_dos_paths="#define HAVE_DOS_PATHS 0"
697 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
698 def_priority="#undef CONFIG_PRIORITY"
699 def_pthread_cache="#undef PTHREAD_CACHE"
700 _need_shmem=yes
701 for ac_option do
702 case "$ac_option" in
703 --help|-help|-h)
704 show_help
706 --prefix=*)
707 _prefix=$(echo $ac_option | cut -d '=' -f 2)
709 --bindir=*)
710 _bindir=$(echo $ac_option | cut -d '=' -f 2)
712 --datadir=*)
713 _datadir=$(echo $ac_option | cut -d '=' -f 2)
715 --mandir=*)
716 _mandir=$(echo $ac_option | cut -d '=' -f 2)
718 --confdir=*)
719 _confdir=$(echo $ac_option | cut -d '=' -f 2)
721 --libdir=*)
722 _libdir=$(echo $ac_option | cut -d '=' -f 2)
724 --codecsdir=*)
725 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
727 --localedir=*)
728 _localedir=$(echo $ac_option | cut -d '=' -f 2)
731 --with-install=*)
732 _install=$(echo $ac_option | cut -d '=' -f 2 )
734 --with-xvmclib=*)
735 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
738 --with-sdl-config=*)
739 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
741 --with-freetype-config=*)
742 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
744 --with-gtk-config=*)
745 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
747 --with-glib-config=*)
748 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
750 --with-dvdnav-config=*)
751 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
753 --with-dvdread-config=*)
754 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
757 --extra-cflags=*)
758 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
760 --extra-ldflags=*)
761 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
763 --extra-libs=*)
764 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
766 --extra-libs-mplayer=*)
767 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
769 --extra-libs-mencoder=*)
770 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
773 --target=*)
774 _target=$(echo $ac_option | cut -d '=' -f 2)
776 --cc=*)
777 _cc=$(echo $ac_option | cut -d '=' -f 2)
779 --host-cc=*)
780 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
782 --as=*)
783 _as=$(echo $ac_option | cut -d '=' -f 2)
785 --nm=*)
786 _nm=$(echo $ac_option | cut -d '=' -f 2)
788 --yasm=*)
789 _yasm=$(echo $ac_option | cut -d '=' -f 2)
791 --ar=*)
792 _ar=$(echo $ac_option | cut -d '=' -f 2)
794 --ranlib=*)
795 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
797 --windres=*)
798 _windres=$(echo $ac_option | cut -d '=' -f 2)
800 --charset=*)
801 _charset=$(echo $ac_option | cut -d '=' -f 2)
803 --language-doc=*)
804 language_doc=$(echo $ac_option | cut -d '=' -f 2)
806 --language-man=*)
807 language_man=$(echo $ac_option | cut -d '=' -f 2)
809 --language-msg=*)
810 language_msg=$(echo $ac_option | cut -d '=' -f 2)
812 --language=*)
813 language=$(echo $ac_option | cut -d '=' -f 2)
816 --enable-static)
817 _ld_static='-static'
819 --disable-static)
820 _ld_static=''
822 --enable-profile)
823 _profile='-p'
825 --disable-profile)
826 _profile=
828 --enable-debug)
829 _debug='-g'
831 --enable-debug=*)
832 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
834 --disable-debug)
835 _debug=
837 --enable-translation) _translation=yes ;;
838 --disable-translation) _translation=no ;;
839 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
840 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
841 --enable-cross-compile) _cross_compile=yes ;;
842 --disable-cross-compile) _cross_compile=no ;;
843 --enable-mencoder) _mencoder=yes ;;
844 --disable-mencoder) _mencoder=no ;;
845 --enable-mplayer) _mplayer=yes ;;
846 --disable-mplayer) _mplayer=no ;;
847 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
848 --disable-dynamic-plugins) _dynamic_plugins=no ;;
849 --enable-x11) _x11=yes ;;
850 --disable-x11) _x11=no ;;
851 --enable-xshape) _xshape=yes ;;
852 --disable-xshape) _xshape=no ;;
853 --enable-xss) _xss=yes ;;
854 --disable-xss) _xss=no ;;
855 --enable-xv) _xv=yes ;;
856 --disable-xv) _xv=no ;;
857 --enable-xvmc) _xvmc=yes ;;
858 --disable-xvmc) _xvmc=no ;;
859 --enable-vdpau) _vdpau=yes ;;
860 --disable-vdpau) _vdpau=no ;;
861 --enable-sdl) _sdl=yes ;;
862 --disable-sdl) _sdl=no ;;
863 --enable-kva) _kva=yes ;;
864 --disable-kva) _kva=no ;;
865 --enable-direct3d) _direct3d=yes ;;
866 --disable-direct3d) _direct3d=no ;;
867 --enable-directx) _directx=yes ;;
868 --disable-directx) _directx=no ;;
869 --enable-win32waveout) _win32waveout=yes ;;
870 --disable-win32waveout) _win32waveout=no ;;
871 --enable-nas) _nas=yes ;;
872 --disable-nas) _nas=no ;;
873 --enable-png) _png=yes ;;
874 --disable-png) _png=no ;;
875 --enable-mng) _mng=yes ;;
876 --disable-mng) _mng=no ;;
877 --enable-jpeg) _jpeg=yes ;;
878 --disable-jpeg) _jpeg=no ;;
879 --enable-pnm) _pnm=yes ;;
880 --disable-pnm) _pnm=no ;;
881 --enable-md5sum) _md5sum=yes ;;
882 --disable-md5sum) _md5sum=no ;;
883 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
884 --disable-yuv4mpeg) _yuv4mpeg=no ;;
885 --enable-gif) _gif=yes ;;
886 --disable-gif) _gif=no ;;
887 --enable-gl) _gl=yes ;;
888 --disable-gl) _gl=no ;;
889 --enable-matrixview) matrixview=yes ;;
890 --disable-matrixview) matrixview=no ;;
891 --enable-ggi) _ggi=yes ;;
892 --disable-ggi) _ggi=no ;;
893 --enable-ggiwmh) _ggiwmh=yes ;;
894 --disable-ggiwmh) _ggiwmh=no ;;
895 --enable-aa) _aa=yes ;;
896 --disable-aa) _aa=no ;;
897 --enable-caca) _caca=yes ;;
898 --disable-caca) _caca=no ;;
899 --enable-svga) _svga=yes ;;
900 --disable-svga) _svga=no ;;
901 --enable-vesa) _vesa=yes ;;
902 --disable-vesa) _vesa=no ;;
903 --enable-fbdev) _fbdev=yes ;;
904 --disable-fbdev) _fbdev=no ;;
905 --enable-dvb) _dvb=yes ;;
906 --disable-dvb) _dvb=no ;;
907 --enable-dxr2) _dxr2=yes ;;
908 --disable-dxr2) _dxr2=no ;;
909 --enable-dxr3) _dxr3=yes ;;
910 --disable-dxr3) _dxr3=no ;;
911 --enable-ivtv) _ivtv=yes ;;
912 --disable-ivtv) _ivtv=no ;;
913 --enable-v4l2) _v4l2=yes ;;
914 --disable-v4l2) _v4l2=no ;;
915 --enable-iconv) _iconv=yes ;;
916 --disable-iconv) _iconv=no ;;
917 --enable-langinfo) _langinfo=yes ;;
918 --disable-langinfo) _langinfo=no ;;
919 --enable-rtc) _rtc=yes ;;
920 --disable-rtc) _rtc=no ;;
921 --enable-libdv) _libdv=yes ;;
922 --disable-libdv) _libdv=no ;;
923 --enable-ossaudio) _ossaudio=yes ;;
924 --disable-ossaudio) _ossaudio=no ;;
925 --enable-arts) _arts=yes ;;
926 --disable-arts) _arts=no ;;
927 --enable-esd) _esd=yes ;;
928 --disable-esd) _esd=no ;;
929 --enable-pulse) _pulse=yes ;;
930 --disable-pulse) _pulse=no ;;
931 --enable-jack) _jack=yes ;;
932 --disable-jack) _jack=no ;;
933 --enable-openal) _openal=yes ;;
934 --disable-openal) _openal=no ;;
935 --enable-kai) _kai=yes ;;
936 --disable-kai) _kai=no ;;
937 --enable-dart) _dart=yes ;;
938 --disable-dart) _dart=no ;;
939 --enable-mad) _mad=yes ;;
940 --disable-mad) _mad=no ;;
941 --enable-mp3lame) _mp3lame=yes ;;
942 --disable-mp3lame) _mp3lame=no ;;
943 --enable-toolame) _toolame=yes ;;
944 --disable-toolame) _toolame=no ;;
945 --enable-twolame) _twolame=yes ;;
946 --disable-twolame) _twolame=no ;;
947 --enable-libcdio) _libcdio=yes ;;
948 --disable-libcdio) _libcdio=no ;;
949 --enable-liblzo) _liblzo=yes ;;
950 --disable-liblzo) _liblzo=no ;;
951 --enable-libvorbis) _libvorbis=yes ;;
952 --disable-libvorbis) _libvorbis=no ;;
953 --enable-speex) _speex=yes ;;
954 --disable-speex) _speex=no ;;
955 --enable-tremor) _tremor=yes ;;
956 --disable-tremor) _tremor=no ;;
957 --enable-tremor-internal) _tremor_internal=yes ;;
958 --disable-tremor-internal) _tremor_internal=no ;;
959 --enable-tremor-low) _tremor_low=yes ;;
960 --disable-tremor-low) _tremor_low=no ;;
961 --enable-theora) _theora=yes ;;
962 --disable-theora) _theora=no ;;
963 --enable-mp3lib) _mp3lib=yes ;;
964 --disable-mp3lib) _mp3lib=no ;;
965 --enable-liba52) _liba52=yes ;;
966 --disable-liba52) _liba52=no ;;
967 --enable-libdca) _libdca=yes ;;
968 --disable-libdca) _libdca=no ;;
969 --enable-libmpeg2) _libmpeg2=yes ;;
970 --disable-libmpeg2) _libmpeg2=no ;;
971 --enable-musepack) _musepack=yes ;;
972 --disable-musepack) _musepack=no ;;
973 --enable-faad) _faad=yes ;;
974 --disable-faad) _faad=no ;;
975 --enable-faad-internal) _faad_internal=yes ;;
976 --disable-faad-internal) _faad_internal=no ;;
977 --enable-faad-fixed) _faad_fixed=yes ;;
978 --disable-faad-fixed) _faad_fixed=no ;;
979 --enable-faac) _faac=yes ;;
980 --disable-faac) _faac=no ;;
981 --enable-ladspa) _ladspa=yes ;;
982 --disable-ladspa) _ladspa=no ;;
983 --enable-libbs2b) _libbs2b=yes ;;
984 --disable-libbs2b) _libbs2b=no ;;
985 --enable-xmms) _xmms=yes ;;
986 --disable-xmms) _xmms=no ;;
987 --enable-vcd) _vcd=yes ;;
988 --disable-vcd) _vcd=no ;;
989 --enable-dvdread) _dvdread=yes ;;
990 --disable-dvdread) _dvdread=no ;;
991 --enable-dvdread-internal) _dvdread_internal=yes ;;
992 --disable-dvdread-internal) _dvdread_internal=no ;;
993 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
994 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
995 --enable-dvdnav) _dvdnav=yes ;;
996 --disable-dvdnav) _dvdnav=no ;;
997 --enable-xanim) _xanim=yes ;;
998 --disable-xanim) _xanim=no ;;
999 --enable-real) _real=yes ;;
1000 --disable-real) _real=no ;;
1001 --enable-live) _live=yes ;;
1002 --disable-live) _live=no ;;
1003 --enable-nemesi) _nemesi=yes ;;
1004 --disable-nemesi) _nemesi=no ;;
1005 --enable-xinerama) _xinerama=yes ;;
1006 --disable-xinerama) _xinerama=no ;;
1007 --enable-mga) _mga=yes ;;
1008 --disable-mga) _mga=no ;;
1009 --enable-xmga) _xmga=yes ;;
1010 --disable-xmga) _xmga=no ;;
1011 --enable-vm) _vm=yes ;;
1012 --disable-vm) _vm=no ;;
1013 --enable-xf86keysym) _xf86keysym=yes ;;
1014 --disable-xf86keysym) _xf86keysym=no ;;
1015 --enable-mlib) _mlib=yes ;;
1016 --disable-mlib) _mlib=no ;;
1017 --enable-sunaudio) _sunaudio=yes ;;
1018 --disable-sunaudio) _sunaudio=no ;;
1019 --enable-sgiaudio) _sgiaudio=yes ;;
1020 --disable-sgiaudio) _sgiaudio=no ;;
1021 --enable-alsa) _alsa=yes ;;
1022 --disable-alsa) _alsa=no ;;
1023 --enable-tv) _tv=yes ;;
1024 --disable-tv) _tv=no ;;
1025 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1026 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1027 --enable-tv-v4l1) _tv_v4l1=yes ;;
1028 --disable-tv-v4l1) _tv_v4l1=no ;;
1029 --enable-tv-v4l2) _tv_v4l2=yes ;;
1030 --disable-tv-v4l2) _tv_v4l2=no ;;
1031 --enable-tv-dshow) _tv_dshow=yes ;;
1032 --disable-tv-dshow) _tv_dshow=no ;;
1033 --enable-radio) _radio=yes ;;
1034 --enable-radio-capture) _radio_capture=yes ;;
1035 --disable-radio-capture) _radio_capture=no ;;
1036 --disable-radio) _radio=no ;;
1037 --enable-radio-v4l) _radio_v4l=yes ;;
1038 --disable-radio-v4l) _radio_v4l=no ;;
1039 --enable-radio-v4l2) _radio_v4l2=yes ;;
1040 --disable-radio-v4l2) _radio_v4l2=no ;;
1041 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1042 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1043 --enable-pvr) _pvr=yes ;;
1044 --disable-pvr) _pvr=no ;;
1045 --enable-fastmemcpy) _fastmemcpy=yes ;;
1046 --disable-fastmemcpy) _fastmemcpy=no ;;
1047 --enable-network) _network=yes ;;
1048 --disable-network) _network=no ;;
1049 --enable-winsock2_h) _winsock2_h=yes ;;
1050 --disable-winsock2_h) _winsock2_h=no ;;
1051 --enable-smb) _smb=yes ;;
1052 --disable-smb) _smb=no ;;
1053 --enable-vidix) _vidix=yes ;;
1054 --disable-vidix) _vidix=no ;;
1055 --with-vidix-drivers=*)
1056 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1058 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1059 --enable-dhahelper) _dhahelper=yes ;;
1060 --disable-dhahelper) _dhahelper=no ;;
1061 --enable-svgalib_helper) _svgalib_helper=yes ;;
1062 --disable-svgalib_helper) _svgalib_helper=no ;;
1063 --enable-joystick) _joystick=yes ;;
1064 --disable-joystick) _joystick=no ;;
1065 --enable-xvid) _xvid=yes ;;
1066 --disable-xvid) _xvid=no ;;
1067 --enable-x264) _x264=yes ;;
1068 --disable-x264) _x264=no ;;
1069 --enable-libnut) _libnut=yes ;;
1070 --disable-libnut) _libnut=no ;;
1071 --enable-libavutil) _libavutil=yes ;;
1072 --disable-libavutil) _libavutil=no ;;
1073 --enable-libavcodec) _libavcodec=yes ;;
1074 --disable-libavcodec) _libavcodec=no ;;
1075 --enable-libavformat) _libavformat=yes ;;
1076 --disable-libavformat) _libavformat=no ;;
1077 --enable-libpostproc) _libpostproc=yes ;;
1078 --disable-libpostproc) _libpostproc=no ;;
1079 --enable-libswscale) _libswscale=yes ;;
1080 --disable-libswscale) _libswscale=no ;;
1081 --ffmpeg-source-dir=*)
1082 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1084 --enable-lirc) _lirc=yes ;;
1085 --disable-lirc) _lirc=no ;;
1086 --enable-lircc) _lircc=yes ;;
1087 --disable-lircc) _lircc=no ;;
1088 --enable-apple-remote) _apple_remote=yes ;;
1089 --disable-apple-remote) _apple_remote=no ;;
1090 --enable-apple-ir) _apple_ir=yes ;;
1091 --disable-apple-ir) _apple_ir=no ;;
1092 --enable-gui) _gui=yes ;;
1093 --disable-gui) _gui=no ;;
1094 --enable-gtk1) _gtk1=yes ;;
1095 --disable-gtk1) _gtk1=no ;;
1096 --enable-termcap) _termcap=yes ;;
1097 --disable-termcap) _termcap=no ;;
1098 --enable-termios) _termios=yes ;;
1099 --disable-termios) _termios=no ;;
1100 --enable-3dfx) _3dfx=yes ;;
1101 --disable-3dfx) _3dfx=no ;;
1102 --enable-s3fb) _s3fb=yes ;;
1103 --disable-s3fb) _s3fb=no ;;
1104 --enable-wii) _wii=yes ;;
1105 --disable-wii) _wii=no ;;
1106 --enable-tdfxfb) _tdfxfb=yes ;;
1107 --disable-tdfxfb) _tdfxfb=no ;;
1108 --disable-tdfxvid) _tdfxvid=no ;;
1109 --enable-tdfxvid) _tdfxvid=yes ;;
1110 --disable-xvr100) _xvr100=no ;;
1111 --enable-xvr100) _xvr100=yes ;;
1112 --disable-tga) _tga=no ;;
1113 --enable-tga) _tga=yes ;;
1114 --enable-directfb) _directfb=yes ;;
1115 --disable-directfb) _directfb=no ;;
1116 --enable-zr) _zr=yes ;;
1117 --disable-zr) _zr=no ;;
1118 --enable-bl) _bl=yes ;;
1119 --disable-bl) _bl=no ;;
1120 --enable-mtrr) _mtrr=yes ;;
1121 --disable-mtrr) _mtrr=no ;;
1122 --enable-largefiles) _largefiles=yes ;;
1123 --disable-largefiles) _largefiles=no ;;
1124 --enable-shm) _shm=yes ;;
1125 --disable-shm) _shm=no ;;
1126 --enable-select) _select=yes ;;
1127 --disable-select) _select=no ;;
1128 --enable-cdparanoia) _cdparanoia=yes ;;
1129 --disable-cdparanoia) _cdparanoia=no ;;
1130 --enable-cddb) _cddb=yes ;;
1131 --disable-cddb) _cddb=no ;;
1132 --enable-big-endian) _big_endian=yes ;;
1133 --disable-big-endian) _big_endian=no ;;
1134 --enable-bitmap-font) _bitmap_font=yes ;;
1135 --disable-bitmap-font) _bitmap_font=no ;;
1136 --enable-freetype) _freetype=yes ;;
1137 --disable-freetype) _freetype=no ;;
1138 --enable-fontconfig) _fontconfig=yes ;;
1139 --disable-fontconfig) _fontconfig=no ;;
1140 --enable-unrarexec) _unrar_exec=yes ;;
1141 --disable-unrarexec) _unrar_exec=no ;;
1142 --enable-ftp) _ftp=yes ;;
1143 --disable-ftp) _ftp=no ;;
1144 --enable-vstream) _vstream=yes ;;
1145 --disable-vstream) _vstream=no ;;
1146 --enable-pthreads) _pthreads=yes ;;
1147 --disable-pthreads) _pthreads=no ;;
1148 --enable-w32threads) _w32threads=yes ;;
1149 --disable-w32threads) _w32threads=no ;;
1150 --enable-ass) _ass=yes ;;
1151 --disable-ass) _ass=no ;;
1152 --enable-rpath) _rpath=yes ;;
1153 --disable-rpath) _rpath=no ;;
1155 --enable-fribidi) _fribidi=yes ;;
1156 --disable-fribidi) _fribidi=no ;;
1158 --enable-enca) _enca=yes ;;
1159 --disable-enca) _enca=no ;;
1161 --enable-inet6) _inet6=yes ;;
1162 --disable-inet6) _inet6=no ;;
1164 --enable-gethostbyname2) _gethostbyname2=yes ;;
1165 --disable-gethostbyname2) _gethostbyname2=no ;;
1167 --enable-dga1) _dga1=yes ;;
1168 --disable-dga1) _dga1=no ;;
1169 --enable-dga2) _dga2=yes ;;
1170 --disable-dga2) _dga2=no ;;
1172 --enable-menu) _menu=yes ;;
1173 --disable-menu) _menu=no ;;
1175 --enable-qtx) _qtx=yes ;;
1176 --disable-qtx) _qtx=no ;;
1178 --enable-coreaudio) _coreaudio=yes ;;
1179 --disable-coreaudio) _coreaudio=no ;;
1180 --enable-corevideo) _corevideo=yes ;;
1181 --disable-corevideo) _corevideo=no ;;
1182 --enable-quartz) _quartz=yes ;;
1183 --disable-quartz) _quartz=no ;;
1184 --enable-macosx-finder) _macosx_finder=yes ;;
1185 --disable-macosx-finder) _macosx_finder=no ;;
1186 --enable-macosx-bundle) _macosx_bundle=yes ;;
1187 --disable-macosx-bundle) _macosx_bundle=no ;;
1189 --enable-maemo) _maemo=yes ;;
1190 --disable-maemo) _maemo=no ;;
1192 --enable-sortsub) _sortsub=yes ;;
1193 --disable-sortsub) _sortsub=no ;;
1195 --enable-crash-debug) _crash_debug=yes ;;
1196 --disable-crash-debug) _crash_debug=no ;;
1197 --enable-sighandler) _sighandler=yes ;;
1198 --disable-sighandler) _sighandler=no ;;
1199 --enable-win32dll) _win32dll=yes ;;
1200 --disable-win32dll) _win32dll=no ;;
1202 --enable-sse) _sse=yes ;;
1203 --disable-sse) _sse=no ;;
1204 --enable-sse2) _sse2=yes ;;
1205 --disable-sse2) _sse2=no ;;
1206 --enable-ssse3) _ssse3=yes ;;
1207 --disable-ssse3) _ssse3=no ;;
1208 --enable-mmxext) _mmxext=yes ;;
1209 --disable-mmxext) _mmxext=no ;;
1210 --enable-3dnow) _3dnow=yes ;;
1211 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1212 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1213 --disable-3dnowext) _3dnowext=no ;;
1214 --enable-cmov) _cmov=yes ;;
1215 --disable-cmov) _cmov=no ;;
1216 --enable-fast-cmov) _fast_cmov=yes ;;
1217 --disable-fast-cmov) _fast_cmov=no ;;
1218 --enable-fast-clz) _fast_clz=yes ;;
1219 --disable-fast-clz) _fast_clz=no ;;
1220 --enable-altivec) _altivec=yes ;;
1221 --disable-altivec) _altivec=no ;;
1222 --enable-armv5te) _armv5te=yes ;;
1223 --disable-armv5te) _armv5te=no ;;
1224 --enable-armv6) _armv6=yes ;;
1225 --disable-armv6) _armv6=no ;;
1226 --enable-armv6t2) _armv6t2=yes ;;
1227 --disable-armv6t2) _armv6t2=no ;;
1228 --enable-armvfp) _armvfp=yes ;;
1229 --disable-armvfp) _armvfp=no ;;
1230 --enable-neon) neon=yes ;;
1231 --disable-neon) neon=no ;;
1232 --enable-iwmmxt) _iwmmxt=yes ;;
1233 --disable-iwmmxt) _iwmmxt=no ;;
1234 --enable-mmx) _mmx=yes ;;
1235 --disable-mmx) # 3Dnow! and MMX2 require MMX
1236 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1239 echo "Unknown parameter: $ac_option"
1240 exit 1
1243 esac
1244 done
1246 if test "$_gui" = yes ; then
1247 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1248 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1251 # Atmos: moved this here, to be correct, if --prefix is specified
1252 test -z "$_bindir" && _bindir="$_prefix/bin"
1253 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1254 test -z "$_mandir" && _mandir="$_prefix/share/man"
1255 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1256 test -z "$_libdir" && _libdir="$_prefix/lib"
1257 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1259 # Determine our OS name and CPU architecture
1260 if test -z "$_target" ; then
1261 # OS name
1262 system_name=$(uname -s 2>&1)
1263 case "$system_name" in
1264 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1266 Haiku)
1267 system_name=BeOS
1269 IRIX*)
1270 system_name=IRIX
1272 GNU/kFreeBSD)
1273 system_name=FreeBSD
1275 HP-UX*)
1276 system_name=HP-UX
1278 [cC][yY][gG][wW][iI][nN]*)
1279 system_name=CYGWIN
1281 MINGW32*)
1282 system_name=MINGW32
1284 OS/2*)
1285 system_name=OS/2
1288 system_name="$system_name-UNKNOWN"
1290 esac
1293 # host's CPU/instruction set
1294 host_arch=$(uname -p 2>&1)
1295 case "$host_arch" in
1296 i386|sparc|ppc|alpha|arm|mips|vax)
1298 powerpc) # Darwin returns 'powerpc'
1299 host_arch=ppc
1301 *) # uname -p on Linux returns 'unknown' for the processor type,
1302 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1304 # Maybe uname -m (machine hardware name) returns something we
1305 # recognize.
1307 # x86/x86pc is used by QNX
1308 case "$(uname -m 2>&1)" in
1309 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 ;;
1310 ia64) host_arch=ia64 ;;
1311 macppc|ppc) host_arch=ppc ;;
1312 ppc64) host_arch=ppc64 ;;
1313 alpha) host_arch=alpha ;;
1314 sparc) host_arch=sparc ;;
1315 sparc64) host_arch=sparc64 ;;
1316 parisc*|hppa*|9000*) host_arch=hppa ;;
1317 arm*|zaurus|cats) host_arch=arm ;;
1318 sh3|sh4|sh4a) host_arch=sh ;;
1319 s390) host_arch=s390 ;;
1320 s390x) host_arch=s390x ;;
1321 *mips*) host_arch=mips ;;
1322 vax) host_arch=vax ;;
1323 xtensa*) host_arch=xtensa ;;
1324 *) host_arch=UNKNOWN ;;
1325 esac
1327 esac
1328 else # if test -z "$_target"
1329 system_name=$(echo $_target | cut -d '-' -f 2)
1330 case "$(echo $system_name | tr A-Z a-z)" in
1331 linux) system_name=Linux ;;
1332 freebsd) system_name=FreeBSD ;;
1333 gnu/kfreebsd) system_name=FreeBSD ;;
1334 netbsd) system_name=NetBSD ;;
1335 bsd/os) system_name=BSD/OS ;;
1336 openbsd) system_name=OpenBSD ;;
1337 dragonfly) system_name=DragonFly ;;
1338 sunos) system_name=SunOS ;;
1339 qnx) system_name=QNX ;;
1340 morphos) system_name=MorphOS ;;
1341 amigaos) system_name=AmigaOS ;;
1342 mingw32*) system_name=MINGW32 ;;
1343 esac
1344 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1345 host_arch=$(echo $_target | cut -d '-' -f 1)
1346 if test $(echo $host_arch) != "x86_64" ; then
1347 host_arch=$(echo $host_arch | tr '_' '-')
1351 extra_cflags="-I. $extra_cflags"
1352 _timer=timer-linux.c
1353 _getch=getch2.c
1354 if freebsd ; then
1355 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1356 extra_cflags="$extra_cflags -I/usr/local/include"
1359 if netbsd || dragonfly ; then
1360 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1361 extra_cflags="$extra_cflags -I/usr/pkg/include"
1364 if darwin; then
1365 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1366 _timer=timer-darwin.c
1369 if aix ; then
1370 extra_ldflags="$extra_ldflags -lC"
1373 if irix ; then
1374 _ranlib='ar -r'
1375 elif linux ; then
1376 _ranlib='true'
1379 if win32 ; then
1380 _exesuf=".exe"
1381 extra_cflags="$extra_cflags -fno-common"
1382 # -lwinmm is always needed for osdep/timer-win2.c
1383 extra_ldflags="$extra_ldflags -lwinmm"
1384 _pe_executable=yes
1385 _timer=timer-win2.c
1386 _priority=yes
1387 def_dos_paths="#define HAVE_DOS_PATHS 1"
1388 def_priority="#define CONFIG_PRIORITY 1"
1391 if mingw32 ; then
1392 _getch=getch2-win.c
1393 _need_shmem=no
1396 if amigaos ; then
1397 _select=no
1398 _sighandler=no
1399 _stream_cache=no
1400 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1401 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1404 if qnx ; then
1405 extra_ldflags="$extra_ldflags -lph"
1408 if os2 ; then
1409 _exesuf=".exe"
1410 _getch=getch2-os2.c
1411 _need_shmem=no
1412 _priority=yes
1413 def_dos_paths="#define HAVE_DOS_PATHS 1"
1414 def_priority="#define CONFIG_PRIORITY 1"
1417 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1418 test "$I" && break
1419 done
1422 TMPLOG="config.log"
1423 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1424 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1425 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1426 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1427 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1429 rm -f "$TMPLOG"
1430 echo configuration: $configuration > "$TMPLOG"
1431 echo >> "$TMPLOG"
1434 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1435 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1439 # Checking CC version...
1440 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1441 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1442 echocheck "$_cc version"
1443 cc_vendor=intel
1444 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1445 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1446 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1447 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1448 # TODO verify older icc/ecc compatibility
1449 case $cc_version in
1451 cc_version="v. ?.??, bad"
1452 cc_fail=yes
1454 10.1|11.0|11.1)
1455 cc_version="$cc_version, ok"
1458 cc_version="$cc_version, bad"
1459 cc_fail=yes
1461 esac
1462 echores "$cc_version"
1463 else
1464 for _cc in "$_cc" gcc cc ; do
1465 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1466 if test "$cc_name_tmp" = "gcc"; then
1467 cc_name=$cc_name_tmp
1468 echocheck "$_cc version"
1469 cc_vendor=gnu
1470 cc_version=$($_cc -dumpversion 2>&1)
1471 case $cc_version in
1472 2.96*)
1473 cc_fail=yes
1476 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1477 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1478 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1480 esac
1481 echores "$cc_version"
1482 break
1484 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1485 if test "$cc_name_tmp" = "Sun C"; then
1486 echocheck "$_cc version"
1487 cc_vendor=sun
1488 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1489 res_comment="experimental support only"
1490 echores "Sun C $cc_version"
1491 break
1493 done
1494 fi # icc
1495 test "$cc_fail" = yes && die "unsupported compiler version"
1497 if test -z "$_target" && x86 ; then
1498 cat > $TMPC << EOF
1499 int main(void) {
1500 int test[(int)sizeof(char *)-7];
1501 return 0;
1504 cc_check && host_arch=x86_64 || host_arch=i386
1507 echo "Detected operating system: $system_name"
1508 echo "Detected host architecture: $host_arch"
1510 echocheck "host cc"
1511 test "$_host_cc" || _host_cc=$_cc
1512 echores $_host_cc
1514 echocheck "cross compilation"
1515 if test $_cross_compile = auto ; then
1516 cat > $TMPC << EOF
1517 int main(void) { return 0; }
1519 _cross_compile=yes
1520 cc_check && "$TMPEXE" && _cross_compile=no
1522 echores $_cross_compile
1524 if test $_cross_compile = yes; then
1525 tmp_run() {
1526 return 0
1530 # ---
1532 # now that we know what compiler should be used for compilation, try to find
1533 # out which assembler is used by the $_cc compiler
1534 if test "$_as" = auto ; then
1535 _as=$($_cc -print-prog-name=as)
1536 test -z "$_as" && _as=as
1539 if test "$_nm" = auto ; then
1540 _nm=$($_cc -print-prog-name=nm)
1541 test -z "$_nm" && _nm=nm
1544 # XXX: this should be ok..
1545 _cpuinfo="echo"
1547 if test "$_runtime_cpudetection" = no ; then
1549 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1550 # FIXME: Remove the cygwin check once AMD CPUs are supported
1551 if test -r /proc/cpuinfo && ! cygwin; then
1552 # Linux with /proc mounted, extract CPU information from it
1553 _cpuinfo="cat /proc/cpuinfo"
1554 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1555 # FreeBSD with Linux emulation /proc mounted,
1556 # extract CPU information from it
1557 # Don't use it on x86 though, it never reports 3Dnow
1558 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1559 elif darwin && ! x86 ; then
1560 # use hostinfo on Darwin
1561 _cpuinfo="hostinfo"
1562 elif aix; then
1563 # use 'lsattr' on AIX
1564 _cpuinfo="lsattr -E -l proc0 -a type"
1565 elif x86; then
1566 # all other OSes try to extract CPU information from a small helper
1567 # program cpuinfo instead
1568 $_cc -o cpuinfo$_exesuf cpuinfo.c
1569 _cpuinfo="./cpuinfo$_exesuf"
1572 if x86 ; then
1573 # gather more CPU information
1574 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1575 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1576 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1577 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1578 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1580 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1582 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1583 -e s/xmm/sse/ -e s/kni/sse/)
1585 for ext in $pparam ; do
1586 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1587 done
1589 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1590 test $_sse = kernel_check && _mmxext=kernel_check
1592 echocheck "CPU vendor"
1593 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1595 echocheck "CPU type"
1596 echores "$pname"
1599 fi # test "$_runtime_cpudetection" = no
1601 if x86 && test "$_runtime_cpudetection" = no ; then
1602 extcheck() {
1603 if test "$1" = kernel_check ; then
1604 echocheck "kernel support of $2"
1605 cat > $TMPC <<EOF
1606 #include <stdlib.h>
1607 #include <signal.h>
1608 void catch() { exit(1); }
1609 int main(void) {
1610 signal(SIGILL, catch);
1611 __asm__ volatile ("$3":::"memory"); return 0;
1615 if cc_check && tmp_run ; then
1616 eval _$2=yes
1617 echores "yes"
1618 _optimizing="$_optimizing $2"
1619 return 0
1620 else
1621 eval _$2=no
1622 echores "failed"
1623 echo "It seems that your kernel does not correctly support $2."
1624 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1625 return 1
1628 return 0
1631 extcheck $_mmx "mmx" "emms"
1632 extcheck $_mmxext "mmxext" "sfence"
1633 extcheck $_3dnow "3dnow" "femms"
1634 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1635 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1636 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1637 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1638 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1640 echocheck "mtrr support"
1641 if test "$_mtrr" = kernel_check ; then
1642 _mtrr="yes"
1643 _optimizing="$_optimizing mtrr"
1645 echores "$_mtrr"
1647 if test "$_gcc3_ext" != ""; then
1648 # if we had to disable sse/sse2 because the active kernel does not
1649 # support this instruction set extension, we also have to tell
1650 # gcc3 to not generate sse/sse2 instructions for normal C code
1651 cat > $TMPC << EOF
1652 int main(void) { return 0; }
1654 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1660 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1661 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1662 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1663 subarch_all='X86_32 X86_64 PPC64'
1664 case "$host_arch" in
1665 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1666 arch='x86'
1667 subarch='x86_32'
1668 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1669 iproc=486
1670 proc=i486
1673 if test "$_runtime_cpudetection" = no ; then
1674 case "$pvendor" in
1675 AuthenticAMD)
1676 case "$pfamily" in
1677 3) proc=i386 iproc=386 ;;
1678 4) proc=i486 iproc=486 ;;
1679 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1680 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1681 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1682 proc=k6-3
1683 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1684 proc=geode
1685 elif test "$pmodel" -ge 8; then
1686 proc=k6-2
1687 elif test "$pmodel" -ge 6; then
1688 proc=k6
1689 else
1690 proc=i586
1693 6) iproc=686
1694 # It's a bit difficult to determine the correct type of Family 6
1695 # AMD CPUs just from their signature. Instead, we check directly
1696 # whether it supports SSE.
1697 if test "$_sse" = yes; then
1698 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1699 proc=athlon-xp
1700 else
1701 # Again, gcc treats athlon and athlon-tbird similarly.
1702 proc=athlon
1705 15) iproc=686
1706 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1707 # caught and remedied in the optimization tests below.
1708 proc=k8
1711 *) proc=amdfam10 iproc=686
1712 test $_fast_clz = "auto" && _fast_clz=yes
1714 esac
1716 GenuineIntel)
1717 case "$pfamily" in
1718 3) proc=i386 iproc=386 ;;
1719 4) proc=i486 iproc=486 ;;
1720 5) iproc=586
1721 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1722 proc=pentium-mmx # 4 is desktop, 8 is mobile
1723 else
1724 proc=i586
1727 6) iproc=686
1728 if test "$pmodel" -ge 15; then
1729 proc=core2
1730 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1731 proc=pentium-m
1732 elif test "$pmodel" -ge 7; then
1733 proc=pentium3
1734 elif test "$pmodel" -ge 3; then
1735 proc=pentium2
1736 else
1737 proc=i686
1739 test $_fast_clz = "auto" && _fast_clz=yes
1741 15) iproc=686
1742 # A nocona in 32-bit mode has no more capabilities than a prescott.
1743 if test "$pmodel" -ge 3; then
1744 proc=prescott
1745 else
1746 proc=pentium4
1747 test $_fast_clz = "auto" && _fast_clz=yes
1749 test $_fast_cmov = "auto" && _fast_cmov=no
1751 *) proc=prescott iproc=686 ;;
1752 esac
1754 CentaurHauls)
1755 case "$pfamily" in
1756 5) iproc=586
1757 if test "$pmodel" -ge 8; then
1758 proc=winchip2
1759 elif test "$pmodel" -ge 4; then
1760 proc=winchip-c6
1761 else
1762 proc=i586
1765 6) iproc=686
1766 if test "$pmodel" -ge 9; then
1767 proc=c3-2
1768 else
1769 proc=c3
1770 iproc=586
1773 *) proc=i686 iproc=i686 ;;
1774 esac
1776 unknown)
1777 case "$pfamily" in
1778 3) proc=i386 iproc=386 ;;
1779 4) proc=i486 iproc=486 ;;
1780 *) proc=i586 iproc=586 ;;
1781 esac
1784 proc=i586 iproc=586 ;;
1785 esac
1786 test $_fast_clz = "auto" && _fast_clz=no
1787 fi # test "$_runtime_cpudetection" = no
1790 # check that gcc supports our CPU, if not, fall back to earlier ones
1791 # LGB: check -mcpu and -march swithing step by step with enabling
1792 # to fall back till 386.
1794 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1796 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1797 cpuopt=-mtune
1798 else
1799 cpuopt=-mcpu
1802 echocheck "GCC & CPU optimization abilities"
1803 cat > $TMPC << EOF
1804 int main(void) { return 0; }
1806 if test "$_runtime_cpudetection" = no ; then
1807 if test $cc_vendor != "intel" ; then
1808 cc_check -march=native && proc=native
1810 if test "$proc" = "amdfam10"; then
1811 cc_check -march=$proc $cpuopt=$proc || proc=k8
1813 if test "$proc" = "k8"; then
1814 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1816 if test "$proc" = "athlon-xp"; then
1817 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1819 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1820 cc_check -march=$proc $cpuopt=$proc || proc=k6
1822 if test "$proc" = "k6" || test "$proc" = "c3"; then
1823 if ! cc_check -march=$proc $cpuopt=$proc; then
1824 if cc_check -march=i586 $cpuopt=i686; then
1825 proc=i586-i686
1826 else
1827 proc=i586
1831 if test "$proc" = "prescott" ; then
1832 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1834 if test "$proc" = "core2" ; then
1835 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1837 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
1838 cc_check -march=$proc $cpuopt=$proc || proc=i686
1840 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1841 cc_check -march=$proc $cpuopt=$proc || proc=i586
1843 if test "$proc" = "i586"; then
1844 cc_check -march=$proc $cpuopt=$proc || proc=i486
1846 if test "$proc" = "i486" ; then
1847 cc_check -march=$proc $cpuopt=$proc || proc=i386
1849 if test "$proc" = "i386" ; then
1850 cc_check -march=$proc $cpuopt=$proc || proc=error
1852 if test "$proc" = "error" ; then
1853 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1854 _mcpu=""
1855 _march=""
1856 _optimizing=""
1857 elif test "$proc" = "i586-i686"; then
1858 _march="-march=i586"
1859 _mcpu="$cpuopt=i686"
1860 _optimizing="$proc"
1861 else
1862 _march="-march=$proc"
1863 _mcpu="$cpuopt=$proc"
1864 _optimizing="$proc"
1866 else # if test "$_runtime_cpudetection" = no
1867 _mcpu="$cpuopt=generic"
1868 # at least i486 required, for bswap instruction
1869 _march="-march=i486"
1870 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1871 cc_check $_mcpu || _mcpu=""
1872 cc_check $_march $_mcpu || _march=""
1875 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1876 ## autodetected mcpu/march parameters
1877 if test "$_target" ; then
1878 # TODO: it may be a good idea to check GCC and fall back in all cases
1879 if test "$host_arch" = "i586-i686"; then
1880 _march="-march=i586"
1881 _mcpu="$cpuopt=i686"
1882 else
1883 _march="-march=$host_arch"
1884 _mcpu="$cpuopt=$host_arch"
1887 proc="$host_arch"
1889 case "$proc" in
1890 i386) iproc=386 ;;
1891 i486) iproc=486 ;;
1892 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1893 i686|athlon*|pentium*) iproc=686 ;;
1894 *) iproc=586 ;;
1895 esac
1898 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1899 _fast_cmov="yes"
1900 else
1901 _fast_cmov="no"
1903 test $_fast_clz = "auto" && _fast_clz=yes
1905 echores "$proc"
1908 ia64)
1909 arch='ia64'
1910 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1911 iproc='ia64'
1914 x86_64|amd64)
1915 arch='x86'
1916 subarch='x86_64'
1917 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1918 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1919 iproc='x86_64'
1921 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1922 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1923 cpuopt=-mtune
1924 else
1925 cpuopt=-mcpu
1927 if test "$_runtime_cpudetection" = no ; then
1928 case "$pvendor" in
1929 AuthenticAMD)
1930 case "$pfamily" in
1931 15) proc=k8
1932 test $_fast_clz = "auto" && _fast_clz=no
1934 *) proc=amdfam10;;
1935 esac
1937 GenuineIntel)
1938 case "$pfamily" in
1939 6) proc=core2;;
1941 # 64-bit prescotts exist, but as far as GCC is concerned they
1942 # have the same capabilities as a nocona.
1943 proc=nocona
1944 test $_fast_cmov = "auto" && _fast_cmov=no
1945 test $_fast_clz = "auto" && _fast_clz=no
1947 esac
1950 proc=error;;
1951 esac
1952 fi # test "$_runtime_cpudetection" = no
1954 echocheck "GCC & CPU optimization abilities"
1955 cat > $TMPC << EOF
1956 int main(void) { return 0; }
1958 # This is a stripped-down version of the i386 fallback.
1959 if test "$_runtime_cpudetection" = no ; then
1960 if test $cc_vendor != "intel" ; then
1961 cc_check -march=native && proc=native
1963 # --- AMD processors ---
1964 if test "$proc" = "amdfam10"; then
1965 cc_check -march=$proc $cpuopt=$proc || proc=k8
1967 if test "$proc" = "k8"; then
1968 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1970 # This will fail if gcc version < 3.3, which is ok because earlier
1971 # versions don't really support 64-bit on amd64.
1972 # Is this a valid assumption? -Corey
1973 if test "$proc" = "athlon-xp"; then
1974 cc_check -march=$proc $cpuopt=$proc || proc=error
1976 # --- Intel processors ---
1977 if test "$proc" = "core2"; then
1978 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
1980 if test "$proc" = "x86-64"; then
1981 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1983 if test "$proc" = "nocona"; then
1984 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1986 if test "$proc" = "pentium4"; then
1987 cc_check -march=$proc $cpuopt=$proc || proc=error
1990 _march="-march=$proc"
1991 _mcpu="$cpuopt=$proc"
1992 if test "$proc" = "error" ; then
1993 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1994 _mcpu=""
1995 _march=""
1997 else # if test "$_runtime_cpudetection" = no
1998 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1999 _march="-march=x86-64"
2000 _mcpu="$cpuopt=generic"
2001 cc_check $_mcpu || _mcpu="x86-64"
2002 cc_check $_mcpu || _mcpu=""
2003 cc_check $_march $_mcpu || _march=""
2006 _optimizing="$proc"
2007 test $_fast_cmov = "auto" && _fast_cmov=yes
2008 test $_fast_clz = "auto" && _fast_clz=yes
2010 echores "$proc"
2013 sparc|sparc64)
2014 arch='sparc'
2015 iproc='sparc'
2016 if test "$host_arch" = "sparc64" ; then
2017 _vis='yes'
2018 proc='ultrasparc'
2019 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2020 elif sunos ; then
2021 echocheck "CPU type"
2022 karch=$(uname -m)
2023 case "$(echo $karch)" in
2024 sun4) proc=v7 ;;
2025 sun4c) proc=v7 ;;
2026 sun4d) proc=v8 ;;
2027 sun4m) proc=v8 ;;
2028 sun4u) proc=ultrasparc _vis='yes' ;;
2029 sun4v) proc=v9 ;;
2030 *) proc=v8 ;;
2031 esac
2032 echores "$proc"
2033 else
2034 proc=v8
2036 _mcpu="-mcpu=$proc"
2037 _optimizing="$proc"
2040 arm*)
2041 arch='arm'
2042 iproc='arm'
2045 avr32)
2046 arch='avr32'
2047 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2048 iproc='avr32'
2049 test $_fast_clz = "auto" && _fast_clz=yes
2052 sh|sh4)
2053 arch='sh4'
2054 iproc='sh4'
2057 ppc|ppc64|powerpc|powerpc64)
2058 arch='ppc'
2059 def_dcbzl='#define HAVE_DCBZL 0'
2060 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2061 iproc='ppc'
2063 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2064 subarch='ppc64'
2065 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2067 echocheck "CPU type"
2068 case $system_name in
2069 Linux)
2070 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2071 if test -n "$($_cpuinfo | grep altivec)"; then
2072 test $_altivec = auto && _altivec=yes
2075 Darwin)
2076 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2077 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2078 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2079 test $_altivec = auto && _altivec=yes
2082 NetBSD)
2083 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2084 case $cc_version in
2085 2*|3.0*|3.1*|3.2*|3.3*)
2088 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2089 test $_altivec = auto && _altivec=yes
2092 esac
2094 AIX)
2095 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2097 esac
2098 if test "$_altivec" = yes; then
2099 echores "$proc altivec"
2100 else
2101 _altivec=no
2102 echores "$proc"
2105 echocheck "GCC & CPU optimization abilities"
2107 if test -n "$proc"; then
2108 case "$proc" in
2109 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2110 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2111 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2112 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2113 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2114 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2115 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2116 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2117 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2118 *) ;;
2119 esac
2120 # gcc 3.1(.1) and up supports 7400 and 7450
2121 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2122 case "$proc" in
2123 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2124 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2125 *) ;;
2126 esac
2128 # gcc 3.2 and up supports 970
2129 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2130 case "$proc" in
2131 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2132 def_dcbzl='#define HAVE_DCBZL 1' ;;
2133 *) ;;
2134 esac
2136 # gcc 3.3 and up supports POWER4
2137 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2138 case "$proc" in
2139 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2140 *) ;;
2141 esac
2143 # gcc 3.4 and up supports 440*
2144 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2145 case "$proc" in
2146 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2147 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2148 *) ;;
2149 esac
2151 # gcc 4.0 and up supports POWER5
2152 if test "$_cc_major" -ge "4"; then
2153 case "$proc" in
2154 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2155 *) ;;
2156 esac
2160 if test -n "$_mcpu"; then
2161 _optimizing=$(echo $_mcpu | cut -c 8-)
2162 echores "$_optimizing"
2163 else
2164 echores "none"
2167 test $_fast_clz = "auto" && _fast_clz=yes
2171 alpha*)
2172 arch='alpha'
2173 iproc='alpha'
2174 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2176 echocheck "CPU type"
2177 cat > $TMPC << EOF
2178 int main(void) {
2179 unsigned long ver, mask;
2180 __asm__ ("implver %0" : "=r" (ver));
2181 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2182 printf("%ld-%x\n", ver, ~mask);
2183 return 0;
2186 $_cc -o "$TMPEXE" "$TMPC"
2187 case $("$TMPEXE") in
2189 0-0) proc="ev4"; _mvi="0";;
2190 1-0) proc="ev5"; _mvi="0";;
2191 1-1) proc="ev56"; _mvi="0";;
2192 1-101) proc="pca56"; _mvi="1";;
2193 2-303) proc="ev6"; _mvi="1";;
2194 2-307) proc="ev67"; _mvi="1";;
2195 2-1307) proc="ev68"; _mvi="1";;
2196 esac
2197 echores "$proc"
2199 echocheck "GCC & CPU optimization abilities"
2200 if test "$proc" = "ev68" ; then
2201 cc_check -mcpu=$proc || proc=ev67
2203 if test "$proc" = "ev67" ; then
2204 cc_check -mcpu=$proc || proc=ev6
2206 _mcpu="-mcpu=$proc"
2207 echores "$proc"
2209 test $_fast_clz = "auto" && _fast_clz=yes
2211 _optimizing="$proc"
2214 mips)
2215 arch='mips'
2216 iproc='mips'
2218 if irix ; then
2219 echocheck "CPU type"
2220 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2221 case "$(echo $proc)" in
2222 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2223 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2224 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2225 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2226 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2227 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2228 esac
2229 # gcc < 3.x does not support -mtune.
2230 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2231 _mcpu=''
2233 echores "$proc"
2236 test $_fast_clz = "auto" && _fast_clz=yes
2240 hppa)
2241 arch='pa_risc'
2242 iproc='PA-RISC'
2245 s390)
2246 arch='s390'
2247 iproc='390'
2250 s390x)
2251 arch='s390x'
2252 iproc='390x'
2255 vax)
2256 arch='vax'
2257 iproc='vax'
2260 xtensa)
2261 arch='xtensa'
2262 iproc='xtensa'
2265 generic)
2266 arch='generic'
2270 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2271 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2272 die "unsupported architecture $host_arch"
2274 esac # case "$host_arch" in
2276 if test "$_runtime_cpudetection" = yes ; then
2277 if x86 ; then
2278 test "$_cmov" != no && _cmov=yes
2279 x86_32 && _cmov=no
2280 test "$_mmx" != no && _mmx=yes
2281 test "$_3dnow" != no && _3dnow=yes
2282 test "$_3dnowext" != no && _3dnowext=yes
2283 test "$_mmxext" != no && _mmxext=yes
2284 test "$_sse" != no && _sse=yes
2285 test "$_sse2" != no && _sse2=yes
2286 test "$_ssse3" != no && _ssse3=yes
2287 test "$_mtrr" != no && _mtrr=yes
2289 if ppc; then
2290 _altivec=yes
2295 # endian testing
2296 echocheck "byte order"
2297 if test "$_big_endian" = auto ; then
2298 cat > $TMPC <<EOF
2299 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2300 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2301 int main(void) { return (int)ascii_name; }
2303 if cc_check ; then
2304 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2305 _big_endian=yes
2306 else
2307 _big_endian=no
2309 else
2310 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2313 if test "$_big_endian" = yes ; then
2314 _byte_order='big-endian'
2315 def_words_endian='#define WORDS_BIGENDIAN 1'
2316 def_bigendian='#define HAVE_BIGENDIAN 1'
2317 else
2318 _byte_order='little-endian'
2319 def_words_endian='#undef WORDS_BIGENDIAN'
2320 def_bigendian='#define HAVE_BIGENDIAN 0'
2322 echores "$_byte_order"
2325 echocheck "extern symbol prefix"
2326 cat > $TMPC << EOF
2327 int ff_extern;
2329 cc_check -c || die "Symbol mangling check failed."
2330 sym=$($_nm -P -g $TMPEXE)
2331 extern_prefix=${sym%%ff_extern*}
2332 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2333 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2334 echores $extern_prefix
2337 echocheck "assembler support of -pipe option"
2338 cat > $TMPC << EOF
2339 int main(void) { return 0; }
2341 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2342 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2345 echocheck "compiler support of named assembler arguments"
2346 _named_asm_args=yes
2347 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2348 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2349 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2350 _named_asm_args=no
2351 def_named_asm_args="#undef NAMED_ASM_ARGS"
2353 echores $_named_asm_args
2356 if darwin && test "$cc_vendor" = "gnu" ; then
2357 echocheck "GCC support of -mstackrealign"
2358 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2359 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2360 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2361 # wrong code with this flag, but this can be worked around by adding
2362 # -fno-unit-at-a-time as described in the blog post at
2363 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2364 cat > $TMPC << EOF
2365 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2366 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2368 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2369 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2370 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2371 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2372 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2375 # Checking for CFLAGS
2376 _install_strip="-s"
2377 if test "$_profile" != "" || test "$_debug" != "" ; then
2378 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2379 _install_strip=
2380 elif test -z "$CFLAGS" ; then
2381 if test "$cc_vendor" = "intel" ; then
2382 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2383 elif test "$cc_vendor" = "sun" ; then
2384 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2385 elif test "$cc_vendor" != "gnu" ; then
2386 CFLAGS="-O2 $_march $_mcpu $_pipe"
2387 else
2388 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2389 extra_ldflags="$extra_ldflags -ffast-math"
2391 else
2392 _warn_CFLAGS=yes
2395 cat > $TMPC << EOF
2396 int main(void) { return 0; }
2398 if test "$cc_vendor" = "gnu" ; then
2399 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2400 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2401 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2402 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2403 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2404 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2405 else
2406 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2409 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2410 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2413 if test -n "$LDFLAGS" ; then
2414 extra_ldflags="$extra_ldflags $LDFLAGS"
2415 _warn_CFLAGS=yes
2416 elif test "$cc_vendor" = "intel" ; then
2417 extra_ldflags="$extra_ldflags -i-static"
2419 if test -n "$CPPFLAGS" ; then
2420 extra_cflags="$extra_cflags $CPPFLAGS"
2421 _warn_CFLAGS=yes
2426 if x86_32 ; then
2427 # Checking assembler (_as) compatibility...
2428 # Added workaround for older as that reads from stdin by default - atmos
2429 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2430 echocheck "assembler ($_as $as_version)"
2432 _pref_as_version='2.9.1'
2433 echo 'nop' > $TMPS
2434 if test "$_mmx" = yes ; then
2435 echo 'emms' >> $TMPS
2437 if test "$_3dnow" = yes ; then
2438 _pref_as_version='2.10.1'
2439 echo 'femms' >> $TMPS
2441 if test "$_3dnowext" = yes ; then
2442 _pref_as_version='2.10.1'
2443 echo 'pswapd %mm0, %mm0' >> $TMPS
2445 if test "$_mmxext" = yes ; then
2446 _pref_as_version='2.10.1'
2447 echo 'movntq %mm0, (%eax)' >> $TMPS
2449 if test "$_sse" = yes ; then
2450 _pref_as_version='2.10.1'
2451 echo 'xorps %xmm0, %xmm0' >> $TMPS
2453 #if test "$_sse2" = yes ; then
2454 # _pref_as_version='2.11'
2455 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2457 if test "$_cmov" = yes ; then
2458 _pref_as_version='2.10.1'
2459 echo 'cmovb %eax, %ebx' >> $TMPS
2461 if test "$_ssse3" = yes ; then
2462 _pref_as_version='2.16.92'
2463 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2465 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2467 if test "$as_verc_fail" != yes ; then
2468 echores "ok"
2469 else
2470 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2471 echores "failed"
2472 die "obsolete binutils version"
2475 fi #if x86_32
2477 echocheck ".align is a power of two"
2478 if test "$_asmalign_pot" = auto ; then
2479 _asmalign_pot=no
2480 cat > $TMPC << EOF
2481 int main(void) { __asm__ (".align 3"); return 0; }
2483 cc_check && _asmalign_pot=yes
2485 if test "$_asmalign_pot" = "yes" ; then
2486 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2487 else
2488 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2490 echores $_asmalign_pot
2492 if x86 ; then
2493 echocheck "10 assembler operands"
2494 ten_operands=no
2495 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2496 cat > $TMPC << EOF
2497 int main(void) {
2498 int x=0;
2499 __asm__ volatile(
2501 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2503 return 0;
2506 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2507 echores $ten_operands
2509 echocheck "ebx availability"
2510 ebx_available=no
2511 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2512 cat > $TMPC << EOF
2513 int main(void) {
2514 int x;
2515 __asm__ volatile(
2516 "xor %0, %0"
2517 :"=b"(x)
2518 // just adding ebx to clobber list seems unreliable with some
2519 // compilers, e.g. Haiku's gcc 2.95
2521 // and the above check does not work for OSX 64 bit...
2522 __asm__ volatile("":::"%ebx");
2523 return 0;
2526 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2527 echores $ebx_available
2529 echocheck "PIC"
2530 pic=no
2531 cat > $TMPC << EOF
2532 int main(void) {
2533 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2534 #error PIC not enabled
2535 #endif
2536 return 0;
2539 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2540 echores $pic
2542 echocheck "yasm"
2543 if test -z "$YASMFLAGS" ; then
2544 if darwin ; then
2545 x86_64 && objformat="macho64" || objformat="macho"
2546 elif win32 ; then
2547 objformat="win32"
2548 else
2549 objformat="elf"
2551 # currently tested for Linux x86, x86_64
2552 YASMFLAGS="-f $objformat"
2553 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2554 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2555 case "$objformat" in
2556 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2557 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2558 esac
2559 else
2560 _warn_CFLAGS=yes
2563 echo "pabsw xmm0, xmm0" > $TMPS
2564 yasm_check || _yasm=""
2565 if test $_yasm ; then
2566 def_yasm='#define HAVE_YASM 1'
2567 have_yasm="yes"
2568 echores "$_yasm"
2569 else
2570 def_yasm='#define HAVE_YASM 0'
2571 have_yasm="no"
2572 echores "no"
2575 echocheck "bswap"
2576 def_bswap='#define HAVE_BSWAP 0'
2577 echo 'bswap %eax' > $TMPS
2578 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2579 echores "$bswap"
2580 fi #if x86
2583 #FIXME: This should happen before the check for CFLAGS..
2584 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2585 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2587 # check if AltiVec is supported by the compiler, and how to enable it
2588 echocheck "GCC AltiVec flags"
2589 cat > $TMPC << EOF
2590 int main(void) { return 0; }
2592 if $(cc_check -maltivec -mabi=altivec) ; then
2593 _altivec_gcc_flags="-maltivec -mabi=altivec"
2594 # check if <altivec.h> should be included
2595 cat > $TMPC << EOF
2596 #include <altivec.h>
2597 int main(void) { return 0; }
2599 if $(cc_check $_altivec_gcc_flags) ; then
2600 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2601 inc_altivec_h='#include <altivec.h>'
2602 else
2603 cat > $TMPC << EOF
2604 int main(void) { return 0; }
2606 if $(cc_check -faltivec) ; then
2607 _altivec_gcc_flags="-faltivec"
2608 else
2609 _altivec=no
2610 _altivec_gcc_flags="none, AltiVec disabled"
2614 echores "$_altivec_gcc_flags"
2616 # check if the compiler supports braces for vector declarations
2617 cat > $TMPC << EOF
2618 $inc_altivec_h
2619 int main(void) { (vector int) {1}; return 0; }
2621 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2623 # Disable runtime cpudetection if we cannot generate AltiVec code or
2624 # AltiVec is disabled by the user.
2625 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2626 && _runtime_cpudetection=no
2628 # Show that we are optimizing for AltiVec (if enabled and supported).
2629 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2630 && _optimizing="$_optimizing altivec"
2632 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2633 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2636 if ppc ; then
2637 def_xform_asm='#define HAVE_XFORM_ASM 0'
2638 xform_asm=no
2639 echocheck "XFORM ASM support"
2640 cat > $TMPC << EOF
2641 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2643 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2644 echores "$xform_asm"
2647 if arm ; then
2648 echocheck "ARM pld instruction"
2649 cat > $TMPC << EOF
2650 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2652 pld=no
2653 cc_check && pld=yes
2654 echores "$pld"
2656 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2657 if test $_armv5te = "auto" ; then
2658 cat > $TMPC << EOF
2659 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2661 _armv5te=no
2662 cc_check && _armv5te=yes
2664 echores "$_armv5te"
2666 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2668 echocheck "ARMv6 (SIMD instructions)"
2669 if test $_armv6 = "auto" ; then
2670 cat > $TMPC << EOF
2671 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2673 _armv6=no
2674 cc_check && _armv6=yes
2676 echores "$_armv6"
2678 echocheck "ARMv6t2 (SIMD instructions)"
2679 if test $_armv6t2 = "auto" ; then
2680 cat > $TMPC << EOF
2681 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2683 _armv6t2=no
2684 cc_check && _armv6t2=yes
2686 echores "$_armv6"
2688 echocheck "ARM VFP"
2689 if test $_armvfp = "auto" ; then
2690 cat > $TMPC << EOF
2691 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2693 _armvfp=no
2694 cc_check && _armvfp=yes
2696 echores "$_armvfp"
2698 echocheck "ARM NEON"
2699 if test $neon = "auto" ; then
2700 cat > $TMPC << EOF
2701 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2703 neon=no
2704 cc_check && neon=yes
2706 echores "$neon"
2708 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2709 if test $_iwmmxt = "auto" ; then
2710 cat > $TMPC << EOF
2711 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2713 _iwmmxt=no
2714 cc_check && _iwmmxt=yes
2716 echores "$_iwmmxt"
2719 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'
2720 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2721 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2722 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2723 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2724 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2725 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2726 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2727 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2728 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2729 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2730 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2731 test "$pld" = yes && cpuexts="PLD $cpuexts"
2732 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2733 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2734 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2735 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2736 test "$neon" = yes && cpuexts="NEON $cpuexts"
2737 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2738 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2739 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2741 # Checking kernel version...
2742 if x86_32 && linux ; then
2743 _k_verc_problem=no
2744 kernel_version=$(uname -r 2>&1)
2745 echocheck "$system_name kernel version"
2746 case "$kernel_version" in
2747 '') kernel_version="?.??"; _k_verc_fail=yes;;
2748 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2749 _k_verc_problem=yes;;
2750 esac
2751 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2752 _k_verc_fail=yes
2754 if test "$_k_verc_fail" ; then
2755 echores "$kernel_version, fail"
2756 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2757 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2758 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2759 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2760 echo "2.2.x you must upgrade it to get SSE support!"
2761 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2762 else
2763 echores "$kernel_version, ok"
2767 ######################
2768 # MAIN TESTS GO HERE #
2769 ######################
2772 echocheck "-lposix"
2773 cat > $TMPC <<EOF
2774 int main(void) { return 0; }
2776 if cc_check -lposix ; then
2777 extra_ldflags="$extra_ldflags -lposix"
2778 echores "yes"
2779 else
2780 echores "no"
2783 echocheck "-lm"
2784 cat > $TMPC <<EOF
2785 int main(void) { return 0; }
2787 if cc_check -lm ; then
2788 _ld_lm="-lm"
2789 echores "yes"
2790 else
2791 _ld_lm=""
2792 echores "no"
2796 echocheck "langinfo"
2797 if test "$_langinfo" = auto ; then
2798 cat > $TMPC <<EOF
2799 #include <langinfo.h>
2800 int main(void) { nl_langinfo(CODESET); return 0; }
2802 _langinfo=no
2803 cc_check && _langinfo=yes
2805 if test "$_langinfo" = yes ; then
2806 def_langinfo='#define HAVE_LANGINFO 1'
2807 else
2808 def_langinfo='#undef HAVE_LANGINFO'
2810 echores "$_langinfo"
2813 echocheck "translation support"
2814 if test "$_translation" = yes; then
2815 def_translation="#define CONFIG_TRANSLATION 1"
2816 else
2817 def_translation="#undef CONFIG_TRANSLATION"
2819 echores "$_translation"
2821 echocheck "language"
2822 # Set preferred languages, "all" uses English as main language.
2823 test -z "$language" && language=$LINGUAS
2824 test -z "$language_doc" && language_doc=$language
2825 test -z "$language_man" && language_man=$language
2826 test -z "$language_msg" && language_msg="all"
2827 language_doc=$(echo $language_doc | tr , " ")
2828 language_man=$(echo $language_man | tr , " ")
2829 language_msg=$(echo $language_msg | tr , " ")
2831 test "$language_doc" = "all" && language_doc=$doc_lang_all
2832 test "$language_man" = "all" && language_man=$man_lang_all
2833 test "$language_msg" = "all" && language_msg=$msg_lang_all
2835 if test "$_translation" != yes ; then
2836 language_msg=""
2839 # Prune non-existing translations from language lists.
2840 # Set message translation to the first available language.
2841 # Fall back on English.
2842 for lang in $language_doc ; do
2843 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2844 done
2845 language_doc=$tmp_language_doc
2846 test -z "$language_doc" && language_doc=en
2848 for lang in $language_man ; do
2849 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2850 done
2851 language_man=$tmp_language_man
2852 test -z "$language_man" && language_man=en
2854 for lang in $language_msg ; do
2855 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2856 done
2857 language_msg=$tmp_language_msg
2859 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2862 echocheck "enable sighandler"
2863 if test "$_sighandler" = yes ; then
2864 def_sighandler='#define CONFIG_SIGHANDLER 1'
2865 else
2866 def_sighandler='#undef CONFIG_SIGHANDLER'
2868 echores "$_sighandler"
2870 echocheck "runtime cpudetection"
2871 if test "$_runtime_cpudetection" = yes ; then
2872 _optimizing="Runtime CPU-Detection enabled"
2873 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2874 else
2875 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2877 echores "$_runtime_cpudetection"
2880 echocheck "restrict keyword"
2881 for restrict_keyword in restrict __restrict __restrict__ ; do
2882 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2883 if cc_check; then
2884 def_restrict_keyword=$restrict_keyword
2885 break;
2887 done
2888 if [ -n "$def_restrict_keyword" ]; then
2889 echores "$def_restrict_keyword"
2890 else
2891 echores "none"
2893 # Avoid infinite recursion loop ("#define restrict restrict")
2894 if [ "$def_restrict_keyword" != "restrict" ]; then
2895 def_restrict_keyword="#define restrict $def_restrict_keyword"
2896 else
2897 def_restrict_keyword=""
2901 echocheck "__builtin_expect"
2902 # GCC branch prediction hint
2903 cat > $TMPC << EOF
2904 int foo(int a) {
2905 a = __builtin_expect(a, 10);
2906 return a == 10 ? 0 : 1;
2908 int main(void) { return foo(10) && foo(0); }
2910 _builtin_expect=no
2911 cc_check && _builtin_expect=yes
2912 if test "$_builtin_expect" = yes ; then
2913 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2914 else
2915 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2917 echores "$_builtin_expect"
2920 echocheck "kstat"
2921 cat > $TMPC << EOF
2922 #include <kstat.h>
2923 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2925 _kstat=no
2926 cc_check -lkstat && _kstat=yes
2927 if test "$_kstat" = yes ; then
2928 def_kstat="#define HAVE_LIBKSTAT 1"
2929 extra_ldflags="$extra_ldflags -lkstat"
2930 else
2931 def_kstat="#undef HAVE_LIBKSTAT"
2933 echores "$_kstat"
2936 echocheck "posix4"
2937 # required for nanosleep on some systems
2938 cat > $TMPC << EOF
2939 #include <time.h>
2940 int main(void) { (void) nanosleep(0, 0); return 0; }
2942 _posix4=no
2943 cc_check -lposix4 && _posix4=yes
2944 if test "$_posix4" = yes ; then
2945 extra_ldflags="$extra_ldflags -lposix4"
2947 echores "$_posix4"
2949 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2950 echocheck $func
2951 cat > $TMPC << EOF
2952 #include <math.h>
2953 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2955 eval _$func=no
2956 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2957 if eval test "x\$_$func" = "xyes"; then
2958 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2959 echores yes
2960 else
2961 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2962 echores no
2964 done
2967 echocheck "mkstemp"
2968 cat > $TMPC << EOF
2969 #include <stdlib.h>
2970 int main(void) { char a; mkstemp(&a); return 0; }
2972 _mkstemp=no
2973 cc_check && _mkstemp=yes
2974 if test "$_mkstemp" = yes ; then
2975 def_mkstemp='#define HAVE_MKSTEMP 1'
2976 else
2977 def_mkstemp='#undef HAVE_MKSTEMP'
2979 echores "$_mkstemp"
2982 echocheck "nanosleep"
2983 # also check for nanosleep
2984 cat > $TMPC << EOF
2985 #include <time.h>
2986 int main(void) { (void) nanosleep(0, 0); return 0; }
2988 _nanosleep=no
2989 cc_check && _nanosleep=yes
2990 if test "$_nanosleep" = yes ; then
2991 def_nanosleep='#define HAVE_NANOSLEEP 1'
2992 else
2993 def_nanosleep='#undef HAVE_NANOSLEEP'
2995 echores "$_nanosleep"
2998 echocheck "socklib"
2999 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3000 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3001 cat > $TMPC << EOF
3002 #include <netdb.h>
3003 #include <sys/socket.h>
3004 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3006 _socklib=no
3007 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3008 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3009 done
3010 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3011 if test $_winsock2_h = auto ; then
3012 _winsock2_h=no
3013 cat > $TMPC << EOF
3014 #include <winsock2.h>
3015 int main(void) { (void) gethostbyname(0); return 0; }
3017 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3019 test "$_ld_sock" && res_comment="using $_ld_sock"
3020 echores "$_socklib"
3023 if test $_winsock2_h = yes ; then
3024 _ld_sock="-lws2_32"
3025 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3026 else
3027 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3031 echocheck "arpa/inet.h"
3032 arpa_inet_h=no
3033 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3034 cat > $TMPC << EOF
3035 #include <arpa/inet.h>
3036 int main(void) { return 0; }
3038 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3039 echores "$arpa_inet_h"
3042 echocheck "inet_pton()"
3043 def_inet_pton='#define HAVE_INET_PTON 0'
3044 inet_pton=no
3045 cat > $TMPC << EOF
3046 #include <sys/types.h>
3047 #include <sys/socket.h>
3048 #include <arpa/inet.h>
3049 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3051 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3052 cc_check $_ld_tmp && inet_pton=yes && break
3053 done
3054 if test $inet_pton = yes ; then
3055 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3056 def_inet_pton='#define HAVE_INET_PTON 1'
3058 echores "$inet_pton"
3061 echocheck "inet_aton()"
3062 def_inet_aton='#define HAVE_INET_ATON 0'
3063 inet_aton=no
3064 cat > $TMPC << EOF
3065 #include <sys/types.h>
3066 #include <sys/socket.h>
3067 #include <arpa/inet.h>
3068 int main(void) { (void) inet_aton(0, 0); return 0; }
3070 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3071 cc_check $_ld_tmp && inet_aton=yes && break
3072 done
3073 if test $inet_aton = yes ; then
3074 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3075 def_inet_aton='#define HAVE_INET_ATON 1'
3077 echores "$inet_aton"
3080 echocheck "socklen_t"
3081 _socklen_t=no
3082 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3083 cat > $TMPC << EOF
3084 #include <$header>
3085 int main(void) { socklen_t v = 0; return v; }
3087 cc_check && _socklen_t=yes && break
3088 done
3089 if test "$_socklen_t" = yes ; then
3090 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3091 else
3092 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3094 echores "$_socklen_t"
3097 echocheck "closesocket()"
3098 _closesocket=no
3099 cat > $TMPC << EOF
3100 #include <winsock2.h>
3101 int main(void) { closesocket(~0); return 0; }
3103 cc_check $_ld_sock && _closesocket=yes
3104 if test "$_closesocket" = yes ; then
3105 def_closesocket='#define HAVE_CLOSESOCKET 1'
3106 else
3107 def_closesocket='#define HAVE_CLOSESOCKET 0'
3109 echores "$_closesocket"
3112 echocheck "network"
3113 test $_winsock2_h = no && test $inet_pton = no &&
3114 test $inet_aton = no && _network=no
3115 if test "$_network" = yes ; then
3116 def_network='#define CONFIG_NETWORK 1'
3117 extra_ldflags="$extra_ldflags $_ld_sock"
3118 inputmodules="network $inputmodules"
3119 else
3120 noinputmodules="network $noinputmodules"
3121 def_network='#undef CONFIG_NETWORK'
3122 _ftp=no
3124 echores "$_network"
3127 echocheck "inet6"
3128 if test "$_inet6" = auto ; then
3129 cat > $TMPC << EOF
3130 #include <sys/types.h>
3131 #if !defined(_WIN32) || defined(__CYGWIN__)
3132 #include <sys/socket.h>
3133 #include <netinet/in.h>
3134 #else
3135 #include <ws2tcpip.h>
3136 #endif
3137 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3139 _inet6=no
3140 if cc_check $_ld_sock ; then
3141 _inet6=yes
3144 if test "$_inet6" = yes ; then
3145 def_inet6='#define HAVE_AF_INET6 1'
3146 else
3147 def_inet6='#undef HAVE_AF_INET6'
3149 echores "$_inet6"
3152 echocheck "gethostbyname2"
3153 if test "$_gethostbyname2" = auto ; then
3154 cat > $TMPC << EOF
3155 #include <sys/types.h>
3156 #include <sys/socket.h>
3157 #include <netdb.h>
3158 int main(void) { gethostbyname2("", AF_INET); return 0; }
3160 _gethostbyname2=no
3161 if cc_check ; then
3162 _gethostbyname2=yes
3165 if test "$_gethostbyname2" = yes ; then
3166 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3167 else
3168 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3170 echores "$_gethostbyname2"
3173 echocheck "inttypes.h (required)"
3174 cat > $TMPC << EOF
3175 #include <inttypes.h>
3176 int main(void) { return 0; }
3178 _inttypes=no
3179 cc_check && _inttypes=yes
3180 echores "$_inttypes"
3182 if test "$_inttypes" = no ; then
3183 echocheck "bitypes.h (inttypes.h predecessor)"
3184 cat > $TMPC << EOF
3185 #include <sys/bitypes.h>
3186 int main(void) { return 0; }
3188 cc_check && _inttypes=yes
3189 if test "$_inttypes" = yes ; then
3190 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."
3191 else
3192 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3197 echocheck "int_fastXY_t in inttypes.h"
3198 cat > $TMPC << EOF
3199 #include <inttypes.h>
3200 int main(void) {
3201 volatile int_fast16_t v= 0;
3202 return v; }
3204 _fast_inttypes=no
3205 cc_check && _fast_inttypes=yes
3206 if test "$_fast_inttypes" = no ; then
3207 def_fast_inttypes='
3208 typedef signed char int_fast8_t;
3209 typedef signed int int_fast16_t;
3210 typedef signed int int_fast32_t;
3211 typedef signed long long int_fast64_t;
3212 typedef unsigned char uint_fast8_t;
3213 typedef unsigned int uint_fast16_t;
3214 typedef unsigned int uint_fast32_t;
3215 typedef unsigned long long uint_fast64_t;'
3217 echores "$_fast_inttypes"
3220 echocheck "malloc.h"
3221 cat > $TMPC << EOF
3222 #include <malloc.h>
3223 int main(void) { (void) malloc(0); return 0; }
3225 _malloc=no
3226 cc_check && _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 cat > $TMPC << EOF
3469 #include <$_soundcard_header>
3470 int main(void) { return 0; }
3472 cc_check && _soundcard_h=yes && res_comment="$_soundcard_header" && break
3473 done
3475 if test "$_soundcard_h" = yes ; then
3476 if test $_soundcard_header = "sys/soundcard.h"; then
3477 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3478 else
3479 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3482 echores "$_soundcard_h"
3485 echocheck "sys/dvdio.h"
3486 cat > $TMPC << EOF
3487 #include <unistd.h>
3488 #include <sys/dvdio.h>
3489 int main(void) { return 0; }
3491 _dvdio=no
3492 cc_check && _dvdio=yes
3493 if test "$_dvdio" = yes ; then
3494 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3495 else
3496 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3498 echores "$_dvdio"
3501 echocheck "sys/cdio.h"
3502 cat > $TMPC << EOF
3503 #include <unistd.h>
3504 #include <sys/cdio.h>
3505 int main(void) { return 0; }
3507 _cdio=no
3508 cc_check && _cdio=yes
3509 if test "$_cdio" = yes ; then
3510 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3511 else
3512 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3514 echores "$_cdio"
3517 echocheck "linux/cdrom.h"
3518 cat > $TMPC << EOF
3519 #include <sys/types.h>
3520 #include <linux/cdrom.h>
3521 int main(void) { return 0; }
3523 _cdrom=no
3524 cc_check && _cdrom=yes
3525 if test "$_cdrom" = yes ; then
3526 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3527 else
3528 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3530 echores "$_cdrom"
3533 echocheck "dvd.h"
3534 cat > $TMPC << EOF
3535 #include <dvd.h>
3536 int main(void) { return 0; }
3538 _dvd=no
3539 cc_check && _dvd=yes
3540 if test "$_dvd" = yes ; then
3541 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3542 else
3543 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3545 echores "$_dvd"
3548 if bsdos; then
3549 echocheck "BSDI dvd.h"
3550 cat > $TMPC << EOF
3551 #include <dvd.h>
3552 int main(void) { return 0; }
3554 _bsdi_dvd=no
3555 cc_check && _bsdi_dvd=yes
3556 if test "$_bsdi_dvd" = yes ; then
3557 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3558 else
3559 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3561 echores "$_bsdi_dvd"
3562 fi #if bsdos
3565 if hpux; then
3566 # also used by AIX, but AIX does not support VCD and/or libdvdread
3567 echocheck "HP-UX SCSI header"
3568 cat > $TMPC << EOF
3569 #include <sys/scsi.h>
3570 int main(void) { return 0; }
3572 _hpux_scsi_h=no
3573 cc_check && _hpux_scsi_h=yes
3574 if test "$_hpux_scsi_h" = yes ; then
3575 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3576 else
3577 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3579 echores "$_hpux_scsi_h"
3580 fi #if hpux
3583 if sunos; then
3584 echocheck "userspace SCSI headers (Solaris)"
3585 cat > $TMPC << EOF
3586 #include <unistd.h>
3587 #include <stropts.h>
3588 #include <sys/scsi/scsi_types.h>
3589 #include <sys/scsi/impl/uscsi.h>
3590 int main(void) { return 0; }
3592 _sol_scsi_h=no
3593 cc_check && _sol_scsi_h=yes
3594 if test "$_sol_scsi_h" = yes ; then
3595 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3596 else
3597 def_sol_scsi_h='#undef SOLARIS_USCSI'
3599 echores "$_sol_scsi_h"
3600 fi #if sunos
3603 echocheck "termcap"
3604 if test "$_termcap" = auto ; then
3605 cat > $TMPC <<EOF
3606 #include <stddef.h>
3607 #include <term.h>
3608 int main(void) { tgetent(NULL, NULL); return 0; }
3610 _termcap=no
3611 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3612 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3613 && _termcap=yes && break
3614 done
3616 if test "$_termcap" = yes ; then
3617 def_termcap='#define HAVE_TERMCAP 1'
3618 test $_ld_tmp && res_comment="using $_ld_tmp"
3619 else
3620 def_termcap='#undef HAVE_TERMCAP'
3622 echores "$_termcap"
3625 echocheck "termios"
3626 def_termios='#undef HAVE_TERMIOS'
3627 def_termios_h='#undef HAVE_TERMIOS_H'
3628 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3629 if test "$_termios" = auto ; then
3630 _termios=no
3631 for _termios_header in "termios.h" "sys/termios.h"; do
3632 cat > $TMPC <<EOF
3633 #include <$_termios_header>
3634 int main(void) { return 0; }
3636 cc_check && _termios=yes && res_comment="using $_termios_header" && break
3637 done
3640 if test "$_termios" = yes ; then
3641 def_termios='#define HAVE_TERMIOS 1'
3642 if test "$_termios_header" = "termios.h" ; then
3643 def_termios_h='#define HAVE_TERMIOS_H 1'
3644 else
3645 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3648 echores "$_termios"
3651 echocheck "shm"
3652 if test "$_shm" = auto ; then
3653 cat > $TMPC << EOF
3654 #include <sys/types.h>
3655 #include <sys/shm.h>
3656 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3658 _shm=no
3659 cc_check && _shm=yes
3661 if test "$_shm" = yes ; then
3662 def_shm='#define HAVE_SHM 1'
3663 else
3664 def_shm='#undef HAVE_SHM'
3666 echores "$_shm"
3669 echocheck "strsep()"
3670 cat > $TMPC << EOF
3671 #include <string.h>
3672 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3674 _strsep=no
3675 cc_check && _strsep=yes
3676 if test "$_strsep" = yes ; then
3677 def_strsep='#define HAVE_STRSEP 1'
3678 _need_strsep=no
3679 else
3680 def_strsep='#undef HAVE_STRSEP'
3681 _need_strsep=yes
3683 echores "$_strsep"
3686 echocheck "vsscanf()"
3687 cat > $TMPC << EOF
3688 #define _ISOC99_SOURCE
3689 #include <stdarg.h>
3690 #include <stdio.h>
3691 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3693 _vsscanf=no
3694 cc_check && _vsscanf=yes
3695 if test "$_vsscanf" = yes ; then
3696 def_vsscanf='#define HAVE_VSSCANF 1'
3697 _need_vsscanf=no
3698 else
3699 def_vsscanf='#undef HAVE_VSSCANF'
3700 _need_vsscanf=yes
3702 echores "$_vsscanf"
3705 echocheck "swab()"
3706 cat > $TMPC << EOF
3707 #define _XOPEN_SOURCE 600
3708 #include <unistd.h>
3709 int main(void) { swab(0, 0, 0); return 0; }
3711 _swab=no
3712 cc_check && _swab=yes
3713 if test "$_swab" = yes ; then
3714 def_swab='#define HAVE_SWAB 1'
3715 _need_swab=no
3716 else
3717 def_swab='#undef HAVE_SWAB'
3718 _need_swab=yes
3720 echores "$_swab"
3722 echocheck "POSIX select()"
3723 cat > $TMPC << EOF
3724 #include <stdio.h>
3725 #include <stdlib.h>
3726 #include <sys/types.h>
3727 #include <string.h>
3728 #include <sys/time.h>
3729 #include <unistd.h>
3730 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3732 _posix_select=no
3733 def_posix_select='#undef HAVE_POSIX_SELECT'
3734 #select() of kLIBC (OS/2) supports socket only
3735 ! os2 && cc_check && _posix_select=yes \
3736 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3737 echores "$_posix_select"
3740 echocheck "audio select()"
3741 if test "$_select" = no ; then
3742 def_select='#undef HAVE_AUDIO_SELECT'
3743 elif test "$_select" = yes ; then
3744 def_select='#define HAVE_AUDIO_SELECT 1'
3746 echores "$_select"
3749 echocheck "gettimeofday()"
3750 cat > $TMPC << EOF
3751 #include <sys/time.h>
3752 int main(void) {struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz); return 0; }
3754 _gettimeofday=no
3755 cc_check && _gettimeofday=yes
3756 if test "$_gettimeofday" = yes ; then
3757 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3758 _need_gettimeofday=no
3759 else
3760 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3761 _need_gettimeofday=yes
3763 echores "$_gettimeofday"
3766 echocheck "glob()"
3767 cat > $TMPC << EOF
3768 #include <stdio.h>
3769 #include <glob.h>
3770 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3772 _glob=no
3773 cc_check && _glob=yes
3774 if test "$_glob" = yes ; then
3775 def_glob='#define HAVE_GLOB 1'
3776 _need_glob=no
3777 else
3778 def_glob='#undef HAVE_GLOB'
3779 _need_glob=yes
3781 echores "$_glob"
3784 echocheck "setenv()"
3785 cat > $TMPC << EOF
3786 #include <stdlib.h>
3787 int main(void) { setenv("","",0); return 0; }
3789 _setenv=no
3790 cc_check && _setenv=yes
3791 if test "$_setenv" = yes ; then
3792 def_setenv='#define HAVE_SETENV 1'
3793 _need_setenv=no
3794 else
3795 def_setenv='#undef HAVE_SETENV'
3796 _need_setenv=yes
3798 echores "$_setenv"
3801 echocheck "setmode()"
3802 _setmode=no
3803 def_setmode='#define HAVE_SETMODE 0'
3804 cat > $TMPC << EOF
3805 #include <io.h>
3806 int main(void) { setmode(0, 0); return 0; }
3808 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3809 echores "$_setmode"
3812 if sunos; then
3813 echocheck "sysi86()"
3814 cat > $TMPC << EOF
3815 #include <sys/sysi86.h>
3816 int main(void) { sysi86(0); return 0; }
3818 _sysi86=no
3819 cc_check && _sysi86=yes
3820 if test "$_sysi86" = yes ; then
3821 def_sysi86='#define HAVE_SYSI86 1'
3822 cat > $TMPC << EOF
3823 #include <sys/sysi86.h>
3824 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3826 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3827 else
3828 def_sysi86='#undef HAVE_SYSI86'
3830 echores "$_sysi86"
3831 fi #if sunos
3834 echocheck "sys/sysinfo.h"
3835 cat > $TMPC << EOF
3836 #include <sys/sysinfo.h>
3837 int main(void) {
3838 struct sysinfo s_info;
3839 sysinfo(&s_info);
3840 return 0;
3843 _sys_sysinfo=no
3844 cc_check && _sys_sysinfo=yes
3845 if test "$_sys_sysinfo" = yes ; then
3846 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3847 else
3848 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3850 echores "$_sys_sysinfo"
3853 if darwin; then
3855 echocheck "Mac OS X Finder Support"
3856 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3857 if test "$_macosx_finder" = yes ; then
3858 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3859 extra_ldflags="$extra_ldflags -framework Carbon"
3861 echores "$_macosx_finder"
3863 echocheck "Mac OS X Bundle file locations"
3864 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3865 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3866 if test "$_macosx_bundle" = yes ; then
3867 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3868 extra_ldflags="$extra_ldflags -framework Carbon"
3870 echores "$_macosx_bundle"
3872 echocheck "Apple Remote"
3873 if test "$_apple_remote" = auto ; then
3874 _apple_remote=no
3875 cat > $TMPC <<EOF
3876 #include <stdio.h>
3877 #include <IOKit/IOCFPlugIn.h>
3878 int main(void) {
3879 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3880 CFMutableDictionaryRef hidMatchDictionary;
3881 IOReturn ioReturnValue;
3883 // Set up a matching dictionary to search the I/O Registry by class.
3884 // name for all HID class devices
3885 hidMatchDictionary = IOServiceMatching("AppleIRController");
3887 // Now search I/O Registry for matching devices.
3888 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3889 hidMatchDictionary, &hidObjectIterator);
3891 // If search is unsuccessful, return nonzero.
3892 if (ioReturnValue != kIOReturnSuccess ||
3893 !IOIteratorIsValid(hidObjectIterator)) {
3894 return 1;
3896 return 0;
3899 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3901 if test "$_apple_remote" = yes ; then
3902 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3903 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3904 else
3905 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3907 echores "$_apple_remote"
3909 fi #if darwin
3911 if linux; then
3913 echocheck "Apple IR"
3914 if test "$_apple_ir" = auto ; then
3915 _apple_ir=no
3916 cat > $TMPC <<EOF
3917 #include <linux/types.h>
3918 #include <linux/input.h>
3919 int main(void) {
3920 struct input_event ev;
3921 struct input_id id;
3922 return 0;
3925 cc_check && _apple_ir=yes
3927 if test "$_apple_ir" = yes ; then
3928 def_apple_ir='#define CONFIG_APPLE_IR 1'
3929 else
3930 def_apple_ir='#undef CONFIG_APPLE_IR'
3932 echores "$_apple_ir"
3933 fi #if linux
3935 echocheck "pkg-config"
3936 _pkg_config=pkg-config
3937 if $($_pkg_config --version > /dev/null 2>&1); then
3938 if test "$_ld_static"; then
3939 _pkg_config="$_pkg_config --static"
3941 echores "yes"
3942 else
3943 _pkg_config=false
3944 echores "no"
3948 echocheck "Samba support (libsmbclient)"
3949 if test "$_smb" = yes; then
3950 extra_ldflags="$extra_ldflags -lsmbclient"
3952 if test "$_smb" = auto; then
3953 _smb=no
3954 cat > $TMPC << EOF
3955 #include <libsmbclient.h>
3956 int main(void) { smbc_opendir("smb://"); return 0; }
3958 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3959 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3960 _smb=yes && break
3961 done
3964 if test "$_smb" = yes; then
3965 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3966 inputmodules="smb $inputmodules"
3967 else
3968 def_smb="#undef CONFIG_LIBSMBCLIENT"
3969 noinputmodules="smb $noinputmodules"
3971 echores "$_smb"
3974 #########
3975 # VIDEO #
3976 #########
3979 echocheck "tdfxfb"
3980 if test "$_tdfxfb" = yes ; then
3981 def_tdfxfb='#define CONFIG_TDFXFB 1'
3982 vomodules="tdfxfb $vomodules"
3983 else
3984 def_tdfxfb='#undef CONFIG_TDFXFB'
3985 novomodules="tdfxfb $novomodules"
3987 echores "$_tdfxfb"
3989 echocheck "s3fb"
3990 if test "$_s3fb" = yes ; then
3991 def_s3fb='#define CONFIG_S3FB 1'
3992 vomodules="s3fb $vomodules"
3993 else
3994 def_s3fb='#undef CONFIG_S3FB'
3995 novomodules="s3fb $novomodules"
3997 echores "$_s3fb"
3999 echocheck "wii"
4000 if test "$_wii" = yes ; then
4001 def_wii='#define CONFIG_WII 1'
4002 vomodules="wii $vomodules"
4003 else
4004 def_wii='#undef CONFIG_WII'
4005 novomodules="wii $novomodules"
4007 echores "$_wii"
4009 echocheck "tdfxvid"
4010 if test "$_tdfxvid" = yes ; then
4011 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4012 vomodules="tdfx_vid $vomodules"
4013 else
4014 def_tdfxvid='#undef CONFIG_TDFX_VID'
4015 novomodules="tdfx_vid $novomodules"
4017 echores "$_tdfxvid"
4019 echocheck "xvr100"
4020 if test "$_xvr100" = auto ; then
4021 cat > $TMPC << EOF
4022 #include <unistd.h>
4023 #include <sys/fbio.h>
4024 #include <sys/visual_io.h>
4025 int main(void) {
4026 struct vis_identifier ident;
4027 struct fbgattr attr;
4028 ioctl(0, VIS_GETIDENTIFIER, &ident);
4029 ioctl(0, FBIOGATTR, &attr);
4030 return 0;
4033 _xvr100=no
4034 cc_check && _xvr100=yes
4036 if test "$_xvr100" = yes ; then
4037 def_xvr100='#define CONFIG_XVR100 1'
4038 vomodules="xvr100 $vomodules"
4039 else
4040 def_tdfxvid='#undef CONFIG_XVR100'
4041 novomodules="xvr100 $novomodules"
4043 echores "$_xvr100"
4045 echocheck "tga"
4046 if test "$_tga" = yes ; then
4047 def_tga='#define CONFIG_TGA 1'
4048 vomodules="tga $vomodules"
4049 else
4050 def_tga='#undef CONFIG_TGA'
4051 novomodules="tga $novomodules"
4053 echores "$_tga"
4056 echocheck "md5sum support"
4057 if test "$_md5sum" = yes; then
4058 def_md5sum="#define CONFIG_MD5SUM 1"
4059 vomodules="md5sum $vomodules"
4060 else
4061 def_md5sum="#undef CONFIG_MD5SUM"
4062 novomodules="md5sum $novomodules"
4064 echores "$_md5sum"
4067 echocheck "yuv4mpeg support"
4068 if test "$_yuv4mpeg" = yes; then
4069 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4070 vomodules="yuv4mpeg $vomodules"
4071 else
4072 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4073 novomodules="yuv4mpeg $novomodules"
4075 echores "$_yuv4mpeg"
4078 echocheck "bl"
4079 if test "$_bl" = yes ; then
4080 def_bl='#define CONFIG_BL 1'
4081 vomodules="bl $vomodules"
4082 else
4083 def_bl='#undef CONFIG_BL'
4084 novomodules="bl $novomodules"
4086 echores "$_bl"
4089 echocheck "DirectFB"
4090 if test "$_directfb" = auto ; then
4091 _directfb=no
4092 cat > $TMPC <<EOF
4093 #include <directfb.h>
4094 int main(void) { DirectFBInit(0, 0); return 0; }
4096 for _inc_tmp in "" -I/usr/local/include/directfb \
4097 -I/usr/include/directfb -I/usr/local/include; do
4098 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4099 extra_cflags="$extra_cflags $_inc_tmp" && break
4100 done
4103 dfb_version() {
4104 expr $1 \* 65536 + $2 \* 256 + $3
4107 if test "$_directfb" = yes; then
4108 cat > $TMPC << EOF
4109 #include <directfb_version.h>
4111 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4114 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4115 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4116 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4117 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4118 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4119 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4120 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4121 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4122 res_comment="$_directfb_version"
4123 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4124 else
4125 def_directfb_version='#undef DIRECTFBVERSION'
4126 _directfb=no
4127 res_comment="version >=0.9.13 required"
4129 else
4130 _directfb=no
4131 res_comment="failed to get version"
4134 echores "$_directfb"
4136 if test "$_directfb" = yes ; then
4137 def_directfb='#define CONFIG_DIRECTFB 1'
4138 vomodules="directfb $vomodules"
4139 libs_mplayer="$libs_mplayer -ldirectfb"
4140 else
4141 def_directfb='#undef CONFIG_DIRECTFB'
4142 novomodules="directfb $novomodules"
4144 if test "$_dfbmga" = yes; then
4145 vomodules="dfbmga $vomodules"
4146 def_dfbmga='#define CONFIG_DFBMGA 1'
4147 else
4148 novomodules="dfbmga $novomodules"
4149 def_dfbmga='#undef CONFIG_DFBMGA'
4153 echocheck "X11 headers presence"
4154 _x11_headers="no"
4155 res_comment="check if the dev(el) packages are installed"
4156 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4157 if test -f "$I/X11/Xlib.h" ; then
4158 _x11_headers="yes"
4159 res_comment=""
4160 break
4162 done
4163 if test $_cross_compile = no; then
4164 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4165 /usr/include/X11R6 /usr/openwin/include ; do
4166 if test -f "$I/X11/Xlib.h" ; then
4167 extra_cflags="$extra_cflags -I$I"
4168 _x11_headers="yes"
4169 res_comment="using $I"
4170 break
4172 done
4174 echores "$_x11_headers"
4177 echocheck "X11"
4178 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4179 cat > $TMPC <<EOF
4180 #include <X11/Xlib.h>
4181 #include <X11/Xutil.h>
4182 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4184 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4185 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4186 -L/usr/lib ; do
4187 if netbsd; then
4188 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4189 else
4190 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4192 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4193 && _x11=yes && break
4194 done
4196 if test "$_x11" = yes ; then
4197 def_x11='#define CONFIG_X11 1'
4198 vomodules="x11 xover $vomodules"
4199 else
4200 _x11=no
4201 def_x11='#undef CONFIG_X11'
4202 novomodules="x11 $novomodules"
4203 res_comment="check if the dev(el) packages are installed"
4204 # disable stuff that depends on X
4205 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4207 echores "$_x11"
4209 echocheck "Xss screensaver extensions"
4210 if test "$_xss" = auto ; then
4211 cat > $TMPC << EOF
4212 #include <X11/Xlib.h>
4213 #include <X11/extensions/scrnsaver.h>
4214 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4216 _xss=no
4217 cc_check -lXss && _xss=yes
4219 if test "$_xss" = yes ; then
4220 def_xss='#define CONFIG_XSS 1'
4221 libs_mplayer="$libs_mplayer -lXss"
4222 else
4223 def_xss='#undef CONFIG_XSS'
4225 echores "$_xss"
4227 echocheck "DPMS"
4228 _xdpms3=no
4229 _xdpms4=no
4230 if test "$_x11" = yes ; then
4231 cat > $TMPC <<EOF
4232 #include <X11/Xmd.h>
4233 #include <X11/Xlib.h>
4234 #include <X11/Xutil.h>
4235 #include <X11/Xatom.h>
4236 #include <X11/extensions/dpms.h>
4237 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4239 cc_check -lXdpms && _xdpms3=yes
4240 cat > $TMPC <<EOF
4241 #include <X11/Xlib.h>
4242 #include <X11/extensions/dpms.h>
4243 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4245 cc_check -lXext && _xdpms4=yes
4247 if test "$_xdpms4" = yes ; then
4248 def_xdpms='#define CONFIG_XDPMS 1'
4249 res_comment="using Xdpms 4"
4250 echores "yes"
4251 elif test "$_xdpms3" = yes ; then
4252 def_xdpms='#define CONFIG_XDPMS 1'
4253 libs_mplayer="$libs_mplayer -lXdpms"
4254 res_comment="using Xdpms 3"
4255 echores "yes"
4256 else
4257 def_xdpms='#undef CONFIG_XDPMS'
4258 echores "no"
4262 echocheck "Xv"
4263 if test "$_xv" = auto ; then
4264 cat > $TMPC <<EOF
4265 #include <X11/Xlib.h>
4266 #include <X11/extensions/Xvlib.h>
4267 int main(void) {
4268 (void) XvGetPortAttribute(0, 0, 0, 0);
4269 (void) XvQueryPortAttributes(0, 0, 0);
4270 return 0; }
4272 _xv=no
4273 cc_check -lXv && _xv=yes
4276 if test "$_xv" = yes ; then
4277 def_xv='#define CONFIG_XV 1'
4278 libs_mplayer="$libs_mplayer -lXv"
4279 vomodules="xv $vomodules"
4280 else
4281 def_xv='#undef CONFIG_XV'
4282 novomodules="xv $novomodules"
4284 echores "$_xv"
4287 echocheck "XvMC"
4288 if test "$_xv" = yes && test "$_xvmc" != no ; then
4289 _xvmc=no
4290 cat > $TMPC <<EOF
4291 #include <X11/Xlib.h>
4292 #include <X11/extensions/Xvlib.h>
4293 #include <X11/extensions/XvMClib.h>
4294 int main(void) {
4295 (void) XvMCQueryExtension(0,0,0);
4296 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4297 return 0; }
4299 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4300 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4301 done
4303 if test "$_xvmc" = yes ; then
4304 def_xvmc='#define CONFIG_XVMC 1'
4305 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4306 vomodules="xvmc $vomodules"
4307 res_comment="using $_xvmclib"
4308 else
4309 def_xvmc='#define CONFIG_XVMC 0'
4310 novomodules="xvmc $novomodules"
4312 echores "$_xvmc"
4315 echocheck "VDPAU"
4316 if test "$_vdpau" = auto ; then
4317 _vdpau=no
4318 if test "$_dl" = yes ; then
4319 cat > $TMPC <<EOF
4320 #include <vdpau/vdpau_x11.h>
4321 int main(void) {
4322 (void) vdp_device_create_x11(0, 0, 0, 0);
4323 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4325 cc_check -lvdpau && _vdpau=yes
4328 if test "$_vdpau" = yes ; then
4329 def_vdpau='#define CONFIG_VDPAU 1'
4330 libs_mplayer="$libs_mplayer -lvdpau"
4331 vomodules="vdpau $vomodules"
4332 else
4333 def_vdpau='#define CONFIG_VDPAU 0'
4334 novomodules="vdpau $novomodules"
4336 echores "$_vdpau"
4339 echocheck "Xinerama"
4340 if test "$_xinerama" = auto ; then
4341 cat > $TMPC <<EOF
4342 #include <X11/Xlib.h>
4343 #include <X11/extensions/Xinerama.h>
4344 int main(void) { (void) XineramaIsActive(0); return 0; }
4346 _xinerama=no
4347 cc_check -lXinerama && _xinerama=yes
4350 if test "$_xinerama" = yes ; then
4351 def_xinerama='#define CONFIG_XINERAMA 1'
4352 libs_mplayer="$libs_mplayer -lXinerama"
4353 else
4354 def_xinerama='#undef CONFIG_XINERAMA'
4356 echores "$_xinerama"
4359 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4360 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4361 # named 'X extensions' or something similar.
4362 # This check may be useful for future mplayer versions (to change resolution)
4363 # If you run into problems, remove '-lXxf86vm'.
4364 echocheck "Xxf86vm"
4365 if test "$_vm" = auto ; then
4366 cat > $TMPC <<EOF
4367 #include <X11/Xlib.h>
4368 #include <X11/extensions/xf86vmode.h>
4369 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4371 _vm=no
4372 cc_check -lXxf86vm && _vm=yes
4374 if test "$_vm" = yes ; then
4375 def_vm='#define CONFIG_XF86VM 1'
4376 libs_mplayer="$libs_mplayer -lXxf86vm"
4377 else
4378 def_vm='#undef CONFIG_XF86VM'
4380 echores "$_vm"
4382 # Check for the presence of special keycodes, like audio control buttons
4383 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4384 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4385 # have these new keycodes.
4386 echocheck "XF86keysym"
4387 if test "$_xf86keysym" = auto; then
4388 _xf86keysym=no
4389 cat > $TMPC <<EOF
4390 #include <X11/Xlib.h>
4391 #include <X11/XF86keysym.h>
4392 int main(void) { return XF86XK_AudioPause; }
4394 cc_check && _xf86keysym=yes
4396 if test "$_xf86keysym" = yes ; then
4397 def_xf86keysym='#define CONFIG_XF86XK 1'
4398 else
4399 def_xf86keysym='#undef CONFIG_XF86XK'
4401 echores "$_xf86keysym"
4403 echocheck "DGA"
4404 if test "$_dga2" = auto && test "$_x11" = yes ; then
4405 cat > $TMPC << EOF
4406 #include <X11/Xlib.h>
4407 #include <X11/extensions/xf86dga.h>
4408 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4410 _dga2=no
4411 cc_check -lXxf86dga && _dga2=yes
4413 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4414 cat > $TMPC << EOF
4415 #include <X11/Xlib.h>
4416 #include <X11/extensions/xf86dga.h>
4417 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4419 _dga1=no
4420 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4423 _dga=no
4424 def_dga='#undef CONFIG_DGA'
4425 def_dga1='#undef CONFIG_DGA1'
4426 def_dga2='#undef CONFIG_DGA2'
4427 if test "$_dga1" = yes ; then
4428 _dga=yes
4429 def_dga1='#define CONFIG_DGA1 1'
4430 res_comment="using DGA 1.0"
4431 elif test "$_dga2" = yes ; then
4432 _dga=yes
4433 def_dga2='#define CONFIG_DGA2 1'
4434 res_comment="using DGA 2.0"
4436 if test "$_dga" = yes ; then
4437 def_dga='#define CONFIG_DGA 1'
4438 libs_mplayer="$libs_mplayer -lXxf86dga"
4439 vomodules="dga $vomodules"
4440 else
4441 novomodules="dga $novomodules"
4443 echores "$_dga"
4446 echocheck "3dfx"
4447 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4448 def_3dfx='#define CONFIG_3DFX 1'
4449 vomodules="3dfx $vomodules"
4450 else
4451 def_3dfx='#undef CONFIG_3DFX'
4452 novomodules="3dfx $novomodules"
4454 echores "$_3dfx"
4457 echocheck "VIDIX"
4458 def_vidix='#undef CONFIG_VIDIX'
4459 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4460 _vidix_drv_cyberblade=no
4461 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4462 _vidix_drv_ivtv=no
4463 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4464 _vidix_drv_mach64=no
4465 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4466 _vidix_drv_mga=no
4467 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4468 _vidix_drv_mga_crtc2=no
4469 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4470 _vidix_drv_nvidia=no
4471 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4472 _vidix_drv_pm2=no
4473 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4474 _vidix_drv_pm3=no
4475 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4476 _vidix_drv_radeon=no
4477 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4478 _vidix_drv_rage128=no
4479 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4480 _vidix_drv_s3=no
4481 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4482 _vidix_drv_sh_veu=no
4483 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4484 _vidix_drv_sis=no
4485 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4486 _vidix_drv_unichrome=no
4487 if test "$_vidix" = auto ; then
4488 _vidix=no
4489 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4490 && _vidix=yes
4491 x86_64 && ! linux && _vidix=no
4492 (ppc || alpha) && linux && _vidix=yes
4494 echores "$_vidix"
4496 if test "$_vidix" = yes ; then
4497 def_vidix='#define CONFIG_VIDIX 1'
4498 vomodules="cvidix $vomodules"
4499 # FIXME: ivtv driver temporarily disabled until we have a proper test
4500 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4501 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4503 # some vidix drivers are architecture and os specific, discard them elsewhere
4504 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4505 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4507 for driver in $_vidix_drivers ; do
4508 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4509 eval _vidix_drv_${driver}=yes
4510 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4511 done
4513 echocheck "VIDIX PCI device name database"
4514 echores "$_vidix_pcidb"
4515 if test "$_vidix_pcidb" = yes ; then
4516 _vidix_pcidb_val=1
4517 else
4518 _vidix_pcidb_val=0
4521 echocheck "VIDIX dhahelper support"
4522 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4523 echores "$_dhahelper"
4525 echocheck "VIDIX svgalib_helper support"
4526 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4527 echores "$_svgalib_helper"
4529 else
4530 novomodules="cvidix $novomodules"
4533 if test "$_vidix" = yes && win32; then
4534 winvidix=yes
4535 vomodules="winvidix $vomodules"
4536 libs_mplayer="$libs_mplayer -lgdi32"
4537 else
4538 novomodules="winvidix $novomodules"
4540 if test "$_vidix" = yes && test "$_x11" = yes; then
4541 xvidix=yes
4542 vomodules="xvidix $vomodules"
4543 else
4544 novomodules="xvidix $novomodules"
4547 echocheck "GGI"
4548 if test "$_ggi" = auto ; then
4549 cat > $TMPC << EOF
4550 #include <ggi/ggi.h>
4551 int main(void) { ggiInit(); return 0; }
4553 _ggi=no
4554 cc_check -lggi && _ggi=yes
4556 if test "$_ggi" = yes ; then
4557 def_ggi='#define CONFIG_GGI 1'
4558 libs_mplayer="$libs_mplayer -lggi"
4559 vomodules="ggi $vomodules"
4560 else
4561 def_ggi='#undef CONFIG_GGI'
4562 novomodules="ggi $novomodules"
4564 echores "$_ggi"
4566 echocheck "GGI extension: libggiwmh"
4567 if test "$_ggiwmh" = auto ; then
4568 _ggiwmh=no
4569 cat > $TMPC << EOF
4570 #include <ggi/ggi.h>
4571 #include <ggi/wmh.h>
4572 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4574 cc_check -lggi -lggiwmh && _ggiwmh=yes
4576 # needed to get right output on obscure combination
4577 # like --disable-ggi --enable-ggiwmh
4578 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4579 def_ggiwmh='#define CONFIG_GGIWMH 1'
4580 libs_mplayer="$libs_mplayer -lggiwmh"
4581 else
4582 _ggiwmh=no
4583 def_ggiwmh='#undef CONFIG_GGIWMH'
4585 echores "$_ggiwmh"
4588 echocheck "AA"
4589 if test "$_aa" = auto ; then
4590 cat > $TMPC << EOF
4591 #include <aalib.h>
4592 extern struct aa_hardware_params aa_defparams;
4593 extern struct aa_renderparams aa_defrenderparams;
4594 int main(void) {
4595 aa_context *c;
4596 aa_renderparams *p;
4597 (void) aa_init(0, 0, 0);
4598 c = aa_autoinit(&aa_defparams);
4599 p = aa_getrenderparams();
4600 aa_autoinitkbd(c,0);
4601 return 0; }
4603 _aa=no
4604 for _ld_tmp in "-laa" ; do
4605 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4606 done
4608 if test "$_aa" = yes ; then
4609 def_aa='#define CONFIG_AA 1'
4610 if cygwin ; then
4611 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4613 vomodules="aa $vomodules"
4614 else
4615 def_aa='#undef CONFIG_AA'
4616 novomodules="aa $novomodules"
4618 echores "$_aa"
4621 echocheck "CACA"
4622 if test "$_caca" = auto ; then
4623 _caca=no
4624 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4625 cat > $TMPC << EOF
4626 #include <caca.h>
4627 #ifdef CACA_API_VERSION_1
4628 #include <caca0.h>
4629 #endif
4630 int main(void) { (void) caca_init(); return 0; }
4632 cc_check $(caca-config --libs) && _caca=yes
4635 if test "$_caca" = yes ; then
4636 def_caca='#define CONFIG_CACA 1'
4637 extra_cflags="$extra_cflags $(caca-config --cflags)"
4638 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4639 vomodules="caca $vomodules"
4640 else
4641 def_caca='#undef CONFIG_CACA'
4642 novomodules="caca $novomodules"
4644 echores "$_caca"
4647 echocheck "SVGAlib"
4648 if test "$_svga" = auto ; then
4649 cat > $TMPC << EOF
4650 #include <vga.h>
4651 int main(void) { return 0; }
4653 _svga=no
4654 cc_check -lvga $_ld_lm && _svga=yes
4656 if test "$_svga" = yes ; then
4657 def_svga='#define CONFIG_SVGALIB 1'
4658 libs_mplayer="$libs_mplayer -lvga"
4659 vomodules="svga $vomodules"
4660 else
4661 def_svga='#undef CONFIG_SVGALIB'
4662 novomodules="svga $novomodules"
4664 echores "$_svga"
4667 echocheck "FBDev"
4668 if test "$_fbdev" = auto ; then
4669 _fbdev=no
4670 linux && _fbdev=yes
4672 if test "$_fbdev" = yes ; then
4673 def_fbdev='#define CONFIG_FBDEV 1'
4674 vomodules="fbdev $vomodules"
4675 else
4676 def_fbdev='#undef CONFIG_FBDEV'
4677 novomodules="fbdev $novomodules"
4679 echores "$_fbdev"
4683 echocheck "DVB"
4684 if test "$_dvb" = auto ; then
4685 _dvb=no
4686 cat >$TMPC << EOF
4687 #include <poll.h>
4688 #include <sys/ioctl.h>
4689 #include <stdio.h>
4690 #include <time.h>
4691 #include <unistd.h>
4692 #include <linux/dvb/dmx.h>
4693 #include <linux/dvb/frontend.h>
4694 #include <linux/dvb/video.h>
4695 #include <linux/dvb/audio.h>
4696 int main(void) {return 0;}
4698 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4699 cc_check $_inc_tmp && _dvb=yes && \
4700 extra_cflags="$extra_cflags $_inc_tmp" && break
4701 done
4703 echores "$_dvb"
4704 if test "$_dvb" = yes ; then
4705 _dvbin=yes
4706 inputmodules="dvb $inputmodules"
4707 def_dvb='#define CONFIG_DVB 1'
4708 def_dvbin='#define CONFIG_DVBIN 1'
4709 aomodules="mpegpes(dvb) $aomodules"
4710 vomodules="mpegpes(dvb) $vomodules"
4711 else
4712 _dvbin=no
4713 noinputmodules="dvb $noinputmodules"
4714 def_dvb='#undef CONFIG_DVB'
4715 def_dvbin='#undef CONFIG_DVBIN '
4716 aomodules="mpegpes(file) $aomodules"
4717 vomodules="mpegpes(file) $vomodules"
4721 if darwin; then
4723 echocheck "QuickTime"
4724 if test "$quicktime" = auto ; then
4725 cat > $TMPC <<EOF
4726 #include <QuickTime/QuickTime.h>
4727 int main(void) {
4728 ImageDescription *desc;
4729 EnterMovies();
4730 ExitMovies();
4731 return 0;
4734 quicktime=no
4735 cc_check -framework QuickTime && quicktime=yes
4737 if test "$quicktime" = yes ; then
4738 extra_ldflags="$extra_ldflags -framework QuickTime"
4739 def_quicktime='#define CONFIG_QUICKTIME 1'
4740 else
4741 def_quicktime='#undef CONFIG_QUICKTIME'
4742 _quartz=no
4744 echores $quicktime
4746 echocheck "Quartz"
4747 if test "$_quartz" = auto ; then
4748 cat > $TMPC <<EOF
4749 #include <Carbon/Carbon.h>
4750 int main(void) {
4751 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4752 return 0;
4755 _quartz=no
4756 cc_check -framework Carbon && _quartz=yes
4758 if test "$_quartz" = yes ; then
4759 libs_mplayer="$libs_mplayer -framework Carbon"
4760 def_quartz='#define CONFIG_QUARTZ 1'
4761 vomodules="quartz $vomodules"
4762 else
4763 def_quartz='#undef CONFIG_QUARTZ'
4764 novomodules="quartz $novomodules"
4766 echores $_quartz
4768 echocheck "CoreVideo"
4769 if test "$_corevideo" = auto ; then
4770 cat > $TMPC <<EOF
4771 #include <Carbon/Carbon.h>
4772 #include <CoreServices/CoreServices.h>
4773 #include <OpenGL/OpenGL.h>
4774 #include <QuartzCore/CoreVideo.h>
4775 int main(void) { return 0; }
4777 _corevideo=no
4778 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4780 if test "$_corevideo" = yes ; then
4781 vomodules="corevideo $vomodules"
4782 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4783 def_corevideo='#define CONFIG_COREVIDEO 1'
4784 else
4785 novomodules="corevideo $novomodules"
4786 def_corevideo='#undef CONFIG_COREVIDEO'
4788 echores "$_corevideo"
4790 fi #if darwin
4793 echocheck "PNG support"
4794 if test "$_png" = auto ; then
4795 _png=no
4796 if irix ; then
4797 # Don't check for -lpng on irix since it has its own libpng
4798 # incompatible with the GNU libpng
4799 res_comment="disabled on irix (not GNU libpng)"
4800 else
4801 cat > $TMPC << EOF
4802 #include <png.h>
4803 #include <string.h>
4804 int main(void) {
4805 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4806 printf("libpng: %s\n", png_libpng_ver);
4807 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4810 cc_check -lpng -lz $_ld_lm && _png=yes
4813 echores "$_png"
4814 if test "$_png" = yes ; then
4815 def_png='#define CONFIG_PNG 1'
4816 extra_ldflags="$extra_ldflags -lpng -lz"
4817 else
4818 def_png='#undef CONFIG_PNG'
4821 echocheck "MNG support"
4822 if test "$_mng" = auto ; then
4823 _mng=no
4824 cat > $TMPC << EOF
4825 #include <libmng.h>
4826 int main(void) {
4827 const char * p_ver = mng_version_text();
4828 return !p_ver || p_ver[0] == 0;
4831 if cc_check -lmng -lz $_ld_lm ; then
4832 _mng=yes
4835 echores "$_mng"
4836 if test "$_mng" = yes ; then
4837 def_mng='#define CONFIG_MNG 1'
4838 extra_ldflags="$extra_ldflags -lmng -lz"
4839 else
4840 def_mng='#undef CONFIG_MNG'
4843 echocheck "JPEG support"
4844 if test "$_jpeg" = auto ; then
4845 _jpeg=no
4846 cat > $TMPC << EOF
4847 #include <stdio.h>
4848 #include <stdlib.h>
4849 #include <setjmp.h>
4850 #include <string.h>
4851 #include <jpeglib.h>
4852 int main(void) { return 0; }
4854 cc_check -ljpeg $_ld_lm && _jpeg=yes
4856 echores "$_jpeg"
4858 if test "$_jpeg" = yes ; then
4859 def_jpeg='#define CONFIG_JPEG 1'
4860 vomodules="jpeg $vomodules"
4861 extra_ldflags="$extra_ldflags -ljpeg"
4862 else
4863 def_jpeg='#undef CONFIG_JPEG'
4864 novomodules="jpeg $novomodules"
4869 echocheck "PNM support"
4870 if test "$_pnm" = yes; then
4871 def_pnm="#define CONFIG_PNM 1"
4872 vomodules="pnm $vomodules"
4873 else
4874 def_pnm="#undef CONFIG_PNM"
4875 novomodules="pnm $novomodules"
4877 echores "$_pnm"
4881 echocheck "GIF support"
4882 # This is to appease people who want to force gif support.
4883 # If it is forced to yes, then we still do checks to determine
4884 # which gif library to use.
4885 if test "$_gif" = yes ; then
4886 _force_gif=yes
4887 _gif=auto
4890 if test "$_gif" = auto ; then
4891 _gif=no
4892 cat > $TMPC << EOF
4893 #include <gif_lib.h>
4894 int main(void) { QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0); return 0; }
4896 for _ld_gif in "-lungif" "-lgif" ; do
4897 cc_check $_ld_gif && _gif=yes && break
4898 done
4901 # If no library was found, and the user wants support forced,
4902 # then we force it on with libgif, as this is the safest
4903 # assumption IMHO. (libungif & libregif both create symbolic
4904 # links to libgif. We also assume that no x11 support is needed,
4905 # because if you are forcing this, then you _should_ know what
4906 # you are doing. [ Besides, package maintainers should never
4907 # have compiled x11 deps into libungif in the first place. ] )
4908 # </rant>
4909 # --Joey
4910 if test "$_force_gif" = yes && test "$_gif" = no ; then
4911 _gif=yes
4912 _ld_gif="-lgif"
4915 if test "$_gif" = yes ; then
4916 def_gif='#define CONFIG_GIF 1'
4917 codecmodules="gif $codecmodules"
4918 vomodules="gif89a $vomodules"
4919 res_comment="old version, some encoding functions disabled"
4920 def_gif_4='#undef CONFIG_GIF_4'
4921 extra_ldflags="$extra_ldflags $_ld_gif"
4923 cat > $TMPC << EOF
4924 #include <signal.h>
4925 #include <gif_lib.h>
4926 void catch() { exit(1); }
4927 int main(void) {
4928 signal(SIGSEGV, catch); // catch segfault
4929 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4930 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4931 return 0;
4934 if cc_check "$_ld_gif" ; then
4935 def_gif_4='#define CONFIG_GIF_4 1'
4936 res_comment=""
4938 else
4939 def_gif='#undef CONFIG_GIF'
4940 def_gif_4='#undef CONFIG_GIF_4'
4941 novomodules="gif89a $novomodules"
4942 nocodecmodules="gif $nocodecmodules"
4944 echores "$_gif"
4947 case "$_gif" in yes*)
4948 echocheck "broken giflib workaround"
4949 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4951 cat > $TMPC << EOF
4952 #include <gif_lib.h>
4953 int main(void) {
4954 GifFileType gif;
4955 printf("UserData is at address %p\n", gif.UserData);
4956 return 0;
4959 if cc_check "$_ld_gif" ; then
4960 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4961 echores "disabled"
4962 else
4963 echores "enabled"
4966 esac
4969 echocheck "VESA support"
4970 if test "$_vesa" = auto ; then
4971 cat > $TMPC << EOF
4972 #include <vbe.h>
4973 int main(void) { vbeVersion(); return 0; }
4975 _vesa=no
4976 cc_check -lvbe -llrmi && _vesa=yes
4978 if test "$_vesa" = yes ; then
4979 def_vesa='#define CONFIG_VESA 1'
4980 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4981 vomodules="vesa $vomodules"
4982 else
4983 def_vesa='#undef CONFIG_VESA'
4984 novomodules="vesa $novomodules"
4986 echores "$_vesa"
4988 #################
4989 # VIDEO + AUDIO #
4990 #################
4993 echocheck "SDL"
4994 _inc_tmp=""
4995 _ld_tmp=""
4996 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4997 if test -z "$_sdlconfig" ; then
4998 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4999 _sdlconfig="sdl-config"
5000 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5001 _sdlconfig="sdl11-config"
5002 else
5003 _sdlconfig=false
5006 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5007 cat > $TMPC << EOF
5008 #ifdef CONFIG_SDL_SDL_H
5009 #include <SDL/SDL.h>
5010 #else
5011 #include <SDL.h>
5012 #endif
5013 #ifndef __APPLE__
5014 // we allow SDL hacking our main() only on OSX
5015 #undef main
5016 #endif
5017 int main(int argc, char *argv[]) {
5018 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5019 return 0;
5022 _sdl=no
5023 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5024 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5025 _sdl=yes
5026 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5027 break
5029 done
5030 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5031 res_comment="using $_sdlconfig"
5032 if cygwin ; then
5033 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5034 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5035 elif mingw32 ; then
5036 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5037 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5038 else
5039 _inc_tmp="$($_sdlconfig --cflags)"
5040 _ld_tmp="$($_sdlconfig --libs)"
5042 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5043 _sdl=yes
5047 if test "$_sdl" = yes ; then
5048 def_sdl='#define CONFIG_SDL 1'
5049 extra_cflags="$extra_cflags $_inc_tmp"
5050 libs_mplayer="$libs_mplayer $_ld_tmp"
5051 vomodules="sdl $vomodules"
5052 aomodules="sdl $aomodules"
5053 else
5054 def_sdl='#undef CONFIG_SDL'
5055 novomodules="sdl $novomodules"
5056 noaomodules="sdl $noaomodules"
5058 echores "$_sdl"
5061 # make sure this stays below CoreVideo to avoid issues due to namespace
5062 # conflicts between -lGL and -framework OpenGL
5063 echocheck "OpenGL"
5064 #Note: this test is run even with --enable-gl since we autodetect linker flags
5065 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
5066 cat > $TMPC << EOF
5067 #ifdef GL_WIN32
5068 #include <windows.h>
5069 #include <GL/gl.h>
5070 #elif defined(GL_SDL)
5071 #include <GL/gl.h>
5072 #ifdef CONFIG_SDL_SDL_H
5073 #include <SDL/SDL.h>
5074 #else
5075 #include <SDL.h>
5076 #endif
5077 #ifndef __APPLE__
5078 // we allow SDL hacking our main() only on OSX
5079 #undef main
5080 #endif
5081 #else
5082 #include <GL/gl.h>
5083 #include <X11/Xlib.h>
5084 #include <GL/glx.h>
5085 #endif
5086 int main(void) {
5087 #ifdef GL_WIN32
5088 HDC dc;
5089 wglCreateContext(dc);
5090 #elif defined(GL_SDL)
5091 SDL_GL_SwapBuffers();
5092 #else
5093 glXCreateContext(NULL, NULL, NULL, True);
5094 #endif
5095 glFinish();
5096 return 0;
5099 _gl=no
5100 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5101 if cc_check $_ld_tmp $_ld_lm ; then
5102 _gl=yes
5103 _gl_x11=yes
5104 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5105 break
5107 done
5108 if cc_check -DGL_WIN32 -lopengl32 ; then
5109 _gl=yes
5110 _gl_win32=yes
5111 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5113 # last so it can reuse any linker etc. flags detected before
5114 if test "$_sdl" = yes ; then
5115 if cc_check -DGL_SDL ||
5116 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
5117 _gl=yes
5118 _gl_sdl=yes
5119 elif cc_check -DGL_SDL -lGL ||
5120 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
5121 _gl=yes
5122 _gl_sdl=yes
5123 libs_mplayer="$libs_mplayer -lGL"
5126 else
5127 _gl=no
5129 if test "$_gl" = yes ; then
5130 def_gl='#define CONFIG_GL 1'
5131 res_comment="backends:"
5132 if test "$_gl_win32" = yes ; then
5133 def_gl_win32='#define CONFIG_GL_WIN32 1'
5134 res_comment="$res_comment win32"
5136 if test "$_gl_x11" = yes ; then
5137 def_gl_x11='#define CONFIG_GL_X11 1'
5138 res_comment="$res_comment x11"
5140 if test "$_gl_sdl" = yes ; then
5141 def_gl_sdl='#define CONFIG_GL_SDL 1'
5142 res_comment="$res_comment sdl"
5144 vomodules="opengl $vomodules"
5145 else
5146 def_gl='#undef CONFIG_GL'
5147 def_gl_win32='#undef CONFIG_GL_WIN32'
5148 def_gl_x11='#undef CONFIG_GL_X11'
5149 def_gl_sdl='#undef CONFIG_GL_SDL'
5150 novomodules="opengl $novomodules"
5152 echores "$_gl"
5155 echocheck "MatrixView"
5156 if test "$_gl" = no ; then
5157 matrixview=no
5159 if test "$matrixview" = yes ; then
5160 vomodules="matrixview $vomodules"
5161 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5162 else
5163 novomodules="matrixview $novomodules"
5164 def_matrixview='#undef CONFIG_MATRIXVIEW'
5166 echores "$matrixview"
5169 if os2 ; then
5170 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5171 if test "$_kva" = auto; then
5172 cat > $TMPC << EOF
5173 #include <os2.h>
5174 #include <kva.h>
5175 int main( void ) { return 0; }
5177 _kva=no;
5178 cc_check -lkva && _kva=yes
5180 if test "$_kva" = yes ; then
5181 def_kva='#define CONFIG_KVA 1'
5182 libs_mplayer="$libs_mplayer -lkva"
5183 vomodules="kva $vomodules"
5184 else
5185 def_kva='#undef CONFIG_KVA'
5186 novomodules="kva $novomodules"
5188 echores "$_kva"
5189 fi #if os2
5192 if win32; then
5194 echocheck "Windows waveout"
5195 if test "$_win32waveout" = auto ; then
5196 cat > $TMPC << EOF
5197 #include <windows.h>
5198 #include <mmsystem.h>
5199 int main(void) { return 0; }
5201 _win32waveout=no
5202 cc_check -lwinmm && _win32waveout=yes
5204 if test "$_win32waveout" = yes ; then
5205 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5206 libs_mplayer="$libs_mplayer -lwinmm"
5207 aomodules="win32 $aomodules"
5208 else
5209 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5210 noaomodules="win32 $noaomodules"
5212 echores "$_win32waveout"
5214 echocheck "Direct3D"
5215 if test "$_direct3d" = auto ; then
5216 cat > $TMPC << EOF
5217 #include <windows.h>
5218 #include <d3d9.h>
5219 int main(void) { return 0; }
5221 _direct3d=no
5222 cc_check && _direct3d=yes
5224 if test "$_direct3d" = yes ; then
5225 def_direct3d='#define CONFIG_DIRECT3D 1'
5226 vomodules="direct3d $vomodules"
5227 else
5228 def_direct3d='#undef CONFIG_DIRECT3D'
5229 novomodules="direct3d $novomodules"
5231 echores "$_direct3d"
5233 echocheck "Directx"
5234 if test "$_directx" = auto ; then
5235 cat > $TMPC << EOF
5236 #include <windows.h>
5237 #include <ddraw.h>
5238 #include <dsound.h>
5239 int main(void) { return 0; }
5241 _directx=no
5242 cc_check -lgdi32 && _directx=yes
5244 if test "$_directx" = yes ; then
5245 def_directx='#define CONFIG_DIRECTX 1'
5246 libs_mplayer="$libs_mplayer -lgdi32"
5247 vomodules="directx $vomodules"
5248 aomodules="dsound $aomodules"
5249 else
5250 def_directx='#undef CONFIG_DIRECTX'
5251 novomodules="directx $novomodules"
5252 noaomodules="dsound $noaomodules"
5254 echores "$_directx"
5256 fi #if win32; then
5259 echocheck "DXR2"
5260 if test "$_dxr2" = auto; then
5261 _dxr2=no
5262 cat > $TMPC << EOF
5263 #include <dxr2ioctl.h>
5264 int main(void) { return 0; }
5266 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5267 cc_check $_inc_tmp && _dxr2=yes && \
5268 extra_cflags="$extra_cflags $_inc_tmp" && break
5269 done
5271 if test "$_dxr2" = yes; then
5272 def_dxr2='#define CONFIG_DXR2 1'
5273 aomodules="dxr2 $aomodules"
5274 vomodules="dxr2 $vomodules"
5275 else
5276 def_dxr2='#undef CONFIG_DXR2'
5277 noaomodules="dxr2 $noaomodules"
5278 novomodules="dxr2 $novomodules"
5280 echores "$_dxr2"
5282 echocheck "DXR3/H+"
5283 if test "$_dxr3" = auto ; then
5284 cat > $TMPC << EOF
5285 #include <linux/em8300.h>
5286 int main(void) { return 0; }
5288 _dxr3=no
5289 cc_check && _dxr3=yes
5291 if test "$_dxr3" = yes ; then
5292 def_dxr3='#define CONFIG_DXR3 1'
5293 vomodules="dxr3 $vomodules"
5294 else
5295 def_dxr3='#undef CONFIG_DXR3'
5296 novomodules="dxr3 $novomodules"
5298 echores "$_dxr3"
5301 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5302 if test "$_ivtv" = auto ; then
5303 cat > $TMPC << EOF
5304 #include <stdlib.h>
5305 #include <inttypes.h>
5306 #include <linux/types.h>
5307 #include <linux/videodev2.h>
5308 #include <linux/ivtv.h>
5309 #include <sys/ioctl.h>
5310 int main(void) {
5311 struct ivtv_cfg_stop_decode sd;
5312 struct ivtv_cfg_start_decode sd1;
5313 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5314 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5315 return 0; }
5317 _ivtv=no
5318 cc_check && _ivtv=yes
5320 if test "$_ivtv" = yes ; then
5321 def_ivtv='#define CONFIG_IVTV 1'
5322 vomodules="ivtv $vomodules"
5323 aomodules="ivtv $aomodules"
5324 else
5325 def_ivtv='#undef CONFIG_IVTV'
5326 novomodules="ivtv $novomodules"
5327 noaomodules="ivtv $noaomodules"
5329 echores "$_ivtv"
5332 echocheck "V4L2 MPEG Decoder"
5333 if test "$_v4l2" = auto ; then
5334 cat > $TMPC << EOF
5335 #include <stdlib.h>
5336 #include <inttypes.h>
5337 #include <linux/types.h>
5338 #include <linux/videodev2.h>
5339 #include <linux/version.h>
5340 int main(void) {
5341 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5342 #error kernel headers too old, need 2.6.22
5343 #endif
5344 struct v4l2_ext_controls ctrls;
5345 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5346 return 0;
5349 _v4l2=no
5350 cc_check && _v4l2=yes
5352 if test "$_v4l2" = yes ; then
5353 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5354 vomodules="v4l2 $vomodules"
5355 aomodules="v4l2 $aomodules"
5356 else
5357 def_v4l2='#undef CONFIG_V4L2_DECODER'
5358 novomodules="v4l2 $novomodules"
5359 noaomodules="v4l2 $noaomodules"
5361 echores "$_v4l2"
5365 #########
5366 # AUDIO #
5367 #########
5370 echocheck "OSS Audio"
5371 if test "$_ossaudio" = auto ; then
5372 cat > $TMPC << EOF
5373 #include <sys/ioctl.h>
5374 #include <$_soundcard_header>
5375 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5377 _ossaudio=no
5378 cc_check && _ossaudio=yes
5380 if test "$_ossaudio" = yes ; then
5381 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5382 aomodules="oss $aomodules"
5383 cat > $TMPC << EOF
5384 #include <sys/ioctl.h>
5385 #include <$_soundcard_header>
5386 #ifdef OPEN_SOUND_SYSTEM
5387 int main(void) { return 0; }
5388 #else
5389 #error Not the real thing
5390 #endif
5392 _real_ossaudio=no
5393 cc_check && _real_ossaudio=yes
5394 if test "$_real_ossaudio" = yes; then
5395 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5396 # Check for OSS4 headers (override default headers)
5397 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5398 if test -f /etc/oss.conf; then
5399 . /etc/oss.conf
5400 _ossinc="$OSSLIBDIR/include"
5401 if test -f "$_ossinc/sys/soundcard.h"; then
5402 extra_cflags="-I$_ossinc $extra_cflags"
5405 elif netbsd || openbsd ; then
5406 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5407 extra_ldflags="$extra_ldflags -lossaudio"
5408 else
5409 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5411 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5412 else
5413 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5414 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5415 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5416 noaomodules="oss $noaomodules"
5418 echores "$_ossaudio"
5421 echocheck "aRts"
5422 if test "$_arts" = auto ; then
5423 _arts=no
5424 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5426 cat > $TMPC << EOF
5427 #include <artsc.h>
5428 int main(void) { return 0; }
5430 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5435 if test "$_arts" = yes ; then
5436 def_arts='#define CONFIG_ARTS 1'
5437 aomodules="arts $aomodules"
5438 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5439 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5440 else
5441 noaomodules="arts $noaomodules"
5443 echores "$_arts"
5446 echocheck "EsounD"
5447 if test "$_esd" = auto ; then
5448 _esd=no
5449 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5451 cat > $TMPC << EOF
5452 #include <esd.h>
5453 int main(void) { int fd = esd_open_sound("test"); return fd; }
5455 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5459 echores "$_esd"
5461 if test "$_esd" = yes ; then
5462 def_esd='#define CONFIG_ESD 1'
5463 aomodules="esd $aomodules"
5464 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5465 extra_cflags="$extra_cflags $(esd-config --cflags)"
5467 echocheck "esd_get_latency()"
5468 cat > $TMPC << EOF
5469 #include <esd.h>
5470 int main(void) { return esd_get_latency(0); }
5472 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5473 echores "$_esd_latency"
5474 else
5475 def_esd='#undef CONFIG_ESD'
5476 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5477 noaomodules="esd $noaomodules"
5481 echocheck "NAS"
5482 if test "$_nas" = auto ; then
5483 cat > $TMPC << EOF
5484 #include <audio/audiolib.h>
5485 int main(void) { return 0; }
5487 _nas=no
5488 cc_check $_ld_lm -laudio -lXt && _nas=yes
5490 if test "$_nas" = yes ; then
5491 def_nas='#define CONFIG_NAS 1'
5492 libs_mplayer="$libs_mplayer -laudio -lXt"
5493 aomodules="nas $aomodules"
5494 else
5495 noaomodules="nas $noaomodules"
5496 def_nas='#undef CONFIG_NAS'
5498 echores "$_nas"
5501 echocheck "pulse"
5502 if test "$_pulse" = auto ; then
5503 _pulse=no
5504 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5506 cat > $TMPC << EOF
5507 #include <pulse/pulseaudio.h>
5508 int main(void) { return 0; }
5510 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5514 echores "$_pulse"
5516 if test "$_pulse" = yes ; then
5517 def_pulse='#define CONFIG_PULSE 1'
5518 aomodules="pulse $aomodules"
5519 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5520 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5521 else
5522 def_pulse='#undef CONFIG_PULSE'
5523 noaomodules="pulse $noaomodules"
5527 echocheck "JACK"
5528 if test "$_jack" = auto ; then
5529 _jack=yes
5531 cat > $TMPC << EOF
5532 #include <jack/jack.h>
5533 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5535 if cc_check -ljack ; then
5536 libs_mplayer="$libs_mplayer -ljack"
5537 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5538 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5539 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5540 else
5541 _jack=no
5545 if test "$_jack" = yes ; then
5546 def_jack='#define CONFIG_JACK 1'
5547 aomodules="jack $aomodules"
5548 else
5549 noaomodules="jack $noaomodules"
5551 echores "$_jack"
5553 echocheck "OpenAL"
5554 if test "$_openal" = auto ; then
5555 _openal=no
5556 cat > $TMPC << EOF
5557 #ifdef OPENAL_AL_H
5558 #include <OpenAL/al.h>
5559 #else
5560 #include <AL/al.h>
5561 #endif
5562 int main(void) {
5563 alSourceQueueBuffers(0, 0, 0);
5564 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5565 return 0;
5568 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5569 cc_check $I && _openal=yes && break
5570 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5571 done
5572 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5574 if test "$_openal" = yes ; then
5575 def_openal='#define CONFIG_OPENAL 1'
5576 aomodules="openal $aomodules"
5577 else
5578 noaomodules="openal $noaomodules"
5580 echores "$_openal"
5582 echocheck "ALSA audio"
5583 if test "$_alloca" != yes ; then
5584 _alsa=no
5585 res_comment="alloca missing"
5587 if test "$_alsa" != no ; then
5588 _alsa=no
5589 cat > $TMPC << EOF
5590 #include <sys/time.h>
5591 #include <sys/asoundlib.h>
5592 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5593 #error "alsa version != 0.5.x"
5594 #endif
5595 int main(void) { return 0; }
5597 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5599 cat > $TMPC << EOF
5600 #include <sys/time.h>
5601 #include <sys/asoundlib.h>
5602 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5603 #error "alsa version != 0.9.x"
5604 #endif
5605 int main(void) { return 0; }
5607 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5608 cat > $TMPC << EOF
5609 #include <sys/time.h>
5610 #include <alsa/asoundlib.h>
5611 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5612 #error "alsa version != 0.9.x"
5613 #endif
5614 int main(void) { return 0; }
5616 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5618 cat > $TMPC << EOF
5619 #include <sys/time.h>
5620 #include <sys/asoundlib.h>
5621 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5622 #error "alsa version != 1.0.x"
5623 #endif
5624 int main(void) { return 0; }
5626 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5627 cat > $TMPC << EOF
5628 #include <sys/time.h>
5629 #include <alsa/asoundlib.h>
5630 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5631 #error "alsa version != 1.0.x"
5632 #endif
5633 int main(void) { return 0; }
5635 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5637 def_alsa='#undef CONFIG_ALSA'
5638 def_alsa5='#undef CONFIG_ALSA5'
5639 def_alsa9='#undef CONFIG_ALSA9'
5640 def_alsa1x='#undef CONFIG_ALSA1X'
5641 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5642 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5643 if test "$_alsaver" ; then
5644 _alsa=yes
5645 if test "$_alsaver" = '0.5.x' ; then
5646 _alsa5=yes
5647 aomodules="alsa5 $aomodules"
5648 def_alsa5='#define CONFIG_ALSA5 1'
5649 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5650 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5651 elif test "$_alsaver" = '0.9.x-sys' ; then
5652 _alsa9=yes
5653 aomodules="alsa $aomodules"
5654 def_alsa='#define CONFIG_ALSA 1'
5655 def_alsa9='#define CONFIG_ALSA9 1'
5656 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5657 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5658 elif test "$_alsaver" = '0.9.x-alsa' ; then
5659 _alsa9=yes
5660 aomodules="alsa $aomodules"
5661 def_alsa='#define CONFIG_ALSA 1'
5662 def_alsa9='#define CONFIG_ALSA9 1'
5663 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5664 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5665 elif test "$_alsaver" = '1.0.x-sys' ; then
5666 _alsa1x=yes
5667 aomodules="alsa $aomodules"
5668 def_alsa='#define CONFIG_ALSA 1'
5669 def_alsa1x="#define CONFIG_ALSA1X 1"
5670 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5671 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5672 elif test "$_alsaver" = '1.0.x-alsa' ; then
5673 _alsa1x=yes
5674 aomodules="alsa $aomodules"
5675 def_alsa='#define CONFIG_ALSA 1'
5676 def_alsa1x="#define CONFIG_ALSA1X 1"
5677 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5678 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5679 else
5680 _alsa=no
5681 res_comment="unknown version"
5683 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5684 else
5685 noaomodules="alsa $noaomodules"
5687 echores "$_alsa"
5690 echocheck "Sun audio"
5691 if test "$_sunaudio" = auto ; then
5692 cat > $TMPC << EOF
5693 #include <sys/types.h>
5694 #include <sys/audioio.h>
5695 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5697 _sunaudio=no
5698 cc_check && _sunaudio=yes
5700 if test "$_sunaudio" = yes ; then
5701 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5702 aomodules="sun $aomodules"
5703 else
5704 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5705 noaomodules="sun $noaomodules"
5707 echores "$_sunaudio"
5710 def_mlib='#define CONFIG_MLIB 0'
5711 if sunos; then
5712 echocheck "Sun mediaLib"
5713 if test "$_mlib" = auto ; then
5714 _mlib=no
5715 cat > $TMPC << EOF
5716 #include <mlib.h>
5717 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5719 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5721 echores "$_mlib"
5722 fi #if sunos
5725 if darwin; then
5726 echocheck "CoreAudio"
5727 if test "$_coreaudio" = auto ; then
5728 cat > $TMPC <<EOF
5729 #include <CoreAudio/CoreAudio.h>
5730 #include <AudioToolbox/AudioToolbox.h>
5731 #include <AudioUnit/AudioUnit.h>
5732 int main(void) { return 0; }
5734 _coreaudio=no
5735 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5737 if test "$_coreaudio" = yes ; then
5738 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5739 def_coreaudio='#define CONFIG_COREAUDIO 1'
5740 aomodules="coreaudio $aomodules"
5741 else
5742 def_coreaudio='#undef CONFIG_COREAUDIO'
5743 noaomodules="coreaudio $noaomodules"
5745 echores $_coreaudio
5746 fi #if darwin
5749 if irix; then
5750 echocheck "SGI audio"
5751 if test "$_sgiaudio" = auto ; then
5752 # check for SGI audio
5753 cat > $TMPC << EOF
5754 #include <dmedia/audio.h>
5755 int main(void) { return 0; }
5757 _sgiaudio=no
5758 cc_check && _sgiaudio=yes
5760 if test "$_sgiaudio" = "yes" ; then
5761 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5762 libs_mplayer="$libs_mplayer -laudio"
5763 aomodules="sgi $aomodules"
5764 else
5765 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5766 noaomodules="sgi $noaomodules"
5768 echores "$_sgiaudio"
5769 fi #if irix
5772 if os2 ; then
5773 echocheck "KAI (UNIAUD/DART)"
5774 if test "$_kai" = auto; then
5775 cat > $TMPC << EOF
5776 #include <os2.h>
5777 #include <kai.h>
5778 int main(void) { return 0; }
5780 _kai=no;
5781 cc_check -lkai && _kai=yes
5783 if test "$_kai" = yes ; then
5784 def_kai='#define CONFIG_KAI 1'
5785 libs_mplayer="$libs_mplayer -lkai"
5786 aomodules="kai $aomodules"
5787 else
5788 def_kai='#undef CONFIG_KAI'
5789 noaomodules="kai $noaomodules"
5791 echores "$_kai"
5793 echocheck "DART"
5794 if test "$_dart" = auto; then
5795 cat > $TMPC << EOF
5796 #include <os2.h>
5797 #include <dart.h>
5798 int main( void ) { return 0; }
5800 _dart=no;
5801 cc_check -ldart && _dart=yes
5803 if test "$_dart" = yes ; then
5804 def_dart='#define CONFIG_DART 1'
5805 libs_mplayer="$libs_mplayer -ldart"
5806 aomodules="dart $aomodules"
5807 else
5808 def_dart='#undef CONFIG_DART'
5809 noaomodules="dart $noaomodules"
5811 echores "$_dart"
5812 fi #if os2
5815 # set default CD/DVD devices
5816 if win32 || os2 ; then
5817 default_cdrom_device="D:"
5818 elif darwin ; then
5819 default_cdrom_device="/dev/disk1"
5820 elif dragonfly ; then
5821 default_cdrom_device="/dev/cd0"
5822 elif freebsd ; then
5823 default_cdrom_device="/dev/acd0"
5824 elif openbsd ; then
5825 default_cdrom_device="/dev/rcd0a"
5826 elif sunos ; then
5827 default_cdrom_device="/vol/dev/aliases/cdrom0"
5828 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5829 # file system and the volfs service.
5830 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5831 elif amigaos ; then
5832 default_cdrom_device="a1ide.device:2"
5833 else
5834 default_cdrom_device="/dev/cdrom"
5837 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5838 default_dvd_device=$default_cdrom_device
5839 elif darwin ; then
5840 default_dvd_device="/dev/rdiskN"
5841 else
5842 default_dvd_device="/dev/dvd"
5846 echocheck "VCD support"
5847 if test "$_vcd" = auto; then
5848 _vcd=no
5849 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5850 _vcd=yes
5851 elif mingw32; then
5852 cat > $TMPC << EOF
5853 #include <ddk/ntddcdrm.h>
5854 int main(void) { return 0; }
5856 cc_check && _vcd=yes
5859 if test "$_vcd" = yes; then
5860 inputmodules="vcd $inputmodules"
5861 def_vcd='#define CONFIG_VCD 1'
5862 else
5863 def_vcd='#undef CONFIG_VCD'
5864 noinputmodules="vcd $noinputmodules"
5865 res_comment="not supported on this OS"
5867 echores "$_vcd"
5871 echocheck "dvdread"
5872 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5873 _dvdread_internal=no
5875 if test "$_dvdread_internal" = auto ; then
5876 _dvdread_internal=no
5877 _dvdread=no
5878 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5879 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5880 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5881 || darwin || win32 || os2; then
5882 _dvdread_internal=yes
5883 _dvdread=yes
5884 extra_cflags="-Ilibdvdread4 $extra_cflags"
5886 elif test "$_dvdread" = auto ; then
5887 _dvdread=no
5888 if test "$_dl" = yes; then
5889 cat > $TMPC << EOF
5890 #include <inttypes.h>
5891 #include <dvdread/dvd_reader.h>
5892 #include <dvdread/ifo_types.h>
5893 #include <dvdread/ifo_read.h>
5894 #include <dvdread/nav_read.h>
5895 int main(void) { return 0; }
5897 _dvdreadcflags=$($_dvdreadconfig --cflags)
5898 _dvdreadlibs=$($_dvdreadconfig --libs)
5899 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5900 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5901 _dvdread=yes
5902 extra_cflags="$extra_cflags $_dvdreadcflags"
5903 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5904 res_comment="external"
5909 if test "$_dvdread_internal" = yes; then
5910 def_dvdread='#define CONFIG_DVDREAD 1'
5911 inputmodules="dvdread(internal) $inputmodules"
5912 _largefiles=yes
5913 res_comment="internal"
5914 elif test "$_dvdread" = yes; then
5915 def_dvdread='#define CONFIG_DVDREAD 1'
5916 _largefiles=yes
5917 extra_ldflags="$extra_ldflags -ldvdread"
5918 inputmodules="dvdread(external) $inputmodules"
5919 res_comment="external"
5920 else
5921 def_dvdread='#undef CONFIG_DVDREAD'
5922 noinputmodules="dvdread $noinputmodules"
5924 echores "$_dvdread"
5927 echocheck "internal libdvdcss"
5928 if test "$_libdvdcss_internal" = auto ; then
5929 _libdvdcss_internal=no
5930 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5931 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5933 if test "$_libdvdcss_internal" = yes ; then
5934 if linux || netbsd || openbsd || bsdos ; then
5935 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5936 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5937 elif freebsd || dragonfly ; then
5938 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5939 elif darwin ; then
5940 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5941 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5942 elif cygwin ; then
5943 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5944 elif beos ; then
5945 cflags_libdvdcss="-DSYS_BEOS"
5946 elif os2 ; then
5947 cflags_libdvdcss="-DSYS_OS2"
5949 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5950 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5951 inputmodules="libdvdcss(internal) $inputmodules"
5952 _largefiles=yes
5953 else
5954 noinputmodules="libdvdcss(internal) $noinputmodules"
5956 echores "$_libdvdcss_internal"
5959 echocheck "cdparanoia"
5960 if test "$_cdparanoia" = auto ; then
5961 cat > $TMPC <<EOF
5962 #include <cdda_interface.h>
5963 #include <cdda_paranoia.h>
5964 // This need a better test. How ?
5965 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5967 _cdparanoia=no
5968 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5969 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5970 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5971 done
5973 if test "$_cdparanoia" = yes ; then
5974 _cdda='yes'
5975 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5976 openbsd && extra_ldflags="$extra_ldflags -lutil"
5978 echores "$_cdparanoia"
5981 echocheck "libcdio"
5982 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5983 cat > $TMPC << EOF
5984 #include <stdio.h>
5985 #include <cdio/version.h>
5986 #include <cdio/cdda.h>
5987 #include <cdio/paranoia.h>
5988 int main(void) {
5989 void *test = cdda_verbose_set;
5990 printf("%s\n", CDIO_VERSION);
5991 return test == (void *)1;
5994 _libcdio=no
5995 for _ld_tmp in "" "-lwinmm" ; do
5996 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5997 cc_check $_ld_tmp $_ld_lm \
5998 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5999 done
6000 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6001 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6002 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6003 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6004 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6007 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6008 _cdda='yes'
6009 def_libcdio='#define CONFIG_LIBCDIO 1'
6010 def_havelibcdio='yes'
6011 else
6012 if test "$_cdparanoia" = yes ; then
6013 res_comment="using cdparanoia"
6015 def_libcdio='#undef CONFIG_LIBCDIO'
6016 def_havelibcdio='no'
6018 echores "$_libcdio"
6020 if test "$_cdda" = yes ; then
6021 test $_cddb = auto && test $_network = yes && _cddb=yes
6022 def_cdparanoia='#define CONFIG_CDDA 1'
6023 inputmodules="cdda $inputmodules"
6024 else
6025 def_cdparanoia='#undef CONFIG_CDDA'
6026 noinputmodules="cdda $noinputmodules"
6029 if test "$_cddb" = yes ; then
6030 def_cddb='#define CONFIG_CDDB 1'
6031 inputmodules="cddb $inputmodules"
6032 else
6033 _cddb=no
6034 def_cddb='#undef CONFIG_CDDB'
6035 noinputmodules="cddb $noinputmodules"
6038 echocheck "bitmap font support"
6039 if test "$_bitmap_font" = yes ; then
6040 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6041 else
6042 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6044 echores "$_bitmap_font"
6047 echocheck "freetype >= 2.0.9"
6049 # freetype depends on iconv
6050 if test "$_iconv" = no ; then
6051 _freetype=no
6052 res_comment="iconv support needed"
6055 if test "$_freetype" = auto ; then
6056 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6057 cat > $TMPC << EOF
6058 #include <stdio.h>
6059 #include <ft2build.h>
6060 #include FT_FREETYPE_H
6061 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6062 #error "Need FreeType 2.0.9 or newer"
6063 #endif
6064 int main(void) {
6065 FT_Library library;
6066 FT_Int major=-1,minor=-1,patch=-1;
6067 int err=FT_Init_FreeType(&library);
6068 return 0;
6071 _freetype=no
6072 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6073 else
6074 _freetype=no
6077 if test "$_freetype" = yes ; then
6078 def_freetype='#define CONFIG_FREETYPE 1'
6079 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6080 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6081 else
6082 def_freetype='#undef CONFIG_FREETYPE'
6084 echores "$_freetype"
6086 if test "$_freetype" = no ; then
6087 _fontconfig=no
6088 res_comment="FreeType support needed"
6090 echocheck "fontconfig"
6091 if test "$_fontconfig" = auto ; then
6092 cat > $TMPC << EOF
6093 #include <stdio.h>
6094 #include <stdlib.h>
6095 #include <fontconfig/fontconfig.h>
6096 #if FC_VERSION < 20402
6097 #error At least version 2.4.2 of fontconfig required
6098 #endif
6099 int main(void) {
6100 int err = FcInit();
6101 if (err == FcFalse) {
6102 printf("Couldn't initialize fontconfig lib\n");
6103 exit(err);
6105 return 0;
6108 _fontconfig=no
6109 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6110 _ld_tmp="-lfontconfig $_ld_tmp"
6111 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6112 done
6113 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6114 _inc_tmp=$($_pkg_config --cflags fontconfig)
6115 _ld_tmp=$($_pkg_config --libs fontconfig)
6116 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6117 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6120 if test "$_fontconfig" = yes ; then
6121 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6122 else
6123 def_fontconfig='#undef CONFIG_FONTCONFIG'
6125 echores "$_fontconfig"
6128 echocheck "SSA/ASS support"
6129 if test "$_ass" = auto -o "$_ass" = yes ; then
6130 if $_pkg_config libass; then
6131 _ass=yes
6132 def_ass='#define CONFIG_ASS 1'
6133 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
6134 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
6135 else
6136 _ass=no
6137 def_ass='#undef CONFIG_ASS'
6139 else
6140 def_ass='#undef CONFIG_ASS'
6142 echores "$_ass"
6145 echocheck "fribidi with charsets"
6146 _inc_tmp=""
6147 _ld_tmp=""
6148 if test "$_fribidi" = auto ; then
6149 cat > $TMPC << EOF
6150 #include <stdio.h>
6151 #include <stdlib.h>
6152 /* workaround for fribidi 0.10.4 and below */
6153 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6154 #include <fribidi/fribidi.h>
6155 int main(void) {
6156 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6157 printf("Fribidi headers are not consistents with the library!\n");
6158 exit(1);
6160 return 0;
6163 _fribidi=no
6164 _inc_tmp=""
6165 _ld_tmp="-lfribidi"
6166 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6167 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
6168 test "$_fribidi" = no ; then
6169 _inc_tmp="$($_pkg_config --cflags)"
6170 _ld_tmp="$($_pkg_config --libs)"
6171 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6174 if test "$_fribidi" = yes ; then
6175 def_fribidi='#define CONFIG_FRIBIDI 1'
6176 extra_cflags="$extra_cflags $_inc_tmp"
6177 extra_ldflags="$extra_ldflags $_ld_tmp"
6178 else
6179 def_fribidi='#undef CONFIG_FRIBIDI'
6181 echores "$_fribidi"
6184 echocheck "ENCA"
6185 if test "$_enca" = auto ; then
6186 cat > $TMPC << EOF
6187 #include <sys/types.h>
6188 #include <enca.h>
6189 int main(void) {
6190 const char **langs;
6191 size_t langcnt;
6192 langs = enca_get_languages(&langcnt);
6193 return 0;
6196 _enca=no
6197 cc_check -lenca $_ld_lm && _enca=yes
6199 if test "$_enca" = yes ; then
6200 def_enca='#define CONFIG_ENCA 1'
6201 extra_ldflags="$extra_ldflags -lenca"
6202 else
6203 def_enca='#undef CONFIG_ENCA'
6205 echores "$_enca"
6208 echocheck "zlib"
6209 cat > $TMPC << EOF
6210 #include <zlib.h>
6211 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6213 _zlib=no
6214 cc_check -lz && _zlib=yes
6215 if test "$_zlib" = yes ; then
6216 def_zlib='#define CONFIG_ZLIB 1'
6217 extra_ldflags="$extra_ldflags -lz"
6218 else
6219 def_zlib='#define CONFIG_ZLIB 0'
6221 echores "$_zlib"
6224 echocheck "bzlib"
6225 bzlib=no
6226 def_bzlib='#define CONFIG_BZLIB 0'
6227 cat > $TMPC << EOF
6228 #include <bzlib.h>
6229 int main(void) { BZ2_bzlibVersion(); return 0; }
6231 cc_check -lbz2 && bzlib=yes
6232 if test "$bzlib" = yes ; then
6233 def_bzlib='#define CONFIG_BZLIB 1'
6234 extra_ldflags="$extra_ldflags -lbz2"
6236 echores "$bzlib"
6239 echocheck "RTC"
6240 if test "$_rtc" = auto ; then
6241 cat > $TMPC << EOF
6242 #include <sys/ioctl.h>
6243 #ifdef __linux__
6244 #include <linux/rtc.h>
6245 #else
6246 #include <rtc.h>
6247 #define RTC_PIE_ON RTCIO_PIE_ON
6248 #endif
6249 int main(void) { return RTC_PIE_ON; }
6251 _rtc=no
6252 cc_check && _rtc=yes
6253 ppc && _rtc=no
6255 if test "$_rtc" = yes ; then
6256 def_rtc='#define HAVE_RTC 1'
6257 else
6258 def_rtc='#undef HAVE_RTC'
6260 echores "$_rtc"
6263 echocheck "liblzo2 support"
6264 if test "$_liblzo" = auto ; then
6265 _liblzo=no
6266 cat > $TMPC << EOF
6267 #include <lzo/lzo1x.h>
6268 int main(void) { lzo_init();return 0; }
6270 cc_check -llzo2 && _liblzo=yes
6272 if test "$_liblzo" = yes ; then
6273 def_liblzo='#define CONFIG_LIBLZO 1'
6274 extra_ldflags="$extra_ldflags -llzo2"
6275 codecmodules="liblzo $codecmodules"
6276 else
6277 def_liblzo='#undef CONFIG_LIBLZO'
6278 nocodecmodules="liblzo $nocodecmodules"
6280 echores "$_liblzo"
6283 echocheck "mad support"
6284 if test "$_mad" = auto ; then
6285 _mad=no
6286 cat > $TMPC << EOF
6287 #include <mad.h>
6288 int main(void) { return 0; }
6290 cc_check -lmad && _mad=yes
6292 if test "$_mad" = yes ; then
6293 def_mad='#define CONFIG_LIBMAD 1'
6294 extra_ldflags="$extra_ldflags -lmad"
6295 codecmodules="libmad $codecmodules"
6296 else
6297 def_mad='#undef CONFIG_LIBMAD'
6298 nocodecmodules="libmad $nocodecmodules"
6300 echores "$_mad"
6302 echocheck "Twolame"
6303 if test "$_twolame" = auto ; then
6304 cat > $TMPC <<EOF
6305 #include <twolame.h>
6306 int main(void) { twolame_init(); return 0; }
6308 _twolame=no
6309 cc_check -ltwolame $_ld_lm && _twolame=yes
6311 if test "$_twolame" = yes ; then
6312 def_twolame='#define CONFIG_TWOLAME 1'
6313 libs_mencoder="$libs_mencoder -ltwolame"
6314 codecmodules="twolame $codecmodules"
6315 else
6316 def_twolame='#undef CONFIG_TWOLAME'
6317 nocodecmodules="twolame $nocodecmodules"
6319 echores "$_twolame"
6321 echocheck "Toolame"
6322 if test "$_toolame" = auto ; then
6323 _toolame=no
6324 if test "$_twolame" = yes ; then
6325 res_comment="disabled by twolame"
6326 else
6327 cat > $TMPC <<EOF
6328 #include <toolame.h>
6329 int main(void) { toolame_init(); return 0; }
6331 cc_check -ltoolame $_ld_lm && _toolame=yes
6334 if test "$_toolame" = yes ; then
6335 def_toolame='#define CONFIG_TOOLAME 1'
6336 libs_mencoder="$libs_mencoder -ltoolame"
6337 codecmodules="toolame $codecmodules"
6338 else
6339 def_toolame='#undef CONFIG_TOOLAME'
6340 nocodecmodules="toolame $nocodecmodules"
6342 if test "$_toolamedir" ; then
6343 res_comment="using $_toolamedir"
6345 echores "$_toolame"
6347 echocheck "OggVorbis support"
6348 if test "$_tremor_internal" = yes; then
6349 _libvorbis=no
6350 elif test "$_tremor" = auto; then
6351 _tremor=no
6352 cat > $TMPC << EOF
6353 #include <tremor/ivorbiscodec.h>
6354 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6356 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6358 if test "$_libvorbis" = auto; then
6359 _libvorbis=no
6360 cat > $TMPC << EOF
6361 #include <vorbis/codec.h>
6362 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6364 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6366 if test "$_tremor_internal" = yes ; then
6367 _vorbis=yes
6368 def_vorbis='#define CONFIG_OGGVORBIS 1'
6369 def_tremor='#define CONFIG_TREMOR 1'
6370 codecmodules="tremor(internal) $codecmodules"
6371 res_comment="internal Tremor"
6372 if test "$_tremor_low" = yes ; then
6373 cflags_tremor_low="-D_LOW_ACCURACY_"
6374 res_comment="internal low accuracy Tremor"
6376 elif test "$_tremor" = yes ; then
6377 _vorbis=yes
6378 def_vorbis='#define CONFIG_OGGVORBIS 1'
6379 def_tremor='#define CONFIG_TREMOR 1'
6380 codecmodules="tremor(external) $codecmodules"
6381 res_comment="external Tremor"
6382 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6383 elif test "$_libvorbis" = yes ; then
6384 _vorbis=yes
6385 def_vorbis='#define CONFIG_OGGVORBIS 1'
6386 codecmodules="libvorbis $codecmodules"
6387 res_comment="libvorbis"
6388 extra_ldflags="$extra_ldflags -lvorbis -logg"
6389 else
6390 _vorbis=no
6391 nocodecmodules="libvorbis $nocodecmodules"
6393 echores "$_vorbis"
6395 echocheck "libspeex (version >= 1.1 required)"
6396 if test "$_speex" = auto ; then
6397 _speex=no
6398 cat > $TMPC << EOF
6399 #include <speex/speex.h>
6400 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6402 cc_check -lspeex $_ld_lm && _speex=yes
6404 if test "$_speex" = yes ; then
6405 def_speex='#define CONFIG_SPEEX 1'
6406 extra_ldflags="$extra_ldflags -lspeex"
6407 codecmodules="speex $codecmodules"
6408 else
6409 def_speex='#undef CONFIG_SPEEX'
6410 nocodecmodules="speex $nocodecmodules"
6412 echores "$_speex"
6414 echocheck "OggTheora support"
6415 if test "$_theora" = auto ; then
6416 _theora=no
6417 cat > $TMPC << EOF
6418 #include <theora/theora.h>
6419 #include <string.h>
6420 int main(void) {
6421 /* Theora is in flux, make sure that all interface routines and datatypes
6422 * exist and work the way we expect it, so we don't break MPlayer. */
6423 ogg_packet op;
6424 theora_comment tc;
6425 theora_info inf;
6426 theora_state st;
6427 yuv_buffer yuv;
6428 int r;
6429 double t;
6431 theora_info_init(&inf);
6432 theora_comment_init(&tc);
6434 return 0;
6436 /* we don't want to execute this kind of nonsense; just for making sure
6437 * that compilation works... */
6438 memset(&op, 0, sizeof(op));
6439 r = theora_decode_header(&inf, &tc, &op);
6440 r = theora_decode_init(&st, &inf);
6441 t = theora_granule_time(&st, op.granulepos);
6442 r = theora_decode_packetin(&st, &op);
6443 r = theora_decode_YUVout(&st, &yuv);
6444 theora_clear(&st);
6446 return 0;
6449 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6450 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6451 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6452 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6453 if test _theora = no; then
6454 _ld_theora="-ltheora -logg"
6455 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6457 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6458 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6459 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6460 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6461 extra_ldflags="$extra_ldflags $_ld_theora" &&
6462 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6463 if test _theora = no; then
6464 _ld_theora="-ltheora -logg"
6465 cc_check tremor/bitwise.c $_ld_theora &&
6466 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6470 if test "$_theora" = yes ; then
6471 def_theora='#define CONFIG_OGGTHEORA 1'
6472 codecmodules="libtheora $codecmodules"
6473 # when --enable-theora is forced, we'd better provide a probably sane
6474 # $_ld_theora than nothing
6475 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6476 else
6477 def_theora='#undef CONFIG_OGGTHEORA'
6478 nocodecmodules="libtheora $nocodecmodules"
6480 echores "$_theora"
6482 echocheck "mp3lib support"
6483 if test "$_mp3lib" = auto ; then
6484 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6486 if test "$_mp3lib" = yes ; then
6487 def_mp3lib='#define CONFIG_MP3LIB 1'
6488 codecmodules="mp3lib(internal) $codecmodules"
6489 else
6490 def_mp3lib='#undef CONFIG_MP3LIB'
6491 nocodecmodules="mp3lib(internal) $nocodecmodules"
6493 echores "$_mp3lib"
6495 echocheck "liba52 support"
6496 def_liba52='#undef CONFIG_LIBA52'
6497 if test "$_liba52" = auto ; then
6498 _liba52=no
6499 cat > $TMPC << EOF
6500 #include <inttypes.h>
6501 #include <a52dec/a52.h>
6502 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6504 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6506 if test "$_liba52" = yes ; then
6507 def_liba52='#define CONFIG_LIBA52 1'
6508 codecmodules="liba52 $codecmodules"
6509 else
6510 nocodecmodules="liba52 $nocodecmodules"
6512 echores "$_liba52"
6514 echocheck "internal libmpeg2 support"
6515 if test "$_libmpeg2" = auto ; then
6516 _libmpeg2=yes
6517 if alpha && test cc_vendor=gnu; then
6518 case $cc_version in
6519 2*|3.0*|3.1*) # cannot compile MVI instructions
6520 _libmpeg2=no
6521 res_comment="broken gcc"
6523 esac
6526 if test "$_libmpeg2" = yes ; then
6527 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6528 codecmodules="libmpeg2(internal) $codecmodules"
6529 else
6530 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6531 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6533 echores "$_libmpeg2"
6535 echocheck "libdca support"
6536 if test "$_libdca" = auto ; then
6537 _libdca=no
6538 cat > $TMPC << EOF
6539 #include <inttypes.h>
6540 #include <dts.h>
6541 int main(void) { dts_init(0); return 0; }
6543 for _ld_dca in -ldca -ldts ; do
6544 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6545 && _libdca=yes && break
6546 done
6548 if test "$_libdca" = yes ; then
6549 def_libdca='#define CONFIG_LIBDCA 1'
6550 codecmodules="libdca $codecmodules"
6551 else
6552 def_libdca='#undef CONFIG_LIBDCA'
6553 nocodecmodules="libdca $nocodecmodules"
6555 echores "$_libdca"
6557 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6558 if test "$_musepack" = auto ; then
6559 _musepack=no
6560 cat > $TMPC << EOF
6561 #include <stddef.h>
6562 #include <mpcdec/mpcdec.h>
6563 int main(void) {
6564 mpc_streaminfo info;
6565 mpc_decoder decoder;
6566 mpc_decoder_set_streaminfo(&decoder, &info);
6567 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6568 return 0;
6571 cc_check -lmpcdec $_ld_lm && _musepack=yes
6573 if test "$_musepack" = yes ; then
6574 def_musepack='#define CONFIG_MUSEPACK 1'
6575 extra_ldflags="$extra_ldflags -lmpcdec"
6576 codecmodules="musepack $codecmodules"
6577 else
6578 def_musepack='#undef CONFIG_MUSEPACK'
6579 nocodecmodules="musepack $nocodecmodules"
6581 echores "$_musepack"
6584 echocheck "FAAC support"
6585 if test "$_faac" = auto ; then
6586 cat > $TMPC <<EOF
6587 #include <inttypes.h>
6588 #include <faac.h>
6589 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6591 _faac=no
6592 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6593 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6594 done
6596 if test "$_faac" = yes ; then
6597 def_faac="#define CONFIG_FAAC 1"
6598 codecmodules="faac $codecmodules"
6599 else
6600 def_faac="#undef CONFIG_FAAC"
6601 nocodecmodules="faac $nocodecmodules"
6603 echores "$_faac"
6606 echocheck "FAAD2 support"
6607 if test "$_faad_internal" = auto ; then
6608 if x86_32 && test cc_vendor=gnu; then
6609 case $cc_version in
6610 3.1*|3.2) # ICE/insn with these versions
6611 _faad_internal=no
6612 res_comment="broken gcc"
6615 _faad=yes
6616 _faad_internal=yes
6618 esac
6619 else
6620 _faad=yes
6621 _faad_internal=yes
6624 if test "$_faad" = auto ; then
6625 cat > $TMPC << EOF
6626 #include <faad.h>
6627 #ifndef FAAD_MIN_STREAMSIZE
6628 #error Too old version
6629 #endif
6630 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6631 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6633 cc_check -lfaad $_ld_lm && _faad=yes
6636 def_faad='#undef CONFIG_FAAD'
6637 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6638 if test "$_faad_internal" = yes ; then
6639 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6640 res_comment="internal floating-point"
6641 if test "$_faad_fixed" = yes ; then
6642 # The FIXED_POINT implementation of FAAD2 improves performance
6643 # on some platforms, especially for SBR files.
6644 cflags_faad_fixed="-DFIXED_POINT"
6645 res_comment="internal fixed-point"
6647 elif test "$_faad" = yes ; then
6648 extra_ldflags="$extra_ldflags -lfaad"
6651 if test "$_faad" = yes ; then
6652 def_faad='#define CONFIG_FAAD 1'
6653 if test "$_faad_internal" = yes ; then
6654 codecmodules="faad2(internal) $codecmodules"
6655 else
6656 codecmodules="faad2 $codecmodules"
6658 else
6659 _faad=no
6660 nocodecmodules="faad2 $nocodecmodules"
6662 echores "$_faad"
6665 echocheck "LADSPA plugin support"
6666 if test "$_ladspa" = auto ; then
6667 cat > $TMPC <<EOF
6668 #include <stdio.h>
6669 #include <ladspa.h>
6670 int main(void) {
6671 const LADSPA_Descriptor *ld = NULL;
6672 return 0;
6675 _ladspa=no
6676 cc_check && _ladspa=yes
6678 if test "$_ladspa" = yes; then
6679 def_ladspa="#define CONFIG_LADSPA 1"
6680 else
6681 def_ladspa="#undef CONFIG_LADSPA"
6683 echores "$_ladspa"
6686 echocheck "libbs2b audio filter support"
6687 if test "$_libbs2b" = auto ; then
6688 cat > $TMPC <<EOF
6689 #include <bs2b.h>
6690 #if BS2B_VERSION_MAJOR < 3
6691 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6692 #endif
6693 int main(void) {
6694 t_bs2bdp filter;
6695 filter=bs2b_open();
6696 bs2b_close(filter);
6697 return 0;
6700 _libbs2b=no
6701 if $_pkg_config --exists libbs2b ; then
6702 _inc_tmp=$($_pkg_config --cflags libbs2b)
6703 _ld_tmp=$($_pkg_config --libs libbs2b)
6704 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6705 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6706 else
6707 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6708 -I/usr/local/include/bs2b ; do
6709 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6710 extra_ldflags="$extra_ldflags -lbs2b"
6711 extra_cflags="$extra_cflags $_inc_tmp"
6712 _libbs2b=yes
6713 break
6715 done
6718 def_libbs2b="#undef CONFIG_LIBBS2B"
6719 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6720 echores "$_libbs2b"
6723 if test -z "$_codecsdir" ; then
6724 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6725 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6726 if test -d "$dir" ; then
6727 _codecsdir="$dir"
6728 break;
6730 done
6732 # Fall back on default directory.
6733 if test -z "$_codecsdir" ; then
6734 _codecsdir="$_libdir/codecs"
6735 mingw32 || os2 && _codecsdir="codecs"
6739 echocheck "Win32 codecs"
6740 if test "$_win32dll" = auto ; then
6741 _win32dll=no
6742 if x86_32 && ! qnx; then
6743 _win32dll=yes
6746 if test "$_win32dll" = yes ; then
6747 def_win32dll='#define CONFIG_WIN32DLL 1'
6748 if ! win32 ; then
6749 def_win32_loader='#define WIN32_LOADER 1'
6750 _win32_emulation=yes
6751 else
6752 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6753 res_comment="using native windows"
6755 codecmodules="win32 $codecmodules"
6756 else
6757 def_win32dll='#undef CONFIG_WIN32DLL'
6758 def_win32_loader='#undef WIN32_LOADER'
6759 nocodecmodules="win32 $nocodecmodules"
6761 echores "$_win32dll"
6764 echocheck "XAnim codecs"
6765 if test "$_xanim" = auto ; then
6766 _xanim=no
6767 res_comment="dynamic loader support needed"
6768 if test "$_dl" = yes ; then
6769 _xanim=yes
6772 if test "$_xanim" = yes ; then
6773 def_xanim='#define CONFIG_XANIM 1'
6774 codecmodules="xanim $codecmodules"
6775 else
6776 def_xanim='#undef CONFIG_XANIM'
6777 nocodecmodules="xanim $nocodecmodules"
6779 echores "$_xanim"
6782 echocheck "RealPlayer codecs"
6783 if test "$_real" = auto ; then
6784 _real=no
6785 res_comment="dynamic loader support needed"
6786 if test "$_dl" = yes || test "$_win32dll" = yes &&
6787 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
6788 _real=yes
6791 if test "$_real" = yes ; then
6792 def_real='#define CONFIG_REALCODECS 1'
6793 codecmodules="real $codecmodules"
6794 else
6795 def_real='#undef CONFIG_REALCODECS'
6796 nocodecmodules="real $nocodecmodules"
6798 echores "$_real"
6801 echocheck "QuickTime codecs"
6802 _qtx_emulation=no
6803 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6804 if test "$_qtx" = auto ; then
6805 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6807 if test "$_qtx" = yes ; then
6808 def_qtx='#define CONFIG_QTX_CODECS 1'
6809 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6810 codecmodules="qtx $codecmodules"
6811 darwin || win32 || _qtx_emulation=yes
6812 else
6813 def_qtx='#undef CONFIG_QTX_CODECS'
6814 nocodecmodules="qtx $nocodecmodules"
6816 echores "$_qtx"
6818 echocheck "Nemesi Streaming Media libraries"
6819 if test "$_nemesi" = auto && test "$_network" = yes ; then
6820 _nemesi=no
6821 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6822 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6823 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6824 _nemesi=yes
6827 if test "$_nemesi" = yes; then
6828 _native_rtsp=no
6829 def_nemesi='#define CONFIG_LIBNEMESI 1'
6830 inputmodules="nemesi $inputmodules"
6831 else
6832 _native_rtsp="$_network"
6833 _nemesi=no
6834 def_nemesi='#undef CONFIG_LIBNEMESI'
6835 noinputmodules="nemesi $noinputmodules"
6837 echores "$_nemesi"
6839 echocheck "LIVE555 Streaming Media libraries"
6840 if test "$_live" = auto && test "$_network" = yes ; then
6841 cat > $TMPCPP << EOF
6842 #include <liveMedia.hh>
6843 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6844 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6845 #endif
6846 int main(void) { return 0; }
6849 _live=no
6850 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
6851 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6852 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6853 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6854 $_livelibdir/groupsock/libgroupsock.a \
6855 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6856 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6857 $extra_ldflags -lstdc++" \
6858 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6859 -I$_livelibdir/UsageEnvironment/include \
6860 -I$_livelibdir/BasicUsageEnvironment/include \
6861 -I$_livelibdir/groupsock/include" && \
6862 _live=yes && break
6863 done
6864 if test "$_live" != yes ; then
6865 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6866 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6867 _live_dist=yes
6871 if test "$_live" = yes && test "$_network" = yes; then
6872 test $_livelibdir && res_comment="using $_livelibdir"
6873 def_live='#define CONFIG_LIVE555 1'
6874 inputmodules="live555 $inputmodules"
6875 elif test "$_live_dist" = yes && test "$_network" = yes; then
6876 res_comment="using distribution version"
6877 _live="yes"
6878 def_live='#define CONFIG_LIVE555 1'
6879 extra_ldflags="$extra_ldflags $ld_tmp"
6880 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6881 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6882 inputmodules="live555 $inputmodules"
6883 else
6884 _live=no
6885 def_live='#undef CONFIG_LIVE555'
6886 noinputmodules="live555 $noinputmodules"
6888 echores "$_live"
6891 echocheck "FFmpeg libavutil"
6892 if test "$_libavutil" = auto ; then
6893 _libavutil=no
6894 cat > $TMPC << EOF
6895 #include <libavutil/common.h>
6896 int main(void) { av_clip(1, 1, 1); return 0; }
6898 if $_pkg_config --exists libavutil ; then
6899 _inc_libavutil=$($_pkg_config --cflags libavutil)
6900 _ld_tmp=$($_pkg_config --libs libavutil)
6901 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6902 && _libavutil=yes
6903 elif cc_check -lavutil $_ld_lm ; then
6904 extra_ldflags="$extra_ldflags -lavutil"
6905 _libavutil=yes
6908 def_libavutil='#undef CONFIG_LIBAVUTIL'
6909 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6910 # libavutil is not available, but it is mandatory ...
6911 if test "$_libavutil" = no ; then
6912 die "You need libavutil, MPlayer will not compile without!"
6914 echores "$_libavutil"
6916 echocheck "FFmpeg libavcodec"
6917 if test "$_libavcodec" = auto ; then
6918 _libavcodec=no
6919 cat > $TMPC << EOF
6920 #include <libavcodec/avcodec.h>
6921 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6923 if $_pkg_config --exists libavcodec ; then
6924 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6925 _ld_tmp=$($_pkg_config --libs libavcodec)
6926 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6927 && _libavcodec=yes
6928 elif cc_check -lavcodec $_ld_lm ; then
6929 extra_ldflags="$extra_ldflags -lavcodec"
6930 _libavcodec=yes
6933 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6934 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6935 if test "$_libavcodec" = yes ; then
6936 codecmodules="libavcodec $codecmodules"
6937 else
6938 nocodecmodules="libavcodec $nocodecmodules"
6940 echores "$_libavcodec"
6942 echocheck "FFmpeg libavformat"
6943 if test "$_libavformat" = auto ; then
6944 _libavformat=no
6945 cat > $TMPC <<EOF
6946 #include <libavformat/avformat.h>
6947 int main(void) { av_alloc_format_context(); return 0; }
6949 if $_pkg_config --exists libavformat ; then
6950 _inc_libavformat=$($_pkg_config --cflags libavformat)
6951 _ld_tmp=$($_pkg_config --libs libavformat)
6952 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6953 && _libavformat=yes
6954 elif cc_check $_ld_lm -lavformat ; then
6955 extra_ldflags="$extra_ldflags -lavformat"
6956 _libavformat=yes
6959 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6960 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6961 echores "$_libavformat"
6963 echocheck "FFmpeg libpostproc"
6964 if test "$_libpostproc" = auto ; then
6965 _libpostproc=no
6966 cat > $TMPC << EOF
6967 #include <libpostproc/postprocess.h>
6968 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6970 if $_pkg_config --exists libpostproc ; then
6971 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6972 _ld_tmp=$($_pkg_config --libs libpostproc)
6973 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6974 && _libpostproc=yes
6975 elif cc_check -lpostproc $_ld_lm ; then
6976 extra_ldflags="$extra_ldflags -lpostproc"
6977 _libpostproc=yes
6980 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6981 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6982 echores "$_libpostproc"
6984 echocheck "FFmpeg libswscale"
6985 if test "$_libswscale" = auto ; then
6986 _libswscale=no
6987 cat > $TMPC << EOF
6988 #include <libswscale/swscale.h>
6989 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6991 if $_pkg_config --exists libswscale ; then
6992 _inc_libswscale=$($_pkg_config --cflags libswscale)
6993 _ld_tmp=$($_pkg_config --libs libswscale)
6994 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6995 && _libswscale=yes
6996 elif cc_check -lswscale ; then
6997 extra_ldflags="$extra_ldflags -lswscale"
6998 _libswscale=yes
7001 def_libswscale='#undef CONFIG_LIBSWSCALE'
7002 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7003 echores "$_libswscale"
7005 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
7006 if ! test -z "$_ffmpeg_source" ; then
7007 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
7010 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
7011 if ! test -z "$_ffmpeg_source" ; then
7012 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
7015 echocheck "libdv-0.9.5+"
7016 if test "$_libdv" = auto ; then
7017 _libdv=no
7018 cat > $TMPC <<EOF
7019 #include <libdv/dv.h>
7020 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7022 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7024 if test "$_libdv" = yes ; then
7025 def_libdv='#define CONFIG_LIBDV095 1'
7026 extra_ldflags="$extra_ldflags -ldv"
7027 codecmodules="libdv $codecmodules"
7028 else
7029 def_libdv='#undef CONFIG_LIBDV095'
7030 nocodecmodules="libdv $nocodecmodules"
7032 echores "$_libdv"
7035 echocheck "Xvid"
7036 if test "$_xvid" = auto ; then
7037 _xvid=no
7038 cat > $TMPC << EOF
7039 #include <xvid.h>
7040 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7042 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7043 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7044 done
7047 if test "$_xvid" = yes ; then
7048 def_xvid='#define CONFIG_XVID4 1'
7049 codecmodules="xvid $codecmodules"
7050 else
7051 def_xvid='#undef CONFIG_XVID4'
7052 nocodecmodules="xvid $nocodecmodules"
7054 echores "$_xvid"
7056 echocheck "x264"
7057 if test "$_x264" = auto ; then
7058 cat > $TMPC << EOF
7059 #include <inttypes.h>
7060 #include <x264.h>
7061 #if X264_BUILD < 98
7062 #error We do not support old versions of x264. Get the latest from git.
7063 #endif
7064 int main(void) { x264_encoder_open((void*)0); return 0; }
7066 _x264=no
7067 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7068 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7069 done
7072 if test "$_x264" = yes ; then
7073 def_x264='#define CONFIG_X264 1'
7074 codecmodules="x264 $codecmodules"
7075 else
7076 def_x264='#undef CONFIG_X264'
7077 nocodecmodules="x264 $nocodecmodules"
7079 echores "$_x264"
7081 echocheck "libnut"
7082 if test "$_libnut" = auto ; then
7083 cat > $TMPC << EOF
7084 #include <stdio.h>
7085 #include <stdlib.h>
7086 #include <inttypes.h>
7087 #include <libnut.h>
7088 nut_context_tt * nut;
7089 int main(void) { (void)nut_error(0); return 0; }
7091 _libnut=no
7092 cc_check -lnut && _libnut=yes
7095 if test "$_libnut" = yes ; then
7096 def_libnut='#define CONFIG_LIBNUT 1'
7097 extra_ldflags="$extra_ldflags -lnut"
7098 else
7099 def_libnut='#undef CONFIG_LIBNUT'
7101 echores "$_libnut"
7103 # These VO checks must be done after libavcodec/libswscale one
7104 echocheck "/dev/mga_vid"
7105 if test "$_mga" = auto ; then
7106 _mga=no
7107 test -c /dev/mga_vid && _mga=yes
7109 if test "$_mga" = yes ; then
7110 if test "$_libswscale_internals" = yes ; then
7111 def_mga='#define CONFIG_MGA 1'
7112 vomodules="mga $vomodules"
7113 else
7114 res_comment="libswscale internal headers are required by mga, sorry"
7115 _mga=no
7116 def_mga='#undef CONFIG_MGA'
7117 novomodules="mga $novomodules"
7119 else
7120 def_mga='#undef CONFIG_MGA'
7121 novomodules="mga $novomodules"
7123 echores "$_mga"
7126 echocheck "xmga"
7127 if test "$_xmga" = auto ; then
7128 _xmga=no
7129 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
7131 if test "$_xmga" = yes ; then
7132 if test "$_libswscale_internals" = yes ; then
7133 def_xmga='#define CONFIG_XMGA 1'
7134 vomodules="xmga $vomodules"
7135 else
7136 res_comment="libswscale internal headers are required by xmga, sorry"
7137 _xmga=no
7138 def_xmga='#undef CONFIG_XMGA'
7139 novomodules="xmga $novomodules"
7141 else
7142 def_xmga='#undef CONFIG_XMGA'
7143 novomodules="xmga $novomodules"
7145 echores "$_xmga"
7147 echocheck "zr"
7148 if test "$_zr" = auto ; then
7149 #36067's seem to identify themselves as 36057PQC's, so the line
7150 #below should work for 36067's and 36057's.
7151 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7152 _zr=yes
7153 else
7154 _zr=no
7157 if test "$_zr" = yes ; then
7158 if test "$_libavcodec_internals" = yes ; then
7159 def_zr='#define CONFIG_ZR 1'
7160 vomodules="zr zr2 $vomodules"
7161 else
7162 res_comment="libavcodec internal headers are required by zr, sorry"
7163 novomodules="zr $novomodules"
7164 def_zr='#undef CONFIG_ZR'
7166 else
7167 def_zr='#undef CONFIG_ZR'
7168 novomodules="zr zr2 $novomodules"
7170 echores "$_zr"
7172 # mencoder requires (optional) those libs: libmp3lame
7173 if test "$_mencoder" != no ; then
7175 echocheck "libmp3lame"
7176 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7177 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7178 if test "$_mp3lame" = auto ; then
7179 _mp3lame=no
7180 cat > $TMPC <<EOF
7181 #include <lame/lame.h>
7182 int main(void) { lame_version_t lv; (void) lame_init();
7183 get_lame_version_numerical(&lv);
7184 return 0; }
7186 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7188 if test "$_mp3lame" = yes ; then
7189 def_mp3lame="#define CONFIG_MP3LAME 1"
7190 _ld_mp3lame=-lmp3lame
7191 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7192 cat > $TMPC << EOF
7193 #include <lame/lame.h>
7194 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7196 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7197 cat > $TMPC << EOF
7198 #include <lame/lame.h>
7199 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7201 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7202 else
7203 def_mp3lame='#undef CONFIG_MP3LAME'
7205 echores "$_mp3lame"
7207 fi # test "$_mencoder" != no
7209 echocheck "mencoder"
7210 if test "$_mencoder" = yes ; then
7211 def_muxers='#define CONFIG_MUXERS 1'
7212 else
7213 def_muxers='#define CONFIG_MUXERS 0'
7215 echores "$_mencoder"
7218 echocheck "UnRAR executable"
7219 if test "$_unrar_exec" = auto ; then
7220 _unrar_exec="yes"
7221 mingw32 && _unrar_exec="no"
7223 if test "$_unrar_exec" = yes ; then
7224 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7225 else
7226 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7228 echores "$_unrar_exec"
7230 echocheck "TV interface"
7231 if test "$_tv" = yes ; then
7232 def_tv='#define CONFIG_TV 1'
7233 inputmodules="tv $inputmodules"
7234 else
7235 noinputmodules="tv $noinputmodules"
7236 def_tv='#undef CONFIG_TV'
7238 echores "$_tv"
7241 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7242 echocheck "*BSD BT848 bt8xx header"
7243 _ioctl_bt848_h=no
7244 for file in "machine/ioctl_bt848.h" \
7245 "dev/bktr/ioctl_bt848.h" \
7246 "dev/video/bktr/ioctl_bt848.h" \
7247 "dev/ic/bt8xx.h" ; do
7248 cat > $TMPC <<EOF
7249 #include <sys/types.h>
7250 #include <sys/ioctl.h>
7251 #include <$file>
7252 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7254 if cc_check ; then
7255 _ioctl_bt848_h=yes
7256 _ioctl_bt848_h_name="$file"
7257 break;
7259 done
7260 if test "$_ioctl_bt848_h" = yes ; then
7261 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7262 res_comment="using $_ioctl_bt848_h_name"
7263 else
7264 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7266 echores "$_ioctl_bt848_h"
7268 echocheck "*BSD ioctl_meteor.h"
7269 _ioctl_meteor_h=no
7270 for file in "machine/ioctl_meteor.h" \
7271 "dev/bktr/ioctl_meteor.h" \
7272 "dev/video/bktr/ioctl_meteor.h" ; do
7273 cat > $TMPC <<EOF
7274 #include <sys/types.h>
7275 #include <$file>
7276 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7278 if cc_check ; then
7279 _ioctl_meteor_h=yes
7280 _ioctl_meteor_h_name="$file"
7281 break;
7283 done
7284 if test "$_ioctl_meteor_h" = yes ; then
7285 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7286 res_comment="using $_ioctl_meteor_h_name"
7287 else
7288 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7290 echores "$_ioctl_meteor_h"
7292 echocheck "*BSD BrookTree 848 TV interface"
7293 if test "$_tv_bsdbt848" = auto ; then
7294 _tv_bsdbt848=no
7295 if test "$_tv" = yes ; then
7296 cat > $TMPC <<EOF
7297 #include <sys/types.h>
7298 $def_ioctl_meteor_h_name
7299 $def_ioctl_bt848_h_name
7300 #ifdef IOCTL_METEOR_H_NAME
7301 #include IOCTL_METEOR_H_NAME
7302 #endif
7303 #ifdef IOCTL_BT848_H_NAME
7304 #include IOCTL_BT848_H_NAME
7305 #endif
7306 int main(void) {
7307 ioctl(0, METEORSINPUT, 0);
7308 ioctl(0, TVTUNER_GETFREQ, 0);
7309 return 0;
7312 cc_check && _tv_bsdbt848=yes
7315 if test "$_tv_bsdbt848" = yes ; then
7316 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7317 inputmodules="tv-bsdbt848 $inputmodules"
7318 else
7319 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7320 noinputmodules="tv-bsdbt848 $noinputmodules"
7322 echores "$_tv_bsdbt848"
7323 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7326 echocheck "DirectShow TV interface"
7327 if test "$_tv_dshow" = auto ; then
7328 _tv_dshow=no
7329 if test "$_tv" = yes && win32 ; then
7330 cat > $TMPC <<EOF
7331 #include <ole2.h>
7332 int main(void) {
7333 void* p;
7334 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7335 return 0;
7338 cc_check -lole32 -luuid && _tv_dshow=yes
7341 if test "$_tv_dshow" = yes ; then
7342 inputmodules="tv-dshow $inputmodules"
7343 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7344 extra_ldflags="$extra_ldflags -lole32 -luuid"
7345 else
7346 noinputmodules="tv-dshow $noinputmodules"
7347 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7349 echores "$_tv_dshow"
7352 echocheck "Video 4 Linux TV interface"
7353 if test "$_tv_v4l1" = auto ; then
7354 _tv_v4l1=no
7355 if test "$_tv" = yes && linux ; then
7356 cat > $TMPC <<EOF
7357 #include <stdlib.h>
7358 #include <linux/videodev.h>
7359 int main(void) { return 0; }
7361 cc_check && _tv_v4l1=yes
7364 if test "$_tv_v4l1" = yes ; then
7365 _audio_input=yes
7366 _tv_v4l=yes
7367 def_tv_v4l='#define CONFIG_TV_V4L 1'
7368 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7369 inputmodules="tv-v4l $inputmodules"
7370 else
7371 noinputmodules="tv-v4l1 $noinputmodules"
7372 def_tv_v4l='#undef CONFIG_TV_V4L'
7374 echores "$_tv_v4l1"
7377 echocheck "Video 4 Linux 2 TV interface"
7378 if test "$_tv_v4l2" = auto ; then
7379 _tv_v4l2=no
7380 if test "$_tv" = yes && linux ; then
7381 cat > $TMPC <<EOF
7382 #include <stdlib.h>
7383 #include <linux/types.h>
7384 #include <linux/videodev2.h>
7385 int main(void) { return 0; }
7387 cc_check && _tv_v4l2=yes
7390 if test "$_tv_v4l2" = yes ; then
7391 _audio_input=yes
7392 _tv_v4l=yes
7393 def_tv_v4l='#define CONFIG_TV_V4L 1'
7394 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7395 inputmodules="tv-v4l2 $inputmodules"
7396 else
7397 noinputmodules="tv-v4l2 $noinputmodules"
7398 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7400 echores "$_tv_v4l2"
7403 echocheck "Radio interface"
7404 if test "$_radio" = yes ; then
7405 def_radio='#define CONFIG_RADIO 1'
7406 inputmodules="radio $inputmodules"
7407 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7408 _radio_capture=no
7410 if test "$_radio_capture" = yes ; then
7411 _audio_input=yes
7412 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7413 else
7414 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7416 else
7417 noinputmodules="radio $noinputmodules"
7418 def_radio='#undef CONFIG_RADIO'
7419 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7420 _radio_capture=no
7422 echores "$_radio"
7423 echocheck "Capture for Radio interface"
7424 echores "$_radio_capture"
7426 echocheck "Video 4 Linux 2 Radio interface"
7427 if test "$_radio_v4l2" = auto ; then
7428 _radio_v4l2=no
7429 if test "$_radio" = yes && linux ; then
7430 cat > $TMPC <<EOF
7431 #include <stdlib.h>
7432 #include <linux/types.h>
7433 #include <linux/videodev2.h>
7434 int main(void) { return 0; }
7436 cc_check && _radio_v4l2=yes
7439 if test "$_radio_v4l2" = yes ; then
7440 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7441 else
7442 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7444 echores "$_radio_v4l2"
7446 echocheck "Video 4 Linux Radio interface"
7447 if test "$_radio_v4l" = auto ; then
7448 _radio_v4l=no
7449 if test "$_radio" = yes && linux ; then
7450 cat > $TMPC <<EOF
7451 #include <stdlib.h>
7452 #include <linux/videodev.h>
7453 int main(void) { return 0; }
7455 cc_check && _radio_v4l=yes
7458 if test "$_radio_v4l" = yes ; then
7459 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7460 else
7461 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7463 echores "$_radio_v4l"
7465 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7466 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7467 echocheck "*BSD BrookTree 848 Radio interface"
7468 _radio_bsdbt848=no
7469 cat > $TMPC <<EOF
7470 #include <sys/types.h>
7471 $def_ioctl_bt848_h_name
7472 #ifdef IOCTL_BT848_H_NAME
7473 #include IOCTL_BT848_H_NAME
7474 #endif
7475 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7477 cc_check && _radio_bsdbt848=yes
7478 echores "$_radio_bsdbt848"
7479 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7481 if test "$_radio_bsdbt848" = yes ; then
7482 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7483 else
7484 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7487 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7488 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7489 die "Radio driver requires BSD BT848, V4L or V4L2!"
7492 echocheck "Video 4 Linux 2 MPEG PVR interface"
7493 if test "$_pvr" = auto ; then
7494 _pvr=no
7495 if test "$_tv_v4l2" = yes && linux ; then
7496 cat > $TMPC <<EOF
7497 #include <stdlib.h>
7498 #include <inttypes.h>
7499 #include <linux/types.h>
7500 #include <linux/videodev2.h>
7501 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7503 cc_check && _pvr=yes
7506 if test "$_pvr" = yes ; then
7507 def_pvr='#define CONFIG_PVR 1'
7508 inputmodules="pvr $inputmodules"
7509 else
7510 noinputmodules="pvr $noinputmodules"
7511 def_pvr='#undef CONFIG_PVR'
7513 echores "$_pvr"
7516 echocheck "ftp"
7517 if ! beos && test "$_ftp" = yes ; then
7518 def_ftp='#define CONFIG_FTP 1'
7519 inputmodules="ftp $inputmodules"
7520 else
7521 noinputmodules="ftp $noinputmodules"
7522 def_ftp='#undef CONFIG_FTP'
7524 echores "$_ftp"
7526 echocheck "vstream client"
7527 if test "$_vstream" = auto ; then
7528 _vstream=no
7529 cat > $TMPC <<EOF
7530 #include <vstream-client.h>
7531 void vstream_error(const char *format, ... ) {}
7532 int main(void) { vstream_start(); return 0; }
7534 cc_check -lvstream-client && _vstream=yes
7536 if test "$_vstream" = yes ; then
7537 def_vstream='#define CONFIG_VSTREAM 1'
7538 inputmodules="vstream $inputmodules"
7539 extra_ldflags="$extra_ldflags -lvstream-client"
7540 else
7541 noinputmodules="vstream $noinputmodules"
7542 def_vstream='#undef CONFIG_VSTREAM'
7544 echores "$_vstream"
7547 echocheck "OSD menu"
7548 if test "$_menu" = yes ; then
7549 def_menu='#define CONFIG_MENU 1'
7550 test $_dvbin = "yes" && _menu_dvbin=yes
7551 else
7552 def_menu='#undef CONFIG_MENU'
7553 _menu_dvbin=no
7555 echores "$_menu"
7558 echocheck "Subtitles sorting"
7559 if test "$_sortsub" = yes ; then
7560 def_sortsub='#define CONFIG_SORTSUB 1'
7561 else
7562 def_sortsub='#undef CONFIG_SORTSUB'
7564 echores "$_sortsub"
7567 echocheck "XMMS inputplugin support"
7568 if test "$_xmms" = yes ; then
7569 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7570 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7571 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7572 else
7573 _xmmsplugindir=/usr/lib/xmms/Input
7574 _xmmslibdir=/usr/lib
7577 def_xmms='#define CONFIG_XMMS 1'
7578 if darwin ; then
7579 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7580 else
7581 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7583 else
7584 def_xmms='#undef CONFIG_XMMS'
7586 echores "$_xmms"
7588 if test "$_charset" != "noconv" ; then
7589 def_charset="#define MSG_CHARSET \"$_charset\""
7590 else
7591 def_charset="#undef MSG_CHARSET"
7592 _charset="UTF-8"
7595 #############################################################################
7597 echocheck "automatic gdb attach"
7598 if test "$_crash_debug" = yes ; then
7599 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7600 else
7601 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7602 _crash_debug=no
7604 echores "$_crash_debug"
7606 echocheck "compiler support for noexecstack"
7607 cat > $TMPC <<EOF
7608 int main(void) { return 0; }
7610 if cc_check -Wl,-z,noexecstack ; then
7611 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7612 echores "yes"
7613 else
7614 echores "no"
7617 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
7618 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
7619 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
7620 echores "yes"
7621 else
7622 echores "no"
7626 # Dynamic linking flags
7627 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7628 _ld_dl_dynamic=''
7629 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7630 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7631 _ld_dl_dynamic='-rdynamic'
7634 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7635 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7636 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7638 def_debug='#undef MP_DEBUG'
7639 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7642 echocheck "joystick"
7643 def_joystick='#undef CONFIG_JOYSTICK'
7644 if test "$_joystick" = yes ; then
7645 if linux ; then
7646 # TODO add some check
7647 def_joystick='#define CONFIG_JOYSTICK 1'
7648 else
7649 _joystick="no"
7650 res_comment="unsupported under $system_name"
7653 echores "$_joystick"
7655 echocheck "lirc"
7656 if test "$_lirc" = auto ; then
7657 _lirc=no
7658 cat > $TMPC <<EOF
7659 #include <lirc/lirc_client.h>
7660 int main(void) { return 0; }
7662 cc_check -llirc_client && _lirc=yes
7664 if test "$_lirc" = yes ; then
7665 def_lirc='#define CONFIG_LIRC 1'
7666 libs_mplayer="$libs_mplayer -llirc_client"
7667 else
7668 def_lirc='#undef CONFIG_LIRC'
7670 echores "$_lirc"
7672 echocheck "lircc"
7673 if test "$_lircc" = auto ; then
7674 _lircc=no
7675 cat > $TMPC <<EOF
7676 #include <lirc/lircc.h>
7677 int main(void) { return 0; }
7679 cc_check -llircc && _lircc=yes
7681 if test "$_lircc" = yes ; then
7682 def_lircc='#define CONFIG_LIRCC 1'
7683 libs_mplayer="$libs_mplayer -llircc"
7684 else
7685 def_lircc='#undef CONFIG_LIRCC'
7687 echores "$_lircc"
7689 if arm; then
7690 # Detect maemo development platform libraries availability (http://www.maemo.org),
7691 # they are used when run on Nokia 770|8x0
7692 echocheck "maemo (Nokia 770|8x0)"
7693 if test "$_maemo" = auto ; then
7694 _maemo=no
7695 cat > $TMPC << EOF
7696 #include <libosso.h>
7697 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7699 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7701 if test "$_maemo" = yes ; then
7702 def_maemo='#define CONFIG_MAEMO 1'
7703 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7704 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7705 else
7706 def_maemo='#undef CONFIG_MAEMO'
7708 echores "$_maemo"
7711 #############################################################################
7713 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7714 # the OMF format needs to come after the 'extern symbol prefix' check, which
7715 # uses nm.
7716 if os2 ; then
7717 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7720 # linker paths should be the same for mencoder and mplayer
7721 _ld_tmp=""
7722 for I in $libs_mplayer ; do
7723 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7724 if test -z "$_tmp" ; then
7725 extra_ldflags="$extra_ldflags $I"
7726 else
7727 _ld_tmp="$_ld_tmp $I"
7729 done
7730 libs_mplayer=$_ld_tmp
7733 #############################################################################
7734 # 64 bit file offsets?
7735 if test "$_largefiles" = yes || freebsd ; then
7736 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7737 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7738 # dvdread support requires this (for off64_t)
7739 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7743 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
7745 # This must be the last test to be performed. Any other tests following it
7746 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7747 # against libdvdread (to permit MPlayer to use its own copy of the library).
7748 # So any compilation using the flags added here but not linking against
7749 # libdvdread can fail.
7750 echocheck "DVD support (libdvdnav)"
7751 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7752 _dvdnav=no
7754 dvdnav_internal=no
7755 if test "$_dvdnav" = auto ; then
7756 if test "$_dvdread_internal" = yes ; then
7757 _dvdnav=yes
7758 dvdnav_internal=yes
7759 res_comment="internal"
7760 else
7761 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7764 if test "$_dvdnav" = auto ; then
7765 cat > $TMPC <<EOF
7766 #include <inttypes.h>
7767 #include <dvdnav/dvdnav.h>
7768 int main(void) { dvdnav_t *dvd=0; return 0; }
7770 _dvdnav=no
7771 _dvdnavdir=$($_dvdnavconfig --cflags)
7772 _dvdnavlibs=$($_dvdnavconfig --libs)
7773 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7775 if test "$_dvdnav" = yes ; then
7776 _largefiles=yes
7777 def_dvdnav='#define CONFIG_DVDNAV 1'
7778 if test "$dvdnav_internal" = yes ; then
7779 cflags_libdvdnav="-Ilibdvdnav"
7780 inputmodules="dvdnav(internal) $inputmodules"
7781 else
7782 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7783 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7784 inputmodules="dvdnav $inputmodules"
7786 else
7787 def_dvdnav='#undef CONFIG_DVDNAV'
7788 noinputmodules="dvdnav $noinputmodules"
7790 echores "$_dvdnav"
7792 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7793 # Read dvdnav comment above.
7795 mak_enable () {
7796 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7797 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7798 nprefix=$3;
7799 for part in $list; do
7800 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7801 echo "${nprefix}_$part = yes"
7803 done
7806 #############################################################################
7807 echo "Creating config.mak"
7808 cat > config.mak << EOF
7809 # -------- Generated by configure -----------
7811 # Ensure that locale settings do not interfere with shell commands.
7812 export LC_ALL = C
7814 CONFIGURATION = $configuration
7816 CHARSET = $_charset
7817 DOC_LANGS = $language_doc
7818 DOC_LANG_ALL = $doc_lang_all
7819 MAN_LANGS = $language_man
7820 MAN_LANG_ALL = $man_lang_all
7821 MSG_LANGS = $language_msg
7822 MSG_LANG_ALL = $msg_lang_all
7824 prefix = \$(DESTDIR)$_prefix
7825 BINDIR = \$(DESTDIR)$_bindir
7826 DATADIR = \$(DESTDIR)$_datadir
7827 LIBDIR = \$(DESTDIR)$_libdir
7828 MANDIR = \$(DESTDIR)$_mandir
7829 CONFDIR = \$(DESTDIR)$_confdir
7830 LOCALEDIR = \$(DESTDIR)$_localedir
7832 AR = $_ar
7833 AS = $_cc
7834 CC = $_cc
7835 CXX = $_cc
7836 HOST_CC = $_host_cc
7837 INSTALL = $_install
7838 INSTALLSTRIP = $_install_strip
7839 WINDRES = $_windres
7841 CFLAGS = $CFLAGS $extra_cflags
7842 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7844 CFLAGS_DHAHELPER = $cflags_dhahelper
7845 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7846 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7847 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7848 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7849 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7850 CFLAGS_STACKREALIGN = $cflags_stackrealign
7851 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7852 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7854 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7855 EXTRALIBS_MPLAYER = $libs_mplayer
7856 EXTRALIBS_MENCODER = $libs_mencoder
7858 GETCH = $_getch
7859 TIMER = $_timer
7861 EXESUF = $_exesuf
7862 EXESUFS_ALL = .exe
7864 ARCH = $arch
7865 $(mak_enable "$arch_all" "$arch" ARCH)
7866 $(mak_enable "$subarch_all" "$subarch" ARCH)
7867 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
7869 MENCODER = $_mencoder
7870 MPLAYER = $_mplayer
7872 NEED_GETTIMEOFDAY = $_need_gettimeofday
7873 NEED_GLOB = $_need_glob
7874 NEED_MMAP = $_need_mmap
7875 NEED_SETENV = $_need_setenv
7876 NEED_SHMEM = $_need_shmem
7877 NEED_STRSEP = $_need_strsep
7878 NEED_SWAB = $_need_swab
7879 NEED_VSSCANF = $_need_vsscanf
7881 # features
7882 3DFX = $_3dfx
7883 AA = $_aa
7884 ALSA1X = $_alsa1x
7885 ALSA9 = $_alsa9
7886 ALSA5 = $_alsa5
7887 APPLE_IR = $_apple_ir
7888 APPLE_REMOTE = $_apple_remote
7889 ARTS = $_arts
7890 AUDIO_INPUT = $_audio_input
7891 BITMAP_FONT = $_bitmap_font
7892 BL = $_bl
7893 CACA = $_caca
7894 CDDA = $_cdda
7895 CDDB = $_cddb
7896 COREAUDIO = $_coreaudio
7897 COREVIDEO = $_corevideo
7898 DART = $_dart
7899 DFBMGA = $_dfbmga
7900 DGA = $_dga
7901 DIRECT3D = $_direct3d
7902 DIRECTFB = $_directfb
7903 DIRECTX = $_directx
7904 DVBIN = $_dvbin
7905 DVDNAV = $_dvdnav
7906 DVDNAV_INTERNAL = $dvdnav_internal
7907 DVDREAD = $_dvdread
7908 DVDREAD_INTERNAL = $_dvdread_internal
7909 DXR2 = $_dxr2
7910 DXR3 = $_dxr3
7911 ESD = $_esd
7912 FAAC=$_faac
7913 FAAD = $_faad
7914 FAAD_INTERNAL = $_faad_internal
7915 FASTMEMCPY = $_fastmemcpy
7916 FBDEV = $_fbdev
7917 FREETYPE = $_freetype
7918 FTP = $_ftp
7919 GIF = $_gif
7920 GGI = $_ggi
7921 GL = $_gl
7922 GL_WIN32 = $_gl_win32
7923 GL_X11 = $_gl_x11
7924 GL_SDL = $_gl_sdl
7925 MATRIXVIEW = $matrixview
7926 HAVE_POSIX_SELECT = $_posix_select
7927 HAVE_SYS_MMAN_H = $_mman
7928 IVTV = $_ivtv
7929 JACK = $_jack
7930 JOYSTICK = $_joystick
7931 JPEG = $_jpeg
7932 KAI = $_kai
7933 KVA = $_kva
7934 LADSPA = $_ladspa
7935 LIBA52 = $_liba52
7936 LIBASS = $_ass
7937 LIBBS2B = $_libbs2b
7938 LIBDCA = $_libdca
7939 LIBDV = $_libdv
7940 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7941 LIBLZO = $_liblzo
7942 LIBMAD = $_mad
7943 LIBMENU = $_menu
7944 LIBMENU_DVBIN = $_menu_dvbin
7945 LIBMPEG2 = $_libmpeg2
7946 LIBNEMESI = $_nemesi
7947 LIBNUT = $_libnut
7948 LIBSMBCLIENT = $_smb
7949 LIBTHEORA = $_theora
7950 LIRC = $_lirc
7951 LIVE555 = $_live
7952 MACOSX_FINDER = $_macosx_finder
7953 MD5SUM = $_md5sum
7954 MGA = $_mga
7955 MNG = $_mng
7956 MP3LAME = $_mp3lame
7957 MP3LIB = $_mp3lib
7958 MUSEPACK = $_musepack
7959 NAS = $_nas
7960 NATIVE_RTSP = $_native_rtsp
7961 NETWORK = $_network
7962 OPENAL = $_openal
7963 OSS = $_ossaudio
7964 PE_EXECUTABLE = $_pe_executable
7965 PNG = $_png
7966 PNM = $_pnm
7967 PRIORITY = $_priority
7968 PULSE = $_pulse
7969 PVR = $_pvr
7970 QTX_CODECS = $_qtx
7971 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7972 QTX_EMULATION = $_qtx_emulation
7973 QUARTZ = $_quartz
7974 RADIO=$_radio
7975 RADIO_CAPTURE=$_radio_capture
7976 REAL_CODECS = $_real
7977 S3FB = $_s3fb
7978 SDL = $_sdl
7979 SPEEX = $_speex
7980 STREAM_CACHE = $_stream_cache
7981 SGIAUDIO = $_sgiaudio
7982 SUNAUDIO = $_sunaudio
7983 SVGA = $_svga
7984 TDFXFB = $_tdfxfb
7985 TDFXVID = $_tdfxvid
7986 TGA = $_tga
7987 TOOLAME=$_toolame
7988 TREMOR_INTERNAL = $_tremor_internal
7989 TV = $_tv
7990 TV_BSDBT848 = $_tv_bsdbt848
7991 TV_DSHOW = $_tv_dshow
7992 TV_V4L = $_tv_v4l
7993 TV_V4L1 = $_tv_v4l1
7994 TV_V4L2 = $_tv_v4l2
7995 TWOLAME=$_twolame
7996 UNRAR_EXEC = $_unrar_exec
7997 V4L2 = $_v4l2
7998 VCD = $_vcd
7999 VDPAU = $_vdpau
8000 VESA = $_vesa
8001 VIDIX = $_vidix
8002 VIDIX_PCIDB = $_vidix_pcidb_val
8003 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8004 VIDIX_IVTV=$_vidix_drv_ivtv
8005 VIDIX_MACH64=$_vidix_drv_mach64
8006 VIDIX_MGA=$_vidix_drv_mga
8007 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8008 VIDIX_NVIDIA=$_vidix_drv_nvidia
8009 VIDIX_PM2=$_vidix_drv_pm2
8010 VIDIX_PM3=$_vidix_drv_pm3
8011 VIDIX_RADEON=$_vidix_drv_radeon
8012 VIDIX_RAGE128=$_vidix_drv_rage128
8013 VIDIX_S3=$_vidix_drv_s3
8014 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8015 VIDIX_SIS=$_vidix_drv_sis
8016 VIDIX_UNICHROME=$_vidix_drv_unichrome
8017 VORBIS = $_vorbis
8018 VSTREAM = $_vstream
8019 WII = $_wii
8020 WIN32DLL = $_win32dll
8021 WIN32WAVEOUT = $_win32waveout
8022 WIN32_EMULATION = $_win32_emulation
8023 WINVIDIX = $winvidix
8024 X11 = $_x11
8025 X264 = $_x264
8026 XANIM_CODECS = $_xanim
8027 XMGA = $_xmga
8028 XMMS_PLUGINS = $_xmms
8029 XV = $_xv
8030 XVID4 = $_xvid
8031 XVIDIX = $xvidix
8032 XVMC = $_xvmc
8033 XVR100 = $_xvr100
8034 YUV4MPEG = $_yuv4mpeg
8035 ZR = $_zr
8037 # FFmpeg
8038 LIBAVUTIL = $_libavutil
8039 LIBAVCODEC = $_libavcodec
8040 LIBAVFORMAT = $_libavformat
8041 LIBPOSTPROC = $_libpostproc
8042 LIBSWSCALE = $_libswscale
8043 LIBAVCODEC_INTERNALS = $_libavcodec_internals
8044 LIBSWSCALE_INTERNALS = $_libswscale_internals
8045 FFMPEG_SOURCE_PATH = $_ffmpeg_source
8047 RANLIB = $_ranlib
8048 YASM = $_yasm
8049 YASMFLAGS = $YASMFLAGS
8051 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8052 CONFIG_AANDCT = yes
8053 CONFIG_FFT = yes
8054 CONFIG_GOLOMB = yes
8055 CONFIG_H264DSP = yes
8056 CONFIG_LPC = yes
8057 CONFIG_MDCT = yes
8058 CONFIG_RDFT = yes
8060 CONFIG_BZLIB = $bzlib
8061 CONFIG_ENCODERS = yes
8062 CONFIG_GPL = yes
8063 CONFIG_MLIB = $_mlib
8064 CONFIG_MUXERS = $_mencoder
8065 CONFIG_VDPAU = $_vdpau
8066 CONFIG_XVMC = $_xvmc
8067 CONFIG_ZLIB = $_zlib
8069 HAVE_PTHREADS = $_pthreads
8070 HAVE_SHM = $_shm
8071 HAVE_W32THREADS = $_w32threads
8072 HAVE_YASM = $have_yasm
8076 #############################################################################
8078 ff_config_enable () {
8079 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8080 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8081 _nprefix=$3;
8082 test -z "$_nprefix" && _nprefix='CONFIG'
8083 for part in $list; do
8084 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8085 echo "#define ${_nprefix}_$part 1"
8086 else
8087 echo "#define ${_nprefix}_$part 0"
8089 done
8092 echo "Creating config.h"
8093 cat > $TMPH << EOF
8094 /*----------------------------------------------------------------------------
8095 ** This file has been automatically generated by configure any changes in it
8096 ** will be lost when you run configure again.
8097 ** Instead of modifying definitions here, use the --enable/--disable options
8098 ** of the configure script! See ./configure --help for details.
8099 *---------------------------------------------------------------------------*/
8101 #ifndef MPLAYER_CONFIG_H
8102 #define MPLAYER_CONFIG_H
8104 /* Undefine this if you do not want to select mono audio (left or right)
8105 with a stereo MPEG layer 2/3 audio stream. The command line option
8106 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8107 right-only), with 0 being the default.
8109 #define CONFIG_FAKE_MONO 1
8111 /* set up audio OUTBURST. Do not change this! */
8112 #define OUTBURST 512
8114 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8115 #undef FAST_OSD
8116 #undef FAST_OSD_TABLE
8118 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8119 #define MPEG12_POSTPROC 1
8120 #define ATTRIBUTE_ALIGNED_MAX 16
8124 #define CONFIGURATION "$configuration"
8126 #define MPLAYER_DATADIR "$_datadir"
8127 #define MPLAYER_CONFDIR "$_confdir"
8128 #define MPLAYER_LIBDIR "$_libdir"
8129 #define MPLAYER_LOCALEDIR "$_localedir"
8131 $def_translation
8133 /* definitions needed by included libraries */
8134 #define HAVE_INTTYPES_H 1
8135 /* libmpeg2 + FFmpeg */
8136 $def_fast_inttypes
8137 /* libdvdcss */
8138 #define HAVE_ERRNO_H 1
8139 /* libdvdcss + libdvdread */
8140 #define HAVE_LIMITS_H 1
8141 /* libdvdcss + libfaad2 */
8142 #define HAVE_UNISTD_H 1
8143 /* libfaad2 + libdvdread */
8144 #define STDC_HEADERS 1
8145 #define HAVE_MEMCPY 1
8146 /* libfaad2 */
8147 #define HAVE_STRING_H 1
8148 #define HAVE_STRINGS_H 1
8149 #define HAVE_SYS_STAT_H 1
8150 #define HAVE_SYS_TYPES_H 1
8151 /* libdvdnav */
8152 #define READ_CACHE_TRACE 0
8153 /* libdvdread */
8154 #define HAVE_DLFCN_H 1
8155 $def_dvdcss
8158 /* system headers */
8159 $def_alloca_h
8160 $def_alsa_asoundlib_h
8161 $def_altivec_h
8162 $def_malloc_h
8163 $def_mman_h
8164 $def_mman_has_map_failed
8165 $def_soundcard_h
8166 $def_sys_asoundlib_h
8167 $def_sys_soundcard_h
8168 $def_sys_sysinfo_h
8169 $def_termios_h
8170 $def_termios_sys_h
8171 $def_winsock2_h
8174 /* system functions */
8175 $def_gethostbyname2
8176 $def_gettimeofday
8177 $def_glob
8178 $def_langinfo
8179 $def_lrintf
8180 $def_map_memalign
8181 $def_memalign
8182 $def_nanosleep
8183 $def_posix_select
8184 $def_select
8185 $def_setenv
8186 $def_setmode
8187 $def_shm
8188 $def_strsep
8189 $def_swab
8190 $def_sysi86
8191 $def_sysi86_iv
8192 $def_termcap
8193 $def_termios
8194 $def_vsscanf
8197 /* system-specific features */
8198 $def_asmalign_pot
8199 $def_builtin_expect
8200 $def_dl
8201 $def_dos_paths
8202 $def_extern_asm
8203 $def_extern_prefix
8204 $def_iconv
8205 $def_kstat
8206 $def_macosx_bundle
8207 $def_macosx_finder
8208 $def_maemo
8209 $def_named_asm_args
8210 $def_priority
8211 $def_quicktime
8212 $def_restrict_keyword
8213 $def_rtc
8214 $def_unrar_exec
8217 /* configurable options */
8218 $def_charset
8219 $def_crash_debug
8220 $def_debug
8221 $def_dynamic_plugins
8222 $def_fastmemcpy
8223 $def_menu
8224 $def_runtime_cpudetection
8225 $def_sighandler
8226 $def_sortsub
8227 $def_stream_cache
8228 $def_pthread_cache
8231 /* CPU stuff */
8232 #define __CPU__ $iproc
8233 $def_words_endian
8234 $def_bigendian
8235 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8236 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8237 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8240 /* DVD/VCD/CD */
8241 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8242 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8243 $def_bsdi_dvd
8244 $def_cddb
8245 $def_cdio
8246 $def_cdparanoia
8247 $def_cdrom
8248 $def_dvd
8249 $def_dvd_bsd
8250 $def_dvd_darwin
8251 $def_dvd_linux
8252 $def_dvd_openbsd
8253 $def_dvdio
8254 $def_dvdnav
8255 $def_dvdread
8256 $def_hpux_scsi_h
8257 $def_libcdio
8258 $def_sol_scsi_h
8259 $def_vcd
8262 /* codec libraries */
8263 $def_faac
8264 $def_faad
8265 $def_faad_internal
8266 $def_liba52
8267 $def_libdca
8268 $def_libdv
8269 $def_liblzo
8270 $def_libmpeg2
8271 $def_mad
8272 $def_mp3lame
8273 $def_mp3lame_preset
8274 $def_mp3lame_preset_medium
8275 $def_mp3lib
8276 $def_musepack
8277 $def_speex
8278 $def_theora
8279 $def_toolame
8280 $def_tremor
8281 $def_twolame
8282 $def_vorbis
8283 $def_x264
8284 $def_xvid
8285 $def_zlib
8287 $def_libnut
8290 /* binary codecs */
8291 $def_qtx
8292 $def_qtx_win32
8293 $def_real
8294 $def_win32_loader
8295 $def_win32dll
8296 $def_xanim
8297 $def_xmms
8298 #define BINARY_CODECS_PATH "$_codecsdir"
8299 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8302 /* Audio output drivers */
8303 $def_alsa
8304 $def_alsa1x
8305 $def_alsa5
8306 $def_alsa9
8307 $def_arts
8308 $def_coreaudio
8309 $def_dart
8310 $def_esd
8311 $def_esd_latency
8312 $def_jack
8313 $def_kai
8314 $def_nas
8315 $def_openal
8316 $def_openal_h
8317 $def_ossaudio
8318 $def_ossaudio_devdsp
8319 $def_ossaudio_devmixer
8320 $def_pulse
8321 $def_sgiaudio
8322 $def_sunaudio
8323 $def_win32waveout
8325 $def_ladspa
8326 $def_libbs2b
8329 /* input */
8330 $def_apple_ir
8331 $def_apple_remote
8332 $def_ioctl_bt848_h_name
8333 $def_ioctl_meteor_h_name
8334 $def_joystick
8335 $def_lirc
8336 $def_lircc
8337 $def_pvr
8338 $def_radio
8339 $def_radio_bsdbt848
8340 $def_radio_capture
8341 $def_radio_v4l
8342 $def_radio_v4l2
8343 $def_tv
8344 $def_tv_bsdbt848
8345 $def_tv_dshow
8346 $def_tv_v4l
8347 $def_tv_v4l1
8348 $def_tv_v4l2
8351 /* font stuff */
8352 $def_ass
8353 $def_bitmap_font
8354 $def_enca
8355 $def_fontconfig
8356 $def_freetype
8357 $def_fribidi
8360 /* networking */
8361 $def_closesocket
8362 $def_ftp
8363 $def_inet6
8364 $def_inet_aton
8365 $def_inet_pton
8366 $def_live
8367 $def_nemesi
8368 $def_network
8369 $def_smb
8370 $def_socklen_t
8371 $def_vstream
8374 /* libvo options */
8375 $def_3dfx
8376 $def_aa
8377 $def_bl
8378 $def_caca
8379 $def_corevideo
8380 $def_dfbmga
8381 $def_dga
8382 $def_dga1
8383 $def_dga2
8384 $def_direct3d
8385 $def_directfb
8386 $def_directfb_version
8387 $def_directx
8388 $def_dvb
8389 $def_dvbin
8390 $def_dxr2
8391 $def_dxr3
8392 $def_fbdev
8393 $def_ggi
8394 $def_ggiwmh
8395 $def_gif
8396 $def_gif_4
8397 $def_gif_tvt_hack
8398 $def_gl
8399 $def_gl_win32
8400 $def_gl_x11
8401 $def_gl_sdl
8402 $def_matrixview
8403 $def_ivtv
8404 $def_jpeg
8405 $def_kva
8406 $def_md5sum
8407 $def_mga
8408 $def_mng
8409 $def_png
8410 $def_pnm
8411 $def_quartz
8412 $def_s3fb
8413 $def_sdl
8414 $def_sdl_sdl_h
8415 $def_svga
8416 $def_tdfxfb
8417 $def_tdfxvid
8418 $def_tga
8419 $def_v4l2
8420 $def_vdpau
8421 $def_vesa
8422 $def_vidix
8423 $def_vidix_drv_cyberblade
8424 $def_vidix_drv_ivtv
8425 $def_vidix_drv_mach64
8426 $def_vidix_drv_mga
8427 $def_vidix_drv_mga_crtc2
8428 $def_vidix_drv_nvidia
8429 $def_vidix_drv_pm3
8430 $def_vidix_drv_radeon
8431 $def_vidix_drv_rage128
8432 $def_vidix_drv_s3
8433 $def_vidix_drv_sh_veu
8434 $def_vidix_drv_sis
8435 $def_vidix_drv_unichrome
8436 $def_vidix_pfx
8437 $def_vm
8438 $def_wii
8439 $def_x11
8440 $def_xdpms
8441 $def_xf86keysym
8442 $def_xinerama
8443 $def_xmga
8444 $def_xss
8445 $def_xv
8446 $def_xvmc
8447 $def_xvr100
8448 $def_yuv4mpeg
8449 $def_zr
8452 /* FFmpeg */
8453 $def_libavcodec
8454 $def_libavformat
8455 $def_libavutil
8456 $def_libpostproc
8457 $def_libswscale
8458 $def_libavcodec_internals
8459 $def_libswscale_internals
8461 #define CONFIG_DECODERS 1
8462 #define CONFIG_ENCODERS 1
8463 #define CONFIG_DEMUXERS 1
8464 $def_muxers
8466 $def_arpa_inet_h
8467 $def_bswap
8468 $def_bzlib
8469 $def_dcbzl
8470 $def_exp2
8471 $def_exp2f
8472 $def_fast_64bit
8473 $def_fast_unaligned
8474 $def_llrint
8475 $def_log2
8476 $def_log2f
8477 $def_lrint
8478 $def_memalign_hack
8479 $def_mlib
8480 $def_mkstemp
8481 $def_posix_memalign
8482 $def_pthreads
8483 $def_round
8484 $def_roundf
8485 $def_ten_operands
8486 $def_threads
8487 $def_truncf
8488 $def_xform_asm
8489 $def_yasm
8491 #define CONFIG_FASTDIV 0
8492 #define CONFIG_FFSERVER 0
8493 #define CONFIG_GPL 1
8494 #define CONFIG_GRAY 0
8495 #define CONFIG_HARDCODED_TABLES 0
8496 #define CONFIG_LIBVORBIS 0
8497 #define CONFIG_POWERPC_PERF 0
8498 #define CONFIG_SMALL 0
8499 #define CONFIG_SWSCALE_ALPHA 1
8501 #define HAVE_ATTRIBUTE_PACKED 1
8502 #define HAVE_GETHRTIME 0
8503 #define HAVE_INLINE_ASM 1
8504 #define HAVE_LDBRX 0
8505 #define HAVE_POLL_H 1
8506 #define HAVE_PPC4XX 0
8507 #define HAVE_VFP_ARGS 1
8508 #define HAVE_VIRTUALALLOC 0
8510 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8511 #define CONFIG_AANDCT 1
8512 #define CONFIG_DCT 1
8513 #define CONFIG_DWT 1
8514 #define CONFIG_FFT 1
8515 #define CONFIG_GOLOMB 1
8516 #define CONFIG_H264DSP 1
8517 #define CONFIG_LPC 1
8518 #define CONFIG_MDCT 1
8519 #define CONFIG_RDFT 1
8521 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8522 $def_ebx_available
8523 #ifndef MP_DEBUG
8524 #define HAVE_EBP_AVAILABLE 1
8525 #else
8526 #define HAVE_EBP_AVAILABLE 0
8527 #endif
8529 #define CONFIG_H263_VAAPI_HWACCEL 0
8530 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8531 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8532 #define CONFIG_H264_VAAPI_HWACCEL 0
8533 #define CONFIG_VC1_VAAPI_HWACCEL 0
8534 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8536 #endif /* MPLAYER_CONFIG_H */
8539 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8540 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8542 #############################################################################
8544 ./version.sh `$_cc -dumpversion`
8546 cat << EOF
8548 Config files successfully generated by ./configure $configuration !
8550 Install prefix: $_prefix
8551 Data directory: $_datadir
8552 Config direct.: $_confdir
8554 Byte order: $_byte_order
8555 Optimizing for: $_optimizing
8557 Languages:
8558 Messages (in addition to English): $language_msg
8559 Manual pages: $language_man
8560 Documentation: $language_doc
8562 Enabled optional drivers:
8563 Input: $inputmodules
8564 Codecs: $codecmodules
8565 Audio output: $aomodules
8566 Video output: $vomodules
8568 Disabled optional drivers:
8569 Input: $noinputmodules
8570 Codecs: $nocodecmodules
8571 Audio output: $noaomodules
8572 Video output: $novomodules
8574 'config.h' and 'config.mak' contain your configuration options.
8575 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8576 compile *** DO NOT REPORT BUGS if you tweak these files ***
8578 'make' will now compile MPlayer and 'make install' will install it.
8579 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8584 if test "$_mtrr" = yes ; then
8585 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8586 echo
8589 if ! x86_32; then
8590 cat <<EOF
8591 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8592 operating system ($system_name). You may encounter a few files that cannot
8593 be played due to missing open source video/audio codec support.
8599 cat <<EOF
8600 Check $TMPLOG if you wonder why an autodetection failed (make sure
8601 development headers/packages are installed).
8603 NOTE: The --enable-* parameters unconditionally force options on, completely
8604 skipping autodetection. This behavior is unlike what you may be used to from
8605 autoconf-based configure scripts that can decide to override you. This greater
8606 level of control comes at a price. You may have to provide the correct compiler
8607 and linker flags yourself.
8608 If you used one of these options (except --enable-menu and similar ones that
8609 turn on internal features) and experience a compilation or linking failure,
8610 make sure you have passed the necessary compiler/linker flags to configure.
8612 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8616 if test "$_warn_CFLAGS" = yes; then
8617 cat <<EOF
8619 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8620 but:
8622 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8624 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8625 To do so, execute 'CFLAGS= ./configure <options>'
8630 # Last move:
8631 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"