Get rid of completely pointless vt_doit variable
[mplayer/glamo.git] / configure
blobb459a0a1c9c63f76532f83bd58763701553ed7a6
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 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")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-tv-teletext disable TV teletext interface [autodetect]
252 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
253 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
254 --disable-network disable networking [enable]
255 --enable-winsock2_h enable winsock2_h [autodetect]
256 --enable-smb enable Samba (SMB) input [autodetect]
257 --enable-live enable LIVE555 Streaming Media [autodetect]
258 --enable-nemesi enable Nemesi Streaming Media [autodetect]
259 --disable-vcd disable VCD support [autodetect]
260 --disable-dvdnav disable libdvdnav [autodetect]
261 --disable-dvdread disable libdvdread [autodetect]
262 --disable-dvdread-internal disable internal libdvdread [autodetect]
263 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
264 --disable-cdparanoia disable cdparanoia [autodetect]
265 --disable-cddb disable cddb [autodetect]
266 --disable-bitmap-font disable bitmap font support [enable]
267 --disable-freetype disable FreeType 2 font rendering [autodetect]
268 --disable-fontconfig disable fontconfig font lookup [autodetect]
269 --disable-unrarexec disable using of UnRAR executable [enabled]
270 --enable-menu enable OSD menu (not DVD menu) [disabled]
271 --disable-sortsub disable subtitle sorting [enabled]
272 --enable-fribidi enable the FriBiDi libs [autodetect]
273 --disable-enca disable ENCA charset oracle library [autodetect]
274 --disable-maemo disable maemo specific features [autodetect]
275 --enable-macosx-finder enable Mac OS X Finder invocation parameter
276 parsing [disabled]
277 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
278 --disable-inet6 disable IPv6 support [autodetect]
279 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
280 --disable-ftp disable FTP support [enabled]
281 --disable-vstream disable TiVo vstream client support [autodetect]
282 --disable-pthreads disable Posix threads support [autodetect]
283 --disable-w32threads disable Win32 threads support [autodetect]
284 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --disable-liba52-internal disable builtin liba52 [autodetect]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libamr_nb disable libamr narrowband [autodetect]
345 --disable-libamr_wb disable libamr wideband [autodetect]
346 --disable-decoder=DECODER disable specified FFmpeg decoder
347 --enable-decoder=DECODER enable specified FFmpeg decoder
348 --disable-encoder=ENCODER disable specified FFmpeg encoder
349 --enable-encoder=ENCODER enable specified FFmpeg encoder
350 --disable-parser=PARSER disable specified FFmpeg parser
351 --enable-parser=PARSER enable specified FFmpeg parser
352 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --enable-dga2 enable DGA 2 support [autodetect]
367 --enable-dga1 enable DGA 1 support [autodetect]
368 --enable-vesa enable VESA video output [autodetect]
369 --enable-svga enable SVGAlib video output [autodetect]
370 --enable-sdl enable SDL video output [autodetect]
371 --enable-kva enable KVA video output [autodetect]
372 --enable-aa enable AAlib video output [autodetect]
373 --enable-caca enable CACA video output [autodetect]
374 --enable-ggi enable GGI video output [autodetect]
375 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
376 --enable-direct3d enable Direct3D video output [autodetect]
377 --enable-directx enable DirectX video output [autodetect]
378 --enable-dxr2 enable DXR2 video output [autodetect]
379 --enable-dxr3 enable DXR3/H+ video output [autodetect]
380 --enable-ivtv enable IVTV TV-Out video output [autodetect]
381 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
382 --enable-dvb enable DVB video output [autodetect]
383 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-dart disable DART audio output [autodetect]
424 --disable-win32waveout disable Windows waveout audio output [autodetect]
425 --disable-coreaudio disable CoreAudio audio output [autodetect]
426 --disable-select disable using select() on the audio device [enable]
428 Language options:
429 --charset=charset convert the console messages to this character set
430 --language-doc=lang language to use for the documentation [en]
431 --language-man=lang language to use for the man pages [en]
432 --language-msg=lang language to use for the messages and the GUI [en]
433 --language=lang default language to use [en]
434 Specific options override --language. You can pass a list of languages separated
435 by whitespace or commas instead of a single language. Nonexisting translations
436 will be dropped from each list. All documentation and man page translations
437 available in the list will be installed, for the messages the first available
438 translation will be used. The value "all" will activate all translations. The
439 LINGUAS environment variable is honored. In all cases the fallback is English.
440 Available values are: all $msg_lang_all
442 Miscellaneous options:
443 --enable-runtime-cpudetection enable runtime CPU detection [disable]
444 --enable-cross-compile enable cross-compilation [autodetect]
445 --cc=COMPILER C compiler to build MPlayer [gcc]
446 --host-cc=COMPILER C compiler for tools needed while building [gcc]
447 --as=ASSEMBLER assembler to build MPlayer [as]
448 --nm=NM nm tool to build MPlayer [nm]
449 --yasm=YASM Yasm assembler to build MPlayer [yasm]
450 --ar=AR librarian to build MPlayer [ar]
451 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
452 --windres=WINDRES windres to build MPlayer [windres]
453 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
454 --enable-static build a statically linked binary
455 --with-install=PATH path to a custom install program
457 Advanced options:
458 --enable-mmx enable MMX [autodetect]
459 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
460 --enable-3dnow enable 3DNow! [autodetect]
461 --enable-3dnowext enable extended 3DNow! [autodetect]
462 --enable-sse enable SSE [autodetect]
463 --enable-sse2 enable SSE2 [autodetect]
464 --enable-ssse3 enable SSSE3 [autodetect]
465 --enable-shm enable shm [autodetect]
466 --enable-altivec enable AltiVec (PowerPC) [autodetect]
467 --enable-armv5te enable DSP extensions (ARM) [autodetect]
468 --enable-armv6 enable ARMv6 (ARM) [autodetect]
469 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
470 --enable-armvfp enable ARM VFP (ARM) [autodetect]
471 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
472 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
473 --enable-big-endian force byte order to big-endian [autodetect]
474 --enable-debug[=1-3] compile-in debugging information [disable]
475 --enable-profile compile-in profiling information [disable]
476 --disable-sighandler disable sighandler for crashes [enable]
477 --enable-crash-debug enable automatic gdb attach on crash [disable]
478 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
480 Use these options if autodetection fails:
481 --extra-cflags=FLAGS extra CFLAGS
482 --extra-ldflags=FLAGS extra LDFLAGS
483 --extra-libs=FLAGS extra linker flags
484 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
485 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
486 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
488 --with-freetype-config=PATH path to freetype-config
489 --with-fribidi-config=PATH path to fribidi-config
490 --with-glib-config=PATH path to glib*-config
491 --with-gtk-config=PATH path to gtk*-config
492 --with-sdl-config=PATH path to sdl*-config
493 --with-dvdnav-config=PATH path to dvdnav-config
494 --with-dvdread-config=PATH path to dvdread-config
496 This configure script is NOT autoconf-based, even though its output is similar.
497 It will try to autodetect all configuration options. If you --enable an option
498 it will be forcefully turned on, skipping autodetection. This can break
499 compilation, so you need to know what you are doing.
501 exit 0
502 } #show_help()
504 # GOTCHA: the variables below defines the default behavior for autodetection
505 # and have - unless stated otherwise - at least 2 states : yes no
506 # If autodetection is available then the third state is: auto
507 _mmx=auto
508 _3dnow=auto
509 _3dnowext=auto
510 _mmxext=auto
511 _sse=auto
512 _sse2=auto
513 _ssse3=auto
514 _cmov=auto
515 _fast_cmov=auto
516 _armv5te=auto
517 _armv6=auto
518 _armv6t2=auto
519 _armvfp=auto
520 _iwmmxt=auto
521 _mtrr=auto
522 _altivec=auto
523 _install=install
524 _ranlib=ranlib
525 _windres=windres
526 _cc=cc
527 _ar=ar
528 test "$CC" && _cc="$CC"
529 _as=auto
530 _nm=auto
531 _yasm=yasm
532 _runtime_cpudetection=no
533 _cross_compile=auto
534 _prefix="/usr/local"
535 _libavutil_a=auto
536 _libavutil_so=auto
537 _libavcodec_a=auto
538 _libamr_nb=auto
539 _libamr_wb=auto
540 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
541 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
542 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
543 _libavencoders=$(echo $_libavencoders_all | sed 's/ LIB[A-Z0-9_]*_ENCODER//g')
544 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
545 _libavparsers=$_libavparsers_all
546 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavbsfs=$_libavbsfs_all
548 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
549 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER//)
550 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
551 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
552 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
553 _libavcodec_so=auto
554 _libavformat_a=auto
555 _libavformat_so=auto
556 _libpostproc_a=auto
557 _libpostproc_so=auto
558 _libswscale_a=auto
559 _libswscale_so=auto
560 _libavcodec_mpegaudio_hp=yes
561 _mencoder=yes
562 _mplayer=yes
563 _x11=auto
564 _xshape=auto
565 _xss=auto
566 _dga1=auto
567 _dga2=auto
568 _xv=auto
569 _xvmc=no #auto when complete
570 _vdpau=auto
571 _sdl=auto
572 _kva=auto
573 _direct3d=auto
574 _directx=auto
575 _win32waveout=auto
576 _nas=auto
577 _png=auto
578 _mng=auto
579 _jpeg=auto
580 _pnm=yes
581 _md5sum=yes
582 _yuv4mpeg=yes
583 _gif=auto
584 _gl=auto
585 _ggi=auto
586 _ggiwmh=auto
587 _aa=auto
588 _caca=auto
589 _svga=auto
590 _vesa=auto
591 _fbdev=auto
592 _dvb=auto
593 _dvbhead=auto
594 _dxr2=auto
595 _dxr3=auto
596 _ivtv=auto
597 _v4l2=auto
598 _iconv=auto
599 _langinfo=auto
600 _rtc=auto
601 _ossaudio=auto
602 _arts=auto
603 _esd=auto
604 _pulse=auto
605 _jack=auto
606 _dart=auto
607 _openal=auto
608 _libcdio=auto
609 _liblzo=auto
610 _mad=auto
611 _mp3lame=auto
612 _mp3lame_lavc=auto
613 _toolame=auto
614 _twolame=auto
615 _tremor=auto
616 _tremor_internal=yes
617 _tremor_low=no
618 _libvorbis=auto
619 _speex=auto
620 _theora=auto
621 _mp3lib=auto
622 _liba52=auto
623 _liba52_internal=auto
624 _libdca=auto
625 _libmpeg2=auto
626 _faad=auto
627 _faad_internal=auto
628 _faad_fixed=no
629 _faac=auto
630 _faac_lavc=auto
631 _ladspa=auto
632 _libbs2b=auto
633 _xmms=no
634 _vcd=auto
635 _dvdnav=auto
636 _dvdnavconfig=dvdnav-config
637 _dvdreadconfig=dvdread-config
638 _dvdread=auto
639 _dvdread_internal=auto
640 _libdvdcss_internal=auto
641 _xanim=auto
642 _real=auto
643 _live=auto
644 _nemesi=auto
645 _native_rtsp=yes
646 _xinerama=auto
647 _mga=auto
648 _xmga=auto
649 _vm=auto
650 _xf86keysym=auto
651 _mlib=no #broken, thus disabled
652 _sgiaudio=auto
653 _sunaudio=auto
654 _alsa=auto
655 _fastmemcpy=yes
656 _unrar_exec=auto
657 _win32dll=auto
658 _select=yes
659 _radio=no
660 _radio_capture=no
661 _radio_v4l=auto
662 _radio_v4l2=auto
663 _radio_bsdbt848=auto
664 _tv=yes
665 _tv_v4l1=auto
666 _tv_v4l2=auto
667 _tv_bsdbt848=auto
668 _tv_dshow=auto
669 _tv_teletext=auto
670 _pvr=auto
671 _network=yes
672 _winsock2_h=auto
673 _smb=auto
674 _vidix=auto
675 _vidix_pcidb=yes
676 _dhahelper=no
677 _svgalib_helper=no
678 _joystick=no
679 _xvid=auto
680 _xvid_lavc=auto
681 _x264=auto
682 _x264_lavc=auto
683 _libdirac_lavc=auto
684 _libschroedinger_lavc=auto
685 _libnut=auto
686 _lirc=auto
687 _lircc=auto
688 _apple_remote=auto
689 _apple_ir=auto
690 _gui=no
691 _gtk1=no
692 _termcap=auto
693 _termios=auto
694 _3dfx=no
695 _s3fb=no
696 _wii=no
697 _tdfxfb=no
698 _tdfxvid=no
699 _xvr100=auto
700 _tga=yes
701 _directfb=auto
702 _zr=auto
703 _bl=no
704 _largefiles=yes
705 #language=en
706 _shm=auto
707 _linux_devfs=no
708 _charset="UTF-8"
709 _dynamic_plugins=no
710 _crash_debug=no
711 _sighandler=yes
712 _libdv=auto
713 _cdparanoia=auto
714 _cddb=auto
715 _big_endian=auto
716 _bitmap_font=yes
717 _freetype=auto
718 _fontconfig=auto
719 _menu=no
720 _qtx=auto
721 _maemo=auto
722 _coreaudio=auto
723 _corevideo=auto
724 _quartz=auto
725 _macosx_finder=no
726 _macosx_bundle=auto
727 _sortsub=yes
728 _freetypeconfig='freetype-config'
729 _fribidi=auto
730 _fribidiconfig='fribidi-config'
731 _enca=auto
732 _inet6=auto
733 _gethostbyname2=auto
734 _ftp=yes
735 _musepack=auto
736 _vstream=auto
737 _pthreads=auto
738 _w32threads=auto
739 _ass=auto
740 _rpath=no
741 _asmalign_pot=auto
742 _stream_cache=yes
743 _priority=no
744 def_dos_paths="#define HAVE_DOS_PATHS 0"
745 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
746 def_priority="#undef CONFIG_PRIORITY"
747 def_pthread_cache="#undef PTHREAD_CACHE"
748 _need_shmem=yes
749 for ac_option do
750 case "$ac_option" in
751 --help|-help|-h)
752 show_help
754 --prefix=*)
755 _prefix=$(echo $ac_option | cut -d '=' -f 2)
757 --bindir=*)
758 _bindir=$(echo $ac_option | cut -d '=' -f 2)
760 --datadir=*)
761 _datadir=$(echo $ac_option | cut -d '=' -f 2)
763 --mandir=*)
764 _mandir=$(echo $ac_option | cut -d '=' -f 2)
766 --confdir=*)
767 _confdir=$(echo $ac_option | cut -d '=' -f 2)
769 --libdir=*)
770 _libdir=$(echo $ac_option | cut -d '=' -f 2)
772 --codecsdir=*)
773 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
775 --win32codecsdir=*)
776 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
778 --xanimcodecsdir=*)
779 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
781 --realcodecsdir=*)
782 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
785 --with-install=*)
786 _install=$(echo $ac_option | cut -d '=' -f 2 )
788 --with-xvmclib=*)
789 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
792 --with-sdl-config=*)
793 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
795 --with-freetype-config=*)
796 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
798 --with-fribidi-config=*)
799 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
801 --with-gtk-config=*)
802 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
804 --with-glib-config=*)
805 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
807 --with-dvdnav-config=*)
808 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
810 --with-dvdread-config=*)
811 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
814 --extra-cflags=*)
815 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
817 --extra-ldflags=*)
818 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
820 --extra-libs=*)
821 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
823 --extra-libs-mplayer=*)
824 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
826 --extra-libs-mencoder=*)
827 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
830 --target=*)
831 _target=$(echo $ac_option | cut -d '=' -f 2)
833 --cc=*)
834 _cc=$(echo $ac_option | cut -d '=' -f 2)
836 --host-cc=*)
837 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
839 --as=*)
840 _as=$(echo $ac_option | cut -d '=' -f 2)
842 --nm=*)
843 _nm=$(echo $ac_option | cut -d '=' -f 2)
845 --yasm=*)
846 _yasm=$(echo $ac_option | cut -d '=' -f 2)
848 --ar=*)
849 _ar=$(echo $ac_option | cut -d '=' -f 2)
851 --ranlib=*)
852 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
854 --windres=*)
855 _windres=$(echo $ac_option | cut -d '=' -f 2)
857 --charset=*)
858 _charset=$(echo $ac_option | cut -d '=' -f 2)
860 --language-doc=*)
861 language_doc=$(echo $ac_option | cut -d '=' -f 2)
863 --language-man=*)
864 language_man=$(echo $ac_option | cut -d '=' -f 2)
866 --language-msg=*)
867 language_msg=$(echo $ac_option | cut -d '=' -f 2)
869 --language=*)
870 language=$(echo $ac_option | cut -d '=' -f 2)
873 --enable-static)
874 _ld_static='-static'
876 --disable-static)
877 _ld_static=''
879 --enable-profile)
880 _profile='-p'
882 --disable-profile)
883 _profile=
885 --enable-debug)
886 _debug='-g'
888 --enable-debug=*)
889 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
891 --disable-debug)
892 _debug=
894 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
895 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
896 --enable-cross-compile) _cross_compile=yes ;;
897 --disable-cross-compile) _cross_compile=no ;;
898 --enable-mencoder) _mencoder=yes ;;
899 --disable-mencoder) _mencoder=no ;;
900 --enable-mplayer) _mplayer=yes ;;
901 --disable-mplayer) _mplayer=no ;;
902 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
903 --disable-dynamic-plugins) _dynamic_plugins=no ;;
904 --enable-x11) _x11=yes ;;
905 --disable-x11) _x11=no ;;
906 --enable-xshape) _xshape=yes ;;
907 --disable-xshape) _xshape=no ;;
908 --enable-xss) _xss=yes ;;
909 --disable-xss) _xss=no ;;
910 --enable-xv) _xv=yes ;;
911 --disable-xv) _xv=no ;;
912 --enable-xvmc) _xvmc=yes ;;
913 --disable-xvmc) _xvmc=no ;;
914 --enable-vdpau) _vdpau=yes ;;
915 --disable-vdpau) _vdpau=no ;;
916 --enable-sdl) _sdl=yes ;;
917 --disable-sdl) _sdl=no ;;
918 --enable-kva) _kva=yes ;;
919 --disable-kva) _kva=no ;;
920 --enable-direct3d) _direct3d=yes ;;
921 --disable-direct3d) _direct3d=no ;;
922 --enable-directx) _directx=yes ;;
923 --disable-directx) _directx=no ;;
924 --enable-win32waveout) _win32waveout=yes ;;
925 --disable-win32waveout) _win32waveout=no ;;
926 --enable-nas) _nas=yes ;;
927 --disable-nas) _nas=no ;;
928 --enable-png) _png=yes ;;
929 --disable-png) _png=no ;;
930 --enable-mng) _mng=yes ;;
931 --disable-mng) _mng=no ;;
932 --enable-jpeg) _jpeg=yes ;;
933 --disable-jpeg) _jpeg=no ;;
934 --enable-pnm) _pnm=yes ;;
935 --disable-pnm) _pnm=no ;;
936 --enable-md5sum) _md5sum=yes ;;
937 --disable-md5sum) _md5sum=no ;;
938 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
939 --disable-yuv4mpeg) _yuv4mpeg=no ;;
940 --enable-gif) _gif=yes ;;
941 --disable-gif) _gif=no ;;
942 --enable-gl) _gl=yes ;;
943 --disable-gl) _gl=no ;;
944 --enable-ggi) _ggi=yes ;;
945 --disable-ggi) _ggi=no ;;
946 --enable-ggiwmh) _ggiwmh=yes ;;
947 --disable-ggiwmh) _ggiwmh=no ;;
948 --enable-aa) _aa=yes ;;
949 --disable-aa) _aa=no ;;
950 --enable-caca) _caca=yes ;;
951 --disable-caca) _caca=no ;;
952 --enable-svga) _svga=yes ;;
953 --disable-svga) _svga=no ;;
954 --enable-vesa) _vesa=yes ;;
955 --disable-vesa) _vesa=no ;;
956 --enable-fbdev) _fbdev=yes ;;
957 --disable-fbdev) _fbdev=no ;;
958 --enable-dvb) _dvb=yes ;;
959 --disable-dvb) _dvb=no ;;
960 --enable-dvbhead) _dvbhead=yes ;;
961 --disable-dvbhead) _dvbhead=no ;;
962 --enable-dxr2) _dxr2=yes ;;
963 --disable-dxr2) _dxr2=no ;;
964 --enable-dxr3) _dxr3=yes ;;
965 --disable-dxr3) _dxr3=no ;;
966 --enable-ivtv) _ivtv=yes ;;
967 --disable-ivtv) _ivtv=no ;;
968 --enable-v4l2) _v4l2=yes ;;
969 --disable-v4l2) _v4l2=no ;;
970 --enable-iconv) _iconv=yes ;;
971 --disable-iconv) _iconv=no ;;
972 --enable-langinfo) _langinfo=yes ;;
973 --disable-langinfo) _langinfo=no ;;
974 --enable-rtc) _rtc=yes ;;
975 --disable-rtc) _rtc=no ;;
976 --enable-libdv) _libdv=yes ;;
977 --disable-libdv) _libdv=no ;;
978 --enable-ossaudio) _ossaudio=yes ;;
979 --disable-ossaudio) _ossaudio=no ;;
980 --enable-arts) _arts=yes ;;
981 --disable-arts) _arts=no ;;
982 --enable-esd) _esd=yes ;;
983 --disable-esd) _esd=no ;;
984 --enable-pulse) _pulse=yes ;;
985 --disable-pulse) _pulse=no ;;
986 --enable-jack) _jack=yes ;;
987 --disable-jack) _jack=no ;;
988 --enable-openal) _openal=yes ;;
989 --disable-openal) _openal=no ;;
990 --enable-dart) _dart=yes ;;
991 --disable-dart) _dart=no ;;
992 --enable-mad) _mad=yes ;;
993 --disable-mad) _mad=no ;;
994 --enable-mp3lame) _mp3lame=yes ;;
995 --disable-mp3lame) _mp3lame=no ;;
996 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
997 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
998 --enable-toolame) _toolame=yes ;;
999 --disable-toolame) _toolame=no ;;
1000 --enable-twolame) _twolame=yes ;;
1001 --disable-twolame) _twolame=no ;;
1002 --enable-libcdio) _libcdio=yes ;;
1003 --disable-libcdio) _libcdio=no ;;
1004 --enable-liblzo) _liblzo=yes ;;
1005 --disable-liblzo) _liblzo=no ;;
1006 --enable-libvorbis) _libvorbis=yes ;;
1007 --disable-libvorbis) _libvorbis=no ;;
1008 --enable-speex) _speex=yes ;;
1009 --disable-speex) _speex=no ;;
1010 --enable-tremor) _tremor=yes ;;
1011 --disable-tremor) _tremor=no ;;
1012 --enable-tremor-internal) _tremor_internal=yes ;;
1013 --disable-tremor-internal) _tremor_internal=no ;;
1014 --enable-tremor-low) _tremor_low=yes ;;
1015 --disable-tremor-low) _tremor_low=no ;;
1016 --enable-theora) _theora=yes ;;
1017 --disable-theora) _theora=no ;;
1018 --enable-mp3lib) _mp3lib=yes ;;
1019 --disable-mp3lib) _mp3lib=no ;;
1020 --enable-liba52-internal) _liba52_internal=yes ;;
1021 --disable-liba52-internal) _liba52_internal=no ;;
1022 --enable-liba52) _liba52=yes ;;
1023 --disable-liba52) _liba52=no ;;
1024 --enable-libdca) _libdca=yes ;;
1025 --disable-libdca) _libdca=no ;;
1026 --enable-libmpeg2) _libmpeg2=yes ;;
1027 --disable-libmpeg2) _libmpeg2=no ;;
1028 --enable-musepack) _musepack=yes ;;
1029 --disable-musepack) _musepack=no ;;
1030 --enable-faad) _faad=yes ;;
1031 --disable-faad) _faad=no ;;
1032 --enable-faad-internal) _faad_internal=yes ;;
1033 --disable-faad-internal) _faad_internal=no ;;
1034 --enable-faad-fixed) _faad_fixed=yes ;;
1035 --disable-faad-fixed) _faad_fixed=no ;;
1036 --enable-faac) _faac=yes ;;
1037 --disable-faac) _faac=no ;;
1038 --enable-faac-lavc) _faac_lavc=yes ;;
1039 --disable-faac-lavc) _faac_lavc=no ;;
1040 --enable-ladspa) _ladspa=yes ;;
1041 --disable-ladspa) _ladspa=no ;;
1042 --enable-libbs2b) _libbs2b=yes ;;
1043 --disable-libbs2b) _libbs2b=no ;;
1044 --enable-xmms) _xmms=yes ;;
1045 --disable-xmms) _xmms=no ;;
1046 --enable-vcd) _vcd=yes ;;
1047 --disable-vcd) _vcd=no ;;
1048 --enable-dvdread) _dvdread=yes ;;
1049 --disable-dvdread) _dvdread=no ;;
1050 --enable-dvdread-internal) _dvdread_internal=yes ;;
1051 --disable-dvdread-internal) _dvdread_internal=no ;;
1052 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1053 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1054 --enable-dvdnav) _dvdnav=yes ;;
1055 --disable-dvdnav) _dvdnav=no ;;
1056 --enable-xanim) _xanim=yes ;;
1057 --disable-xanim) _xanim=no ;;
1058 --enable-real) _real=yes ;;
1059 --disable-real) _real=no ;;
1060 --enable-live) _live=yes ;;
1061 --disable-live) _live=no ;;
1062 --enable-nemesi) _nemesi=yes ;;
1063 --disable-nemesi) _nemesi=no ;;
1064 --enable-xinerama) _xinerama=yes ;;
1065 --disable-xinerama) _xinerama=no ;;
1066 --enable-mga) _mga=yes ;;
1067 --disable-mga) _mga=no ;;
1068 --enable-xmga) _xmga=yes ;;
1069 --disable-xmga) _xmga=no ;;
1070 --enable-vm) _vm=yes ;;
1071 --disable-vm) _vm=no ;;
1072 --enable-xf86keysym) _xf86keysym=yes ;;
1073 --disable-xf86keysym) _xf86keysym=no ;;
1074 --enable-mlib) _mlib=yes ;;
1075 --disable-mlib) _mlib=no ;;
1076 --enable-sunaudio) _sunaudio=yes ;;
1077 --disable-sunaudio) _sunaudio=no ;;
1078 --enable-sgiaudio) _sgiaudio=yes ;;
1079 --disable-sgiaudio) _sgiaudio=no ;;
1080 --enable-alsa) _alsa=yes ;;
1081 --disable-alsa) _alsa=no ;;
1082 --enable-tv) _tv=yes ;;
1083 --disable-tv) _tv=no ;;
1084 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1085 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1086 --enable-tv-v4l1) _tv_v4l1=yes ;;
1087 --disable-tv-v4l1) _tv_v4l1=no ;;
1088 --enable-tv-v4l2) _tv_v4l2=yes ;;
1089 --disable-tv-v4l2) _tv_v4l2=no ;;
1090 --enable-tv-dshow) _tv_dshow=yes ;;
1091 --disable-tv-dshow) _tv_dshow=no ;;
1092 --enable-tv-teletext) _tv_teletext=yes ;;
1093 --disable-tv-teletext) _tv_teletext=no ;;
1094 --enable-radio) _radio=yes ;;
1095 --enable-radio-capture) _radio_capture=yes ;;
1096 --disable-radio-capture) _radio_capture=no ;;
1097 --disable-radio) _radio=no ;;
1098 --enable-radio-v4l) _radio_v4l=yes ;;
1099 --disable-radio-v4l) _radio_v4l=no ;;
1100 --enable-radio-v4l2) _radio_v4l2=yes ;;
1101 --disable-radio-v4l2) _radio_v4l2=no ;;
1102 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1103 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1104 --enable-pvr) _pvr=yes ;;
1105 --disable-pvr) _pvr=no ;;
1106 --enable-fastmemcpy) _fastmemcpy=yes ;;
1107 --disable-fastmemcpy) _fastmemcpy=no ;;
1108 --enable-network) _network=yes ;;
1109 --disable-network) _network=no ;;
1110 --enable-winsock2_h) _winsock2_h=yes ;;
1111 --disable-winsock2_h) _winsock2_h=no ;;
1112 --enable-smb) _smb=yes ;;
1113 --disable-smb) _smb=no ;;
1114 --enable-vidix) _vidix=yes ;;
1115 --disable-vidix) _vidix=no ;;
1116 --with-vidix-drivers=*)
1117 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1119 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1120 --enable-dhahelper) _dhahelper=yes ;;
1121 --disable-dhahelper) _dhahelper=no ;;
1122 --enable-svgalib_helper) _svgalib_helper=yes ;;
1123 --disable-svgalib_helper) _svgalib_helper=no ;;
1124 --enable-joystick) _joystick=yes ;;
1125 --disable-joystick) _joystick=no ;;
1126 --enable-xvid) _xvid=yes ;;
1127 --disable-xvid) _xvid=no ;;
1128 --enable-xvid-lavc) _xvid_lavc=yes ;;
1129 --disable-xvid-lavc) _xvid_lavc=no ;;
1130 --enable-x264) _x264=yes ;;
1131 --disable-x264) _x264=no ;;
1132 --enable-x264-lavc) _x264_lavc=yes ;;
1133 --disable-x264-lavc) _x264_lavc=no ;;
1134 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1135 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1136 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1137 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1138 --enable-libnut) _libnut=yes ;;
1139 --disable-libnut) _libnut=no ;;
1140 --enable-libavutil_a) _libavutil_a=yes ;;
1141 --disable-libavutil_a) _libavutil_a=no ;;
1142 --enable-libavutil_so) _libavutil_so=yes ;;
1143 --disable-libavutil_so) _libavutil_so=no ;;
1144 --enable-libavcodec_a) _libavcodec_a=yes ;;
1145 --disable-libavcodec_a) _libavcodec_a=no ;;
1146 --enable-libavcodec_so) _libavcodec_so=yes ;;
1147 --disable-libavcodec_so) _libavcodec_so=no ;;
1148 --enable-libamr_nb) _libamr_nb=yes ;;
1149 --disable-libamr_nb) _libamr_nb=no ;;
1150 --enable-libamr_wb) _libamr_wb=yes ;;
1151 --disable-libamr_wb) _libamr_wb=no ;;
1152 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2)" ;;
1153 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1154 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2)" ;;
1155 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1156 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2)" ;;
1157 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1158 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2)" ;;
1159 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1160 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2)" ;;
1161 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1162 --enable-libavformat_a) _libavformat_a=yes ;;
1163 --disable-libavformat_a) _libavformat_a=no ;;
1164 --enable-libavformat_so) _libavformat_so=yes ;;
1165 --disable-libavformat_so) _libavformat_so=no ;;
1166 --enable-libpostproc_a) _libpostproc_a=yes ;;
1167 --disable-libpostproc_a) _libpostproc_a=no ;;
1168 --enable-libpostproc_so) _libpostproc_so=yes ;;
1169 --disable-libpostproc_so) _libpostproc_so=no ;;
1170 --enable-libswscale_a) _libswscale_a=yes ;;
1171 --disable-libswscale_a) _libswscale_a=no ;;
1172 --enable-libswscale_so) _libswscale_so=yes ;;
1173 --disable-libswscale_so) _libswscale_so=no ;;
1174 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1175 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1177 --enable-lirc) _lirc=yes ;;
1178 --disable-lirc) _lirc=no ;;
1179 --enable-lircc) _lircc=yes ;;
1180 --disable-lircc) _lircc=no ;;
1181 --enable-apple-remote) _apple_remote=yes ;;
1182 --disable-apple-remote) _apple_remote=no ;;
1183 --enable-apple-ir) _apple_ir=yes ;;
1184 --disable-apple-ir) _apple_ir=no ;;
1185 --enable-gui) _gui=yes ;;
1186 --disable-gui) _gui=no ;;
1187 --enable-gtk1) _gtk1=yes ;;
1188 --disable-gtk1) _gtk1=no ;;
1189 --enable-termcap) _termcap=yes ;;
1190 --disable-termcap) _termcap=no ;;
1191 --enable-termios) _termios=yes ;;
1192 --disable-termios) _termios=no ;;
1193 --enable-3dfx) _3dfx=yes ;;
1194 --disable-3dfx) _3dfx=no ;;
1195 --enable-s3fb) _s3fb=yes ;;
1196 --disable-s3fb) _s3fb=no ;;
1197 --enable-wii) _wii=yes ;;
1198 --disable-wii) _wii=no ;;
1199 --enable-tdfxfb) _tdfxfb=yes ;;
1200 --disable-tdfxfb) _tdfxfb=no ;;
1201 --disable-tdfxvid) _tdfxvid=no ;;
1202 --enable-tdfxvid) _tdfxvid=yes ;;
1203 --disable-xvr100) _xvr100=no ;;
1204 --enable-xvr100) _xvr100=yes ;;
1205 --disable-tga) _tga=no ;;
1206 --enable-tga) _tga=yes ;;
1207 --enable-directfb) _directfb=yes ;;
1208 --disable-directfb) _directfb=no ;;
1209 --enable-zr) _zr=yes ;;
1210 --disable-zr) _zr=no ;;
1211 --enable-bl) _bl=yes ;;
1212 --disable-bl) _bl=no ;;
1213 --enable-mtrr) _mtrr=yes ;;
1214 --disable-mtrr) _mtrr=no ;;
1215 --enable-largefiles) _largefiles=yes ;;
1216 --disable-largefiles) _largefiles=no ;;
1217 --enable-shm) _shm=yes ;;
1218 --disable-shm) _shm=no ;;
1219 --enable-select) _select=yes ;;
1220 --disable-select) _select=no ;;
1221 --enable-linux-devfs) _linux_devfs=yes ;;
1222 --disable-linux-devfs) _linux_devfs=no ;;
1223 --enable-cdparanoia) _cdparanoia=yes ;;
1224 --disable-cdparanoia) _cdparanoia=no ;;
1225 --enable-cddb) _cddb=yes ;;
1226 --disable-cddb) _cddb=no ;;
1227 --enable-big-endian) _big_endian=yes ;;
1228 --disable-big-endian) _big_endian=no ;;
1229 --enable-bitmap-font) _bitmap_font=yes ;;
1230 --disable-bitmap-font) _bitmap_font=no ;;
1231 --enable-freetype) _freetype=yes ;;
1232 --disable-freetype) _freetype=no ;;
1233 --enable-fontconfig) _fontconfig=yes ;;
1234 --disable-fontconfig) _fontconfig=no ;;
1235 --enable-unrarexec) _unrar_exec=yes ;;
1236 --disable-unrarexec) _unrar_exec=no ;;
1237 --enable-ftp) _ftp=yes ;;
1238 --disable-ftp) _ftp=no ;;
1239 --enable-vstream) _vstream=yes ;;
1240 --disable-vstream) _vstream=no ;;
1241 --enable-pthreads) _pthreads=yes ;;
1242 --disable-pthreads) _pthreads=no ;;
1243 --enable-w32threads) _w32threads=yes ;;
1244 --disable-w32threads) _w32threads=no ;;
1245 --enable-ass) _ass=yes ;;
1246 --disable-ass) _ass=no ;;
1247 --enable-rpath) _rpath=yes ;;
1248 --disable-rpath) _rpath=no ;;
1250 --enable-fribidi) _fribidi=yes ;;
1251 --disable-fribidi) _fribidi=no ;;
1253 --enable-enca) _enca=yes ;;
1254 --disable-enca) _enca=no ;;
1256 --enable-inet6) _inet6=yes ;;
1257 --disable-inet6) _inet6=no ;;
1259 --enable-gethostbyname2) _gethostbyname2=yes ;;
1260 --disable-gethostbyname2) _gethostbyname2=no ;;
1262 --enable-dga1) _dga1=yes ;;
1263 --disable-dga1) _dga1=no ;;
1264 --enable-dga2) _dga2=yes ;;
1265 --disable-dga2) _dga2=no ;;
1267 --enable-menu) _menu=yes ;;
1268 --disable-menu) _menu=no ;;
1270 --enable-qtx) _qtx=yes ;;
1271 --disable-qtx) _qtx=no ;;
1273 --enable-coreaudio) _coreaudio=yes ;;
1274 --disable-coreaudio) _coreaudio=no ;;
1275 --enable-corevideo) _corevideo=yes ;;
1276 --disable-corevideo) _corevideo=no ;;
1277 --enable-quartz) _quartz=yes ;;
1278 --disable-quartz) _quartz=no ;;
1279 --enable-macosx-finder) _macosx_finder=yes ;;
1280 --disable-macosx-finder) _macosx_finder=no ;;
1281 --enable-macosx-bundle) _macosx_bundle=yes;;
1282 --disable-macosx-bundle) _macosx_bundle=no;;
1284 --enable-maemo) _maemo=yes ;;
1285 --disable-maemo) _maemo=no ;;
1287 --enable-sortsub) _sortsub=yes ;;
1288 --disable-sortsub) _sortsub=no ;;
1290 --enable-crash-debug) _crash_debug=yes ;;
1291 --disable-crash-debug) _crash_debug=no ;;
1292 --enable-sighandler) _sighandler=yes ;;
1293 --disable-sighandler) _sighandler=no ;;
1294 --enable-win32dll) _win32dll=yes ;;
1295 --disable-win32dll) _win32dll=no ;;
1297 --enable-sse) _sse=yes ;;
1298 --disable-sse) _sse=no ;;
1299 --enable-sse2) _sse2=yes ;;
1300 --disable-sse2) _sse2=no ;;
1301 --enable-ssse3) _ssse3=yes ;;
1302 --disable-ssse3) _ssse3=no ;;
1303 --enable-mmxext) _mmxext=yes ;;
1304 --disable-mmxext) _mmxext=no ;;
1305 --enable-3dnow) _3dnow=yes ;;
1306 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1307 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1308 --disable-3dnowext) _3dnowext=no ;;
1309 --enable-cmov) _cmov=yes ;;
1310 --disable-cmov) _cmov=no ;;
1311 --enable-fast-cmov) _fast_cmov=yes ;;
1312 --disable-fast-cmov) _fast_cmov=no ;;
1313 --enable-altivec) _altivec=yes ;;
1314 --disable-altivec) _altivec=no ;;
1315 --enable-armv5te) _armv5te=yes ;;
1316 --disable-armv5te) _armv5te=no ;;
1317 --enable-armv6) _armv6=yes ;;
1318 --disable-armv6) _armv6=no ;;
1319 --enable-armv6t2) _armv6t2=yes ;;
1320 --disable-armv6t2) _armv6t2=no ;;
1321 --enable-armvfp) _armvfp=yes ;;
1322 --disable-armvfp) _armvfp=no ;;
1323 --enable-iwmmxt) _iwmmxt=yes ;;
1324 --disable-iwmmxt) _iwmmxt=no ;;
1325 --enable-mmx) _mmx=yes ;;
1326 --disable-mmx) # 3Dnow! and MMX2 require MMX
1327 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1330 echo "Unknown parameter: $ac_option"
1331 exit 1
1334 esac
1335 done
1337 # Atmos: moved this here, to be correct, if --prefix is specified
1338 test -z "$_bindir" && _bindir="$_prefix/bin"
1339 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1340 test -z "$_mandir" && _mandir="$_prefix/share/man"
1341 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1342 test -z "$_libdir" && _libdir="$_prefix/lib"
1344 # Determine our OS name and CPU architecture
1345 if test -z "$_target" ; then
1346 # OS name
1347 system_name=$(uname -s 2>&1)
1348 case "$system_name" in
1349 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1351 IRIX*)
1352 system_name=IRIX
1354 GNU/kFreeBSD)
1355 system_name=FreeBSD
1357 HP-UX*)
1358 system_name=HP-UX
1360 [cC][yY][gG][wW][iI][nN]*)
1361 system_name=CYGWIN
1363 MINGW32*)
1364 system_name=MINGW32
1366 OS/2*)
1367 system_name=OS/2
1370 system_name="$system_name-UNKNOWN"
1372 esac
1375 # host's CPU/instruction set
1376 host_arch=$(uname -p 2>&1)
1377 case "$host_arch" in
1378 i386|sparc|ppc|alpha|arm|mips|vax)
1380 powerpc) # Darwin returns 'powerpc'
1381 host_arch=ppc
1383 *) # uname -p on Linux returns 'unknown' for the processor type,
1384 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1386 # Maybe uname -m (machine hardware name) returns something we
1387 # recognize.
1389 # x86/x86pc is used by QNX
1390 case "$(uname -m 2>&1)" in
1391 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 ;;
1392 ia64) host_arch=ia64 ;;
1393 x86_64|amd64)
1394 if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \
1395 -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then
1396 host_arch=x86_64
1397 else
1398 host_arch=i386
1401 macppc|ppc) host_arch=ppc ;;
1402 ppc64) host_arch=ppc64 ;;
1403 alpha) host_arch=alpha ;;
1404 sparc) host_arch=sparc ;;
1405 sparc64) host_arch=sparc64 ;;
1406 parisc*|hppa*|9000*) host_arch=hppa ;;
1407 arm*|zaurus|cats) host_arch=arm ;;
1408 sh3|sh4|sh4a) host_arch=sh ;;
1409 s390) host_arch=s390 ;;
1410 s390x) host_arch=s390x ;;
1411 mips*) host_arch=mips ;;
1412 vax) host_arch=vax ;;
1413 xtensa*) host_arch=xtensa ;;
1414 *) host_arch=UNKNOWN ;;
1415 esac
1417 esac
1418 else # if test -z "$_target"
1419 system_name=$(echo $_target | cut -d '-' -f 2)
1420 case "$(echo $system_name | tr A-Z a-z)" in
1421 linux) system_name=Linux ;;
1422 freebsd) system_name=FreeBSD ;;
1423 gnu/kfreebsd) system_name=FreeBSD ;;
1424 netbsd) system_name=NetBSD ;;
1425 bsd/os) system_name=BSD/OS ;;
1426 openbsd) system_name=OpenBSD ;;
1427 dragonfly) system_name=DragonFly ;;
1428 sunos) system_name=SunOS ;;
1429 qnx) system_name=QNX ;;
1430 morphos) system_name=MorphOS ;;
1431 amigaos) system_name=AmigaOS ;;
1432 mingw32msvc) system_name=MINGW32 ;;
1433 esac
1434 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1435 host_arch=$(echo $_target | cut -d '-' -f 1)
1436 if test $(echo $host_arch) != "x86_64" ; then
1437 host_arch=$(echo $host_arch | tr '_' '-')
1441 echo "Detected operating system: $system_name"
1442 echo "Detected host architecture: $host_arch"
1444 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1445 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1449 extra_cflags="-I. $extra_cflags"
1450 _timer=timer-linux.c
1451 _getch=getch2.c
1452 if freebsd ; then
1453 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1454 extra_cflags="$extra_cflags -I/usr/local/include"
1457 if netbsd || dragonfly ; then
1458 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1459 extra_cflags="$extra_cflags -I/usr/pkg/include"
1462 if darwin; then
1463 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1464 _timer=timer-darwin.c
1467 if aix ; then
1468 extra_ldflags="$extra_ldflags -lC"
1471 if irix ; then
1472 _ranlib='ar -r'
1473 elif linux ; then
1474 _ranlib='true'
1477 if win32 ; then
1478 _exesuf=".exe"
1479 # -lwinmm is always needed for osdep/timer-win2.c
1480 extra_ldflags="$extra_ldflags -lwinmm"
1481 _pe_executable=yes
1482 _timer=timer-win2.c
1483 _priority=yes
1484 def_dos_paths="#define HAVE_DOS_PATHS 1"
1485 def_priority="#define CONFIG_PRIORITY 1"
1488 if mingw32 ; then
1489 _getch=getch2-win.c
1490 _need_shmem=no
1493 if amigaos ; then
1494 _select=no
1495 _sighandler=no
1496 _stream_cache=no
1497 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1498 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1501 if qnx ; then
1502 extra_ldflags="$extra_ldflags -lph"
1505 if os2 ; then
1506 _exesuf=".exe"
1507 _getch=getch2-os2.c
1508 _need_shmem=no
1509 _priority=yes
1510 def_dos_paths="#define HAVE_DOS_PATHS 1"
1511 def_priority="#define CONFIG_PRIORITY 1"
1514 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1515 test "$I" && break
1516 done
1519 TMPLOG="configure.log"
1520 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1521 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1522 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1523 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1524 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1526 rm -f "$TMPLOG"
1527 echo configuration: $_configuration > "$TMPLOG"
1528 echo >> "$TMPLOG"
1531 # Checking CC version...
1532 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1533 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1534 echocheck "$_cc version"
1535 cc_vendor=intel
1536 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1537 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1538 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1539 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1540 # TODO verify older icc/ecc compatibility
1541 case $cc_version in
1543 cc_version="v. ?.??, bad"
1544 cc_fail=yes
1546 10.1|11.0|11.1)
1547 cc_version="$cc_version, ok"
1550 cc_version="$cc_version, bad"
1551 cc_fail=yes
1553 esac
1554 echores "$cc_version"
1555 else
1556 for _cc in "$_cc" cc gcc ; do
1557 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1558 if test "$cc_name_tmp" = "gcc"; then
1559 cc_name=$cc_name_tmp
1560 echocheck "$_cc version"
1561 cc_vendor=gnu
1562 cc_version=$($_cc -dumpversion 2>&1)
1563 case $cc_version in
1564 2.96*)
1565 cc_fail=yes
1568 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1569 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1570 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1572 esac
1573 echores "$cc_version"
1574 break
1576 done
1577 fi # icc
1578 test "$cc_fail" = yes && die "unsupported compiler version"
1580 echocheck "host cc"
1581 test "$_host_cc" || _host_cc=$_cc
1582 echores $_host_cc
1584 echocheck "cross compilation"
1585 if test $_cross_compile = auto ; then
1586 cat > $TMPC << EOF
1587 int main(void) { return 0; }
1589 _cross_compile=yes
1590 cc_check && "$TMPEXE" && _cross_compile=no
1592 echores $_cross_compile
1594 if test $_cross_compile = yes; then
1595 tmp_run() {
1596 return 0
1600 # ---
1602 # now that we know what compiler should be used for compilation, try to find
1603 # out which assembler is used by the $_cc compiler
1604 if test "$_as" = auto ; then
1605 _as=$($_cc -print-prog-name=as)
1606 test -z "$_as" && _as=as
1609 if test "$_nm" = auto ; then
1610 _nm=$($_cc -print-prog-name=nm)
1611 test -z "$_nm" && _nm=nm
1614 # XXX: this should be ok..
1615 _cpuinfo="echo"
1617 if test "$_runtime_cpudetection" = no ; then
1619 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1620 # FIXME: Remove the cygwin check once AMD CPUs are supported
1621 if test -r /proc/cpuinfo && ! cygwin; then
1622 # Linux with /proc mounted, extract CPU information from it
1623 _cpuinfo="cat /proc/cpuinfo"
1624 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1625 # FreeBSD with Linux emulation /proc mounted,
1626 # extract CPU information from it
1627 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1628 elif darwin && ! x86 ; then
1629 # use hostinfo on Darwin
1630 _cpuinfo="hostinfo"
1631 elif aix; then
1632 # use 'lsattr' on AIX
1633 _cpuinfo="lsattr -E -l proc0 -a type"
1634 elif x86; then
1635 # all other OSes try to extract CPU information from a small helper
1636 # program cpuinfo instead
1637 $_cc -o cpuinfo$_exesuf cpuinfo.c
1638 _cpuinfo="./cpuinfo$_exesuf"
1641 if x86 ; then
1642 # gather more CPU information
1643 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1644 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1645 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1646 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1647 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1649 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1651 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1652 -e s/xmm/sse/ -e s/kni/sse/)
1654 for ext in $pparam ; do
1655 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1656 done
1658 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1659 test $_sse = kernel_check && _mmxext=kernel_check
1661 echocheck "CPU vendor"
1662 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1664 echocheck "CPU type"
1665 echores "$pname"
1668 fi # test "$_runtime_cpudetection" = no
1670 if x86 && test "$_runtime_cpudetection" = no ; then
1671 extcheck() {
1672 if test "$1" = kernel_check ; then
1673 echocheck "kernel support of $2"
1674 cat > $TMPC <<EOF
1675 #include <stdlib.h>
1676 #include <signal.h>
1677 void catch() { exit(1); }
1678 int main(void) {
1679 signal(SIGILL, catch);
1680 __asm__ volatile ("$3":::"memory"); return 0;
1684 if cc_check && tmp_run ; then
1685 eval _$2=yes
1686 echores "yes"
1687 _optimizing="$_optimizing $2"
1688 return 0
1689 else
1690 eval _$2=no
1691 echores "failed"
1692 echo "It seems that your kernel does not correctly support $2."
1693 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1694 return 1
1697 return 0
1700 extcheck $_mmx "mmx" "emms"
1701 extcheck $_mmxext "mmxext" "sfence"
1702 extcheck $_3dnow "3dnow" "femms"
1703 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1704 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1705 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1706 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1707 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1709 echocheck "mtrr support"
1710 if test "$_mtrr" = kernel_check ; then
1711 _mtrr="yes"
1712 _optimizing="$_optimizing mtrr"
1714 echores "$_mtrr"
1716 if test "$_gcc3_ext" != ""; then
1717 # if we had to disable sse/sse2 because the active kernel does not
1718 # support this instruction set extension, we also have to tell
1719 # gcc3 to not generate sse/sse2 instructions for normal C code
1720 cat > $TMPC << EOF
1721 int main(void) { return 0; }
1723 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1729 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1730 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1731 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1732 case "$host_arch" in
1733 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1734 _arch='X86 X86_32'
1735 _target_arch="ARCH_X86 = yes"
1736 _target_subarch="ARCH_X86_32 = yes"
1737 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1738 iproc=486
1739 proc=i486
1742 if test "$_runtime_cpudetection" = no ; then
1743 case "$pvendor" in
1744 AuthenticAMD)
1745 case "$pfamily" in
1746 3) proc=i386 iproc=386 ;;
1747 4) proc=i486 iproc=486 ;;
1748 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1749 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1750 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1751 proc=k6-3
1752 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1753 proc=geode
1754 elif test "$pmodel" -ge 8; then
1755 proc=k6-2
1756 elif test "$pmodel" -ge 6; then
1757 proc=k6
1758 else
1759 proc=i586
1762 6) iproc=686
1763 # It's a bit difficult to determine the correct type of Family 6
1764 # AMD CPUs just from their signature. Instead, we check directly
1765 # whether it supports SSE.
1766 if test "$_sse" = yes; then
1767 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1768 proc=athlon-xp
1769 else
1770 # Again, gcc treats athlon and athlon-tbird similarly.
1771 proc=athlon
1774 15) iproc=686
1775 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1776 # caught and remedied in the optimization tests below.
1777 proc=k8
1780 *) proc=k8 iproc=686 ;;
1781 esac
1783 GenuineIntel)
1784 case "$pfamily" in
1785 3) proc=i386 iproc=386 ;;
1786 4) proc=i486 iproc=486 ;;
1787 5) iproc=586
1788 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1789 proc=pentium-mmx # 4 is desktop, 8 is mobile
1790 else
1791 proc=i586
1794 6) iproc=686
1795 if test "$pmodel" -ge 15; then
1796 proc=core2
1797 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1798 proc=pentium-m
1799 elif test "$pmodel" -ge 7; then
1800 proc=pentium3
1801 elif test "$pmodel" -ge 3; then
1802 proc=pentium2
1803 else
1804 proc=i686
1807 15) iproc=686
1808 # A nocona in 32-bit mode has no more capabilities than a prescott.
1809 if test "$pmodel" -ge 3; then
1810 proc=prescott
1811 else
1812 proc=pentium4
1814 test $_fast_cmov = "auto" && _fast_cmov=no
1816 *) proc=prescott iproc=686 ;;
1817 esac
1819 CentaurHauls)
1820 case "$pfamily" in
1821 5) iproc=586
1822 if test "$pmodel" -ge 8; then
1823 proc=winchip2
1824 elif test "$pmodel" -ge 4; then
1825 proc=winchip-c6
1826 else
1827 proc=i586
1830 6) iproc=686
1831 if test "$pmodel" -ge 9; then
1832 proc=c3-2
1833 else
1834 proc=c3
1835 iproc=586
1838 *) proc=i686 iproc=i686 ;;
1839 esac
1841 unknown)
1842 case "$pfamily" in
1843 3) proc=i386 iproc=386 ;;
1844 4) proc=i486 iproc=486 ;;
1845 *) proc=i586 iproc=586 ;;
1846 esac
1849 proc=i586 iproc=586 ;;
1850 esac
1851 fi # test "$_runtime_cpudetection" = no
1854 # check that gcc supports our CPU, if not, fall back to earlier ones
1855 # LGB: check -mcpu and -march swithing step by step with enabling
1856 # to fall back till 386.
1858 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1860 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1861 cpuopt=-mtune
1862 else
1863 cpuopt=-mcpu
1866 echocheck "GCC & CPU optimization abilities"
1867 cat > $TMPC << EOF
1868 int main(void) { return 0; }
1870 if test "$_runtime_cpudetection" = no ; then
1871 cc_check -march=native && proc=native
1872 if test "$proc" = "k8"; then
1873 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1875 if test "$proc" = "athlon-xp"; then
1876 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1878 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1879 cc_check -march=$proc $cpuopt=$proc || proc=k6
1881 if test "$proc" = "k6" || test "$proc" = "c3"; then
1882 if ! cc_check -march=$proc $cpuopt=$proc; then
1883 if cc_check -march=i586 $cpuopt=i686; then
1884 proc=i586-i686
1885 else
1886 proc=i586
1890 if test "$proc" = "prescott" ; then
1891 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1893 if test "$proc" = "core2" ; then
1894 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1896 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
1897 cc_check -march=$proc $cpuopt=$proc || proc=i686
1899 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1900 cc_check -march=$proc $cpuopt=$proc || proc=i586
1902 if test "$proc" = "i586"; then
1903 cc_check -march=$proc $cpuopt=$proc || proc=i486
1905 if test "$proc" = "i486" ; then
1906 cc_check -march=$proc $cpuopt=$proc || proc=i386
1908 if test "$proc" = "i386" ; then
1909 cc_check -march=$proc $cpuopt=$proc || proc=error
1911 if test "$proc" = "error" ; then
1912 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1913 _mcpu=""
1914 _march=""
1915 _optimizing=""
1916 elif test "$proc" = "i586-i686"; then
1917 _march="-march=i586"
1918 _mcpu="$cpuopt=i686"
1919 _optimizing="$proc"
1920 else
1921 _march="-march=$proc"
1922 _mcpu="$cpuopt=$proc"
1923 _optimizing="$proc"
1925 else # if test "$_runtime_cpudetection" = no
1926 _mcpu="$cpuopt=generic"
1927 # at least i486 required, for bswap instruction
1928 _march="-march=i486"
1929 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1930 cc_check $_mcpu || _mcpu=""
1931 cc_check $_march $_mcpu || _march=""
1934 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1935 ## autodetected mcpu/march parameters
1936 if test "$_target" ; then
1937 # TODO: it may be a good idea to check GCC and fall back in all cases
1938 if test "$host_arch" = "i586-i686"; then
1939 _march="-march=i586"
1940 _mcpu="$cpuopt=i686"
1941 else
1942 _march="-march=$host_arch"
1943 _mcpu="$cpuopt=$host_arch"
1946 proc="$host_arch"
1948 case "$proc" in
1949 i386) iproc=386 ;;
1950 i486) iproc=486 ;;
1951 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1952 i686|athlon*|pentium*) iproc=686 ;;
1953 *) iproc=586 ;;
1954 esac
1957 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1958 _fast_cmov="yes"
1959 else
1960 _fast_cmov="no"
1963 echores "$proc"
1966 ia64)
1967 _arch='IA64'
1968 _target_arch='ARCH_IA64 = yes'
1969 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1970 iproc='ia64'
1973 x86_64|amd64)
1974 _arch='X86 X86_64'
1975 _target_subarch='ARCH_X86_64 = yes'
1976 _target_arch="ARCH_X86 = yes"
1977 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1978 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1979 iproc='x86_64'
1981 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1982 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1983 cpuopt=-mtune
1984 else
1985 cpuopt=-mcpu
1987 test $_fast_cmov = "auto" && _fast_cmov=yes
1988 if test "$_runtime_cpudetection" = no ; then
1989 case "$pvendor" in
1990 AuthenticAMD)
1991 proc=k8;;
1992 GenuineIntel)
1993 case "$pfamily" in
1994 6) proc=core2;;
1996 # 64-bit prescotts exist, but as far as GCC is concerned they
1997 # have the same capabilities as a nocona.
1998 proc=nocona
2000 esac
2003 proc=error;;
2004 esac
2005 fi # test "$_runtime_cpudetection" = no
2007 echocheck "GCC & CPU optimization abilities"
2008 cat > $TMPC << EOF
2009 int main(void) { return 0; }
2011 # This is a stripped-down version of the i386 fallback.
2012 if test "$_runtime_cpudetection" = no ; then
2013 cc_check -march=native && proc=native
2014 # --- AMD processors ---
2015 if test "$proc" = "k8"; then
2016 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2018 # This will fail if gcc version < 3.3, which is ok because earlier
2019 # versions don't really support 64-bit on amd64.
2020 # Is this a valid assumption? -Corey
2021 if test "$proc" = "athlon-xp"; then
2022 cc_check -march=$proc $cpuopt=$proc || proc=error
2024 # --- Intel processors ---
2025 if test "$proc" = "core2"; then
2026 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2028 if test "$proc" = "nocona"; then
2029 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2031 if test "$proc" = "pentium4"; then
2032 cc_check -march=$proc $cpuopt=$proc || proc=error
2035 _march="-march=$proc"
2036 _mcpu="$cpuopt=$proc"
2037 if test "$proc" = "error" ; then
2038 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2039 _mcpu=""
2040 _march=""
2042 else # if test "$_runtime_cpudetection" = no
2043 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2044 _march="-march=x86-64"
2045 _mcpu="$cpuopt=generic"
2046 cc_check $_mcpu || _mcpu="x86-64"
2047 cc_check $_mcpu || _mcpu=""
2048 cc_check $_march $_mcpu || _march=""
2051 _optimizing=""
2053 echores "$proc"
2056 sparc|sparc64)
2057 _arch='SPARC'
2058 _target_arch='ARCH_SPARC = yes'
2059 iproc='sparc'
2060 if test "$host_arch" = "sparc64" ; then
2061 _vis='yes'
2062 proc='ultrasparc'
2063 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2064 elif sunos ; then
2065 echocheck "CPU type"
2066 karch=$(uname -m)
2067 case "$(echo $karch)" in
2068 sun4) proc=v7 ;;
2069 sun4c) proc=v7 ;;
2070 sun4d) proc=v8 ;;
2071 sun4m) proc=v8 ;;
2072 sun4u) proc=ultrasparc _vis='yes' ;;
2073 sun4v) proc=v9 ;;
2074 *) proc=v8 ;;
2075 esac
2076 echores "$proc"
2077 else
2078 proc=v8
2080 _mcpu="-mcpu=$proc"
2081 _optimizing="$proc"
2084 arm|armv4l|armv5tel)
2085 _arch='ARM'
2086 _target_arch='ARCH_ARM = yes'
2087 iproc='arm'
2090 avr32)
2091 _arch='AVR32'
2092 _target_arch='ARCH_AVR32 = yes'
2093 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2094 iproc='avr32'
2097 sh|sh4)
2098 _arch='SH4'
2099 _target_arch='ARCH_SH4 = yes'
2100 iproc='sh4'
2103 ppc|ppc64|powerpc|powerpc64)
2104 _arch='PPC'
2105 def_dcbzl='#define HAVE_DCBZL 0'
2106 _target_arch='ARCH_PPC = yes'
2107 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2108 iproc='ppc'
2110 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2111 _arch='PPC PPC64'
2112 _target_subarch='ARCH_PPC64 = yes'
2113 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2115 echocheck "CPU type"
2116 case $system_name in
2117 Linux)
2118 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2119 if test -n "$($_cpuinfo | grep altivec)"; then
2120 test $_altivec = auto && _altivec=yes
2123 Darwin)
2124 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2125 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2126 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2127 test $_altivec = auto && _altivec=yes
2130 NetBSD)
2131 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2132 case $cc_version in
2133 2*|3.0*|3.1*|3.2*|3.3*)
2136 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2137 test $_altivec = auto && _altivec=yes
2140 esac
2142 AIX)
2143 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2145 esac
2146 if test "$_altivec" = yes; then
2147 echores "$proc altivec"
2148 else
2149 _altivec=no
2150 echores "$proc"
2153 echocheck "GCC & CPU optimization abilities"
2155 if test -n "$proc"; then
2156 case "$proc" in
2157 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2158 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2159 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2160 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2161 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2162 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2163 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2164 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2165 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2166 *) ;;
2167 esac
2168 # gcc 3.1(.1) and up supports 7400 and 7450
2169 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2170 case "$proc" in
2171 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2172 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2173 *) ;;
2174 esac
2176 # gcc 3.2 and up supports 970
2177 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2178 case "$proc" in
2179 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2180 def_dcbzl='#define HAVE_DCBZL 1' ;;
2181 *) ;;
2182 esac
2184 # gcc 3.3 and up supports POWER4
2185 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2186 case "$proc" in
2187 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2188 *) ;;
2189 esac
2191 # gcc 3.4 and up supports 440*
2192 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2193 case "$proc" in
2194 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2195 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2196 *) ;;
2197 esac
2199 # gcc 4.0 and up supports POWER5
2200 if test "$_cc_major" -ge "4"; then
2201 case "$proc" in
2202 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2203 *) ;;
2204 esac
2208 if test -n "$_mcpu"; then
2209 _optimizing=$(echo $_mcpu | cut -c 8-)
2210 echores "$_optimizing"
2211 else
2212 echores "none"
2217 alpha*)
2218 _arch='ALPHA'
2219 _target_arch='ARCH_ALPHA = yes'
2220 iproc='alpha'
2222 echocheck "CPU type"
2223 cat > $TMPC << EOF
2224 int main(void) {
2225 unsigned long ver, mask;
2226 __asm__ ("implver %0" : "=r" (ver));
2227 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2228 printf("%ld-%x\n", ver, ~mask);
2229 return 0;
2232 $_cc -o "$TMPEXE" "$TMPC"
2233 case $("$TMPEXE") in
2235 0-0) proc="ev4"; _mvi="0";;
2236 1-0) proc="ev5"; _mvi="0";;
2237 1-1) proc="ev56"; _mvi="0";;
2238 1-101) proc="pca56"; _mvi="1";;
2239 2-303) proc="ev6"; _mvi="1";;
2240 2-307) proc="ev67"; _mvi="1";;
2241 2-1307) proc="ev68"; _mvi="1";;
2242 esac
2243 echores "$proc"
2245 echocheck "GCC & CPU optimization abilities"
2246 if test "$proc" = "ev68" ; then
2247 cc_check -mcpu=$proc || proc=ev67
2249 if test "$proc" = "ev67" ; then
2250 cc_check -mcpu=$proc || proc=ev6
2252 _mcpu="-mcpu=$proc"
2253 echores "$proc"
2255 _optimizing="$proc"
2258 mips)
2259 _arch='SGI_MIPS'
2260 _target_arch='ARCH_SGI_MIPS = yes'
2261 iproc='sgi-mips'
2263 if irix ; then
2264 echocheck "CPU type"
2265 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2266 case "$(echo $proc)" in
2267 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2268 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2269 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2270 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2271 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2272 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2273 esac
2274 # gcc < 3.x does not support -mtune.
2275 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2276 _mcpu=''
2278 echores "$proc"
2283 hppa)
2284 _arch='PA_RISC'
2285 _target_arch='ARCH_PA_RISC = yes'
2286 iproc='PA-RISC'
2289 s390)
2290 _arch='S390'
2291 _target_arch='ARCH_S390 = yes'
2292 iproc='390'
2295 s390x)
2296 _arch='S390X'
2297 _target_arch='ARCH_S390X = yes'
2298 iproc='390x'
2301 vax)
2302 _arch='VAX'
2303 _target_arch='ARCH_VAX = yes'
2304 iproc='vax'
2307 xtensa)
2308 _arch='XTENSA'
2309 _target_arch='ARCH_XTENSA = yes'
2310 iproc='xtensa'
2313 generic)
2314 _arch='GENERIC'
2315 _target_arch='ARCH_GENERIC = yes'
2319 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2320 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2321 die "unsupported architecture $host_arch"
2323 esac # case "$host_arch" in
2325 if test "$_runtime_cpudetection" = yes ; then
2326 if x86 ; then
2327 test "$_cmov" != no && _cmov=yes
2328 x86_32 && _cmov=no
2329 test "$_mmx" != no && _mmx=yes
2330 test "$_3dnow" != no && _3dnow=yes
2331 test "$_3dnowext" != no && _3dnowext=yes
2332 test "$_mmxext" != no && _mmxext=yes
2333 test "$_sse" != no && _sse=yes
2334 test "$_sse2" != no && _sse2=yes
2335 test "$_ssse3" != no && _ssse3=yes
2336 test "$_mtrr" != no && _mtrr=yes
2338 if ppc; then
2339 _altivec=yes
2344 # endian testing
2345 echocheck "byte order"
2346 if test "$_big_endian" = auto ; then
2347 cat > $TMPC <<EOF
2348 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2349 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2350 int main(void) { return (int)ascii_name; }
2352 if cc_check ; then
2353 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2354 _big_endian=yes
2355 else
2356 _big_endian=no
2358 else
2359 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2362 if test "$_big_endian" = yes ; then
2363 _byte_order='big-endian'
2364 def_words_endian='#define WORDS_BIGENDIAN 1'
2365 else
2366 _byte_order='little-endian'
2367 def_words_endian='#undef WORDS_BIGENDIAN'
2369 echores "$_byte_order"
2372 echocheck "extern symbol prefix"
2373 cat > $TMPC << EOF
2374 int ff_extern;
2376 cc_check -c || die "Symbol mangling check failed."
2377 sym=$($_nm -P -g $TMPEXE)
2378 extern_prefix=${sym%%ff_extern*}
2379 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2380 echores $extern_prefix
2383 echocheck "assembler support of -pipe option"
2384 cat > $TMPC << EOF
2385 int main(void) { return 0; }
2387 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2390 echocheck "compiler support of named assembler arguments"
2391 _named_asm_args=yes
2392 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2393 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2394 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2395 _named_asm_args=no
2396 def_named_asm_args="#undef NAMED_ASM_ARGS"
2398 echores $_named_asm_args
2401 if darwin && test "$cc_vendor" = "gnu" ; then
2402 echocheck "GCC support of -mstackrealign"
2403 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2404 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2405 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2406 # wrong code with this flag, but this can be worked around by adding
2407 # -fno-unit-at-a-time as described in the blog post at
2408 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2409 cat > $TMPC << EOF
2410 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2411 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2413 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2414 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2415 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2416 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2417 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2420 # Checking for CFLAGS
2421 _install_strip="-s"
2422 if test "$_profile" != "" || test "$_debug" != "" ; then
2423 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2424 _install_strip=
2425 elif test -z "$CFLAGS" ; then
2426 if test "$cc_vendor" = "intel" ; then
2427 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2428 elif test "$cc_vendor" != "gnu" ; then
2429 CFLAGS="-O2 $_march $_mcpu $_pipe"
2430 else
2431 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2432 extra_ldflags="$extra_ldflags -ffast-math"
2434 else
2435 _warn_CFLAGS=yes
2438 cat > $TMPC << EOF
2439 int main(void) { return 0; }
2441 if test "$cc_vendor" = "gnu" ; then
2442 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2443 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2444 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2445 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2446 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2447 else
2448 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2451 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2454 if test -n "$LDFLAGS" ; then
2455 extra_ldflags="$extra_ldflags $LDFLAGS"
2456 _warn_CFLAGS=yes
2457 elif test "$cc_vendor" = "intel" ; then
2458 extra_ldflags="$extra_ldflags -i-static"
2460 if test -n "$CPPFLAGS" ; then
2461 extra_cflags="$extra_cflags $CPPFLAGS"
2462 _warn_CFLAGS=yes
2467 if x86_32 ; then
2468 # Checking assembler (_as) compatibility...
2469 # Added workaround for older as that reads from stdin by default - atmos
2470 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2471 echocheck "assembler ($_as $as_version)"
2473 _pref_as_version='2.9.1'
2474 echo 'nop' > $TMPS
2475 if test "$_mmx" = yes ; then
2476 echo 'emms' >> $TMPS
2478 if test "$_3dnow" = yes ; then
2479 _pref_as_version='2.10.1'
2480 echo 'femms' >> $TMPS
2482 if test "$_3dnowext" = yes ; then
2483 _pref_as_version='2.10.1'
2484 echo 'pswapd %mm0, %mm0' >> $TMPS
2486 if test "$_mmxext" = yes ; then
2487 _pref_as_version='2.10.1'
2488 echo 'movntq %mm0, (%eax)' >> $TMPS
2490 if test "$_sse" = yes ; then
2491 _pref_as_version='2.10.1'
2492 echo 'xorps %xmm0, %xmm0' >> $TMPS
2494 #if test "$_sse2" = yes ; then
2495 # _pref_as_version='2.11'
2496 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2498 if test "$_cmov" = yes ; then
2499 _pref_as_version='2.10.1'
2500 echo 'cmovb %eax, %ebx' >> $TMPS
2502 if test "$_ssse3" = yes ; then
2503 _pref_as_version='2.16.92'
2504 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2506 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2508 if test "$as_verc_fail" != yes ; then
2509 echores "ok"
2510 else
2511 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2512 echores "failed"
2513 die "obsolete binutils version"
2516 fi #if x86_32
2518 echocheck ".align is a power of two"
2519 if test "$_asmalign_pot" = auto ; then
2520 _asmalign_pot=no
2521 cat > $TMPC << EOF
2522 int main(void) { __asm__ (".align 3"); return 0; }
2524 cc_check && _asmalign_pot=yes
2526 if test "$_asmalign_pot" = "yes" ; then
2527 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2528 else
2529 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2531 echores $_asmalign_pot
2533 if x86 ; then
2534 echocheck "10 assembler operands"
2535 ten_operands=no
2536 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2537 cat > $TMPC << EOF
2538 int main(void) {
2539 int x=0;
2540 __asm__ volatile(
2542 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2544 return 0;
2547 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2548 echores $ten_operands
2550 echocheck "yasm"
2551 if test -z "$YASMFLAGS" ; then
2552 if darwin ; then
2553 x86_64 && objformat="macho64" || objformat="macho"
2554 elif win32 ; then
2555 objformat="win32"
2556 else
2557 objformat="elf"
2559 # currently tested for Linux x86, x86_64
2560 YASMFLAGS="-f $objformat"
2561 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2562 case "$objformat" in
2563 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2564 macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
2565 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2566 esac
2567 else
2568 _warn_CFLAGS=yes
2571 echo "pabsw xmm0, xmm0" > $TMPS
2572 yasm_check || _yasm=""
2573 if test $_yasm ; then
2574 test "$_mmx" = "yes" && fft_mmx="yes"
2575 def_yasm='#define HAVE_YASM 1'
2576 _have_yasm="yes"
2577 echores "$_yasm"
2578 else
2579 def_yasm='#define HAVE_YASM 0'
2580 fft_mmx="no"
2581 _have_yasm="no"
2582 echores "no"
2585 echocheck "bswap"
2586 def_bswap='#define HAVE_BSWAP 0'
2587 echo 'bswap %eax' > $TMPS
2588 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2589 echores "$bswap"
2590 fi #if x86
2593 #FIXME: This should happen before the check for CFLAGS..
2594 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2595 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2597 # check if AltiVec is supported by the compiler, and how to enable it
2598 echocheck "GCC AltiVec flags"
2599 cat > $TMPC << EOF
2600 int main(void) { return 0; }
2602 if $(cc_check -maltivec -mabi=altivec) ; then
2603 _altivec_gcc_flags="-maltivec -mabi=altivec"
2604 # check if <altivec.h> should be included
2605 cat > $TMPC << EOF
2606 #include <altivec.h>
2607 int main(void) { return 0; }
2609 if $(cc_check $_altivec_gcc_flags) ; then
2610 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2611 inc_altivec_h='#include <altivec.h>'
2612 else
2613 cat > $TMPC << EOF
2614 int main(void) { return 0; }
2616 if $(cc_check -faltivec) ; then
2617 _altivec_gcc_flags="-faltivec"
2618 else
2619 _altivec=no
2620 _altivec_gcc_flags="none, AltiVec disabled"
2624 echores "$_altivec_gcc_flags"
2626 # check if the compiler supports braces for vector declarations
2627 cat > $TMPC << EOF
2628 $inc_altivec_h
2629 int main(void) { (vector int) {1}; return 0; }
2631 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2633 # Disable runtime cpudetection if we cannot generate AltiVec code or
2634 # AltiVec is disabled by the user.
2635 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2636 && _runtime_cpudetection=no
2638 # Show that we are optimizing for AltiVec (if enabled and supported).
2639 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2640 && _optimizing="$_optimizing altivec"
2642 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2643 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2646 if ppc ; then
2647 def_xform_asm='#define HAVE_XFORM_ASM 0'
2648 xform_asm=no
2649 echocheck "XFORM ASM support"
2650 cat > $TMPC << EOF
2651 int main(void) { __asm__ volatile ("lwzx 0, %y0" :: "Z"(*(int*)0)); return 0; }
2653 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2654 echores "$xform_asm"
2657 if arm ; then
2658 echocheck "ARM pld instruction"
2659 cat > $TMPC << EOF
2660 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2662 pld=no
2663 cc_check && pld=yes
2664 echores "$pld"
2666 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2667 if test $_armv5te = "auto" ; then
2668 cat > $TMPC << EOF
2669 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2671 _armv5te=no
2672 cc_check && _armv5te=yes
2674 echores "$_armv5te"
2676 echocheck "ARMv6 (SIMD instructions)"
2677 if test $_armv6 = "auto" ; then
2678 cat > $TMPC << EOF
2679 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2681 _armv6=no
2682 cc_check && _armv6=yes
2684 echores "$_armv6"
2686 echocheck "ARMv6t2 (SIMD instructions)"
2687 if test $_armv6t2 = "auto" ; then
2688 cat > $TMPC << EOF
2689 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2691 _armv6t2=no
2692 cc_check && _armv6t2=yes
2694 echores "$_armv6"
2696 echocheck "ARM VFP"
2697 if test $_armvfp = "auto" ; then
2698 cat > $TMPC << EOF
2699 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2701 _armvfp=no
2702 cc_check && _armvfp=yes
2704 echores "$_armvfp"
2706 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2707 if test $_iwmmxt = "auto" ; then
2708 cat > $TMPC << EOF
2709 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2711 _iwmmxt=no
2712 cc_check && _iwmmxt=yes
2714 echores "$_iwmmxt"
2717 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI'
2718 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2719 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2720 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2721 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2722 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2723 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2724 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2725 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2726 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2727 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2728 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2729 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2730 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2731 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2732 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2733 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2734 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2735 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2737 # Checking kernel version...
2738 if x86_32 && linux ; then
2739 _k_verc_problem=no
2740 kernel_version=$(uname -r 2>&1)
2741 echocheck "$system_name kernel version"
2742 case "$kernel_version" in
2743 '') kernel_version="?.??"; _k_verc_fail=yes;;
2744 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2745 _k_verc_problem=yes;;
2746 esac
2747 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2748 _k_verc_fail=yes
2750 if test "$_k_verc_fail" ; then
2751 echores "$kernel_version, fail"
2752 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2753 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2754 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2755 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2756 echo "2.2.x you must upgrade it to get SSE support!"
2757 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2758 else
2759 echores "$kernel_version, ok"
2763 ######################
2764 # MAIN TESTS GO HERE #
2765 ######################
2768 echocheck "-lposix"
2769 cat > $TMPC <<EOF
2770 int main(void) { return 0; }
2772 if cc_check -lposix ; then
2773 extra_ldflags="$extra_ldflags -lposix"
2774 echores "yes"
2775 else
2776 echores "no"
2779 echocheck "-lm"
2780 cat > $TMPC <<EOF
2781 int main(void) { return 0; }
2783 if cc_check -lm ; then
2784 _ld_lm="-lm"
2785 echores "yes"
2786 else
2787 _ld_lm=""
2788 echores "no"
2792 echocheck "langinfo"
2793 if test "$_langinfo" = auto ; then
2794 cat > $TMPC <<EOF
2795 #include <langinfo.h>
2796 int main(void) { nl_langinfo(CODESET); return 0; }
2798 _langinfo=no
2799 cc_check && _langinfo=yes
2801 if test "$_langinfo" = yes ; then
2802 def_langinfo='#define HAVE_LANGINFO 1'
2803 else
2804 def_langinfo='#undef HAVE_LANGINFO'
2806 echores "$_langinfo"
2809 echocheck "language"
2810 # Set preferred languages, "all" uses English as main language.
2811 test -z "$language" && language=$LINGUAS
2812 test -z "$language_doc" && language_doc=$language
2813 test -z "$language_man" && language_man=$language
2814 test -z "$language_msg" && language_msg=$language
2815 language_doc=$(echo $language_doc | tr , " ")
2816 language_man=$(echo $language_man | tr , " ")
2817 language_msg=$(echo $language_msg | tr , " ")
2819 test "$language_doc" = "all" && language_doc=$doc_lang_all
2820 test "$language_man" = "all" && language_man=$man_lang_all
2821 test "$language_msg" = "all" && language_msg=en
2823 # Prune non-existing translations from language lists.
2824 # Set message translation to the first available language.
2825 # Fall back on English.
2826 for lang in $language_doc ; do
2827 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2828 done
2829 language_doc=$tmp_language_doc
2830 test -z "$language_doc" && language_doc=en
2832 for lang in $language_man ; do
2833 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2834 done
2835 language_man=$tmp_language_man
2836 test -z "$language_man" && language_man=en
2838 for lang in $language_msg ; do
2839 test -f "help/help_mp-${lang}.h" && language_msg=$lang && break
2840 done
2841 test -z "$language_msg" && language_msg=en
2842 _mp_help="help/help_mp-${language_msg}.h"
2843 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2846 echocheck "enable sighandler"
2847 if test "$_sighandler" = yes ; then
2848 def_sighandler='#define CONFIG_SIGHANDLER 1'
2849 else
2850 def_sighandler='#undef CONFIG_SIGHANDLER'
2852 echores "$_sighandler"
2854 echocheck "runtime cpudetection"
2855 if test "$_runtime_cpudetection" = yes ; then
2856 _optimizing="Runtime CPU-Detection enabled"
2857 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2858 else
2859 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2861 echores "$_runtime_cpudetection"
2864 echocheck "restrict keyword"
2865 for restrict_keyword in restrict __restrict __restrict__ ; do
2866 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2867 if cc_check; then
2868 def_restrict_keyword=$restrict_keyword
2869 break;
2871 done
2872 if [ -n "$def_restrict_keyword" ]; then
2873 echores "$def_restrict_keyword"
2874 else
2875 echores "none"
2877 # Avoid infinite recursion loop ("#define restrict restrict")
2878 if [ "$def_restrict_keyword" != "restrict" ]; then
2879 def_restrict_keyword="#define restrict $def_restrict_keyword"
2880 else
2881 def_restrict_keyword=""
2885 echocheck "__builtin_expect"
2886 # GCC branch prediction hint
2887 cat > $TMPC << EOF
2888 int foo(int a) {
2889 a = __builtin_expect(a, 10);
2890 return a == 10 ? 0 : 1;
2892 int main(void) { return foo(10) && foo(0); }
2894 _builtin_expect=no
2895 cc_check && _builtin_expect=yes
2896 if test "$_builtin_expect" = yes ; then
2897 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2898 else
2899 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2901 echores "$_builtin_expect"
2904 echocheck "kstat"
2905 cat > $TMPC << EOF
2906 #include <kstat.h>
2907 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2909 _kstat=no
2910 cc_check -lkstat && _kstat=yes
2911 if test "$_kstat" = yes ; then
2912 def_kstat="#define HAVE_LIBKSTAT 1"
2913 extra_ldflags="$extra_ldflags -lkstat"
2914 else
2915 def_kstat="#undef HAVE_LIBKSTAT"
2917 echores "$_kstat"
2920 echocheck "posix4"
2921 # required for nanosleep on some systems
2922 cat > $TMPC << EOF
2923 #include <time.h>
2924 int main(void) { (void) nanosleep(0, 0); return 0; }
2926 _posix4=no
2927 cc_check -lposix4 && _posix4=yes
2928 if test "$_posix4" = yes ; then
2929 extra_ldflags="$extra_ldflags -lposix4"
2931 echores "$_posix4"
2933 for func in llrint lrint lrintf round roundf truncf; do
2934 echocheck $func
2935 cat > $TMPC << EOF
2936 #include <math.h>
2937 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2939 eval _$func=no
2940 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2941 if eval test "x\$_$func" = "xyes"; then
2942 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2943 echores yes
2944 else
2945 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2946 echores no
2948 done
2951 echocheck "mkstemp"
2952 cat > $TMPC << EOF
2953 #include <stdlib.h>
2954 int main(void) { char a; mkstemp(&a); return 0; }
2956 _mkstemp=no
2957 cc_check && _mkstemp=yes
2958 if test "$_mkstemp" = yes ; then
2959 def_mkstemp='#define HAVE_MKSTEMP 1'
2960 else
2961 def_mkstemp='#undef HAVE_MKSTEMP'
2963 echores "$_mkstemp"
2966 echocheck "nanosleep"
2967 # also check for nanosleep
2968 cat > $TMPC << EOF
2969 #include <time.h>
2970 int main(void) { (void) nanosleep(0, 0); return 0; }
2972 _nanosleep=no
2973 cc_check && _nanosleep=yes
2974 if test "$_nanosleep" = yes ; then
2975 def_nanosleep='#define HAVE_NANOSLEEP 1'
2976 else
2977 def_nanosleep='#undef HAVE_NANOSLEEP'
2979 echores "$_nanosleep"
2982 echocheck "socklib"
2983 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2984 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2985 cat > $TMPC << EOF
2986 #include <netdb.h>
2987 #include <sys/socket.h>
2988 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2990 _socklib=no
2991 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2992 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2993 done
2994 if test $_winsock2_h = auto && ! cygwin ; then
2995 _winsock2_h=no
2996 cat > $TMPC << EOF
2997 #include <winsock2.h>
2998 int main(void) { (void) gethostbyname(0); return 0; }
3000 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3002 test "$_ld_sock" && _res_comment="using $_ld_sock"
3003 echores "$_socklib"
3006 if test $_winsock2_h = yes ; then
3007 _ld_sock="-lws2_32"
3008 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3009 else
3010 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3014 echocheck "arpa/inet.h"
3015 arpa_inet_h=no
3016 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3017 cat > $TMPC << EOF
3018 #include <arpa/inet.h>
3019 int main(void) { return 0; }
3021 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3022 echores "$arpa_inet_h"
3025 echocheck "inet_pton()"
3026 def_inet_pton='#define HAVE_INET_PTON 0'
3027 inet_pton=no
3028 cat > $TMPC << EOF
3029 #include <sys/types.h>
3030 #include <sys/socket.h>
3031 #include <arpa/inet.h>
3032 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3034 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3035 cc_check $_ld_tmp && inet_pton=yes && break
3036 done
3037 if test $inet_pton = yes ; then
3038 test $_ld_tmp && _res_comment="using $_ld_tmp"
3039 def_inet_pton='#define HAVE_INET_PTON 1'
3041 echores "$inet_pton"
3044 echocheck "inet_aton()"
3045 def_inet_aton='#define HAVE_INET_ATON 0'
3046 inet_aton=no
3047 cat > $TMPC << EOF
3048 #include <sys/types.h>
3049 #include <sys/socket.h>
3050 #include <arpa/inet.h>
3051 int main(void) { (void) inet_aton(0, 0); return 0; }
3053 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3054 cc_check $_ld_tmp && inet_aton=yes && break
3055 done
3056 if test $inet_aton = yes ; then
3057 test $_ld_tmp && _res_comment="using $_ld_tmp"
3058 def_inet_aton='#define HAVE_INET_ATON 1'
3060 echores "$inet_aton"
3063 echocheck "socklen_t"
3064 _socklen_t=no
3065 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3066 cat > $TMPC << EOF
3067 #include <$header>
3068 int main(void) { socklen_t v = 0; return v; }
3070 cc_check && _socklen_t=yes && break
3071 done
3072 if test "$_socklen_t" = yes ; then
3073 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3074 else
3075 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3077 echores "$_socklen_t"
3080 echocheck "closesocket()"
3081 _closesocket=no
3082 cat > $TMPC << EOF
3083 #include <winsock2.h>
3084 int main(void) { closesocket(~0); return 0; }
3086 cc_check $_ld_sock && _closesocket=yes
3087 if test "$_closesocket" = yes ; then
3088 def_closesocket='#define HAVE_CLOSESOCKET 1'
3089 else
3090 def_closesocket='#define HAVE_CLOSESOCKET 0'
3092 echores "$_closesocket"
3095 echocheck "network"
3096 test $_winsock2_h = no && test $inet_pton = no &&
3097 test $inet_aton = no && _network=no
3098 if test "$_network" = yes ; then
3099 def_network='#define CONFIG_NETWORK 1'
3100 extra_ldflags="$extra_ldflags $_ld_sock"
3101 _inputmodules="network $_inputmodules"
3102 else
3103 _noinputmodules="network $_noinputmodules"
3104 def_network='#undef CONFIG_NETWORK'
3105 _ftp=no
3107 echores "$_network"
3110 echocheck "inet6"
3111 if test "$_inet6" = auto ; then
3112 cat > $TMPC << EOF
3113 #include <sys/types.h>
3114 #if !defined(_WIN32) || defined(__CYGWIN__)
3115 #include <sys/socket.h>
3116 #include <netinet/in.h>
3117 #else
3118 #include <ws2tcpip.h>
3119 #endif
3120 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3122 _inet6=no
3123 if cc_check $_ld_sock ; then
3124 _inet6=yes
3127 if test "$_inet6" = yes ; then
3128 def_inet6='#define HAVE_AF_INET6 1'
3129 else
3130 def_inet6='#undef HAVE_AF_INET6'
3132 echores "$_inet6"
3135 echocheck "gethostbyname2"
3136 if test "$_gethostbyname2" = auto ; then
3137 cat > $TMPC << EOF
3138 #include <sys/types.h>
3139 #include <sys/socket.h>
3140 #include <netdb.h>
3141 int main(void) { gethostbyname2("", AF_INET); return 0; }
3143 _gethostbyname2=no
3144 if cc_check ; then
3145 _gethostbyname2=yes
3148 if test "$_gethostbyname2" = yes ; then
3149 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3150 else
3151 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3153 echores "$_gethostbyname2"
3156 echocheck "inttypes.h (required)"
3157 cat > $TMPC << EOF
3158 #include <inttypes.h>
3159 int main(void) { return 0; }
3161 _inttypes=no
3162 cc_check && _inttypes=yes
3163 echores "$_inttypes"
3165 if test "$_inttypes" = no ; then
3166 echocheck "bitypes.h (inttypes.h predecessor)"
3167 cat > $TMPC << EOF
3168 #include <sys/bitypes.h>
3169 int main(void) { return 0; }
3171 cc_check && _inttypes=yes
3172 if test "$_inttypes" = yes ; then
3173 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."
3174 else
3175 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3180 echocheck "int_fastXY_t in inttypes.h"
3181 cat > $TMPC << EOF
3182 #include <inttypes.h>
3183 int main(void) {
3184 volatile int_fast16_t v= 0;
3185 return v; }
3187 _fast_inttypes=no
3188 cc_check && _fast_inttypes=yes
3189 if test "$_fast_inttypes" = no ; then
3190 def_fast_inttypes='
3191 typedef signed char int_fast8_t;
3192 typedef signed int int_fast16_t;
3193 typedef signed int int_fast32_t;
3194 typedef signed long long int_fast64_t;
3195 typedef unsigned char uint_fast8_t;
3196 typedef unsigned int uint_fast16_t;
3197 typedef unsigned int uint_fast32_t;
3198 typedef unsigned long long uint_fast64_t;'
3200 echores "$_fast_inttypes"
3203 echocheck "malloc.h"
3204 cat > $TMPC << EOF
3205 #include <malloc.h>
3206 int main(void) { (void) malloc(0); return 0; }
3208 _malloc=no
3209 cc_check && _malloc=yes
3210 if test "$_malloc" = yes ; then
3211 def_malloc_h='#define HAVE_MALLOC_H 1'
3212 else
3213 def_malloc_h='#define HAVE_MALLOC_H 0'
3215 # malloc.h emits a warning in FreeBSD and OpenBSD
3216 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3217 echores "$_malloc"
3220 echocheck "memalign()"
3221 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3222 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3223 cat > $TMPC << EOF
3224 #include <malloc.h>
3225 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3227 _memalign=no
3228 cc_check && _memalign=yes
3229 if test "$_memalign" = yes ; then
3230 def_memalign='#define HAVE_MEMALIGN 1'
3231 else
3232 def_memalign='#define HAVE_MEMALIGN 0'
3233 def_map_memalign='#define memalign(a,b) malloc(b)'
3234 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3236 echores "$_memalign"
3239 echocheck "posix_memalign()"
3240 posix_memalign=no
3241 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3242 cat > $TMPC << EOF
3243 #define _XOPEN_SOURCE 600
3244 #include <stdlib.h>
3245 int main(void) { posix_memalign(NULL, 0, 0); }
3247 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3248 echores "$posix_memalign"
3251 echocheck "alloca.h"
3252 cat > $TMPC << EOF
3253 #include <alloca.h>
3254 int main(void) { (void) alloca(0); return 0; }
3256 _alloca=no
3257 cc_check && _alloca=yes
3258 if cc_check ; then
3259 def_alloca_h='#define HAVE_ALLOCA_H 1'
3260 else
3261 def_alloca_h='#undef HAVE_ALLOCA_H'
3263 echores "$_alloca"
3266 echocheck "fastmemcpy"
3267 if test "$_fastmemcpy" = yes ; then
3268 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3269 else
3270 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3272 echores "$_fastmemcpy"
3275 echocheck "mman.h"
3276 cat > $TMPC << EOF
3277 #include <sys/types.h>
3278 #include <sys/mman.h>
3279 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3281 _mman=no
3282 cc_check && _mman=yes
3283 if test "$_mman" = yes ; then
3284 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3285 else
3286 def_mman_h='#undef HAVE_SYS_MMAN_H'
3287 os2 && _need_mmap=yes
3289 echores "$_mman"
3291 cat > $TMPC << EOF
3292 #include <sys/types.h>
3293 #include <sys/mman.h>
3294 int main(void) { void *p = MAP_FAILED; return 0; }
3296 _mman_has_map_failed=no
3297 cc_check && _mman_has_map_failed=yes
3298 if test "$_mman_has_map_failed" = yes ; then
3299 def_mman_has_map_failed=''
3300 else
3301 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3304 echocheck "dynamic loader"
3305 cat > $TMPC << EOF
3306 #include <stddef.h>
3307 #include <dlfcn.h>
3308 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3310 _dl=no
3311 for _ld_tmp in "" "-ldl" ; do
3312 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3313 done
3314 if test "$_dl" = yes ; then
3315 def_dl='#define HAVE_LIBDL 1'
3316 else
3317 def_dl='#undef HAVE_LIBDL'
3319 echores "$_dl"
3322 echocheck "dynamic a/v plugins support"
3323 if test "$_dl" = no ; then
3324 _dynamic_plugins=no
3326 if test "$_dynamic_plugins" = yes ; then
3327 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3328 else
3329 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3331 echores "$_dynamic_plugins"
3334 def_threads='#define HAVE_THREADS 0'
3336 echocheck "pthread"
3337 if linux ; then
3338 THREAD_CFLAGS=-D_REENTRANT
3339 elif freebsd || netbsd || openbsd || bsdos ; then
3340 THREAD_CFLAGS=-D_THREAD_SAFE
3342 if test "$_pthreads" = auto ; then
3343 cat > $TMPC << EOF
3344 #include <pthread.h>
3345 void* func(void *arg) { return arg; }
3346 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3348 _pthreads=no
3349 if ! hpux ; then
3350 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3351 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3352 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3353 done
3356 if test "$_pthreads" = yes ; then
3357 test $_ld_pthread && _res_comment="using $_ld_pthread"
3358 def_pthreads='#define HAVE_PTHREADS 1'
3359 def_threads='#define HAVE_THREADS 1'
3360 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3361 else
3362 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3363 def_pthreads='#undef HAVE_PTHREADS'
3364 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3365 mingw32 || _win32dll=no
3367 echores "$_pthreads"
3369 if cygwin ; then
3370 if test "$_pthreads" = yes ; then
3371 def_pthread_cache="#define PTHREAD_CACHE 1"
3372 else
3373 _stream_cache=no
3374 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3378 echocheck "w32threads"
3379 if test "$_pthreads" = yes ; then
3380 _res_comment="using pthread instead"
3381 _w32threads=no
3383 if test "$_w32threads" = auto ; then
3384 _w32threads=no
3385 mingw32 && _w32threads=yes
3387 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3388 echores "$_w32threads"
3390 echocheck "rpath"
3391 netbsd &&_rpath=yes
3392 if test "$_rpath" = yes ; then
3393 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3394 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3395 done
3396 extra_ldflags=$tmp
3398 echores "$_rpath"
3400 echocheck "iconv"
3401 if test "$_iconv" = auto ; then
3402 cat > $TMPC << EOF
3403 #include <stdio.h>
3404 #include <unistd.h>
3405 #include <iconv.h>
3406 #define INBUFSIZE 1024
3407 #define OUTBUFSIZE 4096
3409 char inbuffer[INBUFSIZE];
3410 char outbuffer[OUTBUFSIZE];
3412 int main(void) {
3413 size_t numread;
3414 iconv_t icdsc;
3415 char *tocode="UTF-8";
3416 char *fromcode="cp1250";
3417 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3418 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3419 char *iptr=inbuffer;
3420 char *optr=outbuffer;
3421 size_t inleft=numread;
3422 size_t outleft=OUTBUFSIZE;
3423 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3424 != (size_t)(-1)) {
3425 write(1, outbuffer, OUTBUFSIZE - outleft);
3428 if (iconv_close(icdsc) == -1)
3431 return 0;
3434 _iconv=no
3435 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3436 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3437 _iconv=yes && break
3438 done
3440 if test "$_iconv" = yes ; then
3441 def_iconv='#define CONFIG_ICONV 1'
3442 else
3443 def_iconv='#undef CONFIG_ICONV'
3445 echores "$_iconv"
3448 echocheck "soundcard.h"
3449 _soundcard_h=no
3450 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3451 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3452 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3453 cat > $TMPC << EOF
3454 #include <$_soundcard_header>
3455 int main(void) { return 0; }
3457 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3458 done
3460 if test "$_soundcard_h" = yes ; then
3461 if test $_soundcard_header = "sys/soundcard.h"; then
3462 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3463 else
3464 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3467 echores "$_soundcard_h"
3470 echocheck "sys/dvdio.h"
3471 cat > $TMPC << EOF
3472 #include <unistd.h>
3473 #include <sys/dvdio.h>
3474 int main(void) { return 0; }
3476 _dvdio=no
3477 cc_check && _dvdio=yes
3478 if test "$_dvdio" = yes ; then
3479 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3480 else
3481 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3483 echores "$_dvdio"
3486 echocheck "sys/cdio.h"
3487 cat > $TMPC << EOF
3488 #include <unistd.h>
3489 #include <sys/cdio.h>
3490 int main(void) { return 0; }
3492 _cdio=no
3493 cc_check && _cdio=yes
3494 if test "$_cdio" = yes ; then
3495 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3496 else
3497 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3499 echores "$_cdio"
3502 echocheck "linux/cdrom.h"
3503 cat > $TMPC << EOF
3504 #include <sys/types.h>
3505 #include <linux/cdrom.h>
3506 int main(void) { return 0; }
3508 _cdrom=no
3509 cc_check && _cdrom=yes
3510 if test "$_cdrom" = yes ; then
3511 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3512 else
3513 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3515 echores "$_cdrom"
3518 echocheck "dvd.h"
3519 cat > $TMPC << EOF
3520 #include <dvd.h>
3521 int main(void) { return 0; }
3523 _dvd=no
3524 cc_check && _dvd=yes
3525 if test "$_dvd" = yes ; then
3526 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3527 else
3528 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3530 echores "$_dvd"
3533 if bsdos; then
3534 echocheck "BSDI dvd.h"
3535 cat > $TMPC << EOF
3536 #include <dvd.h>
3537 int main(void) { return 0; }
3539 _bsdi_dvd=no
3540 cc_check && _bsdi_dvd=yes
3541 if test "$_bsdi_dvd" = yes ; then
3542 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3543 else
3544 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3546 echores "$_bsdi_dvd"
3547 fi #if bsdos
3550 if hpux; then
3551 # also used by AIX, but AIX does not support VCD and/or libdvdread
3552 echocheck "HP-UX SCSI header"
3553 cat > $TMPC << EOF
3554 #include <sys/scsi.h>
3555 int main(void) { return 0; }
3557 _hpux_scsi_h=no
3558 cc_check && _hpux_scsi_h=yes
3559 if test "$_hpux_scsi_h" = yes ; then
3560 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3561 else
3562 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3564 echores "$_hpux_scsi_h"
3565 fi #if hpux
3568 if sunos; then
3569 echocheck "userspace SCSI headers (Solaris)"
3570 cat > $TMPC << EOF
3571 #include <unistd.h>
3572 #include <stropts.h>
3573 #include <sys/scsi/scsi_types.h>
3574 #include <sys/scsi/impl/uscsi.h>
3575 int main(void) { return 0; }
3577 _sol_scsi_h=no
3578 cc_check && _sol_scsi_h=yes
3579 if test "$_sol_scsi_h" = yes ; then
3580 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3581 else
3582 def_sol_scsi_h='#undef SOLARIS_USCSI'
3584 echores "$_sol_scsi_h"
3585 fi #if sunos
3588 echocheck "termcap"
3589 if test "$_termcap" = auto ; then
3590 cat > $TMPC <<EOF
3591 #include <stddef.h>
3592 #include <term.h>
3593 int main(void) { tgetent(NULL, NULL); return 0; }
3595 _termcap=no
3596 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3597 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3598 && _termcap=yes && break
3599 done
3601 if test "$_termcap" = yes ; then
3602 def_termcap='#define HAVE_TERMCAP 1'
3603 test $_ld_tmp && _res_comment="using $_ld_tmp"
3604 else
3605 def_termcap='#undef HAVE_TERMCAP'
3607 echores "$_termcap"
3610 echocheck "termios"
3611 def_termios='#undef HAVE_TERMIOS'
3612 def_termios_h='#undef HAVE_TERMIOS_H'
3613 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3614 if test "$_termios" = auto ; then
3615 _termios=no
3616 for _termios_header in "sys/termios.h" "termios.h"; do
3617 cat > $TMPC <<EOF
3618 #include <$_termios_header>
3619 int main(void) { return 0; }
3621 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3622 done
3625 if test "$_termios" = yes ; then
3626 def_termios='#define HAVE_TERMIOS 1'
3627 if test "$_termios_header" = "termios.h" ; then
3628 def_termios_h='#define HAVE_TERMIOS_H 1'
3629 else
3630 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3633 echores "$_termios"
3636 echocheck "shm"
3637 if test "$_shm" = auto ; then
3638 cat > $TMPC << EOF
3639 #include <sys/types.h>
3640 #include <sys/shm.h>
3641 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3643 _shm=no
3644 cc_check && _shm=yes
3646 if test "$_shm" = yes ; then
3647 def_shm='#define HAVE_SHM 1'
3648 else
3649 def_shm='#undef HAVE_SHM'
3651 echores "$_shm"
3654 echocheck "strsep()"
3655 cat > $TMPC << EOF
3656 #include <string.h>
3657 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3659 _strsep=no
3660 cc_check && _strsep=yes
3661 if test "$_strsep" = yes ; then
3662 def_strsep='#define HAVE_STRSEP 1'
3663 _need_strsep=no
3664 else
3665 def_strsep='#undef HAVE_STRSEP'
3666 _need_strsep=yes
3668 echores "$_strsep"
3671 echocheck "vsscanf()"
3672 cat > $TMPC << EOF
3673 #define _ISOC99_SOURCE
3674 #include <stdarg.h>
3675 #include <stdio.h>
3676 int main(void) { vsscanf(0, 0, 0); return 0; }
3678 _vsscanf=no
3679 cc_check && _vsscanf=yes
3680 if test "$_vsscanf" = yes ; then
3681 def_vsscanf='#define HAVE_VSSCANF 1'
3682 _need_vsscanf=no
3683 else
3684 def_vsscanf='#undef HAVE_VSSCANF'
3685 _need_vsscanf=yes
3687 echores "$_vsscanf"
3690 echocheck "swab()"
3691 cat > $TMPC << EOF
3692 #define _XOPEN_SOURCE 600
3693 #include <unistd.h>
3694 int main(void) { swab(0, 0, 0); return 0; }
3696 _swab=no
3697 cc_check && _swab=yes
3698 if test "$_swab" = yes ; then
3699 def_swab='#define HAVE_SWAB 1'
3700 _need_swab=no
3701 else
3702 def_swab='#undef HAVE_SWAB'
3703 _need_swab=yes
3705 echores "$_swab"
3707 echocheck "POSIX select()"
3708 cat > $TMPC << EOF
3709 #include <stdio.h>
3710 #include <stdlib.h>
3711 #include <sys/types.h>
3712 #include <string.h>
3713 #include <sys/time.h>
3714 #include <unistd.h>
3715 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3717 _posix_select=no
3718 def_posix_select='#undef HAVE_POSIX_SELECT'
3719 #select() of kLIBC (OS/2) supports socket only
3720 ! os2 && cc_check && _posix_select=yes \
3721 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3722 echores "$_posix_select"
3725 echocheck "audio select()"
3726 if test "$_select" = no ; then
3727 def_select='#undef HAVE_AUDIO_SELECT'
3728 elif test "$_select" = yes ; then
3729 def_select='#define HAVE_AUDIO_SELECT 1'
3731 echores "$_select"
3734 echocheck "gettimeofday()"
3735 cat > $TMPC << EOF
3736 #include <stdio.h>
3737 #include <sys/time.h>
3738 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3740 _gettimeofday=no
3741 cc_check && _gettimeofday=yes
3742 if test "$_gettimeofday" = yes ; then
3743 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3744 _need_gettimeofday=no
3745 else
3746 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3747 _need_gettimeofday=yes
3749 echores "$_gettimeofday"
3752 echocheck "glob()"
3753 cat > $TMPC << EOF
3754 #include <stdio.h>
3755 #include <glob.h>
3756 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3758 _glob=no
3759 cc_check && _glob=yes
3760 if test "$_glob" = yes ; then
3761 def_glob='#define HAVE_GLOB 1'
3762 _need_glob=no
3763 else
3764 def_glob='#undef HAVE_GLOB'
3765 _need_glob=yes
3767 echores "$_glob"
3770 echocheck "setenv()"
3771 cat > $TMPC << EOF
3772 #include <stdlib.h>
3773 int main(void) { setenv("","",0); return 0; }
3775 _setenv=no
3776 cc_check && _setenv=yes
3777 if test "$_setenv" = yes ; then
3778 def_setenv='#define HAVE_SETENV 1'
3779 _need_setenv=no
3780 else
3781 def_setenv='#undef HAVE_SETENV'
3782 _need_setenv=yes
3784 echores "$_setenv"
3787 if sunos; then
3788 echocheck "sysi86()"
3789 cat > $TMPC << EOF
3790 #include <sys/sysi86.h>
3791 int main(void) { sysi86(0); return 0; }
3793 _sysi86=no
3794 cc_check && _sysi86=yes
3795 if test "$_sysi86" = yes ; then
3796 def_sysi86='#define HAVE_SYSI86 1'
3797 cat > $TMPC << EOF
3798 #include <sys/sysi86.h>
3799 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3801 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3802 else
3803 def_sysi86='#undef HAVE_SYSI86'
3805 echores "$_sysi86"
3806 fi #if sunos
3809 echocheck "sys/sysinfo.h"
3810 cat > $TMPC << EOF
3811 #include <sys/sysinfo.h>
3812 int main(void) {
3813 struct sysinfo s_info;
3814 sysinfo(&s_info);
3815 return 0;
3818 _sys_sysinfo=no
3819 cc_check && _sys_sysinfo=yes
3820 if test "$_sys_sysinfo" = yes ; then
3821 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3822 else
3823 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3825 echores "$_sys_sysinfo"
3828 if darwin; then
3830 echocheck "Mac OS X Finder Support"
3831 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3832 if test "$_macosx_finder" = yes ; then
3833 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3834 extra_ldflags="$extra_ldflags -framework Carbon"
3836 echores "$_macosx_finder"
3838 echocheck "Mac OS X Bundle file locations"
3839 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3840 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3841 if test "$_macosx_bundle" = yes ; then
3842 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3843 extra_ldflags="$extra_ldflags -framework Carbon"
3845 echores "$_macosx_bundle"
3847 echocheck "Apple Remote"
3848 if test "$_apple_remote" = auto ; then
3849 _apple_remote=no
3850 cat > $TMPC <<EOF
3851 #include <stdio.h>
3852 #include <IOKit/IOCFPlugIn.h>
3853 int main(void) {
3854 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3855 CFMutableDictionaryRef hidMatchDictionary;
3856 IOReturn ioReturnValue;
3858 // Set up a matching dictionary to search the I/O Registry by class.
3859 // name for all HID class devices
3860 hidMatchDictionary = IOServiceMatching("AppleIRController");
3862 // Now search I/O Registry for matching devices.
3863 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3864 hidMatchDictionary, &hidObjectIterator);
3866 // If search is unsuccessful, return nonzero.
3867 if (ioReturnValue != kIOReturnSuccess ||
3868 !IOIteratorIsValid(hidObjectIterator)) {
3869 return 1;
3871 return 0;
3874 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3876 if test "$_apple_remote" = yes ; then
3877 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3878 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3879 else
3880 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3882 echores "$_apple_remote"
3884 fi #if darwin
3886 if linux; then
3888 echocheck "Apple IR"
3889 if test "$_apple_ir" = auto ; then
3890 _apple_ir=no
3891 cat > $TMPC <<EOF
3892 #include <linux/types.h>
3893 #include <linux/input.h>
3894 int main(void) {
3895 struct input_event ev;
3896 struct input_id id;
3897 return 0;
3900 cc_check && tmp_run && _apple_ir=yes
3902 if test "$_apple_ir" = yes ; then
3903 def_apple_ir='#define CONFIG_APPLE_IR 1'
3904 else
3905 def_apple_ir='#undef CONFIG_APPLE_IR'
3907 echores "$_apple_ir"
3908 fi #if linux
3910 echocheck "pkg-config"
3911 _pkg_config=pkg-config
3912 if $($_pkg_config --version > /dev/null 2>&1); then
3913 if test "$_ld_static"; then
3914 _pkg_config="$_pkg_config --static"
3916 echores "yes"
3917 else
3918 _pkg_config=false
3919 echores "no"
3923 echocheck "Samba support (libsmbclient)"
3924 if test "$_smb" = yes; then
3925 extra_ldflags="$extra_ldflags -lsmbclient"
3927 if test "$_smb" = auto; then
3928 _smb=no
3929 cat > $TMPC << EOF
3930 #include <libsmbclient.h>
3931 int main(void) { smbc_opendir("smb://"); return 0; }
3933 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3934 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3935 _smb=yes && break
3936 done
3939 if test "$_smb" = yes; then
3940 def_smb="#define CONFIG_LIBSMBCLIENT"
3941 _inputmodules="smb $_inputmodules"
3942 else
3943 def_smb="#undef CONFIG_LIBSMBCLIENT"
3944 _noinputmodules="smb $_noinputmodules"
3946 echores "$_smb"
3949 #########
3950 # VIDEO #
3951 #########
3954 echocheck "tdfxfb"
3955 if test "$_tdfxfb" = yes ; then
3956 def_tdfxfb='#define CONFIG_TDFXFB 1'
3957 _vomodules="tdfxfb $_vomodules"
3958 else
3959 def_tdfxfb='#undef CONFIG_TDFXFB'
3960 _novomodules="tdfxfb $_novomodules"
3962 echores "$_tdfxfb"
3964 echocheck "s3fb"
3965 if test "$_s3fb" = yes ; then
3966 def_s3fb='#define CONFIG_S3FB 1'
3967 _vomodules="s3fb $_vomodules"
3968 else
3969 def_s3fb='#undef CONFIG_S3FB'
3970 _novomodules="s3fb $_novomodules"
3972 echores "$_s3fb"
3974 echocheck "wii"
3975 if test "$_wii" = yes ; then
3976 def_wii='#define CONFIG_WII 1'
3977 _vomodules="wii $_vomodules"
3978 else
3979 def_wii='#undef CONFIG_WII'
3980 _novomodules="wii $_novomodules"
3982 echores "$_wii"
3984 echocheck "tdfxvid"
3985 if test "$_tdfxvid" = yes ; then
3986 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3987 _vomodules="tdfx_vid $_vomodules"
3988 else
3989 def_tdfxvid='#undef CONFIG_TDFX_VID'
3990 _novomodules="tdfx_vid $_novomodules"
3992 echores "$_tdfxvid"
3994 echocheck "xvr100"
3995 if test "$_xvr100" = auto ; then
3996 cat > $TMPC << EOF
3997 #include <unistd.h>
3998 #include <sys/fbio.h>
3999 #include <sys/visual_io.h>
4000 int main(void) {
4001 struct vis_identifier ident;
4002 struct fbgattr attr;
4003 ioctl(0, VIS_GETIDENTIFIER, &ident);
4004 ioctl(0, FBIOGATTR, &attr);
4005 return 0;
4008 _xvr100=no
4009 cc_check && _xvr100=yes
4011 if test "$_xvr100" = yes ; then
4012 def_xvr100='#define CONFIG_XVR100 1'
4013 _vomodules="xvr100 $_vomodules"
4014 else
4015 def_tdfxvid='#undef CONFIG_XVR100'
4016 _novomodules="xvr100 $_novomodules"
4018 echores "$_xvr100"
4020 echocheck "tga"
4021 if test "$_tga" = yes ; then
4022 def_tga='#define CONFIG_TGA 1'
4023 _vomodules="tga $_vomodules"
4024 else
4025 def_tga='#undef CONFIG_TGA'
4026 _novomodules="tga $_novomodules"
4028 echores "$_tga"
4031 echocheck "md5sum support"
4032 if test "$_md5sum" = yes; then
4033 def_md5sum="#define CONFIG_MD5SUM"
4034 _vomodules="md5sum $_vomodules"
4035 else
4036 def_md5sum="#undef CONFIG_MD5SUM"
4037 _novomodules="md5sum $_novomodules"
4039 echores "$_md5sum"
4042 echocheck "yuv4mpeg support"
4043 if test "$_yuv4mpeg" = yes; then
4044 def_yuv4mpeg="#define CONFIG_YUV4MPEG"
4045 _vomodules="yuv4mpeg $_vomodules"
4046 else
4047 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4048 _novomodules="yuv4mpeg $_novomodules"
4050 echores "$_yuv4mpeg"
4053 echocheck "bl"
4054 if test "$_bl" = yes ; then
4055 def_bl='#define CONFIG_BL 1'
4056 _vomodules="bl $_vomodules"
4057 else
4058 def_bl='#undef CONFIG_BL'
4059 _novomodules="bl $_novomodules"
4061 echores "$_bl"
4064 echocheck "DirectFB"
4065 if test "$_directfb" = auto ; then
4066 _directfb=no
4067 cat > $TMPC <<EOF
4068 #include <directfb.h>
4069 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4071 for _inc_tmp in "" -I/usr/local/include/directfb \
4072 -I/usr/include/directfb -I/usr/local/include; do
4073 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4074 extra_cflags="$extra_cflags $_inc_tmp" && break
4075 done
4078 dfb_version() {
4079 expr $1 \* 65536 + $2 \* 256 + $3
4082 if test "$_directfb" = yes; then
4083 cat > $TMPC << EOF
4084 #include <directfb_version.h>
4086 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4089 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4090 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4091 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4092 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4093 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4094 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4095 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4096 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4097 _res_comment="$_directfb_version"
4098 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4099 else
4100 def_directfb_version='#undef DIRECTFBVERSION'
4101 _directfb=no
4102 _res_comment="version >=0.9.13 required"
4104 else
4105 _directfb=no
4106 _res_comment="failed to get version"
4109 echores "$_directfb"
4111 if test "$_directfb" = yes ; then
4112 def_directfb='#define CONFIG_DIRECTFB 1'
4113 _vomodules="directfb $_vomodules"
4114 libs_mplayer="$libs_mplayer -ldirectfb"
4115 else
4116 def_directfb='#undef CONFIG_DIRECTFB'
4117 _novomodules="directfb $_novomodules"
4119 if test "$_dfbmga" = yes; then
4120 _vomodules="dfbmga $_vomodules"
4121 def_dfbmga='#define CONFIG_DFBMGA 1'
4122 else
4123 _novomodules="dfbmga $_novomodules"
4124 def_dfbmga='#undef CONFIG_DFBMGA'
4128 echocheck "X11 headers presence"
4129 _x11_headers="no"
4130 _res_comment="check if the dev(el) packages are installed"
4131 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4132 if test -f "$I/X11/Xlib.h" ; then
4133 _x11_headers="yes"
4134 _res_comment=""
4135 break
4137 done
4138 if test $_cross_compile = no; then
4139 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4140 /usr/include/X11R6 /usr/openwin/include ; do
4141 if test -f "$I/X11/Xlib.h" ; then
4142 extra_cflags="$extra_cflags -I$I"
4143 _x11_headers="yes"
4144 _res_comment="using $I"
4145 break
4147 done
4149 echores "$_x11_headers"
4152 echocheck "X11"
4153 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4154 cat > $TMPC <<EOF
4155 #include <X11/Xlib.h>
4156 #include <X11/Xutil.h>
4157 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4159 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4160 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4161 -L/usr/lib ; do
4162 if netbsd; then
4163 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4164 else
4165 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4167 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4168 && _x11=yes && break
4169 done
4171 if test "$_x11" = yes ; then
4172 def_x11='#define CONFIG_X11 1'
4173 _vomodules="x11 xover $_vomodules"
4174 else
4175 _x11=no
4176 def_x11='#undef CONFIG_X11'
4177 _novomodules="x11 $_novomodules"
4178 _res_comment="check if the dev(el) packages are installed"
4179 # disable stuff that depends on X
4180 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4182 echores "$_x11"
4184 echocheck "Xss screensaver extensions"
4185 if test "$_xss" = auto ; then
4186 cat > $TMPC << EOF
4187 #include <X11/Xlib.h>
4188 #include <X11/extensions/scrnsaver.h>
4189 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4191 _xss=no
4192 cc_check -lXss && _xss=yes
4194 if test "$_xss" = yes ; then
4195 def_xss='#define CONFIG_XSS 1'
4196 libs_mplayer="$libs_mplayer -lXss"
4197 else
4198 def_xss='#undef CONFIG_XSS'
4200 echores "$_xss"
4202 echocheck "DPMS"
4203 _xdpms3=no
4204 _xdpms4=no
4205 if test "$_x11" = yes ; then
4206 cat > $TMPC <<EOF
4207 #include <X11/Xmd.h>
4208 #include <X11/Xlib.h>
4209 #include <X11/Xutil.h>
4210 #include <X11/Xatom.h>
4211 #include <X11/extensions/dpms.h>
4212 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4214 cc_check -lXdpms && _xdpms3=yes
4215 cat > $TMPC <<EOF
4216 #include <X11/Xlib.h>
4217 #include <X11/extensions/dpms.h>
4218 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4220 cc_check -lXext && _xdpms4=yes
4222 if test "$_xdpms4" = yes ; then
4223 def_xdpms='#define CONFIG_XDPMS 1'
4224 _res_comment="using Xdpms 4"
4225 echores "yes"
4226 elif test "$_xdpms3" = yes ; then
4227 def_xdpms='#define CONFIG_XDPMS 1'
4228 libs_mplayer="$libs_mplayer -lXdpms"
4229 _res_comment="using Xdpms 3"
4230 echores "yes"
4231 else
4232 def_xdpms='#undef CONFIG_XDPMS'
4233 echores "no"
4237 echocheck "Xv"
4238 if test "$_xv" = auto ; then
4239 cat > $TMPC <<EOF
4240 #include <X11/Xlib.h>
4241 #include <X11/extensions/Xvlib.h>
4242 int main(void) {
4243 (void) XvGetPortAttribute(0, 0, 0, 0);
4244 (void) XvQueryPortAttributes(0, 0, 0);
4245 return 0; }
4247 _xv=no
4248 cc_check -lXv && _xv=yes
4251 if test "$_xv" = yes ; then
4252 def_xv='#define CONFIG_XV 1'
4253 libs_mplayer="$libs_mplayer -lXv"
4254 _vomodules="xv $_vomodules"
4255 else
4256 def_xv='#undef CONFIG_XV'
4257 _novomodules="xv $_novomodules"
4259 echores "$_xv"
4262 echocheck "XvMC"
4263 if test "$_xv" = yes && test "$_xvmc" != no ; then
4264 _xvmc=no
4265 cat > $TMPC <<EOF
4266 #include <X11/Xlib.h>
4267 #include <X11/extensions/Xvlib.h>
4268 #include <X11/extensions/XvMClib.h>
4269 int main(void) {
4270 (void) XvMCQueryExtension(0,0,0);
4271 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4272 return 0; }
4274 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4275 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4276 done
4278 if test "$_xvmc" = yes ; then
4279 def_xvmc='#define CONFIG_XVMC 1'
4280 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4281 _vomodules="xvmc $_vomodules"
4282 _res_comment="using $_xvmclib"
4283 else
4284 def_xvmc='#define CONFIG_XVMC 0'
4285 _novomodules="xvmc $_novomodules"
4286 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4288 echores "$_xvmc"
4291 echocheck "VDPAU"
4292 if test "$_vdpau" = auto ; then
4293 _vdpau=no
4294 if test "$_dl" = yes ; then
4295 cat > $TMPC <<EOF
4296 #include <vdpau/vdpau_x11.h>
4297 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4299 cc_check && _vdpau=yes
4302 if test "$_vdpau" = yes ; then
4303 def_vdpau='#define CONFIG_VDPAU 1'
4304 _vomodules="vdpau $_vomodules"
4305 else
4306 def_vdpau='#define CONFIG_VDPAU 0'
4307 _novomodules="vdpau $_novomodules"
4308 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER//)
4310 echores "$_vdpau"
4313 echocheck "Xinerama"
4314 if test "$_xinerama" = auto ; then
4315 cat > $TMPC <<EOF
4316 #include <X11/Xlib.h>
4317 #include <X11/extensions/Xinerama.h>
4318 int main(void) { (void) XineramaIsActive(0); return 0; }
4320 _xinerama=no
4321 cc_check -lXinerama && _xinerama=yes
4324 if test "$_xinerama" = yes ; then
4325 def_xinerama='#define CONFIG_XINERAMA 1'
4326 libs_mplayer="$libs_mplayer -lXinerama"
4327 else
4328 def_xinerama='#undef CONFIG_XINERAMA'
4330 echores "$_xinerama"
4333 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4334 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4335 # named 'X extensions' or something similar.
4336 # This check may be useful for future mplayer versions (to change resolution)
4337 # If you run into problems, remove '-lXxf86vm'.
4338 echocheck "Xxf86vm"
4339 if test "$_vm" = auto ; then
4340 cat > $TMPC <<EOF
4341 #include <X11/Xlib.h>
4342 #include <X11/extensions/xf86vmode.h>
4343 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4345 _vm=no
4346 cc_check -lXxf86vm && _vm=yes
4348 if test "$_vm" = yes ; then
4349 def_vm='#define CONFIG_XF86VM 1'
4350 libs_mplayer="$libs_mplayer -lXxf86vm"
4351 else
4352 def_vm='#undef CONFIG_XF86VM'
4354 echores "$_vm"
4356 # Check for the presence of special keycodes, like audio control buttons
4357 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4358 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4359 # have these new keycodes.
4360 echocheck "XF86keysym"
4361 if test "$_xf86keysym" = auto; then
4362 _xf86keysym=no
4363 cat > $TMPC <<EOF
4364 #include <X11/Xlib.h>
4365 #include <X11/XF86keysym.h>
4366 int main(void) { return XF86XK_AudioPause; }
4368 cc_check && _xf86keysym=yes
4370 if test "$_xf86keysym" = yes ; then
4371 def_xf86keysym='#define CONFIG_XF86XK 1'
4372 else
4373 def_xf86keysym='#undef CONFIG_XF86XK'
4375 echores "$_xf86keysym"
4377 echocheck "DGA"
4378 if test "$_dga2" = auto && test "$_x11" = yes ; then
4379 cat > $TMPC << EOF
4380 #include <X11/Xlib.h>
4381 #include <X11/extensions/xf86dga.h>
4382 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4384 _dga2=no
4385 cc_check -lXxf86dga && _dga2=yes
4387 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4388 cat > $TMPC << EOF
4389 #include <X11/Xlib.h>
4390 #include <X11/extensions/xf86dga.h>
4391 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4393 _dga1=no
4394 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4397 _dga=no
4398 def_dga='#undef CONFIG_DGA'
4399 def_dga1='#undef CONFIG_DGA1'
4400 def_dga2='#undef CONFIG_DGA2'
4401 if test "$_dga1" = yes ; then
4402 _dga=yes
4403 def_dga1='#define CONFIG_DGA1 1'
4404 _res_comment="using DGA 1.0"
4405 elif test "$_dga2" = yes ; then
4406 _dga=yes
4407 def_dga2='#define CONFIG_DGA2 1'
4408 _res_comment="using DGA 2.0"
4410 if test "$_dga" = yes ; then
4411 def_dga='#define CONFIG_DGA 1'
4412 libs_mplayer="$libs_mplayer -lXxf86dga"
4413 _vomodules="dga $_vomodules"
4414 else
4415 _novomodules="dga $_novomodules"
4417 echores "$_dga"
4420 echocheck "3dfx"
4421 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4422 def_3dfx='#define CONFIG_3DFX 1'
4423 _vomodules="3dfx $_vomodules"
4424 else
4425 def_3dfx='#undef CONFIG_3DFX'
4426 _novomodules="3dfx $_novomodules"
4428 echores "$_3dfx"
4431 echocheck "OpenGL"
4432 #Note: this test is run even with --enable-gl since we autodetect linker flags
4433 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4434 cat > $TMPC << EOF
4435 #ifdef GL_WIN32
4436 #include <windows.h>
4437 #include <GL/gl.h>
4438 #else
4439 #include <GL/gl.h>
4440 #include <X11/Xlib.h>
4441 #include <GL/glx.h>
4442 #endif
4443 int main(void) {
4444 #ifdef GL_WIN32
4445 HDC dc;
4446 wglCreateContext(dc);
4447 #else
4448 glXCreateContext(NULL, NULL, NULL, True);
4449 #endif
4450 glFinish();
4451 return 0;
4454 _gl=no
4455 if cc_check -lGL $_ld_lm ; then
4456 _gl=yes
4457 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4458 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4459 _gl=yes
4460 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4461 elif cc_check -DGL_WIN32 -lopengl32 ; then
4462 _gl=yes
4463 _gl_win32=yes
4464 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4466 else
4467 _gl=no
4469 if test "$_gl" = yes ; then
4470 def_gl='#define CONFIG_GL 1'
4471 if test "$_gl_win32" = yes ; then
4472 def_gl_win32='#define GL_WIN32 1'
4473 _res_comment="win32 version"
4475 _vomodules="opengl $_vomodules"
4476 else
4477 def_gl='#undef CONFIG_GL'
4478 def_gl_win32='#undef GL_WIN32'
4479 _novomodules="opengl $_novomodules"
4481 echores "$_gl"
4484 echocheck "VIDIX"
4485 def_vidix='#undef CONFIG_VIDIX'
4486 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4487 _vidix_drv_cyberblade=no
4488 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4489 _vidix_drv_ivtv=no
4490 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4491 _vidix_drv_ivtv=no
4492 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4493 _vidix_drv_mach64=no
4494 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4495 _vidix_drv_mga=no
4496 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4497 _vidix_drv_mga_crtc2=no
4498 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4499 _vidix_drv_nvidia=no
4500 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4501 _vidix_drv_pm2=no
4502 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4503 _vidix_drv_pm3=no
4504 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4505 _vidix_drv_radeon=no
4506 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4507 _vidix_drv_rage128=no
4508 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4509 _vidix_drv_s3=no
4510 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4511 _vidix_drv_sh_veu=no
4512 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4513 _vidix_drv_sis=no
4514 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4515 _vidix_drv_unichrome=no
4516 if test "$_vidix" = auto ; then
4517 _vidix=no
4518 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4519 && _vidix=yes
4520 (ppc || alpha) && linux && _vidix=yes
4522 echores "$_vidix"
4524 if test "$_vidix" = yes ; then
4525 def_vidix='#define CONFIG_VIDIX 1'
4526 _vomodules="cvidix $_vomodules"
4527 test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4528 test $_ivtv = "yes" || _vidix_drivers=$(echo $_vidix_drivers | sed s/ivtv//)
4530 # some vidix drivers are architecture and os specific, discard them elsewhere
4531 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4532 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4534 for driver in $_vidix_drivers ; do
4535 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4536 eval _vidix_drv_${driver}=yes
4537 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4538 done
4540 echocheck "VIDIX PCI device name database"
4541 echores "$_vidix_pcidb"
4542 if test "$_vidix_pcidb" = yes ; then
4543 _vidix_pcidb_val=1
4544 else
4545 _vidix_pcidb_val=0
4548 echocheck "VIDIX dhahelper support"
4549 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4550 echores "$_dhahelper"
4552 echocheck "VIDIX svgalib_helper support"
4553 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4554 echores "$_svgalib_helper"
4556 else
4557 _novomodules="cvidix $_novomodules"
4560 if test "$_vidix" = yes && win32; then
4561 winvidix=yes
4562 _vomodules="winvidix $_vomodules"
4563 libs_mplayer="$libs_mplayer -lgdi32"
4564 else
4565 _novomodules="winvidix $_novomodules"
4567 if test "$_vidix" = yes && test "$_x11" = yes; then
4568 xvidix=yes
4569 _vomodules="xvidix $_vomodules"
4570 else
4571 _novomodules="xvidix $_novomodules"
4574 echocheck "/dev/mga_vid"
4575 if test "$_mga" = auto ; then
4576 _mga=no
4577 test -c /dev/mga_vid && _mga=yes
4579 if test "$_mga" = yes ; then
4580 def_mga='#define CONFIG_MGA 1'
4581 _vomodules="mga $_vomodules"
4582 else
4583 def_mga='#undef CONFIG_MGA'
4584 _novomodules="mga $_novomodules"
4586 echores "$_mga"
4589 echocheck "xmga"
4590 if test "$_xmga" = auto ; then
4591 _xmga=no
4592 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4594 if test "$_xmga" = yes ; then
4595 def_xmga='#define CONFIG_XMGA 1'
4596 _vomodules="xmga $_vomodules"
4597 else
4598 def_xmga='#undef CONFIG_XMGA'
4599 _novomodules="xmga $_novomodules"
4601 echores "$_xmga"
4604 echocheck "GGI"
4605 if test "$_ggi" = auto ; then
4606 cat > $TMPC << EOF
4607 #include <ggi/ggi.h>
4608 int main(void) { ggiInit(); return 0; }
4610 _ggi=no
4611 cc_check -lggi && _ggi=yes
4613 if test "$_ggi" = yes ; then
4614 def_ggi='#define CONFIG_GGI 1'
4615 libs_mplayer="$libs_mplayer -lggi"
4616 _vomodules="ggi $_vomodules"
4617 else
4618 def_ggi='#undef CONFIG_GGI'
4619 _novomodules="ggi $_novomodules"
4621 echores "$_ggi"
4623 echocheck "GGI extension: libggiwmh"
4624 if test "$_ggiwmh" = auto ; then
4625 _ggiwmh=no
4626 cat > $TMPC << EOF
4627 #include <ggi/ggi.h>
4628 #include <ggi/wmh.h>
4629 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4631 cc_check -lggi -lggiwmh && _ggiwmh=yes
4633 # needed to get right output on obscure combination
4634 # like --disable-ggi --enable-ggiwmh
4635 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4636 def_ggiwmh='#define CONFIG_GGIWMH 1'
4637 libs_mplayer="$libs_mplayer -lggiwmh"
4638 else
4639 _ggiwmh=no
4640 def_ggiwmh='#undef CONFIG_GGIWMH'
4642 echores "$_ggiwmh"
4645 echocheck "AA"
4646 if test "$_aa" = auto ; then
4647 cat > $TMPC << EOF
4648 #include <aalib.h>
4649 extern struct aa_hardware_params aa_defparams;
4650 extern struct aa_renderparams aa_defrenderparams;
4651 int main(void) {
4652 aa_context *c;
4653 aa_renderparams *p;
4654 (void) aa_init(0, 0, 0);
4655 c = aa_autoinit(&aa_defparams);
4656 p = aa_getrenderparams();
4657 aa_autoinitkbd(c,0);
4658 return 0; }
4660 _aa=no
4661 for _ld_tmp in "-laa" ; do
4662 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4663 done
4665 if test "$_aa" = yes ; then
4666 def_aa='#define CONFIG_AA 1'
4667 if cygwin ; then
4668 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4670 _vomodules="aa $_vomodules"
4671 else
4672 def_aa='#undef CONFIG_AA'
4673 _novomodules="aa $_novomodules"
4675 echores "$_aa"
4678 echocheck "CACA"
4679 if test "$_caca" = auto ; then
4680 _caca=no
4681 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4682 cat > $TMPC << EOF
4683 #include <caca.h>
4684 #ifdef CACA_API_VERSION_1
4685 #include <caca0.h>
4686 #endif
4687 int main(void) { (void) caca_init(); return 0; }
4689 cc_check $(caca-config --libs) && _caca=yes
4692 if test "$_caca" = yes ; then
4693 def_caca='#define CONFIG_CACA 1'
4694 extra_cflags="$extra_cflags $(caca-config --cflags)"
4695 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4696 _vomodules="caca $_vomodules"
4697 else
4698 def_caca='#undef CONFIG_CACA'
4699 _novomodules="caca $_novomodules"
4701 echores "$_caca"
4704 echocheck "SVGAlib"
4705 if test "$_svga" = auto ; then
4706 cat > $TMPC << EOF
4707 #include <vga.h>
4708 int main(void) { return 0; }
4710 _svga=no
4711 cc_check -lvga $_ld_lm && _svga=yes
4713 if test "$_svga" = yes ; then
4714 def_svga='#define CONFIG_SVGALIB 1'
4715 libs_mplayer="$libs_mplayer -lvga"
4716 _vomodules="svga $_vomodules"
4717 else
4718 def_svga='#undef CONFIG_SVGALIB'
4719 _novomodules="svga $_novomodules"
4721 echores "$_svga"
4724 echocheck "FBDev"
4725 if test "$_fbdev" = auto ; then
4726 _fbdev=no
4727 linux && _fbdev=yes
4729 if test "$_fbdev" = yes ; then
4730 def_fbdev='#define CONFIG_FBDEV 1'
4731 _vomodules="fbdev $_vomodules"
4732 else
4733 def_fbdev='#undef CONFIG_FBDEV'
4734 _novomodules="fbdev $_novomodules"
4736 echores "$_fbdev"
4740 echocheck "DVB"
4741 if test "$_dvb" = auto ; then
4742 _dvb=no
4743 cat >$TMPC << EOF
4744 #include <poll.h>
4745 #include <sys/ioctl.h>
4746 #include <stdio.h>
4747 #include <time.h>
4748 #include <unistd.h>
4749 #include <ost/dmx.h>
4750 #include <ost/frontend.h>
4751 #include <ost/sec.h>
4752 #include <ost/video.h>
4753 #include <ost/audio.h>
4754 int main(void) {return 0;}
4756 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4757 cc_check $_inc_tmp && _dvb=yes && \
4758 extra_cflags="$extra_cflags $_inc_tmp" && break
4759 done
4761 echores "$_dvb"
4762 if test "$_dvb" = yes ; then
4763 def_dvb='#define CONFIG_DVB 1'
4764 def_dvbin='#define CONFIG_DVBIN 1'
4765 _aomodules="mpegpes(dvb) $_aomodules"
4766 _vomodules="mpegpes(dvb) $_vomodules"
4769 echocheck "DVB HEAD"
4770 if test "$_dvbhead" = auto ; then
4771 _dvbhead=no
4773 cat >$TMPC << EOF
4774 #include <poll.h>
4775 #include <sys/ioctl.h>
4776 #include <stdio.h>
4777 #include <time.h>
4778 #include <unistd.h>
4779 #include <linux/dvb/dmx.h>
4780 #include <linux/dvb/frontend.h>
4781 #include <linux/dvb/video.h>
4782 #include <linux/dvb/audio.h>
4783 int main(void) {return 0;}
4785 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4786 cc_check $_inc_tmp && _dvbhead=yes && \
4787 extra_cflags="$extra_cflags $_inc_tmp" && break
4788 done
4790 echores "$_dvbhead"
4791 if test "$_dvbhead" = yes ; then
4792 def_dvb='#define CONFIG_DVB 1'
4793 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4794 def_dvbin='#define CONFIG_DVBIN 1'
4795 _aomodules="mpegpes(dvb) $_aomodules"
4796 _vomodules="mpegpes(dvb) $_vomodules"
4799 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4800 def_dvb='#undef CONFIG_DVB'
4801 def_dvb_head='#undef CONFIG_DVB_HEAD'
4802 def_dvbin='#undef CONFIG_DVBIN '
4803 _aomodules="mpegpes(file) $_aomodules"
4804 _vomodules="mpegpes(file) $_vomodules"
4807 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4808 _dvbin=yes
4809 _inputmodules="dvb $_inputmodules"
4810 else
4811 _dvbin=no
4812 _noinputmodules="dvb $_noinputmodules"
4816 if darwin; then
4818 echocheck "Quartz"
4819 if test "$_quartz" = auto ; then
4820 cat > $TMPC <<EOF
4821 #include <Carbon/Carbon.h>
4822 #include <QuickTime/QuickTime.h>
4823 int main(void) {
4824 EnterMovies();
4825 ExitMovies();
4826 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4827 return 0;
4830 _quartz=no
4831 cc_check -framework Carbon -framework QuickTime && _quartz=yes
4833 if test "$_quartz" = yes ; then
4834 libs_mplayer="$libs_mplayer -framework Carbon -framework QuickTime"
4835 def_quartz='#define CONFIG_QUARTZ 1'
4836 _vomodules="quartz $_vomodules"
4837 else
4838 def_quartz='#undef CONFIG_QUARTZ'
4839 _novomodules="quartz $_novomodules"
4841 echores $_quartz
4843 echocheck "CoreVideo"
4844 if test "$_corevideo" = auto ; then
4845 cat > $TMPC <<EOF
4846 #include <Carbon/Carbon.h>
4847 #include <CoreServices/CoreServices.h>
4848 #include <OpenGL/OpenGL.h>
4849 #include <QuartzCore/CoreVideo.h>
4850 int main(void) { return 0; }
4852 _corevideo=no
4853 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4855 if test "$_corevideo" = yes ; then
4856 _vomodules="corevideo $_vomodules"
4857 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4858 def_corevideo='#define CONFIG_COREVIDEO 1'
4859 else
4860 _novomodules="corevideo $_novomodules"
4861 def_corevideo='#undef CONFIG_COREVIDEO'
4863 echores "$_corevideo"
4865 fi #if darwin
4868 echocheck "PNG support"
4869 if test "$_png" = auto ; then
4870 _png=no
4871 if irix ; then
4872 # Don't check for -lpng on irix since it has its own libpng
4873 # incompatible with the GNU libpng
4874 _res_comment="disabled on irix (not GNU libpng)"
4875 else
4876 cat > $TMPC << EOF
4877 #include <png.h>
4878 #include <string.h>
4879 int main(void) {
4880 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4881 printf("libpng: %s\n", png_libpng_ver);
4882 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4885 if cc_check -lpng -lz $_ld_lm ; then
4886 if tmp_run ; then
4887 _png=yes
4888 else
4889 _res_comment="mismatch of library and header versions"
4894 echores "$_png"
4895 if test "$_png" = yes ; then
4896 def_png='#define CONFIG_PNG 1'
4897 extra_ldflags="$extra_ldflags -lpng -lz"
4898 _vomodules="png $_vomodules"
4899 else
4900 def_png='#undef CONFIG_PNG'
4901 _novomodules="png $_novomodules"
4904 echocheck "MNG support"
4905 if test "$_mng" = auto ; then
4906 _mng=no
4907 cat > $TMPC << EOF
4908 #include <libmng.h>
4909 int main(void) {
4910 const char * p_ver = mng_version_text();
4911 return !p_ver || p_ver[0] == 0;
4914 if cc_check -lmng -lz $_ld_lm ; then
4915 _mng=yes
4918 echores "$_mng"
4919 if test "$_mng" = yes ; then
4920 def_mng='#define CONFIG_MNG 1'
4921 extra_ldflags="$extra_ldflags -lmng -lz"
4922 else
4923 def_mng='#undef CONFIG_MNG'
4926 echocheck "JPEG support"
4927 if test "$_jpeg" = auto ; then
4928 _jpeg=no
4929 cat > $TMPC << EOF
4930 #include <stdio.h>
4931 #include <stdlib.h>
4932 #include <setjmp.h>
4933 #include <string.h>
4934 #include <jpeglib.h>
4935 int main(void) { return 0; }
4937 if cc_check -ljpeg $_ld_lm ; then
4938 if tmp_run ; then
4939 _jpeg=yes
4943 echores "$_jpeg"
4945 if test "$_jpeg" = yes ; then
4946 def_jpeg='#define CONFIG_JPEG 1'
4947 _vomodules="jpeg $_vomodules"
4948 extra_ldflags="$extra_ldflags -ljpeg"
4949 else
4950 def_jpeg='#undef CONFIG_JPEG'
4951 _novomodules="jpeg $_novomodules"
4956 echocheck "PNM support"
4957 if test "$_pnm" = yes; then
4958 def_pnm="#define CONFIG_PNM 1"
4959 _vomodules="pnm $_vomodules"
4960 else
4961 def_pnm="#undef CONFIG_PNM"
4962 _novomodules="pnm $_novomodules"
4964 echores "$_pnm"
4968 echocheck "GIF support"
4969 # This is to appease people who want to force gif support.
4970 # If it is forced to yes, then we still do checks to determine
4971 # which gif library to use.
4972 if test "$_gif" = yes ; then
4973 _force_gif=yes
4974 _gif=auto
4977 if test "$_gif" = auto ; then
4978 _gif=no
4979 cat > $TMPC << EOF
4980 #include <gif_lib.h>
4981 int main(void) { return 0; }
4983 for _ld_gif in "-lungif" "-lgif" ; do
4984 cc_check $_ld_gif && tmp_run && _gif=yes && break
4985 done
4988 # If no library was found, and the user wants support forced,
4989 # then we force it on with libgif, as this is the safest
4990 # assumption IMHO. (libungif & libregif both create symbolic
4991 # links to libgif. We also assume that no x11 support is needed,
4992 # because if you are forcing this, then you _should_ know what
4993 # you are doing. [ Besides, package maintainers should never
4994 # have compiled x11 deps into libungif in the first place. ] )
4995 # </rant>
4996 # --Joey
4997 if test "$_force_gif" = yes && test "$_gif" = no ; then
4998 _gif=yes
4999 _ld_gif="-lgif"
5002 if test "$_gif" = yes ; then
5003 def_gif='#define CONFIG_GIF 1'
5004 _codecmodules="gif $_codecmodules"
5005 _vomodules="gif89a $_vomodules"
5006 _res_comment="old version, some encoding functions disabled"
5007 def_gif_4='#undef CONFIG_GIF_4'
5008 extra_ldflags="$extra_ldflags $_ld_gif"
5010 cat > $TMPC << EOF
5011 #include <signal.h>
5012 #include <gif_lib.h>
5013 void catch() { exit(1); }
5014 int main(void) {
5015 signal(SIGSEGV, catch); // catch segfault
5016 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5017 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5018 return 0;
5021 if cc_check "$_ld_gif" && tmp_run ; then
5022 def_gif_4='#define CONFIG_GIF_4 1'
5023 _res_comment=""
5025 else
5026 def_gif='#undef CONFIG_GIF'
5027 def_gif_4='#undef CONFIG_GIF_4'
5028 _novomodules="gif89a $_novomodules"
5029 _nocodecmodules="gif $_nocodecmodules"
5031 echores "$_gif"
5034 case "$_gif" in yes*)
5035 echocheck "broken giflib workaround"
5036 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5038 cat > $TMPC << EOF
5039 #include <gif_lib.h>
5040 int main(void) {
5041 GifFileType gif;
5042 printf("UserData is at address %p\n", gif.UserData);
5043 return 0;
5046 if cc_check "$_ld_gif" && tmp_run ; then
5047 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5048 echores "disabled"
5049 else
5050 echores "enabled"
5053 esac
5056 echocheck "VESA support"
5057 if test "$_vesa" = auto ; then
5058 cat > $TMPC << EOF
5059 #include <vbe.h>
5060 int main(void) { vbeVersion(); return 0; }
5062 _vesa=no
5063 cc_check -lvbe -llrmi && _vesa=yes
5065 if test "$_vesa" = yes ; then
5066 def_vesa='#define CONFIG_VESA 1'
5067 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5068 _vomodules="vesa $_vomodules"
5069 else
5070 def_vesa='#undef CONFIG_VESA'
5071 _novomodules="vesa $_novomodules"
5073 echores "$_vesa"
5075 #################
5076 # VIDEO + AUDIO #
5077 #################
5080 echocheck "SDL"
5081 if test -z "$_sdlconfig" ; then
5082 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5083 _sdlconfig="sdl-config"
5084 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5085 _sdlconfig="sdl11-config"
5086 else
5087 _sdlconfig=false
5090 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5091 cat > $TMPC << EOF
5092 #include <SDL.h>
5093 int main(int argc, char *argv[]) {
5094 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5095 return 0;
5098 _sdl=no
5099 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5100 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5101 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5102 if test "$_sdlversion" -gt 116 ; then
5103 if test "$_sdlversion" -lt 121 ; then
5104 def_sdlbuggy='#define BUGGY_SDL'
5105 else
5106 def_sdlbuggy='#undef BUGGY_SDL'
5108 _sdl=yes
5113 if test "$_sdl" = yes ; then
5114 def_sdl='#define CONFIG_SDL 1'
5115 if cygwin ; then
5116 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5117 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5118 elif mingw32 ; then
5119 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5120 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5121 else
5122 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5123 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5125 _vomodules="sdl $_vomodules"
5126 _aomodules="sdl $_aomodules"
5127 _res_comment="using $_sdlconfig"
5128 else
5129 def_sdl='#undef CONFIG_SDL'
5130 _novomodules="sdl $_novomodules"
5131 _noaomodules="sdl $_noaomodules"
5133 echores "$_sdl"
5136 if os2 ; then
5137 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5138 if test "$_kva" = auto; then
5139 cat > $TMPC << EOF
5140 #include <os2.h>
5141 #include <kva.h>
5142 int main( void ) { return 0; }
5144 _kva=no;
5145 cc_check -lkva && _kva=yes
5147 if test "$_kva" = yes ; then
5148 def_kva='#define CONFIG_KVA 1'
5149 libs_mplayer="$libs_mplayer -lkva"
5150 _vomodules="kva $_vomodules"
5151 else
5152 def_kva='#undef CONFIG_KVA'
5153 _novomodules="kva $_novomodules"
5155 echores "$_kva"
5156 fi #if os2
5159 if win32; then
5161 echocheck "Windows waveout"
5162 if test "$_win32waveout" = auto ; then
5163 cat > $TMPC << EOF
5164 #include <windows.h>
5165 #include <mmsystem.h>
5166 int main(void) { return 0; }
5168 _win32waveout=no
5169 cc_check -lwinmm && _win32waveout=yes
5171 if test "$_win32waveout" = yes ; then
5172 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5173 libs_mplayer="$libs_mplayer -lwinmm"
5174 _aomodules="win32 $_aomodules"
5175 else
5176 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5177 _noaomodules="win32 $_noaomodules"
5179 echores "$_win32waveout"
5181 echocheck "Direct3D"
5182 if test "$_direct3d" = auto ; then
5183 cat > $TMPC << EOF
5184 #include <windows.h>
5185 #include <d3d9.h>
5186 int main(void) { return 0; }
5188 _direct3d=no
5189 cc_check -ld3d9 && _direct3d=yes
5191 if test "$_direct3d" = yes ; then
5192 def_direct3d='#define CONFIG_DIRECT3D 1'
5193 libs_mplayer="$libs_mplayer -ld3d9"
5194 _vomodules="direct3d $_vomodules"
5195 else
5196 def_direct3d='#undef CONFIG_DIRECT3D'
5197 _novomodules="direct3d $_novomodules"
5199 echores "$_direct3d"
5201 echocheck "Directx"
5202 if test "$_directx" = auto ; then
5203 cat > $TMPC << EOF
5204 #include <windows.h>
5205 #include <ddraw.h>
5206 #include <dsound.h>
5207 int main(void) { return 0; }
5209 _directx=no
5210 cc_check -lgdi32 && _directx=yes
5212 if test "$_directx" = yes ; then
5213 def_directx='#define CONFIG_DIRECTX 1'
5214 libs_mplayer="$libs_mplayer -lgdi32"
5215 _vomodules="directx $_vomodules"
5216 _aomodules="dsound $_aomodules"
5217 else
5218 def_directx='#undef CONFIG_DIRECTX'
5219 _novomodules="directx $_novomodules"
5220 _noaomodules="dsound $_noaomodules"
5222 echores "$_directx"
5224 fi #if win32; then
5227 echocheck "DXR2"
5228 if test "$_dxr2" = auto; then
5229 _dxr2=no
5230 cat > $TMPC << EOF
5231 #include <dxr2ioctl.h>
5232 int main(void) { return 0; }
5234 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5235 cc_check $_inc_tmp && _dxr2=yes && \
5236 extra_cflags="$extra_cflags $_inc_tmp" && break
5237 done
5239 if test "$_dxr2" = yes; then
5240 def_dxr2='#define CONFIG_DXR2 1'
5241 _aomodules="dxr2 $_aomodules"
5242 _vomodules="dxr2 $_vomodules"
5243 else
5244 def_dxr2='#undef CONFIG_DXR2'
5245 _noaomodules="dxr2 $_noaomodules"
5246 _novomodules="dxr2 $_novomodules"
5248 echores "$_dxr2"
5250 echocheck "DXR3/H+"
5251 if test "$_dxr3" = auto ; then
5252 cat > $TMPC << EOF
5253 #include <linux/em8300.h>
5254 int main(void) { return 0; }
5256 _dxr3=no
5257 cc_check && _dxr3=yes
5259 if test "$_dxr3" = yes ; then
5260 def_dxr3='#define CONFIG_DXR3 1'
5261 _vomodules="dxr3 $_vomodules"
5262 else
5263 def_dxr3='#undef CONFIG_DXR3'
5264 _novomodules="dxr3 $_novomodules"
5266 echores "$_dxr3"
5269 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5270 if test "$_ivtv" = auto ; then
5271 cat > $TMPC << EOF
5272 #include <stdlib.h>
5273 #include <inttypes.h>
5274 #include <linux/types.h>
5275 #include <linux/videodev2.h>
5276 #include <linux/ivtv.h>
5277 #include <sys/ioctl.h>
5278 int main(void) {
5279 struct ivtv_cfg_stop_decode sd;
5280 struct ivtv_cfg_start_decode sd1;
5281 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5282 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5283 return 0; }
5285 _ivtv=no
5286 cc_check && _ivtv=yes
5288 if test "$_ivtv" = yes ; then
5289 def_ivtv='#define CONFIG_IVTV 1'
5290 _vomodules="ivtv $_vomodules"
5291 _aomodules="ivtv $_aomodules"
5292 else
5293 def_ivtv='#undef CONFIG_IVTV'
5294 _novomodules="ivtv $_novomodules"
5295 _noaomodules="ivtv $_noaomodules"
5297 echores "$_ivtv"
5300 echocheck "V4L2 MPEG Decoder"
5301 if test "$_v4l2" = auto ; then
5302 cat > $TMPC << EOF
5303 #include <stdlib.h>
5304 #include <inttypes.h>
5305 #include <linux/types.h>
5306 #include <linux/videodev2.h>
5307 #include <linux/version.h>
5308 int main(void) {
5309 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5310 #error kernel headers too old, need 2.6.22
5311 bad_kernel_version();
5312 #endif
5313 struct v4l2_ext_controls ctrls;
5314 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5315 return 0;
5318 _v4l2=no
5319 cc_check && _v4l2=yes
5321 if test "$_v4l2" = yes ; then
5322 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5323 _vomodules="v4l2 $_vomodules"
5324 _aomodules="v4l2 $_aomodules"
5325 else
5326 def_v4l2='#undef CONFIG_V4L2_DECODER'
5327 _novomodules="v4l2 $_novomodules"
5328 _noaomodules="v4l2 $_noaomodules"
5330 echores "$_v4l2"
5334 #########
5335 # AUDIO #
5336 #########
5339 echocheck "OSS Audio"
5340 if test "$_ossaudio" = auto ; then
5341 cat > $TMPC << EOF
5342 #include <sys/ioctl.h>
5343 #include <$_soundcard_header>
5344 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5346 _ossaudio=no
5347 cc_check && _ossaudio=yes
5349 if test "$_ossaudio" = yes ; then
5350 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5351 _aomodules="oss $_aomodules"
5352 if test "$_linux_devfs" = yes; then
5353 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5354 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5355 else
5356 cat > $TMPC << EOF
5357 #include <sys/ioctl.h>
5358 #include <$_soundcard_header>
5359 #ifdef OPEN_SOUND_SYSTEM
5360 int main(void) { return 0; }
5361 #else
5362 #error Not the real thing
5363 #endif
5365 _real_ossaudio=no
5366 cc_check && _real_ossaudio=yes
5367 if test "$_real_ossaudio" = yes; then
5368 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5369 elif netbsd || openbsd ; then
5370 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5371 extra_ldflags="$extra_ldflags -lossaudio"
5372 else
5373 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5375 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5377 else
5378 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5379 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5380 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5381 _noaomodules="oss $_noaomodules"
5383 echores "$_ossaudio"
5386 echocheck "aRts"
5387 if test "$_arts" = auto ; then
5388 _arts=no
5389 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5391 cat > $TMPC << EOF
5392 #include <artsc.h>
5393 int main(void) { return 0; }
5395 cc_check $(artsc-config --libs) $(artsc-config --cflags) && tmp_run && _arts=yes
5400 if test "$_arts" = yes ; then
5401 def_arts='#define CONFIG_ARTS 1'
5402 _aomodules="arts $_aomodules"
5403 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5404 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5405 else
5406 _noaomodules="arts $_noaomodules"
5408 echores "$_arts"
5411 echocheck "EsounD"
5412 if test "$_esd" = auto ; then
5413 _esd=no
5414 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5416 cat > $TMPC << EOF
5417 #include <esd.h>
5418 int main(void) { int fd = esd_open_sound("test"); return fd; }
5420 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5424 echores "$_esd"
5426 if test "$_esd" = yes ; then
5427 def_esd='#define CONFIG_ESD 1'
5428 _aomodules="esd $_aomodules"
5429 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5430 extra_cflags="$extra_cflags $(esd-config --cflags)"
5432 echocheck "esd_get_latency()"
5433 cat > $TMPC << EOF
5434 #include <esd.h>
5435 int main(void) { return esd_get_latency(0); }
5437 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY'
5438 echores "$_esd_latency"
5439 else
5440 def_esd='#undef CONFIG_ESD'
5441 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5442 _noaomodules="esd $_noaomodules"
5446 echocheck "NAS"
5447 if test "$_nas" = auto ; then
5448 cat > $TMPC << EOF
5449 #include <audio/audiolib.h>
5450 int main(void) { return 0; }
5452 _nas=no
5453 cc_check $_ld_lm -laudio -lXt && _nas=yes
5455 if test "$_nas" = yes ; then
5456 def_nas='#define CONFIG_NAS 1'
5457 libs_mplayer="$libs_mplayer -laudio -lXt"
5458 _aomodules="nas $_aomodules"
5459 else
5460 _noaomodules="nas $_noaomodules"
5461 def_nas='#undef CONFIG_NAS'
5463 echores "$_nas"
5466 echocheck "pulse"
5467 if test "$_pulse" = auto ; then
5468 _pulse=no
5469 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5471 cat > $TMPC << EOF
5472 #include <pulse/pulseaudio.h>
5473 int main(void) { return 0; }
5475 cc_check $($_pkg_config --libs --cflags libpulse) && tmp_run && _pulse=yes
5479 echores "$_pulse"
5481 if test "$_pulse" = yes ; then
5482 def_pulse='#define CONFIG_PULSE 1'
5483 _aomodules="pulse $_aomodules"
5484 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5485 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5486 else
5487 def_pulse='#undef CONFIG_PULSE'
5488 _noaomodules="pulse $_noaomodules"
5492 echocheck "JACK"
5493 if test "$_jack" = auto ; then
5494 _jack=yes
5496 cat > $TMPC << EOF
5497 #include <jack/jack.h>
5498 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5500 if cc_check -ljack ; then
5501 libs_mplayer="$libs_mplayer -ljack"
5502 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5503 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5504 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5505 else
5506 _jack=no
5510 if test "$_jack" = yes ; then
5511 def_jack='#define CONFIG_JACK 1'
5512 _aomodules="jack $_aomodules"
5513 else
5514 _noaomodules="jack $_noaomodules"
5516 echores "$_jack"
5518 echocheck "OpenAL"
5519 if test "$_openal" = auto ; then
5520 _openal=no
5521 cat > $TMPC << EOF
5522 #ifdef OPENAL_AL_H
5523 #include <OpenAL/al.h>
5524 #else
5525 #include <AL/al.h>
5526 #endif
5527 int main(void) {
5528 alSourceQueueBuffers(0, 0, 0);
5529 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5530 return 0;
5533 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5534 cc_check $I && _openal=yes && break
5535 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5536 done
5537 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5539 if test "$_openal" = yes ; then
5540 def_openal='#define CONFIG_OPENAL 1'
5541 _aomodules="openal $_aomodules"
5542 else
5543 _noaomodules="openal $_noaomodules"
5545 echores "$_openal"
5547 echocheck "ALSA audio"
5548 if test "$_alloca" != yes ; then
5549 _alsa=no
5550 _res_comment="alloca missing"
5552 if test "$_alsa" != no ; then
5553 _alsa=no
5554 cat > $TMPC << EOF
5555 #include <sys/time.h>
5556 #include <sys/asoundlib.h>
5557 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5558 #error "alsa version != 0.5.x"
5559 #endif
5560 int main(void) { return 0; }
5562 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5564 cat > $TMPC << EOF
5565 #include <sys/time.h>
5566 #include <sys/asoundlib.h>
5567 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5568 #error "alsa version != 0.9.x"
5569 #endif
5570 int main(void) { return 0; }
5572 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5573 cat > $TMPC << EOF
5574 #include <sys/time.h>
5575 #include <alsa/asoundlib.h>
5576 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5577 #error "alsa version != 0.9.x"
5578 #endif
5579 int main(void) { return 0; }
5581 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5583 cat > $TMPC << EOF
5584 #include <sys/time.h>
5585 #include <sys/asoundlib.h>
5586 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5587 #error "alsa version != 1.0.x"
5588 #endif
5589 int main(void) { return 0; }
5591 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5592 cat > $TMPC << EOF
5593 #include <sys/time.h>
5594 #include <alsa/asoundlib.h>
5595 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5596 #error "alsa version != 1.0.x"
5597 #endif
5598 int main(void) { return 0; }
5600 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5602 def_alsa='#undef CONFIG_ALSA'
5603 def_alsa5='#undef CONFIG_ALSA5'
5604 def_alsa9='#undef CONFIG_ALSA9'
5605 def_alsa1x='#undef CONFIG_ALSA1X'
5606 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5607 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5608 if test "$_alsaver" ; then
5609 _alsa=yes
5610 if test "$_alsaver" = '0.5.x' ; then
5611 _alsa5=yes
5612 _aomodules="alsa5 $_aomodules"
5613 def_alsa5='#define CONFIG_ALSA5 1'
5614 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5615 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5616 elif test "$_alsaver" = '0.9.x-sys' ; then
5617 _alsa9=yes
5618 _aomodules="alsa $_aomodules"
5619 def_alsa='#define CONFIG_ALSA 1'
5620 def_alsa9='#define CONFIG_ALSA9 1'
5621 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5622 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5623 elif test "$_alsaver" = '0.9.x-alsa' ; then
5624 _alsa9=yes
5625 _aomodules="alsa $_aomodules"
5626 def_alsa='#define CONFIG_ALSA 1'
5627 def_alsa9='#define CONFIG_ALSA9 1'
5628 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5629 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5630 elif test "$_alsaver" = '1.0.x-sys' ; then
5631 _alsa1x=yes
5632 _aomodules="alsa $_aomodules"
5633 def_alsa='#define CONFIG_ALSA 1'
5634 def_alsa1x="#define CONFIG_ALSA1X 1"
5635 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5636 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5637 elif test "$_alsaver" = '1.0.x-alsa' ; then
5638 _alsa1x=yes
5639 _aomodules="alsa $_aomodules"
5640 def_alsa='#define CONFIG_ALSA 1'
5641 def_alsa1x="#define CONFIG_ALSA1X 1"
5642 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5643 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5644 else
5645 _alsa=no
5646 _res_comment="unknown version"
5648 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5649 else
5650 _noaomodules="alsa $_noaomodules"
5652 echores "$_alsa"
5655 echocheck "Sun audio"
5656 if test "$_sunaudio" = auto ; then
5657 cat > $TMPC << EOF
5658 #include <sys/types.h>
5659 #include <sys/audioio.h>
5660 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5662 _sunaudio=no
5663 cc_check && _sunaudio=yes
5665 if test "$_sunaudio" = yes ; then
5666 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5667 _aomodules="sun $_aomodules"
5668 else
5669 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5670 _noaomodules="sun $_noaomodules"
5672 echores "$_sunaudio"
5675 def_mlib='#define CONFIG_MLIB 0'
5676 if sunos; then
5677 echocheck "Sun mediaLib"
5678 if test "$_mlib" = auto ; then
5679 _mlib=no
5680 cat > $TMPC << EOF
5681 #include <mlib.h>
5682 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5684 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5686 echores "$_mlib"
5687 fi #if sunos
5690 if darwin; then
5691 echocheck "CoreAudio"
5692 if test "$_coreaudio" = auto ; then
5693 cat > $TMPC <<EOF
5694 #include <CoreAudio/CoreAudio.h>
5695 #include <AudioToolbox/AudioToolbox.h>
5696 #include <AudioUnit/AudioUnit.h>
5697 int main(void) { return 0; }
5699 _coreaudio=no
5700 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5702 if test "$_coreaudio" = yes ; then
5703 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5704 def_coreaudio='#define CONFIG_COREAUDIO 1'
5705 _aomodules="coreaudio $_aomodules"
5706 else
5707 def_coreaudio='#undef CONFIG_COREAUDIO'
5708 _noaomodules="coreaudio $_noaomodules"
5710 echores $_coreaudio
5711 fi #if darwin
5714 if irix; then
5715 echocheck "SGI audio"
5716 if test "$_sgiaudio" = auto ; then
5717 # check for SGI audio
5718 cat > $TMPC << EOF
5719 #include <dmedia/audio.h>
5720 int main(void) { return 0; }
5722 _sgiaudio=no
5723 cc_check && _sgiaudio=yes
5725 if test "$_sgiaudio" = "yes" ; then
5726 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5727 libs_mplayer="$libs_mplayer -laudio"
5728 _aomodules="sgi $_aomodules"
5729 else
5730 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5731 _noaomodules="sgi $_noaomodules"
5733 echores "$_sgiaudio"
5734 fi #if irix
5737 if os2 ; then
5738 echocheck "DART"
5739 if test "$_dart" = auto; then
5740 cat > $TMPC << EOF
5741 #include <os2.h>
5742 #include <dart.h>
5743 int main( void ) { return 0; }
5745 _dart=no;
5746 cc_check -ldart && _dart=yes
5748 if test "$_dart" = yes ; then
5749 def_dart='#define CONFIG_DART 1'
5750 libs_mplayer="$libs_mplayer -ldart"
5751 _aomodules="dart $_aomodules"
5752 else
5753 def_dart='#undef CONFIG_DART'
5754 _noaomodules="dart $_noaomodules"
5756 echores "$_dart"
5757 fi #if os2
5760 # set default CD/DVD devices
5761 if win32 || os2 ; then
5762 default_cdrom_device="D:"
5763 elif darwin ; then
5764 default_cdrom_device="/dev/disk1"
5765 elif dragonfly ; then
5766 default_cdrom_device="/dev/cd0"
5767 elif freebsd ; then
5768 default_cdrom_device="/dev/acd0"
5769 elif openbsd ; then
5770 default_cdrom_device="/dev/rcd0a"
5771 elif sunos ; then
5772 default_cdrom_device="/vol/dev/aliases/cdrom0"
5773 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5774 # file system and the volfs service.
5775 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5776 elif amigaos ; then
5777 default_cdrom_device="a1ide.device:2"
5778 else
5779 default_cdrom_device="/dev/cdrom"
5782 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5783 default_dvd_device=$default_cdrom_device
5784 elif darwin ; then
5785 default_dvd_device="/dev/rdiskN"
5786 else
5787 default_dvd_device="/dev/dvd"
5791 echocheck "VCD support"
5792 if test "$_vcd" = auto; then
5793 _vcd=no
5794 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5795 _vcd=yes
5796 elif mingw32; then
5797 cat > $TMPC << EOF
5798 #include <ddk/ntddcdrm.h>
5799 int main(void) { return 0; }
5801 cc_check && _vcd=yes
5804 if test "$_vcd" = yes; then
5805 _inputmodules="vcd $_inputmodules"
5806 def_vcd='#define CONFIG_VCD 1'
5807 else
5808 def_vcd='#undef CONFIG_VCD'
5809 _noinputmodules="vcd $_noinputmodules"
5810 _res_comment="not supported on this OS"
5812 echores "$_vcd"
5816 echocheck "dvdread"
5817 if test "$_dvdread_internal" = auto ; then
5818 _dvdread_internal=no
5819 _dvdread=no
5820 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5821 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5822 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5823 || darwin || win32 || os2; then
5824 _dvdread_internal=yes
5825 _dvdread=yes
5826 extra_cflags="-Ilibdvdread4 $extra_cflags"
5828 elif test "$_dvdread" = auto ; then
5829 _dvdread=no
5830 if test "$_dl" = yes; then
5831 cat > $TMPC << EOF
5832 #include <inttypes.h>
5833 #include <dvdread/dvd_reader.h>
5834 #include <dvdread/ifo_types.h>
5835 #include <dvdread/ifo_read.h>
5836 #include <dvdread/nav_read.h>
5837 int main(void) { return 0; }
5839 _dvdreadcflags=$($_dvdreadconfig --cflags)
5840 _dvdreadlibs=$($_dvdreadconfig --libs)
5841 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5842 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5843 _dvdread=yes
5844 extra_cflags="$extra_cflags $_dvdreadcflags"
5845 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5846 _res_comment="external"
5851 if test "$_dvdread_internal" = yes; then
5852 def_dvdread='#define CONFIG_DVDREAD 1'
5853 _inputmodules="dvdread(internal) $_inputmodules"
5854 _largefiles=yes
5855 _res_comment="internal"
5856 elif test "$_dvdread" = yes; then
5857 def_dvdread='#define CONFIG_DVDREAD 1'
5858 _largefiles=yes
5859 extra_ldflags="$extra_ldflags -ldvdread"
5860 _inputmodules="dvdread(external) $_inputmodules"
5861 _res_comment="external"
5862 else
5863 def_dvdread='#undef CONFIG_DVDREAD'
5864 _noinputmodules="dvdread $_noinputmodules"
5866 echores "$_dvdread"
5869 echocheck "internal libdvdcss"
5870 if test "$_libdvdcss_internal" = auto ; then
5871 _libdvdcss_internal=no
5872 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5873 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5875 if test "$_libdvdcss_internal" = yes ; then
5876 if linux || netbsd || openbsd || bsdos ; then
5877 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5878 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5879 elif freebsd || dragonfly ; then
5880 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5881 elif darwin ; then
5882 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5883 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5884 elif cygwin ; then
5885 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5886 elif beos ; then
5887 cflags_libdvdcss="-DSYS_BEOS"
5888 elif os2 ; then
5889 cflags_libdvdcss="-DSYS_OS2"
5891 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5892 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5893 _inputmodules="libdvdcss(internal) $_inputmodules"
5894 _largefiles=yes
5895 else
5896 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5898 echores "$_libdvdcss_internal"
5901 echocheck "cdparanoia"
5902 if test "$_cdparanoia" = auto ; then
5903 cat > $TMPC <<EOF
5904 #include <cdda_interface.h>
5905 #include <cdda_paranoia.h>
5906 // This need a better test. How ?
5907 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5909 _cdparanoia=no
5910 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5911 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5912 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5913 done
5915 if test "$_cdparanoia" = yes ; then
5916 _cdda='yes'
5917 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5918 openbsd && extra_ldflags="$extra_ldflags -lutil"
5920 echores "$_cdparanoia"
5923 echocheck "libcdio"
5924 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5925 cat > $TMPC << EOF
5926 #include <stdio.h>
5927 #include <cdio/version.h>
5928 #include <cdio/cdda.h>
5929 #include <cdio/paranoia.h>
5930 int main(void) {
5931 void *test = cdda_verbose_set;
5932 printf("%s\n", CDIO_VERSION);
5933 return test == (void *)1;
5936 _libcdio=no
5937 for _ld_tmp in "" "-lwinmm" ; do
5938 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5939 cc_check $_ld_tmp $_ld_lm \
5940 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5941 done
5942 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5943 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5944 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5945 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5946 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5949 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5950 _cdda='yes'
5951 def_libcdio='#define CONFIG_LIBCDIO'
5952 def_havelibcdio='yes'
5953 else
5954 if test "$_cdparanoia" = yes ; then
5955 _res_comment="using cdparanoia"
5957 def_libcdio='#undef CONFIG_LIBCDIO'
5958 def_havelibcdio='no'
5960 echores "$_libcdio"
5962 if test "$_cdda" = yes ; then
5963 test $_cddb = auto && test $_network = yes && _cddb=yes
5964 def_cdparanoia='#define CONFIG_CDDA'
5965 _inputmodules="cdda $_inputmodules"
5966 else
5967 def_cdparanoia='#undef CONFIG_CDDA'
5968 _noinputmodules="cdda $_noinputmodules"
5971 if test "$_cddb" = yes ; then
5972 def_cddb='#define CONFIG_CDDB'
5973 _inputmodules="cddb $_inputmodules"
5974 else
5975 _cddb=no
5976 def_cddb='#undef CONFIG_CDDB'
5977 _noinputmodules="cddb $_noinputmodules"
5980 echocheck "bitmap font support"
5981 if test "$_bitmap_font" = yes ; then
5982 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5983 else
5984 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5986 echores "$_bitmap_font"
5989 echocheck "freetype >= 2.0.9"
5991 # freetype depends on iconv
5992 if test "$_iconv" = no ; then
5993 _freetype=no
5994 _res_comment="iconv support needed"
5997 if test "$_freetype" = auto ; then
5998 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5999 cat > $TMPC << EOF
6000 #include <stdio.h>
6001 #include <ft2build.h>
6002 #include FT_FREETYPE_H
6003 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6004 #error "Need FreeType 2.0.9 or newer"
6005 #endif
6006 int main(void) {
6007 FT_Library library;
6008 FT_Int major=-1,minor=-1,patch=-1;
6009 int err=FT_Init_FreeType(&library);
6010 if (err) {
6011 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
6012 exit(err);
6014 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
6015 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
6016 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
6017 (int)major,(int)minor,(int)patch );
6018 if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) {
6019 printf("Library and header version mismatch! Fix it in your distribution!\n");
6020 exit(1);
6022 return 0;
6025 _freetype=no
6026 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _freetype=yes
6027 else
6028 _freetype=no
6031 if test "$_freetype" = yes ; then
6032 def_freetype='#define CONFIG_FREETYPE'
6033 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6034 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6035 else
6036 def_freetype='#undef CONFIG_FREETYPE'
6038 echores "$_freetype"
6040 if test "$_freetype" = no ; then
6041 _fontconfig=no
6042 _res_comment="FreeType support needed"
6044 echocheck "fontconfig"
6045 if test "$_fontconfig" = auto ; then
6046 cat > $TMPC << EOF
6047 #include <stdio.h>
6048 #include <stdlib.h>
6049 #include <fontconfig/fontconfig.h>
6050 int main(void) {
6051 int err = FcInit();
6052 if (err == FcFalse) {
6053 printf("Couldn't initialize fontconfig lib\n");
6054 exit(err);
6056 return 0;
6059 _fontconfig=no
6060 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6061 _ld_tmp="-lfontconfig $_ld_tmp"
6062 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6063 done
6064 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6065 _inc_tmp=$($_pkg_config --cflags fontconfig)
6066 _ld_tmp=$($_pkg_config --libs fontconfig)
6067 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6068 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6071 if test "$_fontconfig" = yes ; then
6072 def_fontconfig='#define CONFIG_FONTCONFIG'
6073 else
6074 def_fontconfig='#undef CONFIG_FONTCONFIG'
6076 echores "$_fontconfig"
6079 echocheck "SSA/ASS support"
6080 # libass depends on FreeType
6081 if test "$_freetype" = no ; then
6082 _ass=no
6083 _res_comment="FreeType support needed"
6086 if test "$_ass" = auto ; then
6087 cat > $TMPC << EOF
6088 #include <ft2build.h>
6089 #include FT_FREETYPE_H
6090 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6091 #error "Need FreeType 2.1.8 or newer"
6092 #endif
6093 int main(void) { return 0; }
6095 _ass=no
6096 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _ass=yes
6097 if test "$_ass" = no ; then
6098 _res_comment="FreeType >= 2.1.8 needed"
6101 if test "$_ass" = yes ; then
6102 def_ass='#define CONFIG_ASS'
6103 else
6104 def_ass='#undef CONFIG_ASS'
6106 echores "$_ass"
6109 echocheck "fribidi with charsets"
6110 if test "$_fribidi" = auto ; then
6111 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6112 cat > $TMPC << EOF
6113 #include <stdio.h>
6114 /* workaround for fribidi 0.10.4 and below */
6115 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6116 #include <fribidi/fribidi.h>
6117 int main(void) {
6118 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6119 printf("Fribidi headers are not consistents with the library!\n");
6120 exit(1);
6122 return 0;
6125 _fribidi=no
6126 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && tmp_run && _fribidi=yes
6127 else
6128 _fribidi=no
6131 if test "$_fribidi" = yes ; then
6132 def_fribidi='#define CONFIG_FRIBIDI'
6133 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6134 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6135 else
6136 def_fribidi='#undef CONFIG_FRIBIDI'
6138 echores "$_fribidi"
6141 echocheck "ENCA"
6142 if test "$_enca" = auto ; then
6143 cat > $TMPC << EOF
6144 #include <sys/types.h>
6145 #include <enca.h>
6146 int main(void) {
6147 const char **langs;
6148 size_t langcnt;
6149 langs = enca_get_languages(&langcnt);
6150 return 0;
6153 _enca=no
6154 cc_check -lenca $_ld_lm && _enca=yes
6156 if test "$_enca" = yes ; then
6157 def_enca='#define CONFIG_ENCA 1'
6158 extra_ldflags="$extra_ldflags -lenca"
6159 else
6160 def_enca='#undef CONFIG_ENCA'
6162 echores "$_enca"
6165 echocheck "zlib"
6166 cat > $TMPC << EOF
6167 #include <zlib.h>
6168 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6170 _zlib=no
6171 cc_check -lz && _zlib=yes
6172 if test "$_zlib" = yes ; then
6173 def_zlib='#define CONFIG_ZLIB 1'
6174 extra_ldflags="$extra_ldflags -lz"
6175 else
6176 def_zlib='#define CONFIG_ZLIB 0'
6177 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6178 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER//)
6180 echores "$_zlib"
6183 echocheck "bzlib"
6184 bzlib=no
6185 def_bzlib='#define CONFIG_BZLIB 0'
6186 cat > $TMPC << EOF
6187 #include <bzlib.h>
6188 int main(void) { BZ2_bzlibVersion(); return 0; }
6190 cc_check -lbz2 && bzlib=yes
6191 if test "$bzlib" = yes ; then
6192 def_bzlib='#define CONFIG_BZLIB 1'
6193 extra_ldflags="$extra_ldflags -lbz2"
6195 echores "$bzlib"
6198 echocheck "RTC"
6199 if test "$_rtc" = auto ; then
6200 cat > $TMPC << EOF
6201 #include <sys/ioctl.h>
6202 #ifdef __linux__
6203 #include <linux/rtc.h>
6204 #else
6205 #include <rtc.h>
6206 #define RTC_PIE_ON RTCIO_PIE_ON
6207 #endif
6208 int main(void) { return RTC_PIE_ON; }
6210 _rtc=no
6211 cc_check && _rtc=yes
6212 ppc && _rtc=no
6214 if test "$_rtc" = yes ; then
6215 def_rtc='#define HAVE_RTC 1'
6216 else
6217 def_rtc='#undef HAVE_RTC'
6219 echores "$_rtc"
6222 echocheck "liblzo2 support"
6223 if test "$_liblzo" = auto ; then
6224 _liblzo=no
6225 cat > $TMPC << EOF
6226 #include <lzo/lzo1x.h>
6227 int main(void) { lzo_init();return 0; }
6229 cc_check -llzo2 && _liblzo=yes
6231 if test "$_liblzo" = yes ; then
6232 def_liblzo='#define CONFIG_LIBLZO 1'
6233 extra_ldflags="$extra_ldflags -llzo2"
6234 _codecmodules="liblzo $_codecmodules"
6235 else
6236 def_liblzo='#undef CONFIG_LIBLZO'
6237 _nocodecmodules="liblzo $_nocodecmodules"
6239 echores "$_liblzo"
6242 echocheck "mad support"
6243 if test "$_mad" = auto ; then
6244 _mad=no
6245 cat > $TMPC << EOF
6246 #include <mad.h>
6247 int main(void) { return 0; }
6249 cc_check -lmad && _mad=yes
6251 if test "$_mad" = yes ; then
6252 def_mad='#define CONFIG_LIBMAD 1'
6253 extra_ldflags="$extra_ldflags -lmad"
6254 _codecmodules="libmad $_codecmodules"
6255 else
6256 def_mad='#undef CONFIG_LIBMAD'
6257 _nocodecmodules="libmad $_nocodecmodules"
6259 echores "$_mad"
6261 echocheck "Twolame"
6262 if test "$_twolame" = auto ; then
6263 cat > $TMPC <<EOF
6264 #include <twolame.h>
6265 int main(void) { twolame_init(); return 0; }
6267 _twolame=no
6268 cc_check -ltwolame $_ld_lm && _twolame=yes
6270 if test "$_twolame" = yes ; then
6271 def_twolame='#define CONFIG_TWOLAME 1'
6272 libs_mencoder="$libs_mencoder -ltwolame"
6273 _codecmodules="twolame $_codecmodules"
6274 else
6275 def_twolame='#undef CONFIG_TWOLAME'
6276 _nocodecmodules="twolame $_nocodecmodules"
6278 echores "$_twolame"
6280 echocheck "Toolame"
6281 if test "$_toolame" = auto ; then
6282 _toolame=no
6283 if test "$_twolame" = yes ; then
6284 _res_comment="disabled by twolame"
6285 else
6286 cat > $TMPC <<EOF
6287 #include <toolame.h>
6288 int main(void) { toolame_init(); return 0; }
6290 cc_check -ltoolame $_ld_lm && _toolame=yes
6293 if test "$_toolame" = yes ; then
6294 def_toolame='#define CONFIG_TOOLAME 1'
6295 libs_mencoder="$libs_mencoder -ltoolame"
6296 _codecmodules="toolame $_codecmodules"
6297 else
6298 def_toolame='#undef CONFIG_TOOLAME'
6299 _nocodecmodules="toolame $_nocodecmodules"
6301 if test "$_toolamedir" ; then
6302 _res_comment="using $_toolamedir"
6304 echores "$_toolame"
6306 echocheck "OggVorbis support"
6307 if test "$_tremor_internal" = yes; then
6308 _libvorbis=no
6309 elif test "$_tremor" = auto; then
6310 _tremor=no
6311 cat > $TMPC << EOF
6312 #include <tremor/ivorbiscodec.h>
6313 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6315 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6317 if test "$_libvorbis" = auto; then
6318 _libvorbis=no
6319 cat > $TMPC << EOF
6320 #include <vorbis/codec.h>
6321 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6323 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6325 if test "$_tremor_internal" = yes ; then
6326 _vorbis=yes
6327 def_vorbis='#define CONFIG_OGGVORBIS 1'
6328 def_tremor='#define CONFIG_TREMOR 1'
6329 _codecmodules="tremor(internal) $_codecmodules"
6330 _res_comment="internal Tremor"
6331 if test "$_tremor_low" = yes ; then
6332 cflags_tremor_low="-D_LOW_ACCURACY_"
6333 _res_comment="internal low accuracy Tremor"
6335 elif test "$_tremor" = yes ; then
6336 _vorbis=yes
6337 def_vorbis='#define CONFIG_OGGVORBIS 1'
6338 def_tremor='#define CONFIG_TREMOR 1'
6339 _codecmodules="tremor(external) $_codecmodules"
6340 _res_comment="external Tremor"
6341 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6342 elif test "$_libvorbis" = yes ; then
6343 _vorbis=yes
6344 def_vorbis='#define CONFIG_OGGVORBIS 1'
6345 _codecmodules="libvorbis $_codecmodules"
6346 _res_comment="libvorbis"
6347 extra_ldflags="$extra_ldflags -lvorbis -logg"
6348 else
6349 _vorbis=no
6350 _nocodecmodules="libvorbis $_nocodecmodules"
6352 echores "$_vorbis"
6354 echocheck "libspeex (version >= 1.1 required)"
6355 if test "$_speex" = auto ; then
6356 _speex=no
6357 cat > $TMPC << EOF
6358 #include <speex/speex.h>
6359 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6361 cc_check -lspeex $_ld_lm && _speex=yes
6363 if test "$_speex" = yes ; then
6364 def_speex='#define CONFIG_SPEEX 1'
6365 extra_ldflags="$extra_ldflags -lspeex"
6366 _codecmodules="speex $_codecmodules"
6367 else
6368 def_speex='#undef CONFIG_SPEEX'
6369 _nocodecmodules="speex $_nocodecmodules"
6371 echores "$_speex"
6373 echocheck "OggTheora support"
6374 if test "$_theora" = auto ; then
6375 _theora=no
6376 cat > $TMPC << EOF
6377 #include <theora/theora.h>
6378 #include <string.h>
6379 int main(void) {
6380 /* Theora is in flux, make sure that all interface routines and datatypes
6381 * exist and work the way we expect it, so we don't break MPlayer. */
6382 ogg_packet op;
6383 theora_comment tc;
6384 theora_info inf;
6385 theora_state st;
6386 yuv_buffer yuv;
6387 int r;
6388 double t;
6390 theora_info_init(&inf);
6391 theora_comment_init(&tc);
6393 return 0;
6395 /* we don't want to execute this kind of nonsense; just for making sure
6396 * that compilation works... */
6397 memset(&op, 0, sizeof(op));
6398 r = theora_decode_header(&inf, &tc, &op);
6399 r = theora_decode_init(&st, &inf);
6400 t = theora_granule_time(&st, op.granulepos);
6401 r = theora_decode_packetin(&st, &op);
6402 r = theora_decode_YUVout(&st, &yuv);
6403 theora_clear(&st);
6405 return 0;
6408 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6409 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6410 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6411 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6412 if test _theora = no; then
6413 _ld_theora="-ltheora -logg"
6414 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6416 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6417 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6418 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6419 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6420 extra_ldflags="$extra_ldflags $_ld_theora" &&
6421 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6422 if test _theora = no; then
6423 _ld_theora="-ltheora -logg"
6424 cc_check tremor/bitwise.c $_ld_theora &&
6425 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6429 if test "$_theora" = yes ; then
6430 def_theora='#define CONFIG_OGGTHEORA 1'
6431 _codecmodules="libtheora $_codecmodules"
6432 # when --enable-theora is forced, we'd better provide a probably sane
6433 # $_ld_theora than nothing
6434 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6435 else
6436 def_theora='#undef CONFIG_OGGTHEORA'
6437 _nocodecmodules="libtheora $_nocodecmodules"
6439 echores "$_theora"
6441 echocheck "internal mp3lib support"
6442 if test "$_mp3lib" = auto ; then
6443 test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes
6445 if test "$_mp3lib" = yes ; then
6446 def_mp3lib='#define CONFIG_MP3LIB 1'
6447 _codecmodules="mp3lib(internal) $_codecmodules"
6448 else
6449 def_mp3lib='#undef CONFIG_MP3LIB'
6450 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6452 echores "$_mp3lib"
6454 echocheck "liba52 support"
6455 if test "$_liba52_internal" = auto ; then
6456 test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes
6458 def_liba52='#undef CONFIG_LIBA52'
6459 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6460 if test "$_liba52_internal" = yes ; then
6461 _liba52=yes
6462 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6463 _res_comment="internal"
6464 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6465 _liba52=no
6466 cat > $TMPC << EOF
6467 #include <inttypes.h>
6468 #include <a52dec/a52.h>
6469 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6471 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6473 if test "$_liba52" = yes ; then
6474 def_liba52='#define CONFIG_LIBA52 1'
6475 _codecmodules="liba52($_res_comment) $_codecmodules"
6476 else
6477 _nocodecmodules="liba52 $_nocodecmodules"
6479 echores "$_liba52"
6481 echocheck "internal libmpeg2 support"
6482 if test "$_libmpeg2" = auto ; then
6483 _libmpeg2=yes
6484 if alpha && test cc_vendor=gnu; then
6485 case $cc_version in
6486 2*|3.0*|3.1*) # cannot compile MVI instructions
6487 _libmpeg2=no
6488 _res_comment="broken gcc"
6490 esac
6493 if test "$_libmpeg2" = yes ; then
6494 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6495 _codecmodules="libmpeg2(internal) $_codecmodules"
6496 else
6497 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6498 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6500 echores "$_libmpeg2"
6502 echocheck "libdca support"
6503 if test "$_libdca" = auto ; then
6504 _libdca=no
6505 cat > $TMPC << EOF
6506 #include <inttypes.h>
6507 #include <dts.h>
6508 int main(void) { dts_init(0); return 0; }
6510 for _ld_dca in -ldts -ldca ; do
6511 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6512 && _libdca=yes && break
6513 done
6515 if test "$_libdca" = yes ; then
6516 def_libdca='#define CONFIG_LIBDCA 1'
6517 _codecmodules="libdca $_codecmodules"
6518 else
6519 def_libdca='#undef CONFIG_LIBDCA'
6520 _nocodecmodules="libdca $_nocodecmodules"
6522 echores "$_libdca"
6524 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6525 if test "$_musepack" = auto ; then
6526 _musepack=no
6527 cat > $TMPC << EOF
6528 #include <stddef.h>
6529 #include <mpcdec/mpcdec.h>
6530 int main(void) {
6531 mpc_streaminfo info;
6532 mpc_decoder decoder;
6533 mpc_decoder_set_streaminfo(&decoder, &info);
6534 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6535 return 0;
6538 cc_check -lmpcdec $_ld_lm && _musepack=yes
6540 if test "$_musepack" = yes ; then
6541 def_musepack='#define CONFIG_MUSEPACK 1'
6542 extra_ldflags="$extra_ldflags -lmpcdec"
6543 _codecmodules="musepack $_codecmodules"
6544 else
6545 def_musepack='#undef CONFIG_MUSEPACK'
6546 _nocodecmodules="musepack $_nocodecmodules"
6548 echores "$_musepack"
6551 echocheck "FAAC support"
6552 if test "$_faac" = auto ; then
6553 cat > $TMPC <<EOF
6554 #include <inttypes.h>
6555 #include <faac.h>
6556 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6558 _faac=no
6559 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6560 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6561 done
6563 if test "$_faac" = yes ; then
6564 def_faac="#define CONFIG_FAAC 1"
6565 test "$_faac_lavc" = auto && _faac_lavc=yes
6566 if test "$_faac_lavc" = yes ; then
6567 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6568 libs_mplayer="$libs_mplayer $_ld_faac"
6569 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6571 _codecmodules="faac $_codecmodules"
6572 else
6573 _faac_lavc=no
6574 def_faac="#undef CONFIG_FAAC"
6575 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6576 _nocodecmodules="faac $_nocodecmodules"
6578 _res_comment="in libavcodec: $_faac_lavc"
6579 echores "$_faac"
6582 echocheck "FAAD2 support"
6583 if test "$_faad_internal" = auto ; then
6584 if x86_32 && test cc_vendor=gnu; then
6585 case $cc_version in
6586 3.1*|3.2) # ICE/insn with these versions
6587 _faad_internal=no
6588 _res_comment="broken gcc"
6591 _faad=yes
6592 _faad_internal=yes
6594 esac
6595 else
6596 _faad=yes
6597 _faad_internal=yes
6600 if test "$_faad" = auto ; then
6601 cat > $TMPC << EOF
6602 #include <faad.h>
6603 #ifndef FAAD_MIN_STREAMSIZE
6604 #error Too old version
6605 #endif
6606 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6607 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6609 cc_check -lfaad $_ld_lm && _faad=yes
6612 def_faad='#undef CONFIG_FAAD'
6613 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6614 if test "$_faad_internal" = yes ; then
6615 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6616 _res_comment="internal floating-point"
6617 if test "$_faad_fixed" = yes ; then
6618 # The FIXED_POINT implementation of FAAD2 improves performance
6619 # on some platforms, especially for SBR files.
6620 cflags_faad_fixed="-DFIXED_POINT"
6621 _res_comment="internal fixed-point"
6623 elif test "$_faad" = yes ; then
6624 extra_ldflags="$extra_ldflags -lfaad"
6627 if test "$_faad" = yes ; then
6628 def_faad='#define CONFIG_FAAD 1'
6629 if test "$_faad_internal" = yes ; then
6630 _codecmodules="faad2(internal) $_codecmodules"
6631 else
6632 _codecmodules="faad2 $_codecmodules"
6634 else
6635 _faad=no
6636 _nocodecmodules="faad2 $_nocodecmodules"
6638 echores "$_faad"
6641 echocheck "LADSPA plugin support"
6642 if test "$_ladspa" = auto ; then
6643 cat > $TMPC <<EOF
6644 #include <stdio.h>
6645 #include <ladspa.h>
6646 int main(void) {
6647 const LADSPA_Descriptor *ld = NULL;
6648 return 0;
6651 _ladspa=no
6652 cc_check && _ladspa=yes
6654 if test "$_ladspa" = yes; then
6655 def_ladspa="#define CONFIG_LADSPA"
6656 else
6657 def_ladspa="#undef CONFIG_LADSPA"
6659 echores "$_ladspa"
6662 echocheck "libbs2b audio filter support"
6663 if test "$_libbs2b" = auto ; then
6664 cat > $TMPC <<EOF
6665 #include <bs2b.h>
6666 #if BS2B_VERSION_MAJOR < 3
6667 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6668 #endif
6669 int main(void) {
6670 t_bs2bdp filter;
6671 filter=bs2b_open();
6672 bs2b_close(filter);
6673 return 0;
6676 _libbs2b=no
6677 if $_pkg_config --exists libbs2b ; then
6678 _inc_tmp=$($_pkg_config --cflags libbs2b)
6679 _ld_tmp=$($_pkg_config --libs libbs2b)
6680 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6681 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6682 else
6683 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6684 -I/usr/local/include/bs2b ; do
6685 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6686 extra_ldflags="$extra_ldflags -lbs2b"
6687 extra_cflags="$extra_cflags $_inc_tmp"
6688 _libbs2b=yes
6689 break
6691 done
6694 def_libbs2b="#undef CONFIG_LIBBS2B"
6695 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B"
6696 echores "$_libbs2b"
6699 if test -z "$_codecsdir" ; then
6700 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6701 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6702 if test -d "$dir" ; then
6703 _codecsdir="$dir"
6704 break;
6706 done
6708 # Fall back on default directory.
6709 if test -z "$_codecsdir" ; then
6710 _codecsdir="$_libdir/codecs"
6711 mingw32 && _codecsdir="codecs"
6712 os2 && _codecsdir="codecs"
6716 echocheck "Win32 codecs"
6717 if test "$_win32dll" = auto ; then
6718 _win32dll=no
6719 if x86_32 && ! qnx; then
6720 _win32dll=yes
6723 if test "$_win32dll" = yes ; then
6724 def_win32dll='#define CONFIG_WIN32DLL 1'
6725 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6726 _res_comment="using $_win32codecsdir"
6727 if ! win32 ; then
6728 def_win32_loader='#define WIN32_LOADER 1'
6729 _win32_emulation=yes
6730 else
6731 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6732 _res_comment="using native windows"
6734 _codecmodules="win32 $_codecmodules"
6735 else
6736 def_win32dll='#undef CONFIG_WIN32DLL'
6737 def_win32_loader='#undef WIN32_LOADER'
6738 _nocodecmodules="win32 $_nocodecmodules"
6740 echores "$_win32dll"
6743 echocheck "XAnim codecs"
6744 if test "$_xanim" = auto ; then
6745 _xanim=no
6746 _res_comment="dynamic loader support needed"
6747 if test "$_dl" = yes ; then
6748 _xanim=yes
6751 if test "$_xanim" = yes ; then
6752 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6753 def_xanim='#define CONFIG_XANIM 1'
6754 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6755 _codecmodules="xanim $_codecmodules"
6756 _res_comment="using $_xanimcodecsdir"
6757 else
6758 def_xanim='#undef CONFIG_XANIM'
6759 def_xanim_path='#undef XACODEC_PATH'
6760 _nocodecmodules="xanim $_nocodecmodules"
6762 echores "$_xanim"
6765 echocheck "RealPlayer codecs"
6766 if test "$_real" = auto ; then
6767 _real=no
6768 _res_comment="dynamic loader support needed"
6769 if test "$_dl" = yes || test "$_win32dll" = yes &&
6770 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6771 _real=yes
6774 if test "$_real" = yes ; then
6775 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6776 def_real='#define CONFIG_REALCODECS 1'
6777 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6778 _codecmodules="real $_codecmodules"
6779 _res_comment="using $_realcodecsdir"
6780 else
6781 def_real='#undef CONFIG_REALCODECS'
6782 def_real_path="#undef REALCODEC_PATH"
6783 _nocodecmodules="real $_nocodecmodules"
6785 echores "$_real"
6788 echocheck "QuickTime codecs"
6789 _qtx_emulation=no
6790 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6791 def_quicktime='#undef CONFIG_QUICKTIME'
6792 if test "$_qtx" = auto ; then
6793 test "$_win32dll" = yes || darwin && _qtx=yes
6795 if test "$_qtx" = yes ; then
6796 darwin && extra_ldflags="$extra_ldflags -framework QuickTime" && def_quicktime='#define CONFIG_QUICKTIME 1'
6797 def_qtx='#define CONFIG_QTX_CODECS 1'
6798 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6799 _codecmodules="qtx $_codecmodules"
6800 darwin || win32 || _qtx_emulation=yes
6801 else
6802 def_qtx='#undef CONFIG_QTX_CODECS'
6803 _nocodecmodules="qtx $_nocodecmodules"
6805 echores "$_qtx"
6807 echocheck "Nemesi Streaming Media libraries"
6808 if test "$_nemesi" = auto && test "$_network" = yes ; then
6809 _nemesi=no
6810 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6811 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6812 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6813 _nemesi=yes
6816 if test "$_nemesi" = yes; then
6817 _native_rtsp=no
6818 def_nemesi='#define CONFIG_LIBNEMESI 1'
6819 _inputmodules="nemesi $_inputmodules"
6820 else
6821 _native_rtsp="$_network"
6822 _nemesi=no
6823 def_nemesi='#undef CONFIG_LIBNEMESI'
6824 _noinputmodules="nemesi $_noinputmodules"
6826 echores "$_nemesi"
6828 echocheck "LIVE555 Streaming Media libraries"
6829 if test "$_live" = auto && test "$_network" = yes ; then
6830 cat > $TMPCPP << EOF
6831 #include <liveMedia.hh>
6832 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6833 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6834 #endif
6835 int main(void) { return 0; }
6838 _live=no
6839 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
6840 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6841 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6842 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6843 $_livelibdir/groupsock/libgroupsock.a \
6844 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6845 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6846 $extra_ldflags -lstdc++" \
6847 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6848 -I$_livelibdir/UsageEnvironment/include \
6849 -I$_livelibdir/BasicUsageEnvironment/include \
6850 -I$_livelibdir/groupsock/include" && \
6851 _live=yes && break
6852 done
6853 if test "$_live" != yes ; then
6854 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6855 _live_dist=yes
6859 if test "$_live" = yes && test "$_network" = yes; then
6860 test $_livelibdir && _res_comment="using $_livelibdir"
6861 def_live='#define CONFIG_LIVE555 1'
6862 _inputmodules="live555 $_inputmodules"
6863 elif test "$_live_dist" = yes && test "$_network" = yes; then
6864 _res_comment="using distribution version"
6865 _live="yes"
6866 def_live='#define CONFIG_LIVE555 1'
6867 extra_ldflags="$extra_ldflags -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6868 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6869 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6870 _inputmodules="live555 $_inputmodules"
6871 else
6872 _live=no
6873 def_live='#undef CONFIG_LIVE555'
6874 _noinputmodules="live555 $_noinputmodules"
6876 echores "$_live"
6879 echocheck "FFmpeg libavutil"
6880 if test "$_libavutil_a" = auto ; then
6881 if test -d libavutil ; then
6882 _libavutil_a=yes
6883 _res_comment="static"
6884 else
6885 die "MPlayer will not compile without libavutil in the source tree."
6887 elif test "$_libavutil_so" = auto ; then
6888 _libavutil_so=no
6889 cat > $TMPC << EOF
6890 #include <libavutil/common.h>
6891 int main(void) { av_gcd(1,1); return 0; }
6893 if $_pkg_config --exists libavutil ; then
6894 _inc_libavutil=$($_pkg_config --cflags libavutil)
6895 _ld_tmp=$($_pkg_config --libs libavutil)
6896 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6897 && _libavutil_so=yes
6898 elif cc_check -lavutil $_ld_lm ; then
6899 extra_ldflags="$extra_ldflags -lavutil"
6900 _libavutil_so=yes
6901 _res_comment="using libavutil.so, but static libavutil is recommended"
6904 _libavutil=no
6905 def_libavutil='#undef CONFIG_LIBAVUTIL'
6906 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6907 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6908 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6909 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6910 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6911 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6912 # neither static nor shared libavutil is available, but it is mandatory ...
6913 if test "$_libavutil" = no ; then
6914 die "You need static or shared libavutil, MPlayer will not compile without!"
6916 echores "$_libavutil"
6918 echocheck "FFmpeg libavcodec"
6919 if test "$_libavcodec_a" = auto ; then
6920 _libavcodec_a=no
6921 if test -d libavcodec && test -f libavcodec/utils.c ; then
6922 _libavcodec_a="yes"
6923 _res_comment="static"
6925 elif test "$_libavcodec_so" = auto ; then
6926 _libavcodec_so=no
6927 _res_comment="libavcodec.so is discouraged over static libavcodec"
6928 cat > $TMPC << EOF
6929 #include <libavcodec/avcodec.h>
6930 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6932 if $_pkg_config --exists libavcodec ; then
6933 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6934 _ld_tmp=$($_pkg_config --libs libavcodec)
6935 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6936 && _libavcodec_so=yes
6937 elif cc_check -lavcodec $_ld_lm ; then
6938 extra_ldflags="$extra_ldflags -lavcodec"
6939 _libavcodec_so=yes
6940 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6943 _libavcodec=no
6944 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6945 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
6946 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
6947 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6948 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6949 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
6950 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
6951 test "$_libavcodec_mpegaudio_hp" = yes \
6952 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6953 if test "$_libavcodec_a" = yes ; then
6954 _codecmodules="libavcodec(internal) $_codecmodules"
6955 elif test "$_libavcodec_so" = yes ; then
6956 _codecmodules="libavcodec.so $_codecmodules"
6957 else
6958 _nocodecmodules="libavcodec $_nocodecmodules"
6960 echores "$_libavcodec"
6962 echocheck "FFmpeg libavformat"
6963 if test "$_libavformat_a" = auto ; then
6964 _libavformat_a=no
6965 if test -d libavformat && test -f libavformat/utils.c ; then
6966 _libavformat_a=yes
6967 _res_comment="static"
6969 elif test "$_libavformat_so" = auto ; then
6970 _libavformat_so=no
6971 cat > $TMPC <<EOF
6972 #include <libavformat/avformat.h>
6973 #include <libavcodec/opt.h>
6974 int main(void) { av_alloc_format_context(); return 0; }
6976 if $_pkg_config --exists libavformat ; then
6977 _inc_libavformat=$($_pkg_config --cflags libavformat)
6978 _ld_tmp=$($_pkg_config --libs libavformat)
6979 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6980 && _libavformat_so=yes
6981 elif cc_check $_ld_lm -lavformat ; then
6982 extra_ldflags="$extra_ldflags -lavformat"
6983 _libavformat_so=yes
6984 _res_comment="using libavformat.so, but static libavformat is recommended"
6987 _libavformat=no
6988 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6989 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
6990 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
6991 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
6992 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6993 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
6994 test "$_libavformat_so" = yes \
6995 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
6996 echores "$_libavformat"
6998 echocheck "FFmpeg libpostproc"
6999 if test "$_libpostproc_a" = auto ; then
7000 _libpostproc_a=no
7001 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7002 _libpostproc_a='yes'
7003 _res_comment="static"
7005 elif test "$_libpostproc_so" = auto ; then
7006 _libpostproc_so=no
7007 cat > $TMPC << EOF
7008 #include <inttypes.h>
7009 #include <libpostproc/postprocess.h>
7010 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7012 if cc_check -lpostproc $_ld_lm ; then
7013 extra_ldflags="$extra_ldflags -lpostproc"
7014 _libpostproc_so=yes
7015 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7018 _libpostproc=no
7019 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7020 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7021 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7022 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7023 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7024 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7025 test "$_libpostproc_so" = yes \
7026 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7027 echores "$_libpostproc"
7029 echocheck "FFmpeg libswscale"
7030 if test "$_libswscale_a" = auto ; then
7031 _libswscale_a=no
7032 if test -d libswscale && test -f libswscale/swscale.h ; then
7033 _libswscale_a='yes'
7034 _res_comment="static"
7036 elif test "$_libswscale_so" = auto ; then
7037 _libswscale_so=no
7038 _res_comment="using libswscale.so, but static libswscale is recommended"
7039 cat > $TMPC << EOF
7040 #include <libswscale/swscale.h>
7041 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7043 if $_pkg_config --exists libswscale ; then
7044 _inc_libswscale=$($_pkg_config --cflags libswscale)
7045 _ld_tmp=$($_pkg_config --libs libswscale)
7046 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7047 && _libswscale_so=yes
7048 elif cc_check -lswscale ; then
7049 extra_ldflags="$extra_ldflags -lswscale"
7050 _libswscale_so=yes
7053 _libswscale=no
7054 def_libswscale='#undef CONFIG_LIBSWSCALE'
7055 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7056 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7057 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7058 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7059 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7060 test "$_libswscale_so" = yes \
7061 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7062 echores "$_libswscale"
7064 echocheck "libamr narrowband"
7065 if test "$_libamr_nb" = auto ; then
7066 _libamr_nb=no
7067 cat > $TMPC << EOF
7068 #include <amrnb/sp_dec.h>
7069 int main(void) { Speech_Decode_Frame_init(); return 0; }
7071 cc_check -lamrnb && _libamr_nb=yes
7072 if test "$_libavcodec_a" != yes ; then
7073 _libamr_nb=no
7074 _res_comment="libavcodec (static) is required by libamr_nb, sorry"
7077 if test "$_libamr_nb" = yes ; then
7078 _libamr=yes
7079 extra_ldflags="$extra_ldflags -lamrnb"
7080 def_libamr='#define CONFIG_LIBAMR 1'
7081 def_libamr_nb='#define CONFIG_LIBAMR_NB 1'
7082 _libavdecoders="$_libavdecoders LIBAMR_NB_DECODER"
7083 _libavencoders="$_libavencoders LIBAMR_NB_ENCODER"
7084 _codecmodules="libamr_nb $_codecmodules"
7085 else
7086 def_libamr_nb='#define CONFIG_LIBAMR_NB 0'
7087 _nocodecmodules="libamr_nb $_nocodecmodules"
7089 echores "$_libamr_nb"
7092 echocheck "libamr wideband"
7093 if test "$_libamr_wb" = auto ; then
7094 _libamr_wb=no
7095 cat > $TMPC << EOF
7096 #include <amrwb/dec_if.h>
7097 int main(void) { D_IF_init(); return 0; }
7099 cc_check -lamrwb && _libamr_wb=yes
7100 if test "$_libavcodec_a" != yes ; then
7101 _libamr_wb=no
7102 _res_comment="libavcodec (static) is required by libamr_wb, sorry"
7105 if test "$_libamr_wb" = yes ; then
7106 _libamr=yes
7107 extra_ldflags="$extra_ldflags -lamrwb"
7108 def_libamr='#define CONFIG_LIBAMR 1'
7109 def_libamr_wb='#define CONFIG_LIBAMR_WB 1'
7110 _libavdecoders="$_libavdecoders LIBAMR_WB_DECODER"
7111 _libavencoders="$_libavencoders LIBAMR_WB_ENCODER"
7112 _codecmodules="libamr_wb $_codecmodules"
7113 else
7114 def_libamr_wb='#define CONFIG_LIBAMR_WB 0'
7115 _nocodecmodules="libamr_wb $_nocodecmodules"
7117 echores "$_libamr_wb"
7119 echocheck "libdv-0.9.5+"
7120 if test "$_libdv" = auto ; then
7121 _libdv=no
7122 cat > $TMPC <<EOF
7123 #include <libdv/dv.h>
7124 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7126 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7128 if test "$_libdv" = yes ; then
7129 def_libdv='#define CONFIG_LIBDV095 1'
7130 extra_ldflags="$extra_ldflags -ldv"
7131 _codecmodules="libdv $_codecmodules"
7132 else
7133 def_libdv='#undef CONFIG_LIBDV095'
7134 _nocodecmodules="libdv $_nocodecmodules"
7136 echores "$_libdv"
7139 echocheck "Xvid"
7140 if test "$_xvid" = auto ; then
7141 _xvid=no
7142 cat > $TMPC << EOF
7143 #include <xvid.h>
7144 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7146 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7147 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7148 done
7151 if test "$_xvid" = yes ; then
7152 def_xvid='#define CONFIG_XVID4 1'
7153 _codecmodules="xvid $_codecmodules"
7154 else
7155 def_xvid='#undef CONFIG_XVID4'
7156 _nocodecmodules="xvid $_nocodecmodules"
7158 echores "$_xvid"
7160 echocheck "Xvid two pass plugin"
7161 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7162 cat > $TMPC << EOF
7163 #include <xvid.h>
7164 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7166 cc_check && _xvid_lavc=yes
7168 if test "$_xvid_lavc" = yes ; then
7169 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7170 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7171 else
7172 _xvid_lavc=no
7173 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7175 echores "$_xvid_lavc"
7178 echocheck "x264"
7179 if test "$_x264" = auto ; then
7180 cat > $TMPC << EOF
7181 #include <inttypes.h>
7182 #include <x264.h>
7183 #if X264_BUILD < 65
7184 #error We do not support old versions of x264. Get the latest from SVN.
7185 #endif
7186 int main(void) { x264_encoder_open((void*)0); return 0; }
7188 _x264=no
7189 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7190 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7191 done
7194 if test "$_x264" = yes ; then
7195 def_x264='#define CONFIG_X264 1'
7196 _codecmodules="x264 $_codecmodules"
7197 test "$_x264_lavc" = auto && _x264_lavc=yes
7198 if test "$_x264_lavc" = yes ; then
7199 def_x264_lavc='#define CONFIG_LIBX264 1'
7200 libs_mplayer="$libs_mplayer $_ld_x264"
7201 _libavencoders="$_libavencoders LIBX264_ENCODER"
7203 else
7204 _x264_lavc=no
7205 def_x264='#undef CONFIG_X264'
7206 def_x264_lavc='#define CONFIG_LIBX264 0'
7207 _nocodecmodules="x264 $_nocodecmodules"
7209 _res_comment="in libavcodec: $_x264_lavc"
7210 echores "$_x264"
7213 echocheck "libdirac"
7214 if test "$_libdirac_lavc" = auto; then
7215 _libdirac_lavc=no
7216 if test "$_libavcodec_a" != yes; then
7217 _res_comment="libavcodec (static) is required by libdirac, sorry"
7218 else
7219 cat > $TMPC << EOF
7220 #include <libdirac_encoder/dirac_encoder.h>
7221 #include <libdirac_decoder/dirac_parser.h>
7222 int main(void)
7224 dirac_encoder_context_t enc_ctx;
7225 dirac_decoder_t *dec_handle;
7226 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7227 dec_handle = dirac_decoder_init(0);
7228 if (dec_handle)
7229 dirac_decoder_close(dec_handle);
7230 return 0;
7233 if $_pkg_config --exists dirac ; then
7234 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7235 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7236 cc_check $_inc_dirac $_ld_dirac &&
7237 _libdirac_lavc=yes &&
7238 extra_cflags="$extra_cflags $_inc_dirac" &&
7239 extra_ldflags="$extra_ldflags $_ld_dirac"
7243 if test "$_libdirac_lavc" = yes ; then
7244 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7245 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7246 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7247 _codecmodules="libdirac $_codecmodules"
7248 else
7249 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7250 _nocodecmodules="libdirac $_nocodecmodules"
7252 echores "$_libdirac_lavc"
7255 echocheck "libschroedinger"
7256 if test "$_libschroedinger_lavc" = auto ; then
7257 _libschroedinger_lavc=no
7258 if test "$_libavcodec_a" != yes; then
7259 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7260 else
7261 cat > $TMPC << EOF
7262 #include <schroedinger/schro.h>
7263 int main(void) { schro_init(); return 0; }
7265 if $_pkg_config --exists schroedinger-1.0 ; then
7266 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7267 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7268 cc_check $_inc_schroedinger $_ld_schroedinger &&
7269 _libschroedinger_lavc=yes &&
7270 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7271 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7275 if test "$_libschroedinger_lavc" = yes ; then
7276 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7277 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7278 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7279 _codecmodules="libschroedinger $_codecmodules"
7280 else
7281 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7282 _nocodecmodules="libschroedinger $_nocodecmodules"
7284 echores "$_libschroedinger_lavc"
7286 echocheck "libnut"
7287 if test "$_libnut" = auto ; then
7288 cat > $TMPC << EOF
7289 #include <stdio.h>
7290 #include <stdlib.h>
7291 #include <inttypes.h>
7292 #include <libnut.h>
7293 nut_context_tt * nut;
7294 int main(void) { (void)nut_error(0); return 0; }
7296 _libnut=no
7297 cc_check -lnut && _libnut=yes
7300 if test "$_libnut" = yes ; then
7301 def_libnut='#define CONFIG_LIBNUT 1'
7302 extra_ldflags="$extra_ldflags -lnut"
7303 else
7304 def_libnut='#undef CONFIG_LIBNUT'
7306 echores "$_libnut"
7308 #check must be done after libavcodec one
7309 echocheck "zr"
7310 if test "$_zr" = auto ; then
7311 #36067's seem to identify themselves as 36057PQC's, so the line
7312 #below should work for 36067's and 36057's.
7313 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7314 _zr=yes
7315 else
7316 _zr=no
7319 if test "$_zr" = yes ; then
7320 if test "$_libavcodec_a" = yes ; then
7321 def_zr='#define CONFIG_ZR 1'
7322 _vomodules="zr zr2 $_vomodules"
7323 else
7324 _res_comment="libavcodec (static) is required by zr, sorry"
7325 _novomodules="zr $_novomodules"
7326 def_zr='#undef CONFIG_ZR'
7328 else
7329 def_zr='#undef CONFIG_ZR'
7330 _novomodules="zr zr2 $_novomodules"
7332 echores "$_zr"
7334 # mencoder requires (optional) those libs: libmp3lame
7335 if test "$_mencoder" != no ; then
7337 echocheck "libmp3lame"
7338 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7339 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7340 if test "$_mp3lame" = auto ; then
7341 _mp3lame=no
7342 cat > $TMPC <<EOF
7343 #include <lame/lame.h>
7344 int main(void) { lame_version_t lv; (void) lame_init();
7345 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7346 return 0; }
7348 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
7350 if test "$_mp3lame" = yes ; then
7351 def_mp3lame="#define CONFIG_MP3LAME"
7352 _ld_mp3lame=-lmp3lame
7353 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7354 cat > $TMPC << EOF
7355 #include <lame/lame.h>
7356 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7358 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET"
7359 cat > $TMPC << EOF
7360 #include <lame/lame.h>
7361 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7363 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM"
7364 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7365 if test "$_mp3lame_lavc" = yes ; then
7366 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7367 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7368 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7370 else
7371 _mp3lame_lavc=no
7372 def_mp3lame='#undef CONFIG_MP3LAME'
7373 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7375 _res_comment="in libavcodec: $_mp3lame_lavc"
7376 echores "$_mp3lame"
7378 fi # test "$_mencoder" != no
7380 echocheck "mencoder"
7381 if test "$_mencoder" = yes ; then
7382 def_muxers='#define CONFIG_MUXERS 1'
7383 else
7384 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7385 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7386 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7387 _libavmuxers=""
7388 def_muxers='#define CONFIG_MUXERS 0'
7390 echores "$_mencoder"
7393 echocheck "UnRAR executable"
7394 if test "$_unrar_exec" = auto ; then
7395 _unrar_exec="yes"
7396 mingw32 && _unrar_exec="no"
7398 if test "$_unrar_exec" = yes ; then
7399 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7400 else
7401 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7403 echores "$_unrar_exec"
7405 echocheck "TV interface"
7406 if test "$_tv" = yes ; then
7407 def_tv='#define CONFIG_TV 1'
7408 _inputmodules="tv $_inputmodules"
7409 else
7410 _noinputmodules="tv $_noinputmodules"
7411 def_tv='#undef CONFIG_TV'
7413 echores "$_tv"
7416 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7417 echocheck "*BSD BT848 bt8xx header"
7418 _ioctl_bt848_h=no
7419 for file in "machine/ioctl_bt848.h" \
7420 "dev/bktr/ioctl_bt848.h" \
7421 "dev/video/bktr/ioctl_bt848.h" \
7422 "dev/ic/bt8xx.h" ; do
7423 cat > $TMPC <<EOF
7424 #include <sys/types.h>
7425 #include <sys/ioctl.h>
7426 #include <$file>
7427 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7429 if cc_check ; then
7430 _ioctl_bt848_h=yes
7431 _ioctl_bt848_h_name="$file"
7432 break;
7434 done
7435 if test "$_ioctl_bt848_h" = yes ; then
7436 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7437 _res_comment="using $_ioctl_bt848_h_name"
7438 else
7439 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7441 echores "$_ioctl_bt848_h"
7443 echocheck "*BSD ioctl_meteor.h"
7444 _ioctl_meteor_h=no
7445 for file in "machine/ioctl_meteor.h" \
7446 "dev/bktr/ioctl_meteor.h" \
7447 "dev/video/bktr/ioctl_meteor.h" ; do
7448 cat > $TMPC <<EOF
7449 #include <sys/types.h>
7450 #include <$file>
7451 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7453 if cc_check ; then
7454 _ioctl_meteor_h=yes
7455 _ioctl_meteor_h_name="$file"
7456 break;
7458 done
7459 if test "$_ioctl_meteor_h" = yes ; then
7460 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7461 _res_comment="using $_ioctl_meteor_h_name"
7462 else
7463 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7465 echores "$_ioctl_meteor_h"
7467 echocheck "*BSD BrookTree 848 TV interface"
7468 if test "$_tv_bsdbt848" = auto ; then
7469 _tv_bsdbt848=no
7470 if test "$_tv" = yes ; then
7471 cat > $TMPC <<EOF
7472 #include <sys/types.h>
7473 $def_ioctl_meteor_h_name
7474 $def_ioctl_bt848_h_name
7475 #ifdef IOCTL_METEOR_H_NAME
7476 #include IOCTL_METEOR_H_NAME
7477 #endif
7478 #ifdef IOCTL_BT848_H_NAME
7479 #include IOCTL_BT848_H_NAME
7480 #endif
7481 int main(void) {
7482 ioctl(0, METEORSINPUT, 0);
7483 ioctl(0, TVTUNER_GETFREQ, 0);
7484 return 0;
7487 cc_check && _tv_bsdbt848=yes
7490 if test "$_tv_bsdbt848" = yes ; then
7491 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7492 _inputmodules="tv-bsdbt848 $_inputmodules"
7493 else
7494 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7495 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7497 echores "$_tv_bsdbt848"
7498 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7501 echocheck "DirectShow TV interface"
7502 if test "$_tv_dshow" = auto ; then
7503 _tv_dshow=no
7504 if test "$_tv" = yes && win32 ; then
7505 cat > $TMPC <<EOF
7506 #include <ole2.h>
7507 int main(void) {
7508 void* p;
7509 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7510 return 0;
7513 cc_check -lole32 -luuid && _tv_dshow=yes
7516 if test "$_tv_dshow" = yes ; then
7517 _inputmodules="tv-dshow $_inputmodules"
7518 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7519 extra_ldflags="$extra_ldflags -lole32 -luuid"
7520 else
7521 _noinputmodules="tv-dshow $_noinputmodules"
7522 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7524 echores "$_tv_dshow"
7527 echocheck "Video 4 Linux TV interface"
7528 if test "$_tv_v4l1" = auto ; then
7529 _tv_v4l1=no
7530 if test "$_tv" = yes && linux ; then
7531 cat > $TMPC <<EOF
7532 #include <stdlib.h>
7533 #include <linux/videodev.h>
7534 int main(void) { return 0; }
7536 cc_check && _tv_v4l1=yes
7539 if test "$_tv_v4l1" = yes ; then
7540 _audio_input=yes
7541 _tv_v4l=yes
7542 def_tv_v4l='#define CONFIG_TV_V4L 1'
7543 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7544 _inputmodules="tv-v4l $_inputmodules"
7545 else
7546 _noinputmodules="tv-v4l1 $_noinputmodules"
7547 def_tv_v4l='#undef CONFIG_TV_V4L'
7549 echores "$_tv_v4l1"
7552 echocheck "Video 4 Linux 2 TV interface"
7553 if test "$_tv_v4l2" = auto ; then
7554 _tv_v4l2=no
7555 if test "$_tv" = yes && linux ; then
7556 cat > $TMPC <<EOF
7557 #include <stdlib.h>
7558 #include <linux/types.h>
7559 #include <linux/videodev2.h>
7560 int main(void) { return 0; }
7562 cc_check && _tv_v4l2=yes
7565 if test "$_tv_v4l2" = yes ; then
7566 _audio_input=yes
7567 _tv_v4l=yes
7568 def_tv_v4l='#define CONFIG_TV_V4L 1'
7569 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7570 _inputmodules="tv-v4l2 $_inputmodules"
7571 else
7572 _noinputmodules="tv-v4l2 $_noinputmodules"
7573 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7575 echores "$_tv_v4l2"
7578 echocheck "TV teletext interface"
7579 if test "$_tv_teletext" = auto ; then
7580 _tv_teletext=no
7581 if test "$_freetype" = yes && test "$_pthreads" = yes; then
7582 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
7583 _tv_teletext=yes
7587 if test "$_tv_teletext" = yes ; then
7588 def_tv_teletext='#define CONFIG_TV_TELETEXT 1'
7589 _inputmodules="tv-teletext $_inputmodules"
7590 else
7591 _noinputmodules="tv-teletext $_noinputmodules"
7592 def_tv_teletext='#undef CONFIG_TV_TELETEXT'
7594 echores "$_tv_teletext"
7597 echocheck "Radio interface"
7598 if test "$_radio" = yes ; then
7599 def_radio='#define CONFIG_RADIO 1'
7600 _inputmodules="radio $_inputmodules"
7601 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7602 _radio_capture=no
7604 if test "$_radio_capture" = yes ; then
7605 _audio_input=yes
7606 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7607 else
7608 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7610 else
7611 _noinputmodules="radio $_noinputmodules"
7612 def_radio='#undef CONFIG_RADIO'
7613 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7614 _radio_capture=no
7616 echores "$_radio"
7617 echocheck "Capture for Radio interface"
7618 echores "$_radio_capture"
7620 echocheck "Video 4 Linux 2 Radio interface"
7621 if test "$_radio_v4l2" = auto ; then
7622 _radio_v4l2=no
7623 if test "$_radio" = yes && linux ; then
7624 cat > $TMPC <<EOF
7625 #include <stdlib.h>
7626 #include <linux/types.h>
7627 #include <linux/videodev2.h>
7628 int main(void) { return 0; }
7630 cc_check && _radio_v4l2=yes
7633 if test "$_radio_v4l2" = yes ; then
7634 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7635 else
7636 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7638 echores "$_radio_v4l2"
7640 echocheck "Video 4 Linux Radio interface"
7641 if test "$_radio_v4l" = auto ; then
7642 _radio_v4l=no
7643 if test "$_radio" = yes && linux ; then
7644 cat > $TMPC <<EOF
7645 #include <stdlib.h>
7646 #include <linux/videodev.h>
7647 int main(void) { return 0; }
7649 cc_check && _radio_v4l=yes
7652 if test "$_radio_v4l" = yes ; then
7653 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7654 else
7655 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7657 echores "$_radio_v4l"
7659 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7660 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7661 echocheck "*BSD BrookTree 848 Radio interface"
7662 _radio_bsdbt848=no
7663 cat > $TMPC <<EOF
7664 #include <sys/types.h>
7665 $def_ioctl_bt848_h_name
7666 #ifdef IOCTL_BT848_H_NAME
7667 #include IOCTL_BT848_H_NAME
7668 #endif
7669 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7671 cc_check && _radio_bsdbt848=yes
7672 echores "$_radio_bsdbt848"
7673 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7675 if test "$_radio_bsdbt848" = yes ; then
7676 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7677 else
7678 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7681 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7682 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7683 die "Radio driver requires BSD BT848, V4L or V4L2!"
7686 echocheck "Video 4 Linux 2 MPEG PVR interface"
7687 if test "$_pvr" = auto ; then
7688 _pvr=no
7689 if test "$_tv_v4l2" = yes && linux ; then
7690 cat > $TMPC <<EOF
7691 #include <stdlib.h>
7692 #include <inttypes.h>
7693 #include <linux/types.h>
7694 #include <linux/videodev2.h>
7695 int main(void) { struct v4l2_ext_controls ext; return 0; }
7697 cc_check && _pvr=yes
7700 if test "$_pvr" = yes ; then
7701 def_pvr='#define CONFIG_PVR 1'
7702 _inputmodules="pvr $_inputmodules"
7703 else
7704 _noinputmodules="pvr $_noinputmodules"
7705 def_pvr='#undef CONFIG_PVR'
7707 echores "$_pvr"
7710 echocheck "ftp"
7711 if ! beos && test "$_ftp" = yes ; then
7712 def_ftp='#define CONFIG_FTP 1'
7713 _inputmodules="ftp $_inputmodules"
7714 else
7715 _noinputmodules="ftp $_noinputmodules"
7716 def_ftp='#undef CONFIG_FTP'
7718 echores "$_ftp"
7720 echocheck "vstream client"
7721 if test "$_vstream" = auto ; then
7722 _vstream=no
7723 cat > $TMPC <<EOF
7724 #include <vstream-client.h>
7725 void vstream_error(const char *format, ... ) {}
7726 int main(void) { vstream_start(); return 0; }
7728 cc_check -lvstream-client && _vstream=yes
7730 if test "$_vstream" = yes ; then
7731 def_vstream='#define CONFIG_VSTREAM 1'
7732 _inputmodules="vstream $_inputmodules"
7733 extra_ldflags="$extra_ldflags -lvstream-client"
7734 else
7735 _noinputmodules="vstream $_noinputmodules"
7736 def_vstream='#undef CONFIG_VSTREAM'
7738 echores "$_vstream"
7741 echocheck "OSD menu"
7742 if test "$_menu" = yes ; then
7743 def_menu='#define CONFIG_MENU 1'
7744 test $_dvbin = "yes" && _menu_dvbin=yes
7745 else
7746 def_menu='#undef CONFIG_MENU'
7747 _menu_dvbin=no
7749 echores "$_menu"
7752 echocheck "Subtitles sorting"
7753 if test "$_sortsub" = yes ; then
7754 def_sortsub='#define CONFIG_SORTSUB 1'
7755 else
7756 def_sortsub='#undef CONFIG_SORTSUB'
7758 echores "$_sortsub"
7761 echocheck "XMMS inputplugin support"
7762 if test "$_xmms" = yes ; then
7763 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7764 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7765 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7766 else
7767 _xmmsplugindir=/usr/lib/xmms/Input
7768 _xmmslibdir=/usr/lib
7771 def_xmms='#define CONFIG_XMMS 1'
7772 if darwin ; then
7773 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7774 else
7775 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7777 else
7778 def_xmms='#undef CONFIG_XMMS'
7780 echores "$_xmms"
7783 # --------------- GUI specific tests begin -------------------
7784 echocheck "GUI"
7785 echo "$_gui"
7786 if test "$_gui" = yes ; then
7788 # Required libraries
7789 if test "$_libavcodec" != yes ||
7790 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7791 die "The GUI requires libavcodec with PNG support (needs zlib)."
7793 test "$_freetype" = no && test "$_bitmap_font" = no && \
7794 die "The GUI requires either FreeType or bitmap font support."
7795 if ! win32 ; then
7796 _gui_gtk=yes
7797 test "$_x11" != yes && die "X11 support required for GUI compilation."
7799 echocheck "XShape extension"
7800 if test "$_xshape" = auto ; then
7801 _xshape=no
7802 cat > $TMPC << EOF
7803 #include <X11/Xlib.h>
7804 #include <X11/Xproto.h>
7805 #include <X11/Xutil.h>
7806 #include <X11/extensions/shape.h>
7807 #include <stdlib.h>
7808 int main(void) {
7809 char *name = ":0.0";
7810 Display *wsDisplay;
7811 int exitvar = 0;
7812 int eventbase, errorbase;
7813 if (getenv("DISPLAY"))
7814 name=getenv("DISPLAY");
7815 wsDisplay=XOpenDisplay(name);
7816 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7817 exitvar=1;
7818 XCloseDisplay(wsDisplay);
7819 return exitvar;
7822 cc_check -lXext && _xshape=yes
7824 if test "$_xshape" = yes ; then
7825 def_xshape='#define CONFIG_XSHAPE 1'
7826 else
7827 die "The GUI requires the X11 extension XShape (which was not found)."
7829 echores "$_xshape"
7831 #Check for GTK
7832 if test "$_gtk1" = no ; then
7833 #Check for GTK2 :
7834 echocheck "GTK+ version"
7836 if $_pkg_config gtk+-2.0 --exists ; then
7837 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7838 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7839 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7840 echores "$_gtk"
7842 # Check for GLIB2
7843 if $_pkg_config glib-2.0 --exists ; then
7844 echocheck "glib version"
7845 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7846 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7847 echores "$_glib"
7849 def_gui='#define CONFIG_GUI 1'
7850 def_gtk2='#define CONFIG_GTK2 1'
7851 else
7852 _gtk1=yes
7853 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7855 else
7856 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7857 _gtk1=yes
7861 if test "$_gtk1" = yes ; then
7862 # Check for old GTK (1.2.x)
7863 echocheck "GTK version"
7864 if test -z "$_gtkconfig" ; then
7865 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7866 _gtkconfig="gtk-config"
7867 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7868 _gtkconfig="gtk12-config"
7869 else
7870 die "The GUI requires GTK devel packages (which were not found)."
7873 _gtk=$($_gtkconfig --version 2>&1)
7874 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7875 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7876 echores "$_gtk (using $_gtkconfig)"
7878 # Check for GLIB
7879 echocheck "glib version"
7880 if test -z "$_glibconfig" ; then
7881 if ( glib-config --version ) >/dev/null 2>&1 ; then
7882 _glibconfig="glib-config"
7883 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7884 _glibconfig="glib12-config"
7885 else
7886 die "The GUI requires GLIB devel packages (which were not found)"
7889 _glib=$($_glibconfig --version 2>&1)
7890 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7891 echores "$_glib (using $_glibconfig)"
7893 def_gui='#define CONFIG_GUI 1'
7894 def_gtk2='#undef CONFIG_GTK2'
7897 else #if ! win32
7898 _gui_win32=yes
7899 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7900 def_gui='#define CONFIG_GUI 1'
7901 def_gtk2='#undef CONFIG_GTK2'
7902 fi #if ! win32
7904 else #if test "$_gui"
7905 def_gui='#undef CONFIG_GUI'
7906 def_gtk2='#undef CONFIG_GTK2'
7907 fi #if test "$_gui"
7908 # --------------- GUI specific tests end -------------------
7911 if test "$_charset" != "noconv" ; then
7912 def_charset="#define MSG_CHARSET \"$_charset\""
7913 else
7914 def_charset="#undef MSG_CHARSET"
7915 _charset="UTF-8"
7918 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7919 echocheck "iconv program"
7920 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7921 if test "$?" -ne 0 ; then
7922 echores "no"
7923 echo "No working iconv program found, use "
7924 echo "--charset=UTF-8 to continue anyway."
7925 echo "If you also have problems with iconv library functions use --charset=noconv."
7926 echo "Messages in the GTK-2 interface will be broken then."
7927 exit 1
7928 else
7929 echores "yes"
7933 #############################################################################
7935 echocheck "automatic gdb attach"
7936 if test "$_crash_debug" = yes ; then
7937 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7938 else
7939 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7940 _crash_debug=no
7942 echores "$_crash_debug"
7944 echocheck "compiler support for noexecstack"
7945 cat > $TMPC <<EOF
7946 int main(void) { return 0; }
7948 if cc_check -Wl,-z,noexecstack ; then
7949 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7950 echores "yes"
7951 else
7952 echores "no"
7956 # Dynamic linking flags
7957 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7958 _ld_dl_dynamic=''
7959 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7960 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7961 _ld_dl_dynamic='-rdynamic'
7964 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7965 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7966 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7968 def_debug='#undef MP_DEBUG'
7969 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7972 echocheck "joystick"
7973 def_joystick='#undef CONFIG_JOYSTICK'
7974 if test "$_joystick" = yes ; then
7975 if linux ; then
7976 # TODO add some check
7977 def_joystick='#define CONFIG_JOYSTICK 1'
7978 else
7979 _joystick="no"
7980 _res_comment="unsupported under $system_name"
7983 echores "$_joystick"
7985 echocheck "lirc"
7986 if test "$_lirc" = auto ; then
7987 _lirc=no
7988 cat > $TMPC <<EOF
7989 #include <lirc/lirc_client.h>
7990 int main(void) { return 0; }
7992 cc_check -llirc_client && _lirc=yes
7994 if test "$_lirc" = yes ; then
7995 def_lirc='#define CONFIG_LIRC 1'
7996 libs_mplayer="$libs_mplayer -llirc_client"
7997 else
7998 def_lirc='#undef CONFIG_LIRC'
8000 echores "$_lirc"
8002 echocheck "lircc"
8003 if test "$_lircc" = auto ; then
8004 _lircc=no
8005 cat > $TMPC <<EOF
8006 #include <lirc/lircc.h>
8007 int main(void) { return 0; }
8009 cc_check -llircc && _lircc=yes
8011 if test "$_lircc" = yes ; then
8012 def_lircc='#define CONFIG_LIRCC 1'
8013 libs_mplayer="$libs_mplayer -llircc"
8014 else
8015 def_lircc='#undef CONFIG_LIRCC'
8017 echores "$_lircc"
8019 if arm; then
8020 # Detect maemo development platform libraries availability (http://www.maemo.org),
8021 # they are used when run on Nokia 770|8x0
8022 echocheck "maemo (Nokia 770|8x0)"
8023 if test "$_maemo" = auto ; then
8024 _maemo=no
8025 cat > $TMPC << EOF
8026 #include <libosso.h>
8027 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8029 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8031 if test "$_maemo" = yes ; then
8032 def_maemo='#define CONFIG_MAEMO 1'
8033 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8034 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8035 else
8036 def_maemo='#undef CONFIG_MAEMO'
8038 echores "$_maemo"
8041 #############################################################################
8043 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8044 # the OMF format needs to come after the 'extern symbol prefix' check, which
8045 # uses nm.
8046 if os2 ; then
8047 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8050 # linker paths should be the same for mencoder and mplayer
8051 _ld_tmp=""
8052 for I in $libs_mplayer ; do
8053 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8054 if test -z "$_tmp" ; then
8055 extra_ldflags="$extra_ldflags $I"
8056 else
8057 _ld_tmp="$_ld_tmp $I"
8059 done
8060 libs_mplayer=$_ld_tmp
8063 #############################################################################
8064 # 64 bit file offsets?
8065 if test "$_largefiles" = yes || freebsd ; then
8066 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8067 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8068 # dvdread support requires this (for off64_t)
8069 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8073 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8075 # This must be the last test to be performed. Any other tests following it
8076 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8077 # against libdvdread (to permit MPlayer to use its own copy of the library).
8078 # So any compilation using the flags added here but not linking against
8079 # libdvdread can fail.
8080 echocheck "DVD support (libdvdnav)"
8081 dvdnav_internal=no
8082 if test "$_dvdnav" = auto ; then
8083 if test "$_dvdread_internal" = yes ; then
8084 _dvdnav=yes
8085 dvdnav_internal=yes
8086 _res_comment="internal"
8087 else
8088 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8091 if test "$_dvdnav" = auto ; then
8092 cat > $TMPC <<EOF
8093 #include <inttypes.h>
8094 #include <dvdnav/dvdnav.h>
8095 int main(void) { dvdnav_t *dvd=0; return 0; }
8097 _dvdnav=no
8098 _dvdnavdir=$($_dvdnavconfig --cflags)
8099 _dvdnavlibs=$($_dvdnavconfig --libs)
8100 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8102 if test "$_dvdnav" = yes ; then
8103 _largefiles=yes
8104 def_dvdnav='#define CONFIG_DVDNAV 1'
8105 if test "$dvdnav_internal" = yes ; then
8106 cflags_libdvdnav="-Ilibdvdnav"
8107 _inputmodules="dvdnav(internal) $_inputmodules"
8108 else
8109 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8110 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8111 _inputmodules="dvdnav $_inputmodules"
8113 else
8114 def_dvdnav='#undef CONFIG_DVDNAV'
8115 _noinputmodules="dvdnav $_noinputmodules"
8117 echores "$_dvdnav"
8119 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8120 # Read dvdnav comment above.
8122 #############################################################################
8123 echo "Creating config.mak"
8124 cat > config.mak << EOF
8125 # -------- Generated by configure -----------
8127 # Ensure that locale settings do not interfere with shell commands.
8128 export LC_ALL = C
8130 CONFIGURATION = $_configuration
8132 CHARSET = $_charset
8133 DOC_LANGS = $language_doc
8134 DOC_LANG_ALL = $doc_lang_all
8135 MAN_LANGS = $language_man
8136 MAN_LANG_ALL = $man_lang_all
8138 prefix = \$(DESTDIR)$_prefix
8139 BINDIR = \$(DESTDIR)$_bindir
8140 DATADIR = \$(DESTDIR)$_datadir
8141 LIBDIR = \$(DESTDIR)$_libdir
8142 MANDIR = \$(DESTDIR)$_mandir
8143 CONFDIR = \$(DESTDIR)$_confdir
8145 AR = $_ar
8146 AS = $_cc
8147 CC = $_cc
8148 CXX = $_cc
8149 HOST_CC = $_host_cc
8150 YASM = $_yasm
8151 INSTALL = $_install
8152 INSTALLSTRIP = $_install_strip
8153 RANLIB = $_ranlib
8154 WINDRES = $_windres
8156 CFLAGS = $CFLAGS $extra_cflags
8157 OPTFLAGS = $CFLAGS $extra_cflags
8158 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8159 CFLAGS_DHAHELPER = $cflags_dhahelper
8160 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8161 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8162 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8163 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8164 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8165 CFLAGS_STACKREALIGN = $cflags_stackrealign
8166 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8167 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8168 YASMFLAGS = $YASMFLAGS
8170 EXTRALIBS = $extra_libs
8171 EXTRA_LIB = $extra_ldflags $_ld_static $_ld_lm
8172 EXTRALIBS_MPLAYER = $libs_mplayer
8173 EXTRALIBS_MENCODER = $libs_mencoder
8175 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8177 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8178 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8180 GETCH = $_getch
8181 HELP_FILE = $_mp_help
8182 TIMER = $_timer
8184 EXESUF = $_exesuf
8185 EXESUFS_ALL = .exe
8187 $_target_arch
8188 $_target_subarch
8189 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8191 MENCODER = $_mencoder
8192 MPLAYER = $_mplayer
8194 NEED_GETTIMEOFDAY = $_need_gettimeofday
8195 NEED_GLOB = $_need_glob
8196 NEED_MMAP = $_need_mmap
8197 NEED_SETENV = $_need_setenv
8198 NEED_SHMEM = $_need_shmem
8199 NEED_STRSEP = $_need_strsep
8200 NEED_SWAB = $_need_swab
8201 NEED_VSSCANF = $_need_vsscanf
8203 # features
8204 3DFX = $_3dfx
8205 AA = $_aa
8206 ALSA1X = $_alsa1x
8207 ALSA9 = $_alsa9
8208 ALSA5 = $_alsa5
8209 APPLE_IR = $_apple_ir
8210 APPLE_REMOTE = $_apple_remote
8211 ARTS = $_arts
8212 AUDIO_INPUT = $_audio_input
8213 BITMAP_FONT = $_bitmap_font
8214 BL = $_bl
8215 CACA = $_caca
8216 CDDA = $_cdda
8217 CDDB = $_cddb
8218 COREAUDIO = $_coreaudio
8219 COREVIDEO = $_corevideo
8220 DART = $_dart
8221 DFBMGA = $_dfbmga
8222 DGA = $_dga
8223 DIRECT3D = $_direct3d
8224 DIRECTFB = $_directfb
8225 DIRECTX = $_directx
8226 DVBIN = $_dvbin
8227 DVDNAV = $_dvdnav
8228 DVDNAV_INTERNAL = $dvdnav_internal
8229 DVDREAD = $_dvdread
8230 DVDREAD_INTERNAL = $_dvdread_internal
8231 DXR2 = $_dxr2
8232 DXR3 = $_dxr3
8233 ESD = $_esd
8234 FAAC=$_faac
8235 FAAD = $_faad
8236 FAAD_INTERNAL = $_faad_internal
8237 FASTMEMCPY = $_fastmemcpy
8238 FBDEV = $_fbdev
8239 FREETYPE = $_freetype
8240 FTP = $_ftp
8241 GIF = $_gif
8242 GGI = $_ggi
8243 GL = $_gl
8244 GL_WIN32 = $_gl_win32
8245 GUI = $_gui
8246 GUI_GTK = $_gui_gtk
8247 GUI_WIN32 = $_gui_win32
8248 HAVE_POSIX_SELECT = $_posix_select
8249 HAVE_SYS_MMAN_H = $_mman
8250 IVTV = $_ivtv
8251 JACK = $_jack
8252 JOYSTICK = $_joystick
8253 JPEG = $_jpeg
8254 KVA = $_kva
8255 LADSPA = $_ladspa
8256 LIBA52 = $_liba52
8257 LIBA52_INTERNAL = $_liba52_internal
8258 LIBASS = $_ass
8259 LIBBS2B = $_libbs2b
8260 LIBDCA = $_libdca
8261 LIBDV = $_libdv
8262 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8263 LIBLZO = $_liblzo
8264 LIBMAD = $_mad
8265 LIBMENU = $_menu
8266 LIBMENU_DVBIN = $_menu_dvbin
8267 LIBMPEG2 = $_libmpeg2
8268 LIBNEMESI = $_nemesi
8269 LIBNUT = $_libnut
8270 LIBSMBCLIENT = $_smb
8271 LIBTHEORA = $_theora
8272 LIRC = $_lirc
8273 LIVE555 = $_live
8274 MACOSX_BUNDLE = $_macosx_bundle
8275 MACOSX_FINDER = $_macosx_finder
8276 MD5SUM = $_md5sum
8277 MGA = $_mga
8278 MNG = $_mng
8279 MP3LAME = $_mp3lame
8280 MP3LIB = $_mp3lib
8281 MUSEPACK = $_musepack
8282 NAS = $_nas
8283 NATIVE_RTSP = $_native_rtsp
8284 NETWORK = $_network
8285 OPENAL = $_openal
8286 OSS = $_ossaudio
8287 PE_EXECUTABLE = $_pe_executable
8288 PNG = $_png
8289 PNM = $_pnm
8290 PRIORITY = $_priority
8291 PULSE = $_pulse
8292 PVR = $_pvr
8293 QTX_CODECS = $_qtx
8294 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8295 QTX_EMULATION = $_qtx_emulation
8296 QUARTZ = $_quartz
8297 RADIO=$_radio
8298 RADIO_CAPTURE=$_radio_capture
8299 REAL_CODECS = $_real
8300 S3FB = $_s3fb
8301 SDL = $_sdl
8302 SPEEX = $_speex
8303 STREAM_CACHE = $_stream_cache
8304 SGIAUDIO = $_sgiaudio
8305 SUNAUDIO = $_sunaudio
8306 SVGA = $_svga
8307 TDFXFB = $_tdfxfb
8308 TDFXVID = $_tdfxvid
8309 TGA = $_tga
8310 TOOLAME=$_toolame
8311 TREMOR_INTERNAL = $_tremor_internal
8312 TV = $_tv
8313 TV_BSDBT848 = $_tv_bsdbt848
8314 TV_DSHOW = $_tv_dshow
8315 TV_TELETEXT = $_tv_teletext
8316 TV_V4L = $_tv_v4l
8317 TV_V4L1 = $_tv_v4l1
8318 TV_V4L2 = $_tv_v4l2
8319 TWOLAME=$_twolame
8320 UNRAR_EXEC = $_unrar_exec
8321 V4L2 = $_v4l2
8322 VCD = $_vcd
8323 VDPAU = $_vdpau
8324 VESA = $_vesa
8325 VIDIX = $_vidix
8326 VIDIX_PCIDB = $_vidix_pcidb_val
8327 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8328 VIDIX_IVTV=$_vidix_drv_ivtv
8329 VIDIX_MACH64=$_vidix_drv_mach64
8330 VIDIX_MGA=$_vidix_drv_mga
8331 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8332 VIDIX_NVIDIA=$_vidix_drv_nvidia
8333 VIDIX_PM2=$_vidix_drv_pm2
8334 VIDIX_PM3=$_vidix_drv_pm3
8335 VIDIX_RADEON=$_vidix_drv_radeon
8336 VIDIX_RAGE128=$_vidix_drv_rage128
8337 VIDIX_S3=$_vidix_drv_s3
8338 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8339 VIDIX_SIS=$_vidix_drv_sis
8340 VIDIX_UNICHROME=$_vidix_drv_unichrome
8341 VORBIS = $_vorbis
8342 VSTREAM = $_vstream
8343 WII = $_wii
8344 WIN32DLL = $_win32dll
8345 WIN32WAVEOUT = $_win32waveout
8346 WIN32_EMULATION = $_win32_emulation
8347 WINVIDIX = $winvidix
8348 X11 = $_x11
8349 X264 = $_x264
8350 XANIM_CODECS = $_xanim
8351 XMGA = $_xmga
8352 XMMS_PLUGINS = $_xmms
8353 XV = $_xv
8354 XVID4 = $_xvid
8355 XVIDIX = $xvidix
8356 XVMC = $_xvmc
8357 XVR100 = $_xvr100
8358 YUV4MPEG = $_yuv4mpeg
8359 ZR = $_zr
8361 # FFmpeg
8362 LIBAVUTIL = $_libavutil
8363 LIBAVUTIL_A = $_libavutil_a
8364 LIBAVUTIL_SO = $_libavutil_so
8365 LIBAVCODEC = $_libavcodec
8366 LIBAVCODEC_A = $_libavcodec_a
8367 LIBAVCODEC_SO = $_libavcodec_so
8368 LIBAVFORMAT = $_libavformat
8369 LIBAVFORMAT_A = $_libavformat_a
8370 LIBAVFORMAT_SO = $_libavformat_so
8371 LIBPOSTPROC = $_libpostproc
8372 LIBPOSTPROC_A = $_libpostproc_a
8373 LIBPOSTPROC_SO = $_libpostproc_so
8374 LIBSWSCALE = $_libswscale
8375 LIBSWSCALE_A = $_libswscale_a
8376 LIBSWSCALE_SO = $_libswscale_so
8378 BUILD_STATIC=yes
8379 SRC_PATH=..
8380 BUILD_ROOT=..
8381 LIBPREF=lib
8382 LIBSUF=.a
8383 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8385 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8386 CONFIG_AANDCT=yes
8387 CONFIG_FFT=yes
8388 CONFIG_FFT_MMX=$fft_mmx
8389 CONFIG_GOLOMB=yes
8390 CONFIG_MDCT=yes
8391 CONFIG_RDFT=yes
8393 CONFIG_BZLIB=$bzlib
8394 CONFIG_ENCODERS=yes
8395 CONFIG_GPL=yes
8396 CONFIG_LIBAMR=$_libamr
8397 CONFIG_LIBAMR_NB=$_libamr_nb
8398 CONFIG_LIBAMR_WB=$_libamr_wb
8399 CONFIG_LIBDIRAC=$_libdirac_lavc
8400 CONFIG_LIBFAAC=$_faac_lavc
8401 CONFIG_LIBMP3LAME=$_mp3lame_lavc
8402 CONFIG_LIBSCHROEDINGER=$_libschroedinger_lavc
8403 CONFIG_LIBVORBIS=$_libvorbis
8404 CONFIG_LIBX264=$_x264_lavc
8405 CONFIG_LIBXVID=$_xvid_lavc
8406 CONFIG_MLIB = $_mlib
8407 CONFIG_MUXERS=$_mencoder
8408 CONFIG_POSTPROC = yes
8409 # Prevent building libavcodec/imgresample.c with conflicting symbols
8410 CONFIG_SWSCALE=yes
8411 CONFIG_VDPAU=$_vdpau
8412 CONFIG_XVMC=$_xvmc
8413 CONFIG_ZLIB=$_zlib
8415 HAVE_PTHREADS = $_pthreads
8416 HAVE_W32THREADS = $_w32threads
8417 HAVE_YASM = $_have_yasm
8419 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8420 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8421 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8422 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8423 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8424 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8427 #############################################################################
8429 ff_config_enable () {
8430 _nprefix=$3;
8431 test -z "$_nprefix" && _nprefix='CONFIG'
8432 for part in $1; do
8433 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8434 echo "#define ${_nprefix}_$part 1"
8435 else
8436 echo "#define ${_nprefix}_$part 0"
8438 done
8441 echo "Creating config.h"
8442 cat > $TMPH << EOF
8443 /*----------------------------------------------------------------------------
8444 ** This file has been automatically generated by configure any changes in it
8445 ** will be lost when you run configure again.
8446 ** Instead of modifying definitions here, use the --enable/--disable options
8447 ** of the configure script! See ./configure --help for details.
8448 *---------------------------------------------------------------------------*/
8450 #ifndef MPLAYER_CONFIG_H
8451 #define MPLAYER_CONFIG_H
8453 /* Undefine this if you do not want to select mono audio (left or right)
8454 with a stereo MPEG layer 2/3 audio stream. The command line option
8455 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8456 right-only), with 0 being the default.
8458 #define CONFIG_FAKE_MONO 1
8460 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8461 #define MAX_OUTBURST 65536
8463 /* set up audio OUTBURST. Do not change this! */
8464 #define OUTBURST 512
8466 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8467 #undef FAST_OSD
8468 #undef FAST_OSD_TABLE
8470 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8471 #define MPEG12_POSTPROC 1
8472 #define ATTRIBUTE_ALIGNED_MAX 16
8476 #define CONFIGURATION "$_configuration"
8478 #define MPLAYER_DATADIR "$_datadir"
8479 #define MPLAYER_CONFDIR "$_confdir"
8480 #define MPLAYER_LIBDIR "$_libdir"
8482 /* definitions needed by included libraries */
8483 #define HAVE_INTTYPES_H 1
8484 /* libmpeg2 + FFmpeg */
8485 $def_fast_inttypes
8486 /* libdvdcss */
8487 #define HAVE_ERRNO_H 1
8488 /* libdvdcss + libdvdread */
8489 #define HAVE_LIMITS_H 1
8490 /* libdvdcss + libfaad2 */
8491 #define HAVE_UNISTD_H 1
8492 /* libfaad2 + libdvdread */
8493 #define STDC_HEADERS 1
8494 #define HAVE_MEMCPY 1
8495 /* libfaad2 */
8496 #define HAVE_STRING_H 1
8497 #define HAVE_STRINGS_H 1
8498 #define HAVE_SYS_STAT_H 1
8499 #define HAVE_SYS_TYPES_H 1
8500 /* libdvdnav */
8501 #define READ_CACHE_TRACE 0
8502 /* libdvdread */
8503 #define HAVE_DLFCN_H 1
8504 $def_dvdcss
8507 /* system headers */
8508 $def_alloca_h
8509 $def_alsa_asoundlib_h
8510 $def_altivec_h
8511 $def_malloc_h
8512 $def_mman_h
8513 $def_mman_has_map_failed
8514 $def_soundcard_h
8515 $def_sys_asoundlib_h
8516 $def_sys_soundcard_h
8517 $def_sys_sysinfo_h
8518 $def_termios_h
8519 $def_termios_sys_h
8520 $def_winsock2_h
8523 /* system functions */
8524 $def_gethostbyname2
8525 $def_gettimeofday
8526 $def_glob
8527 $def_langinfo
8528 $def_llrint
8529 $def_lrint
8530 $def_lrintf
8531 $def_map_memalign
8532 $def_memalign
8533 $def_nanosleep
8534 $def_posix_select
8535 $def_round
8536 $def_roundf
8537 $def_select
8538 $def_setenv
8539 $def_shm
8540 $def_strsep
8541 $def_swab
8542 $def_sysi86
8543 $def_sysi86_iv
8544 $def_termcap
8545 $def_termios
8546 $def_truncf
8547 $def_vsscanf
8550 /* system-specific features */
8551 $def_asmalign_pot
8552 $def_builtin_expect
8553 $def_dl
8554 $def_extern_prefix
8555 $def_iconv
8556 $def_kstat
8557 $def_macosx_bundle
8558 $def_macosx_finder
8559 $def_maemo
8560 $def_named_asm_args
8561 $def_priority
8562 $def_quicktime
8563 $def_restrict_keyword
8564 $def_rtc
8565 $def_unrar_exec
8568 /* configurable options */
8569 $def_charset
8570 $def_crash_debug
8571 $def_debug
8572 $def_dynamic_plugins
8573 $def_fastmemcpy
8574 $def_menu
8575 $def_runtime_cpudetection
8576 $def_sighandler
8577 $def_sortsub
8578 $def_stream_cache
8579 $def_pthread_cache
8582 /* CPU stuff */
8583 #define __CPU__ $iproc
8584 $def_words_endian
8585 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8586 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8589 /* DVD/VCD/CD */
8590 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8591 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8592 $def_bsdi_dvd
8593 $def_cddb
8594 $def_cdio
8595 $def_cdparanoia
8596 $def_cdrom
8597 $def_dvd
8598 $def_dvd_bsd
8599 $def_dvd_darwin
8600 $def_dvd_linux
8601 $def_dvd_openbsd
8602 $def_dvdio
8603 $def_dvdnav
8604 $def_dvdread
8605 $def_hpux_scsi_h
8606 $def_libcdio
8607 $def_sol_scsi_h
8608 $def_vcd
8611 /* codec libraries */
8612 $def_faac
8613 $def_faad
8614 $def_faad_internal
8615 $def_liba52
8616 $def_liba52_internal
8617 $def_libdca
8618 $def_libdv
8619 $def_liblzo
8620 $def_libmpeg2
8621 $def_mad
8622 $def_mp3lame
8623 $def_mp3lame_preset
8624 $def_mp3lame_preset_medium
8625 $def_mp3lib
8626 $def_musepack
8627 $def_speex
8628 $def_theora
8629 $def_toolame
8630 $def_tremor
8631 $def_twolame
8632 $def_vorbis
8633 $def_x264
8634 $def_xvid
8635 $def_zlib
8637 $def_libnut
8640 /* binary codecs */
8641 $def_qtx
8642 $def_qtx_win32
8643 $def_real
8644 $def_real_path
8645 $def_win32_loader
8646 $def_win32dll
8647 #define WIN32_PATH "$_win32codecsdir"
8648 $def_xanim
8649 $def_xanim_path
8650 $def_xmms
8651 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8654 /* GUI */
8655 $def_gtk2
8656 $def_gui
8657 $def_xshape
8660 /* Audio output drivers */
8661 $def_alsa
8662 $def_alsa1x
8663 $def_alsa5
8664 $def_alsa9
8665 $def_arts
8666 $def_coreaudio
8667 $def_dart
8668 $def_esd
8669 $def_esd_latency
8670 $def_jack
8671 $def_nas
8672 $def_openal
8673 $def_openal_h
8674 $def_ossaudio
8675 $def_ossaudio_devdsp
8676 $def_ossaudio_devmixer
8677 $def_pulse
8678 $def_sgiaudio
8679 $def_sunaudio
8680 $def_win32waveout
8682 $def_ladspa
8683 $def_libbs2b
8686 /* input */
8687 $def_apple_ir
8688 $def_apple_remote
8689 $def_ioctl_bt848_h_name
8690 $def_ioctl_meteor_h_name
8691 $def_joystick
8692 $def_lirc
8693 $def_lircc
8694 $def_pvr
8695 $def_radio
8696 $def_radio_bsdbt848
8697 $def_radio_capture
8698 $def_radio_v4l
8699 $def_radio_v4l2
8700 $def_tv
8701 $def_tv_bsdbt848
8702 $def_tv_dshow
8703 $def_tv_teletext
8704 $def_tv_v4l
8705 $def_tv_v4l1
8706 $def_tv_v4l2
8709 /* font stuff */
8710 $def_ass
8711 $def_bitmap_font
8712 $def_enca
8713 $def_fontconfig
8714 $def_freetype
8715 $def_fribidi
8718 /* networking */
8719 $def_closesocket
8720 $def_ftp
8721 $def_inet6
8722 $def_inet_aton
8723 $def_inet_pton
8724 $def_live
8725 $def_nemesi
8726 $def_network
8727 $def_smb
8728 $def_socklen_t
8729 $def_vstream
8732 /* libvo options */
8733 $def_3dfx
8734 $def_aa
8735 $def_bl
8736 $def_caca
8737 $def_corevideo
8738 $def_dfbmga
8739 $def_dga
8740 $def_dga1
8741 $def_dga2
8742 $def_direct3d
8743 $def_directfb
8744 $def_directfb_version
8745 $def_directx
8746 $def_dvb
8747 $def_dvb_head
8748 $def_dvbin
8749 $def_dxr2
8750 $def_dxr3
8751 $def_fbdev
8752 $def_ggi
8753 $def_ggiwmh
8754 $def_gif
8755 $def_gif_4
8756 $def_gif_tvt_hack
8757 $def_gl
8758 $def_gl_win32
8759 $def_ivtv
8760 $def_jpeg
8761 $def_kva
8762 $def_md5sum
8763 $def_mga
8764 $def_mng
8765 $def_png
8766 $def_pnm
8767 $def_quartz
8768 $def_s3fb
8769 $def_sdl
8770 $def_sdlbuggy
8771 $def_svga
8772 $def_tdfxfb
8773 $def_tdfxvid
8774 $def_tga
8775 $def_v4l2
8776 $def_vdpau
8777 $def_vesa
8778 $def_vidix
8779 $def_vidix_drv_cyberblade
8780 $def_vidix_drv_ivtv
8781 $def_vidix_drv_mach64
8782 $def_vidix_drv_mga
8783 $def_vidix_drv_mga_crtc2
8784 $def_vidix_drv_nvidia
8785 $def_vidix_drv_pm3
8786 $def_vidix_drv_radeon
8787 $def_vidix_drv_rage128
8788 $def_vidix_drv_s3
8789 $def_vidix_drv_sh_veu
8790 $def_vidix_drv_sis
8791 $def_vidix_drv_unichrome
8792 $def_vidix_pfx
8793 $def_vm
8794 $def_wii
8795 $def_x11
8796 $def_xdpms
8797 $def_xf86keysym
8798 $def_xinerama
8799 $def_xmga
8800 $def_xss
8801 $def_xv
8802 $def_xvmc
8803 $def_xvr100
8804 $def_yuv4mpeg
8805 $def_zr
8808 /* FFmpeg */
8809 $def_libavcodec
8810 $def_libavcodec_a
8811 $def_libavcodec_so
8812 $def_libavformat
8813 $def_libavformat_a
8814 $def_libavformat_so
8815 $def_libavutil
8816 $def_libavutil_a
8817 $def_libavutil_so
8818 $def_libpostproc
8819 $def_libpostproc_a
8820 $def_libpostproc_so
8821 $def_libswscale
8822 $def_libswscale_a
8823 $def_libswscale_so
8825 #define CONFIG_DECODERS 1
8826 #define CONFIG_ENCODERS 1
8827 #define CONFIG_DEMUXERS 1
8828 $def_muxers
8830 $def_arpa_inet_h
8831 $def_bswap
8832 $def_bzlib
8833 $def_dcbzl
8834 $def_dos_paths
8835 $def_fast_64bit
8836 $def_fast_unaligned
8837 $def_libavcodec_mpegaudio_hp
8838 $def_memalign_hack
8839 $def_mlib
8840 $def_mkstemp
8841 $def_posix_memalign
8842 $def_pthreads
8843 $def_ten_operands
8844 $def_threads
8845 $def_xform_asm
8846 $def_yasm
8848 #define CONFIG_FASTDIV 0
8849 #define CONFIG_FFSERVER 0
8850 #define CONFIG_GPL 1
8851 #define CONFIG_GRAY 0
8852 #define CONFIG_HARDCODED_TABLES 0
8853 #define CONFIG_LIBAMR_NB_FIXED 0
8854 #define CONFIG_LIBVORBIS 0
8855 #define CONFIG_POWERPC_PERF 0
8856 #define CONFIG_SMALL 0
8857 #define CONFIG_SWSCALE 1
8858 #define CONFIG_SWSCALE_ALPHA 1
8860 #define HAVE_GETHRTIME 0
8861 #define HAVE_INLINE_ASM 0
8862 #define HAVE_LDBRX 0
8863 #define HAVE_POLL_H 1
8864 #define HAVE_PPC4XX 0
8865 #define HAVE_VIRTUALALLOC 0
8867 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8868 #define CONFIG_AANDCT 1
8869 #define CONFIG_FFT 1
8870 #define CONFIG_GOLOMB 1
8871 #define CONFIG_MDCT 1
8872 #define CONFIG_RDFT 1
8874 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8875 #define HAVE_EBX_AVAILABLE 1
8876 #ifndef MP_DEBUG
8877 #define HAVE_EBP_AVAILABLE 1
8878 #else
8879 #define HAVE_EBP_AVAILABLE 0
8880 #endif
8882 /* External libraries used through libavcodec. */
8883 $def_faac_lavc
8884 $def_libamr
8885 $def_libamr_nb
8886 $def_libamr_wb
8887 $def_libdirac_lavc
8888 $def_libschroedinger_lavc
8889 $def_mp3lame_lavc
8890 $def_x264_lavc
8891 $def_xvid_lavc
8893 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8894 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8895 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8896 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8897 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8898 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8899 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8901 #define CONFIG_H263_VAAPI_HWACCEL 0
8902 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8903 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8904 #define CONFIG_H264_VAAPI_HWACCEL 0
8905 #define CONFIG_VC1_VAAPI_HWACCEL 0
8906 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8908 #endif /* MPLAYER_CONFIG_H */
8911 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8912 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8914 #############################################################################
8916 cat << EOF
8918 Config files successfully generated by ./configure $_configuration !
8920 Install prefix: $_prefix
8921 Data directory: $_datadir
8922 Config direct.: $_confdir
8924 Byte order: $_byte_order
8925 Optimizing for: $_optimizing
8927 Languages:
8928 Messages/GUI: $language_msg
8929 Manual pages: $language_man
8930 Documentation: $language_doc
8932 Enabled optional drivers:
8933 Input: $_inputmodules
8934 Codecs: $_codecmodules
8935 Audio output: $_aomodules
8936 Video output: $_vomodules
8938 Disabled optional drivers:
8939 Input: $_noinputmodules
8940 Codecs: $_nocodecmodules
8941 Audio output: $_noaomodules
8942 Video output: $_novomodules
8944 'config.h' and 'config.mak' contain your configuration options.
8945 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8946 compile *** DO NOT REPORT BUGS if you tweak these files ***
8948 'make' will now compile MPlayer and 'make install' will install it.
8949 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8954 if test "$_mtrr" = yes ; then
8955 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8956 echo
8959 if ! x86_32; then
8960 cat <<EOF
8961 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8962 operating system ($system_name). You may encounter a few files that cannot
8963 be played due to missing open source video/audio codec support.
8969 cat <<EOF
8970 Check $TMPLOG if you wonder why an autodetection failed (make sure
8971 development headers/packages are installed).
8973 NOTE: The --enable-* parameters unconditionally force options on, completely
8974 skipping autodetection. This behavior is unlike what you may be used to from
8975 autoconf-based configure scripts that can decide to override you. This greater
8976 level of control comes at a price. You may have to provide the correct compiler
8977 and linker flags yourself.
8978 If you used one of these options (except --enable-gui and similar ones that
8979 turn on internal features) and experience a compilation or linking failure,
8980 make sure you have passed the necessary compiler/linker flags to configure.
8982 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8986 if test "$_warn_CFLAGS" = yes; then
8987 cat <<EOF
8989 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8990 but:
8992 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8994 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8995 To do so, execute 'CFLAGS= ./configure <options>'
9000 # Last move:
9001 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"