Merge svn changes up to r29412
[mplayer.git] / configure
blobc3381fd8008cb54fd65924a68dc2b88e9ce526f2
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' ffmpeg/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' ffmpeg/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' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
545 _libavparsers=$_libavparsers_all
546 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavbsfs=$_libavbsfs_all
548 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' ffmpeg/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' ffmpeg/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' ffmpeg/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 if test "$_gui" = yes ; then
1338 echo "Error: --enable-gui is no longer supported. Use an external frontend if you want a GUI." >&2
1339 exit 1
1342 # Atmos: moved this here, to be correct, if --prefix is specified
1343 test -z "$_bindir" && _bindir="$_prefix/bin"
1344 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1345 test -z "$_mandir" && _mandir="$_prefix/share/man"
1346 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1347 test -z "$_libdir" && _libdir="$_prefix/lib"
1349 # Determine our OS name and CPU architecture
1350 if test -z "$_target" ; then
1351 # OS name
1352 system_name=$(uname -s 2>&1)
1353 case "$system_name" in
1354 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1356 IRIX*)
1357 system_name=IRIX
1359 GNU/kFreeBSD)
1360 system_name=FreeBSD
1362 HP-UX*)
1363 system_name=HP-UX
1365 [cC][yY][gG][wW][iI][nN]*)
1366 system_name=CYGWIN
1368 MINGW32*)
1369 system_name=MINGW32
1371 OS/2*)
1372 system_name=OS/2
1375 system_name="$system_name-UNKNOWN"
1377 esac
1380 # host's CPU/instruction set
1381 host_arch=$(uname -p 2>&1)
1382 case "$host_arch" in
1383 i386|sparc|ppc|alpha|arm|mips|vax)
1385 powerpc) # Darwin returns 'powerpc'
1386 host_arch=ppc
1388 *) # uname -p on Linux returns 'unknown' for the processor type,
1389 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1391 # Maybe uname -m (machine hardware name) returns something we
1392 # recognize.
1394 # x86/x86pc is used by QNX
1395 case "$(uname -m 2>&1)" in
1396 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 ;;
1397 ia64) host_arch=ia64 ;;
1398 x86_64|amd64)
1399 if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \
1400 -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then
1401 host_arch=x86_64
1402 else
1403 host_arch=i386
1406 macppc|ppc) host_arch=ppc ;;
1407 ppc64) host_arch=ppc64 ;;
1408 alpha) host_arch=alpha ;;
1409 sparc) host_arch=sparc ;;
1410 sparc64) host_arch=sparc64 ;;
1411 parisc*|hppa*|9000*) host_arch=hppa ;;
1412 arm*|zaurus|cats) host_arch=arm ;;
1413 sh3|sh4|sh4a) host_arch=sh ;;
1414 s390) host_arch=s390 ;;
1415 s390x) host_arch=s390x ;;
1416 mips*) host_arch=mips ;;
1417 vax) host_arch=vax ;;
1418 xtensa*) host_arch=xtensa ;;
1419 *) host_arch=UNKNOWN ;;
1420 esac
1422 esac
1423 else # if test -z "$_target"
1424 system_name=$(echo $_target | cut -d '-' -f 2)
1425 case "$(echo $system_name | tr A-Z a-z)" in
1426 linux) system_name=Linux ;;
1427 freebsd) system_name=FreeBSD ;;
1428 gnu/kfreebsd) system_name=FreeBSD ;;
1429 netbsd) system_name=NetBSD ;;
1430 bsd/os) system_name=BSD/OS ;;
1431 openbsd) system_name=OpenBSD ;;
1432 dragonfly) system_name=DragonFly ;;
1433 sunos) system_name=SunOS ;;
1434 qnx) system_name=QNX ;;
1435 morphos) system_name=MorphOS ;;
1436 amigaos) system_name=AmigaOS ;;
1437 mingw32msvc) system_name=MINGW32 ;;
1438 esac
1439 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1440 host_arch=$(echo $_target | cut -d '-' -f 1)
1441 if test $(echo $host_arch) != "x86_64" ; then
1442 host_arch=$(echo $host_arch | tr '_' '-')
1446 echo "Detected operating system: $system_name"
1447 echo "Detected host architecture: $host_arch"
1449 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1450 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1454 extra_cflags="-I. $extra_cflags"
1455 _timer=timer-linux.c
1456 _getch=getch2.c
1457 if freebsd ; then
1458 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1459 extra_cflags="$extra_cflags -I/usr/local/include"
1462 if netbsd || dragonfly ; then
1463 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1464 extra_cflags="$extra_cflags -I/usr/pkg/include"
1467 if darwin; then
1468 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1469 _timer=timer-darwin.c
1472 if aix ; then
1473 extra_ldflags="$extra_ldflags -lC"
1476 if irix ; then
1477 _ranlib='ar -r'
1478 elif linux ; then
1479 _ranlib='true'
1482 if win32 ; then
1483 _exesuf=".exe"
1484 # -lwinmm is always needed for osdep/timer-win2.c
1485 extra_ldflags="$extra_ldflags -lwinmm"
1486 _pe_executable=yes
1487 _timer=timer-win2.c
1488 _priority=yes
1489 def_dos_paths="#define HAVE_DOS_PATHS 1"
1490 def_priority="#define CONFIG_PRIORITY 1"
1493 if mingw32 ; then
1494 _getch=getch2-win.c
1495 _need_shmem=no
1498 if amigaos ; then
1499 _select=no
1500 _sighandler=no
1501 _stream_cache=no
1502 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1503 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1506 if qnx ; then
1507 extra_ldflags="$extra_ldflags -lph"
1510 if os2 ; then
1511 _exesuf=".exe"
1512 _getch=getch2-os2.c
1513 _need_shmem=no
1514 _priority=yes
1515 def_dos_paths="#define HAVE_DOS_PATHS 1"
1516 def_priority="#define CONFIG_PRIORITY 1"
1519 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1520 test "$I" && break
1521 done
1524 TMPLOG="configure.log"
1525 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1526 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1527 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1528 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1529 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1531 rm -f "$TMPLOG"
1532 echo configuration: $_configuration > "$TMPLOG"
1533 echo >> "$TMPLOG"
1536 # Checking CC version...
1537 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1538 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1539 echocheck "$_cc version"
1540 cc_vendor=intel
1541 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1542 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1543 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1544 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1545 # TODO verify older icc/ecc compatibility
1546 case $cc_version in
1548 cc_version="v. ?.??, bad"
1549 cc_fail=yes
1551 10.1|11.0|11.1)
1552 cc_version="$cc_version, ok"
1555 cc_version="$cc_version, bad"
1556 cc_fail=yes
1558 esac
1559 echores "$cc_version"
1560 else
1561 for _cc in "$_cc" cc gcc ; do
1562 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1563 if test "$cc_name_tmp" = "gcc"; then
1564 cc_name=$cc_name_tmp
1565 echocheck "$_cc version"
1566 cc_vendor=gnu
1567 cc_version=$($_cc -dumpversion 2>&1)
1568 case $cc_version in
1569 2.96*)
1570 cc_fail=yes
1573 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1574 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1575 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1577 esac
1578 echores "$cc_version"
1579 break
1581 done
1582 fi # icc
1583 test "$cc_fail" = yes && die "unsupported compiler version"
1585 echocheck "host cc"
1586 test "$_host_cc" || _host_cc=$_cc
1587 echores $_host_cc
1589 echocheck "cross compilation"
1590 if test $_cross_compile = auto ; then
1591 cat > $TMPC << EOF
1592 int main(void) { return 0; }
1594 _cross_compile=yes
1595 cc_check && "$TMPEXE" && _cross_compile=no
1597 echores $_cross_compile
1599 if test $_cross_compile = yes; then
1600 tmp_run() {
1601 return 0
1605 # ---
1607 # now that we know what compiler should be used for compilation, try to find
1608 # out which assembler is used by the $_cc compiler
1609 if test "$_as" = auto ; then
1610 _as=$($_cc -print-prog-name=as)
1611 test -z "$_as" && _as=as
1614 if test "$_nm" = auto ; then
1615 _nm=$($_cc -print-prog-name=nm)
1616 test -z "$_nm" && _nm=nm
1619 # XXX: this should be ok..
1620 _cpuinfo="echo"
1622 if test "$_runtime_cpudetection" = no ; then
1624 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1625 # FIXME: Remove the cygwin check once AMD CPUs are supported
1626 if test -r /proc/cpuinfo && ! cygwin; then
1627 # Linux with /proc mounted, extract CPU information from it
1628 _cpuinfo="cat /proc/cpuinfo"
1629 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1630 # FreeBSD with Linux emulation /proc mounted,
1631 # extract CPU information from it
1632 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1633 elif darwin && ! x86 ; then
1634 # use hostinfo on Darwin
1635 _cpuinfo="hostinfo"
1636 elif aix; then
1637 # use 'lsattr' on AIX
1638 _cpuinfo="lsattr -E -l proc0 -a type"
1639 elif x86; then
1640 # all other OSes try to extract CPU information from a small helper
1641 # program cpuinfo instead
1642 $_cc -o cpuinfo$_exesuf cpuinfo.c
1643 _cpuinfo="./cpuinfo$_exesuf"
1646 if x86 ; then
1647 # gather more CPU information
1648 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1649 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1650 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1651 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1652 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1654 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1656 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1657 -e s/xmm/sse/ -e s/kni/sse/)
1659 for ext in $pparam ; do
1660 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1661 done
1663 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1664 test $_sse = kernel_check && _mmxext=kernel_check
1666 echocheck "CPU vendor"
1667 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1669 echocheck "CPU type"
1670 echores "$pname"
1673 fi # test "$_runtime_cpudetection" = no
1675 if x86 && test "$_runtime_cpudetection" = no ; then
1676 extcheck() {
1677 if test "$1" = kernel_check ; then
1678 echocheck "kernel support of $2"
1679 cat > $TMPC <<EOF
1680 #include <stdlib.h>
1681 #include <signal.h>
1682 void catch() { exit(1); }
1683 int main(void) {
1684 signal(SIGILL, catch);
1685 __asm__ volatile ("$3":::"memory"); return 0;
1689 if cc_check && tmp_run ; then
1690 eval _$2=yes
1691 echores "yes"
1692 _optimizing="$_optimizing $2"
1693 return 0
1694 else
1695 eval _$2=no
1696 echores "failed"
1697 echo "It seems that your kernel does not correctly support $2."
1698 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1699 return 1
1702 return 0
1705 extcheck $_mmx "mmx" "emms"
1706 extcheck $_mmxext "mmxext" "sfence"
1707 extcheck $_3dnow "3dnow" "femms"
1708 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1709 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1710 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1711 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1712 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1714 echocheck "mtrr support"
1715 if test "$_mtrr" = kernel_check ; then
1716 _mtrr="yes"
1717 _optimizing="$_optimizing mtrr"
1719 echores "$_mtrr"
1721 if test "$_gcc3_ext" != ""; then
1722 # if we had to disable sse/sse2 because the active kernel does not
1723 # support this instruction set extension, we also have to tell
1724 # gcc3 to not generate sse/sse2 instructions for normal C code
1725 cat > $TMPC << EOF
1726 int main(void) { return 0; }
1728 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1734 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1735 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1736 _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'
1737 case "$host_arch" in
1738 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1739 _arch='X86 X86_32'
1740 _target_arch="ARCH_X86 = yes"
1741 _target_subarch="ARCH_X86_32 = yes"
1742 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1743 iproc=486
1744 proc=i486
1747 if test "$_runtime_cpudetection" = no ; then
1748 case "$pvendor" in
1749 AuthenticAMD)
1750 case "$pfamily" in
1751 3) proc=i386 iproc=386 ;;
1752 4) proc=i486 iproc=486 ;;
1753 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1754 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1755 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1756 proc=k6-3
1757 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1758 proc=geode
1759 elif test "$pmodel" -ge 8; then
1760 proc=k6-2
1761 elif test "$pmodel" -ge 6; then
1762 proc=k6
1763 else
1764 proc=i586
1767 6) iproc=686
1768 # It's a bit difficult to determine the correct type of Family 6
1769 # AMD CPUs just from their signature. Instead, we check directly
1770 # whether it supports SSE.
1771 if test "$_sse" = yes; then
1772 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1773 proc=athlon-xp
1774 else
1775 # Again, gcc treats athlon and athlon-tbird similarly.
1776 proc=athlon
1779 15) iproc=686
1780 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1781 # caught and remedied in the optimization tests below.
1782 proc=k8
1785 *) proc=k8 iproc=686 ;;
1786 esac
1788 GenuineIntel)
1789 case "$pfamily" in
1790 3) proc=i386 iproc=386 ;;
1791 4) proc=i486 iproc=486 ;;
1792 5) iproc=586
1793 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1794 proc=pentium-mmx # 4 is desktop, 8 is mobile
1795 else
1796 proc=i586
1799 6) iproc=686
1800 if test "$pmodel" -ge 15; then
1801 proc=core2
1802 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1803 proc=pentium-m
1804 elif test "$pmodel" -ge 7; then
1805 proc=pentium3
1806 elif test "$pmodel" -ge 3; then
1807 proc=pentium2
1808 else
1809 proc=i686
1812 15) iproc=686
1813 # A nocona in 32-bit mode has no more capabilities than a prescott.
1814 if test "$pmodel" -ge 3; then
1815 proc=prescott
1816 else
1817 proc=pentium4
1819 test $_fast_cmov = "auto" && _fast_cmov=no
1821 *) proc=prescott iproc=686 ;;
1822 esac
1824 CentaurHauls)
1825 case "$pfamily" in
1826 5) iproc=586
1827 if test "$pmodel" -ge 8; then
1828 proc=winchip2
1829 elif test "$pmodel" -ge 4; then
1830 proc=winchip-c6
1831 else
1832 proc=i586
1835 6) iproc=686
1836 if test "$pmodel" -ge 9; then
1837 proc=c3-2
1838 else
1839 proc=c3
1840 iproc=586
1843 *) proc=i686 iproc=i686 ;;
1844 esac
1846 unknown)
1847 case "$pfamily" in
1848 3) proc=i386 iproc=386 ;;
1849 4) proc=i486 iproc=486 ;;
1850 *) proc=i586 iproc=586 ;;
1851 esac
1854 proc=i586 iproc=586 ;;
1855 esac
1856 fi # test "$_runtime_cpudetection" = no
1859 # check that gcc supports our CPU, if not, fall back to earlier ones
1860 # LGB: check -mcpu and -march swithing step by step with enabling
1861 # to fall back till 386.
1863 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1865 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1866 cpuopt=-mtune
1867 else
1868 cpuopt=-mcpu
1871 echocheck "GCC & CPU optimization abilities"
1872 cat > $TMPC << EOF
1873 int main(void) { return 0; }
1875 if test "$_runtime_cpudetection" = no ; then
1876 cc_check -march=native && proc=native
1877 if test "$proc" = "k8"; then
1878 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1880 if test "$proc" = "athlon-xp"; then
1881 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1883 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1884 cc_check -march=$proc $cpuopt=$proc || proc=k6
1886 if test "$proc" = "k6" || test "$proc" = "c3"; then
1887 if ! cc_check -march=$proc $cpuopt=$proc; then
1888 if cc_check -march=i586 $cpuopt=i686; then
1889 proc=i586-i686
1890 else
1891 proc=i586
1895 if test "$proc" = "prescott" ; then
1896 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1898 if test "$proc" = "core2" ; then
1899 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1901 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
1902 cc_check -march=$proc $cpuopt=$proc || proc=i686
1904 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1905 cc_check -march=$proc $cpuopt=$proc || proc=i586
1907 if test "$proc" = "i586"; then
1908 cc_check -march=$proc $cpuopt=$proc || proc=i486
1910 if test "$proc" = "i486" ; then
1911 cc_check -march=$proc $cpuopt=$proc || proc=i386
1913 if test "$proc" = "i386" ; then
1914 cc_check -march=$proc $cpuopt=$proc || proc=error
1916 if test "$proc" = "error" ; then
1917 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1918 _mcpu=""
1919 _march=""
1920 _optimizing=""
1921 elif test "$proc" = "i586-i686"; then
1922 _march="-march=i586"
1923 _mcpu="$cpuopt=i686"
1924 _optimizing="$proc"
1925 else
1926 _march="-march=$proc"
1927 _mcpu="$cpuopt=$proc"
1928 _optimizing="$proc"
1930 else # if test "$_runtime_cpudetection" = no
1931 _mcpu="$cpuopt=generic"
1932 # at least i486 required, for bswap instruction
1933 _march="-march=i486"
1934 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1935 cc_check $_mcpu || _mcpu=""
1936 cc_check $_march $_mcpu || _march=""
1939 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1940 ## autodetected mcpu/march parameters
1941 if test "$_target" ; then
1942 # TODO: it may be a good idea to check GCC and fall back in all cases
1943 if test "$host_arch" = "i586-i686"; then
1944 _march="-march=i586"
1945 _mcpu="$cpuopt=i686"
1946 else
1947 _march="-march=$host_arch"
1948 _mcpu="$cpuopt=$host_arch"
1951 proc="$host_arch"
1953 case "$proc" in
1954 i386) iproc=386 ;;
1955 i486) iproc=486 ;;
1956 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1957 i686|athlon*|pentium*) iproc=686 ;;
1958 *) iproc=586 ;;
1959 esac
1962 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1963 _fast_cmov="yes"
1964 else
1965 _fast_cmov="no"
1968 echores "$proc"
1971 ia64)
1972 _arch='IA64'
1973 _target_arch='ARCH_IA64 = yes'
1974 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1975 iproc='ia64'
1978 x86_64|amd64)
1979 _arch='X86 X86_64'
1980 _target_subarch='ARCH_X86_64 = yes'
1981 _target_arch="ARCH_X86 = yes"
1982 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1983 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1984 iproc='x86_64'
1986 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1987 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1988 cpuopt=-mtune
1989 else
1990 cpuopt=-mcpu
1992 test $_fast_cmov = "auto" && _fast_cmov=yes
1993 if test "$_runtime_cpudetection" = no ; then
1994 case "$pvendor" in
1995 AuthenticAMD)
1996 proc=k8;;
1997 GenuineIntel)
1998 case "$pfamily" in
1999 6) proc=core2;;
2001 # 64-bit prescotts exist, but as far as GCC is concerned they
2002 # have the same capabilities as a nocona.
2003 proc=nocona
2005 esac
2008 proc=error;;
2009 esac
2010 fi # test "$_runtime_cpudetection" = no
2012 echocheck "GCC & CPU optimization abilities"
2013 cat > $TMPC << EOF
2014 int main(void) { return 0; }
2016 # This is a stripped-down version of the i386 fallback.
2017 if test "$_runtime_cpudetection" = no ; then
2018 cc_check -march=native && proc=native
2019 # --- AMD processors ---
2020 if test "$proc" = "k8"; then
2021 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2023 # This will fail if gcc version < 3.3, which is ok because earlier
2024 # versions don't really support 64-bit on amd64.
2025 # Is this a valid assumption? -Corey
2026 if test "$proc" = "athlon-xp"; then
2027 cc_check -march=$proc $cpuopt=$proc || proc=error
2029 # --- Intel processors ---
2030 if test "$proc" = "core2"; then
2031 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2033 if test "$proc" = "nocona"; then
2034 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2036 if test "$proc" = "pentium4"; then
2037 cc_check -march=$proc $cpuopt=$proc || proc=error
2040 _march="-march=$proc"
2041 _mcpu="$cpuopt=$proc"
2042 if test "$proc" = "error" ; then
2043 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2044 _mcpu=""
2045 _march=""
2047 else # if test "$_runtime_cpudetection" = no
2048 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2049 _march="-march=x86-64"
2050 _mcpu="$cpuopt=generic"
2051 cc_check $_mcpu || _mcpu="x86-64"
2052 cc_check $_mcpu || _mcpu=""
2053 cc_check $_march $_mcpu || _march=""
2056 _optimizing=""
2058 echores "$proc"
2061 sparc|sparc64)
2062 _arch='SPARC'
2063 _target_arch='ARCH_SPARC = yes'
2064 iproc='sparc'
2065 if test "$host_arch" = "sparc64" ; then
2066 _vis='yes'
2067 proc='ultrasparc'
2068 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2069 elif sunos ; then
2070 echocheck "CPU type"
2071 karch=$(uname -m)
2072 case "$(echo $karch)" in
2073 sun4) proc=v7 ;;
2074 sun4c) proc=v7 ;;
2075 sun4d) proc=v8 ;;
2076 sun4m) proc=v8 ;;
2077 sun4u) proc=ultrasparc _vis='yes' ;;
2078 sun4v) proc=v9 ;;
2079 *) proc=v8 ;;
2080 esac
2081 echores "$proc"
2082 else
2083 proc=v8
2085 _mcpu="-mcpu=$proc"
2086 _optimizing="$proc"
2089 arm|armv4l|armv5tel)
2090 _arch='ARM'
2091 _target_arch='ARCH_ARM = yes'
2092 iproc='arm'
2095 avr32)
2096 _arch='AVR32'
2097 _target_arch='ARCH_AVR32 = yes'
2098 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2099 iproc='avr32'
2102 sh|sh4)
2103 _arch='SH4'
2104 _target_arch='ARCH_SH4 = yes'
2105 iproc='sh4'
2108 ppc|ppc64|powerpc|powerpc64)
2109 _arch='PPC'
2110 def_dcbzl='#define HAVE_DCBZL 0'
2111 _target_arch='ARCH_PPC = yes'
2112 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2113 iproc='ppc'
2115 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2116 _arch='PPC PPC64'
2117 _target_subarch='ARCH_PPC64 = yes'
2118 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2120 echocheck "CPU type"
2121 case $system_name in
2122 Linux)
2123 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2124 if test -n "$($_cpuinfo | grep altivec)"; then
2125 test $_altivec = auto && _altivec=yes
2128 Darwin)
2129 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2130 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2131 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2132 test $_altivec = auto && _altivec=yes
2135 NetBSD)
2136 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2137 case $cc_version in
2138 2*|3.0*|3.1*|3.2*|3.3*)
2141 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2142 test $_altivec = auto && _altivec=yes
2145 esac
2147 AIX)
2148 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2150 esac
2151 if test "$_altivec" = yes; then
2152 echores "$proc altivec"
2153 else
2154 _altivec=no
2155 echores "$proc"
2158 echocheck "GCC & CPU optimization abilities"
2160 if test -n "$proc"; then
2161 case "$proc" in
2162 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2163 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2164 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2165 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2166 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2167 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2168 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2169 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2170 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2171 *) ;;
2172 esac
2173 # gcc 3.1(.1) and up supports 7400 and 7450
2174 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2175 case "$proc" in
2176 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2177 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2178 *) ;;
2179 esac
2181 # gcc 3.2 and up supports 970
2182 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2183 case "$proc" in
2184 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2185 def_dcbzl='#define HAVE_DCBZL 1' ;;
2186 *) ;;
2187 esac
2189 # gcc 3.3 and up supports POWER4
2190 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2191 case "$proc" in
2192 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2193 *) ;;
2194 esac
2196 # gcc 3.4 and up supports 440*
2197 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2198 case "$proc" in
2199 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2200 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2201 *) ;;
2202 esac
2204 # gcc 4.0 and up supports POWER5
2205 if test "$_cc_major" -ge "4"; then
2206 case "$proc" in
2207 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2208 *) ;;
2209 esac
2213 if test -n "$_mcpu"; then
2214 _optimizing=$(echo $_mcpu | cut -c 8-)
2215 echores "$_optimizing"
2216 else
2217 echores "none"
2222 alpha*)
2223 _arch='ALPHA'
2224 _target_arch='ARCH_ALPHA = yes'
2225 iproc='alpha'
2226 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2228 echocheck "CPU type"
2229 cat > $TMPC << EOF
2230 int main(void) {
2231 unsigned long ver, mask;
2232 __asm__ ("implver %0" : "=r" (ver));
2233 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2234 printf("%ld-%x\n", ver, ~mask);
2235 return 0;
2238 $_cc -o "$TMPEXE" "$TMPC"
2239 case $("$TMPEXE") in
2241 0-0) proc="ev4"; _mvi="0";;
2242 1-0) proc="ev5"; _mvi="0";;
2243 1-1) proc="ev56"; _mvi="0";;
2244 1-101) proc="pca56"; _mvi="1";;
2245 2-303) proc="ev6"; _mvi="1";;
2246 2-307) proc="ev67"; _mvi="1";;
2247 2-1307) proc="ev68"; _mvi="1";;
2248 esac
2249 echores "$proc"
2251 echocheck "GCC & CPU optimization abilities"
2252 if test "$proc" = "ev68" ; then
2253 cc_check -mcpu=$proc || proc=ev67
2255 if test "$proc" = "ev67" ; then
2256 cc_check -mcpu=$proc || proc=ev6
2258 _mcpu="-mcpu=$proc"
2259 echores "$proc"
2261 _optimizing="$proc"
2264 mips)
2265 _arch='SGI_MIPS'
2266 _target_arch='ARCH_SGI_MIPS = yes'
2267 iproc='sgi-mips'
2269 if irix ; then
2270 echocheck "CPU type"
2271 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2272 case "$(echo $proc)" in
2273 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2274 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2275 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2276 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2277 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2278 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2279 esac
2280 # gcc < 3.x does not support -mtune.
2281 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2282 _mcpu=''
2284 echores "$proc"
2289 hppa)
2290 _arch='PA_RISC'
2291 _target_arch='ARCH_PA_RISC = yes'
2292 iproc='PA-RISC'
2295 s390)
2296 _arch='S390'
2297 _target_arch='ARCH_S390 = yes'
2298 iproc='390'
2301 s390x)
2302 _arch='S390X'
2303 _target_arch='ARCH_S390X = yes'
2304 iproc='390x'
2307 vax)
2308 _arch='VAX'
2309 _target_arch='ARCH_VAX = yes'
2310 iproc='vax'
2313 xtensa)
2314 _arch='XTENSA'
2315 _target_arch='ARCH_XTENSA = yes'
2316 iproc='xtensa'
2319 generic)
2320 _arch='GENERIC'
2321 _target_arch='ARCH_GENERIC = yes'
2325 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2326 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2327 die "unsupported architecture $host_arch"
2329 esac # case "$host_arch" in
2331 if test "$_runtime_cpudetection" = yes ; then
2332 if x86 ; then
2333 test "$_cmov" != no && _cmov=yes
2334 x86_32 && _cmov=no
2335 test "$_mmx" != no && _mmx=yes
2336 test "$_3dnow" != no && _3dnow=yes
2337 test "$_3dnowext" != no && _3dnowext=yes
2338 test "$_mmxext" != no && _mmxext=yes
2339 test "$_sse" != no && _sse=yes
2340 test "$_sse2" != no && _sse2=yes
2341 test "$_ssse3" != no && _ssse3=yes
2342 test "$_mtrr" != no && _mtrr=yes
2344 if ppc; then
2345 _altivec=yes
2350 # endian testing
2351 echocheck "byte order"
2352 if test "$_big_endian" = auto ; then
2353 cat > $TMPC <<EOF
2354 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2355 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2356 int main(void) { return (int)ascii_name; }
2358 if cc_check ; then
2359 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2360 _big_endian=yes
2361 else
2362 _big_endian=no
2364 else
2365 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2368 if test "$_big_endian" = yes ; then
2369 _byte_order='big-endian'
2370 def_words_endian='#define WORDS_BIGENDIAN 1'
2371 else
2372 _byte_order='little-endian'
2373 def_words_endian='#undef WORDS_BIGENDIAN'
2375 echores "$_byte_order"
2378 echocheck "extern symbol prefix"
2379 cat > $TMPC << EOF
2380 int ff_extern;
2382 cc_check -c || die "Symbol mangling check failed."
2383 sym=$($_nm -P -g $TMPEXE)
2384 extern_prefix=${sym%%ff_extern*}
2385 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2386 echores $extern_prefix
2389 echocheck "assembler support of -pipe option"
2390 cat > $TMPC << EOF
2391 int main(void) { return 0; }
2393 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2396 echocheck "compiler support of named assembler arguments"
2397 _named_asm_args=yes
2398 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2399 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2400 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2401 _named_asm_args=no
2402 def_named_asm_args="#undef NAMED_ASM_ARGS"
2404 echores $_named_asm_args
2407 if darwin && test "$cc_vendor" = "gnu" ; then
2408 echocheck "GCC support of -mstackrealign"
2409 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2410 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2411 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2412 # wrong code with this flag, but this can be worked around by adding
2413 # -fno-unit-at-a-time as described in the blog post at
2414 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2415 cat > $TMPC << EOF
2416 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2417 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2419 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2420 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2421 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2422 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2423 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2426 # Checking for CFLAGS
2427 _install_strip="-s"
2428 if test "$_profile" != "" || test "$_debug" != "" ; then
2429 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2430 _install_strip=
2431 elif test -z "$CFLAGS" ; then
2432 if test "$cc_vendor" = "intel" ; then
2433 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2434 elif test "$cc_vendor" != "gnu" ; then
2435 CFLAGS="-O2 $_march $_mcpu $_pipe"
2436 else
2437 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2438 extra_ldflags="$extra_ldflags -ffast-math"
2440 else
2441 _warn_CFLAGS=yes
2444 cat > $TMPC << EOF
2445 int main(void) { return 0; }
2447 if test "$cc_vendor" = "gnu" ; then
2448 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2449 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2450 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2451 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2452 else
2453 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2456 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2459 if test -n "$LDFLAGS" ; then
2460 extra_ldflags="$extra_ldflags $LDFLAGS"
2461 _warn_CFLAGS=yes
2462 elif test "$cc_vendor" = "intel" ; then
2463 extra_ldflags="$extra_ldflags -i-static"
2465 if test -n "$CPPFLAGS" ; then
2466 extra_cflags="$extra_cflags $CPPFLAGS"
2467 _warn_CFLAGS=yes
2472 if x86_32 ; then
2473 # Checking assembler (_as) compatibility...
2474 # Added workaround for older as that reads from stdin by default - atmos
2475 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2476 echocheck "assembler ($_as $as_version)"
2478 _pref_as_version='2.9.1'
2479 echo 'nop' > $TMPS
2480 if test "$_mmx" = yes ; then
2481 echo 'emms' >> $TMPS
2483 if test "$_3dnow" = yes ; then
2484 _pref_as_version='2.10.1'
2485 echo 'femms' >> $TMPS
2487 if test "$_3dnowext" = yes ; then
2488 _pref_as_version='2.10.1'
2489 echo 'pswapd %mm0, %mm0' >> $TMPS
2491 if test "$_mmxext" = yes ; then
2492 _pref_as_version='2.10.1'
2493 echo 'movntq %mm0, (%eax)' >> $TMPS
2495 if test "$_sse" = yes ; then
2496 _pref_as_version='2.10.1'
2497 echo 'xorps %xmm0, %xmm0' >> $TMPS
2499 #if test "$_sse2" = yes ; then
2500 # _pref_as_version='2.11'
2501 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2503 if test "$_cmov" = yes ; then
2504 _pref_as_version='2.10.1'
2505 echo 'cmovb %eax, %ebx' >> $TMPS
2507 if test "$_ssse3" = yes ; then
2508 _pref_as_version='2.16.92'
2509 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2511 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2513 if test "$as_verc_fail" != yes ; then
2514 echores "ok"
2515 else
2516 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2517 echores "failed"
2518 die "obsolete binutils version"
2521 fi #if x86_32
2523 echocheck ".align is a power of two"
2524 if test "$_asmalign_pot" = auto ; then
2525 _asmalign_pot=no
2526 cat > $TMPC << EOF
2527 int main(void) { __asm__ (".align 3"); return 0; }
2529 cc_check && _asmalign_pot=yes
2531 if test "$_asmalign_pot" = "yes" ; then
2532 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2533 else
2534 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2536 echores $_asmalign_pot
2538 if x86 ; then
2539 echocheck "10 assembler operands"
2540 ten_operands=no
2541 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2542 cat > $TMPC << EOF
2543 int main(void) {
2544 int x=0;
2545 __asm__ volatile(
2547 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2549 return 0;
2552 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2553 echores $ten_operands
2555 echocheck "yasm"
2556 if test -z "$YASMFLAGS" ; then
2557 if darwin ; then
2558 x86_64 && objformat="macho64" || objformat="macho"
2559 elif win32 ; then
2560 objformat="win32"
2561 else
2562 objformat="elf"
2564 # currently tested for Linux x86, x86_64
2565 YASMFLAGS="-f $objformat"
2566 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2567 case "$objformat" in
2568 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2569 macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
2570 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2571 esac
2572 else
2573 _warn_CFLAGS=yes
2576 echo "pabsw xmm0, xmm0" > $TMPS
2577 yasm_check || _yasm=""
2578 if test $_yasm ; then
2579 test "$_mmx" = "yes" && fft_mmx="yes"
2580 def_yasm='#define HAVE_YASM 1'
2581 _have_yasm="yes"
2582 echores "$_yasm"
2583 else
2584 def_yasm='#define HAVE_YASM 0'
2585 fft_mmx="no"
2586 _have_yasm="no"
2587 echores "no"
2590 echocheck "bswap"
2591 def_bswap='#define HAVE_BSWAP 0'
2592 echo 'bswap %eax' > $TMPS
2593 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2594 echores "$bswap"
2595 fi #if x86
2598 #FIXME: This should happen before the check for CFLAGS..
2599 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2600 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2602 # check if AltiVec is supported by the compiler, and how to enable it
2603 echocheck "GCC AltiVec flags"
2604 cat > $TMPC << EOF
2605 int main(void) { return 0; }
2607 if $(cc_check -maltivec -mabi=altivec) ; then
2608 _altivec_gcc_flags="-maltivec -mabi=altivec"
2609 # check if <altivec.h> should be included
2610 cat > $TMPC << EOF
2611 #include <altivec.h>
2612 int main(void) { return 0; }
2614 if $(cc_check $_altivec_gcc_flags) ; then
2615 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2616 inc_altivec_h='#include <altivec.h>'
2617 else
2618 cat > $TMPC << EOF
2619 int main(void) { return 0; }
2621 if $(cc_check -faltivec) ; then
2622 _altivec_gcc_flags="-faltivec"
2623 else
2624 _altivec=no
2625 _altivec_gcc_flags="none, AltiVec disabled"
2629 echores "$_altivec_gcc_flags"
2631 # check if the compiler supports braces for vector declarations
2632 cat > $TMPC << EOF
2633 $inc_altivec_h
2634 int main(void) { (vector int) {1}; return 0; }
2636 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2638 # Disable runtime cpudetection if we cannot generate AltiVec code or
2639 # AltiVec is disabled by the user.
2640 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2641 && _runtime_cpudetection=no
2643 # Show that we are optimizing for AltiVec (if enabled and supported).
2644 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2645 && _optimizing="$_optimizing altivec"
2647 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2648 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2651 if ppc ; then
2652 def_xform_asm='#define HAVE_XFORM_ASM 0'
2653 xform_asm=no
2654 echocheck "XFORM ASM support"
2655 cat > $TMPC << EOF
2656 int main(void) { __asm__ volatile ("lwzx 0, %y0" :: "Z"(*(int*)0)); return 0; }
2658 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2659 echores "$xform_asm"
2662 if arm ; then
2663 echocheck "ARM pld instruction"
2664 cat > $TMPC << EOF
2665 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2667 pld=no
2668 cc_check && pld=yes
2669 echores "$pld"
2671 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2672 if test $_armv5te = "auto" ; then
2673 cat > $TMPC << EOF
2674 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2676 _armv5te=no
2677 cc_check && _armv5te=yes
2679 echores "$_armv5te"
2681 echocheck "ARMv6 (SIMD instructions)"
2682 if test $_armv6 = "auto" ; then
2683 cat > $TMPC << EOF
2684 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2686 _armv6=no
2687 cc_check && _armv6=yes
2689 echores "$_armv6"
2691 echocheck "ARMv6t2 (SIMD instructions)"
2692 if test $_armv6t2 = "auto" ; then
2693 cat > $TMPC << EOF
2694 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2696 _armv6t2=no
2697 cc_check && _armv6t2=yes
2699 echores "$_armv6"
2701 echocheck "ARM VFP"
2702 if test $_armvfp = "auto" ; then
2703 cat > $TMPC << EOF
2704 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2706 _armvfp=no
2707 cc_check && _armvfp=yes
2709 echores "$_armvfp"
2711 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2712 if test $_iwmmxt = "auto" ; then
2713 cat > $TMPC << EOF
2714 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2716 _iwmmxt=no
2717 cc_check && _iwmmxt=yes
2719 echores "$_iwmmxt"
2722 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI'
2723 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2724 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2725 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2726 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2727 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2728 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2729 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2730 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2731 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2732 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2733 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2734 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2735 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2736 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2737 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2738 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2739 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2740 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2742 # Checking kernel version...
2743 if x86_32 && linux ; then
2744 _k_verc_problem=no
2745 kernel_version=$(uname -r 2>&1)
2746 echocheck "$system_name kernel version"
2747 case "$kernel_version" in
2748 '') kernel_version="?.??"; _k_verc_fail=yes;;
2749 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2750 _k_verc_problem=yes;;
2751 esac
2752 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2753 _k_verc_fail=yes
2755 if test "$_k_verc_fail" ; then
2756 echores "$kernel_version, fail"
2757 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2758 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2759 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2760 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2761 echo "2.2.x you must upgrade it to get SSE support!"
2762 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2763 else
2764 echores "$kernel_version, ok"
2768 ######################
2769 # MAIN TESTS GO HERE #
2770 ######################
2773 echocheck "-lposix"
2774 cat > $TMPC <<EOF
2775 int main(void) { return 0; }
2777 if cc_check -lposix ; then
2778 extra_ldflags="$extra_ldflags -lposix"
2779 echores "yes"
2780 else
2781 echores "no"
2784 echocheck "-lm"
2785 cat > $TMPC <<EOF
2786 int main(void) { return 0; }
2788 if cc_check -lm ; then
2789 _ld_lm="-lm"
2790 echores "yes"
2791 else
2792 _ld_lm=""
2793 echores "no"
2797 echocheck "langinfo"
2798 if test "$_langinfo" = auto ; then
2799 cat > $TMPC <<EOF
2800 #include <langinfo.h>
2801 int main(void) { nl_langinfo(CODESET); return 0; }
2803 _langinfo=no
2804 cc_check && _langinfo=yes
2806 if test "$_langinfo" = yes ; then
2807 def_langinfo='#define HAVE_LANGINFO 1'
2808 else
2809 def_langinfo='#undef HAVE_LANGINFO'
2811 echores "$_langinfo"
2814 echocheck "language"
2815 # Set preferred languages, "all" uses English as main language.
2816 test -z "$language" && language=$LINGUAS
2817 test -z "$language_doc" && language_doc=$language
2818 test -z "$language_man" && language_man=$language
2819 test -z "$language_msg" && language_msg=$language
2820 language_doc=$(echo $language_doc | tr , " ")
2821 language_man=$(echo $language_man | tr , " ")
2822 language_msg=$(echo $language_msg | tr , " ")
2824 test "$language_doc" = "all" && language_doc=$doc_lang_all
2825 test "$language_man" = "all" && language_man=$man_lang_all
2826 test "$language_msg" = "all" && language_msg=en
2828 # Prune non-existing translations from language lists.
2829 # Set message translation to the first available language.
2830 # Fall back on English.
2831 for lang in $language_doc ; do
2832 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2833 done
2834 language_doc=$tmp_language_doc
2835 test -z "$language_doc" && language_doc=en
2837 for lang in $language_man ; do
2838 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2839 done
2840 language_man=$tmp_language_man
2841 test -z "$language_man" && language_man=en
2843 for lang in $language_msg ; do
2844 test -f "help/help_mp-${lang}.h" && language_msg=$lang && break
2845 done
2846 test -z "$language_msg" && language_msg=en
2847 _mp_help="help/help_mp-${language_msg}.h"
2848 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2851 echocheck "enable sighandler"
2852 if test "$_sighandler" = yes ; then
2853 def_sighandler='#define CONFIG_SIGHANDLER 1'
2854 else
2855 def_sighandler='#undef CONFIG_SIGHANDLER'
2857 echores "$_sighandler"
2859 echocheck "runtime cpudetection"
2860 if test "$_runtime_cpudetection" = yes ; then
2861 _optimizing="Runtime CPU-Detection enabled"
2862 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2863 else
2864 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2866 echores "$_runtime_cpudetection"
2869 echocheck "restrict keyword"
2870 for restrict_keyword in restrict __restrict __restrict__ ; do
2871 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2872 if cc_check; then
2873 def_restrict_keyword=$restrict_keyword
2874 break;
2876 done
2877 if [ -n "$def_restrict_keyword" ]; then
2878 echores "$def_restrict_keyword"
2879 else
2880 echores "none"
2882 # Avoid infinite recursion loop ("#define restrict restrict")
2883 if [ "$def_restrict_keyword" != "restrict" ]; then
2884 def_restrict_keyword="#define restrict $def_restrict_keyword"
2885 else
2886 def_restrict_keyword=""
2890 echocheck "__builtin_expect"
2891 # GCC branch prediction hint
2892 cat > $TMPC << EOF
2893 int foo(int a) {
2894 a = __builtin_expect(a, 10);
2895 return a == 10 ? 0 : 1;
2897 int main(void) { return foo(10) && foo(0); }
2899 _builtin_expect=no
2900 cc_check && _builtin_expect=yes
2901 if test "$_builtin_expect" = yes ; then
2902 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2903 else
2904 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2906 echores "$_builtin_expect"
2909 echocheck "kstat"
2910 cat > $TMPC << EOF
2911 #include <kstat.h>
2912 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2914 _kstat=no
2915 cc_check -lkstat && _kstat=yes
2916 if test "$_kstat" = yes ; then
2917 def_kstat="#define HAVE_LIBKSTAT 1"
2918 extra_ldflags="$extra_ldflags -lkstat"
2919 else
2920 def_kstat="#undef HAVE_LIBKSTAT"
2922 echores "$_kstat"
2925 echocheck "posix4"
2926 # required for nanosleep on some systems
2927 cat > $TMPC << EOF
2928 #include <time.h>
2929 int main(void) { (void) nanosleep(0, 0); return 0; }
2931 _posix4=no
2932 cc_check -lposix4 && _posix4=yes
2933 if test "$_posix4" = yes ; then
2934 extra_ldflags="$extra_ldflags -lposix4"
2936 echores "$_posix4"
2938 for func in llrint lrint lrintf round roundf truncf; do
2939 echocheck $func
2940 cat > $TMPC << EOF
2941 #include <math.h>
2942 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2944 eval _$func=no
2945 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2946 if eval test "x\$_$func" = "xyes"; then
2947 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2948 echores yes
2949 else
2950 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2951 echores no
2953 done
2956 echocheck "mkstemp"
2957 cat > $TMPC << EOF
2958 #include <stdlib.h>
2959 int main(void) { char a; mkstemp(&a); return 0; }
2961 _mkstemp=no
2962 cc_check && _mkstemp=yes
2963 if test "$_mkstemp" = yes ; then
2964 def_mkstemp='#define HAVE_MKSTEMP 1'
2965 else
2966 def_mkstemp='#undef HAVE_MKSTEMP'
2968 echores "$_mkstemp"
2971 echocheck "nanosleep"
2972 # also check for nanosleep
2973 cat > $TMPC << EOF
2974 #include <time.h>
2975 int main(void) { (void) nanosleep(0, 0); return 0; }
2977 _nanosleep=no
2978 cc_check && _nanosleep=yes
2979 if test "$_nanosleep" = yes ; then
2980 def_nanosleep='#define HAVE_NANOSLEEP 1'
2981 else
2982 def_nanosleep='#undef HAVE_NANOSLEEP'
2984 echores "$_nanosleep"
2987 echocheck "socklib"
2988 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2989 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2990 cat > $TMPC << EOF
2991 #include <netdb.h>
2992 #include <sys/socket.h>
2993 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2995 _socklib=no
2996 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2997 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2998 done
2999 if test $_winsock2_h = auto && ! cygwin ; then
3000 _winsock2_h=no
3001 cat > $TMPC << EOF
3002 #include <winsock2.h>
3003 int main(void) { (void) gethostbyname(0); return 0; }
3005 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3007 test "$_ld_sock" && _res_comment="using $_ld_sock"
3008 echores "$_socklib"
3011 if test $_winsock2_h = yes ; then
3012 _ld_sock="-lws2_32"
3013 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3014 else
3015 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3019 echocheck "arpa/inet.h"
3020 arpa_inet_h=no
3021 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3022 cat > $TMPC << EOF
3023 #include <arpa/inet.h>
3024 int main(void) { return 0; }
3026 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3027 echores "$arpa_inet_h"
3030 echocheck "inet_pton()"
3031 def_inet_pton='#define HAVE_INET_PTON 0'
3032 inet_pton=no
3033 cat > $TMPC << EOF
3034 #include <sys/types.h>
3035 #include <sys/socket.h>
3036 #include <arpa/inet.h>
3037 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3039 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3040 cc_check $_ld_tmp && inet_pton=yes && break
3041 done
3042 if test $inet_pton = yes ; then
3043 test $_ld_tmp && _res_comment="using $_ld_tmp"
3044 def_inet_pton='#define HAVE_INET_PTON 1'
3046 echores "$inet_pton"
3049 echocheck "inet_aton()"
3050 def_inet_aton='#define HAVE_INET_ATON 0'
3051 inet_aton=no
3052 cat > $TMPC << EOF
3053 #include <sys/types.h>
3054 #include <sys/socket.h>
3055 #include <arpa/inet.h>
3056 int main(void) { (void) inet_aton(0, 0); return 0; }
3058 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3059 cc_check $_ld_tmp && inet_aton=yes && break
3060 done
3061 if test $inet_aton = yes ; then
3062 test $_ld_tmp && _res_comment="using $_ld_tmp"
3063 def_inet_aton='#define HAVE_INET_ATON 1'
3065 echores "$inet_aton"
3068 echocheck "socklen_t"
3069 _socklen_t=no
3070 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3071 cat > $TMPC << EOF
3072 #include <$header>
3073 int main(void) { socklen_t v = 0; return v; }
3075 cc_check && _socklen_t=yes && break
3076 done
3077 if test "$_socklen_t" = yes ; then
3078 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3079 else
3080 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3082 echores "$_socklen_t"
3085 echocheck "closesocket()"
3086 _closesocket=no
3087 cat > $TMPC << EOF
3088 #include <winsock2.h>
3089 int main(void) { closesocket(~0); return 0; }
3091 cc_check $_ld_sock && _closesocket=yes
3092 if test "$_closesocket" = yes ; then
3093 def_closesocket='#define HAVE_CLOSESOCKET 1'
3094 else
3095 def_closesocket='#define HAVE_CLOSESOCKET 0'
3097 echores "$_closesocket"
3100 echocheck "network"
3101 test $_winsock2_h = no && test $inet_pton = no &&
3102 test $inet_aton = no && _network=no
3103 if test "$_network" = yes ; then
3104 def_network='#define CONFIG_NETWORK 1'
3105 extra_ldflags="$extra_ldflags $_ld_sock"
3106 _inputmodules="network $_inputmodules"
3107 else
3108 _noinputmodules="network $_noinputmodules"
3109 def_network='#undef CONFIG_NETWORK'
3110 _ftp=no
3112 echores "$_network"
3115 echocheck "inet6"
3116 if test "$_inet6" = auto ; then
3117 cat > $TMPC << EOF
3118 #include <sys/types.h>
3119 #if !defined(_WIN32) || defined(__CYGWIN__)
3120 #include <sys/socket.h>
3121 #include <netinet/in.h>
3122 #else
3123 #include <ws2tcpip.h>
3124 #endif
3125 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3127 _inet6=no
3128 if cc_check $_ld_sock ; then
3129 _inet6=yes
3132 if test "$_inet6" = yes ; then
3133 def_inet6='#define HAVE_AF_INET6 1'
3134 else
3135 def_inet6='#undef HAVE_AF_INET6'
3137 echores "$_inet6"
3140 echocheck "gethostbyname2"
3141 if test "$_gethostbyname2" = auto ; then
3142 cat > $TMPC << EOF
3143 #include <sys/types.h>
3144 #include <sys/socket.h>
3145 #include <netdb.h>
3146 int main(void) { gethostbyname2("", AF_INET); return 0; }
3148 _gethostbyname2=no
3149 if cc_check ; then
3150 _gethostbyname2=yes
3153 if test "$_gethostbyname2" = yes ; then
3154 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3155 else
3156 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3158 echores "$_gethostbyname2"
3161 echocheck "inttypes.h (required)"
3162 cat > $TMPC << EOF
3163 #include <inttypes.h>
3164 int main(void) { return 0; }
3166 _inttypes=no
3167 cc_check && _inttypes=yes
3168 echores "$_inttypes"
3170 if test "$_inttypes" = no ; then
3171 echocheck "bitypes.h (inttypes.h predecessor)"
3172 cat > $TMPC << EOF
3173 #include <sys/bitypes.h>
3174 int main(void) { return 0; }
3176 cc_check && _inttypes=yes
3177 if test "$_inttypes" = yes ; then
3178 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."
3179 else
3180 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3185 echocheck "int_fastXY_t in inttypes.h"
3186 cat > $TMPC << EOF
3187 #include <inttypes.h>
3188 int main(void) {
3189 volatile int_fast16_t v= 0;
3190 return v; }
3192 _fast_inttypes=no
3193 cc_check && _fast_inttypes=yes
3194 if test "$_fast_inttypes" = no ; then
3195 def_fast_inttypes='
3196 typedef signed char int_fast8_t;
3197 typedef signed int int_fast16_t;
3198 typedef signed int int_fast32_t;
3199 typedef signed long long int_fast64_t;
3200 typedef unsigned char uint_fast8_t;
3201 typedef unsigned int uint_fast16_t;
3202 typedef unsigned int uint_fast32_t;
3203 typedef unsigned long long uint_fast64_t;'
3205 echores "$_fast_inttypes"
3208 echocheck "malloc.h"
3209 cat > $TMPC << EOF
3210 #include <malloc.h>
3211 int main(void) { (void) malloc(0); return 0; }
3213 _malloc=no
3214 cc_check && _malloc=yes
3215 if test "$_malloc" = yes ; then
3216 def_malloc_h='#define HAVE_MALLOC_H 1'
3217 else
3218 def_malloc_h='#define HAVE_MALLOC_H 0'
3220 # malloc.h emits a warning in FreeBSD and OpenBSD
3221 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3222 echores "$_malloc"
3225 echocheck "memalign()"
3226 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3227 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3228 cat > $TMPC << EOF
3229 #include <malloc.h>
3230 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3232 _memalign=no
3233 cc_check && _memalign=yes
3234 if test "$_memalign" = yes ; then
3235 def_memalign='#define HAVE_MEMALIGN 1'
3236 else
3237 def_memalign='#define HAVE_MEMALIGN 0'
3238 def_map_memalign='#define memalign(a,b) malloc(b)'
3239 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3241 echores "$_memalign"
3244 echocheck "posix_memalign()"
3245 posix_memalign=no
3246 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3247 cat > $TMPC << EOF
3248 #define _XOPEN_SOURCE 600
3249 #include <stdlib.h>
3250 int main(void) { posix_memalign(NULL, 0, 0); }
3252 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3253 echores "$posix_memalign"
3256 echocheck "alloca.h"
3257 cat > $TMPC << EOF
3258 #include <alloca.h>
3259 int main(void) { (void) alloca(0); return 0; }
3261 _alloca=no
3262 cc_check && _alloca=yes
3263 if cc_check ; then
3264 def_alloca_h='#define HAVE_ALLOCA_H 1'
3265 else
3266 def_alloca_h='#undef HAVE_ALLOCA_H'
3268 echores "$_alloca"
3271 echocheck "fastmemcpy"
3272 if test "$_fastmemcpy" = yes ; then
3273 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3274 else
3275 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3277 echores "$_fastmemcpy"
3280 echocheck "mman.h"
3281 cat > $TMPC << EOF
3282 #include <sys/types.h>
3283 #include <sys/mman.h>
3284 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3286 _mman=no
3287 cc_check && _mman=yes
3288 if test "$_mman" = yes ; then
3289 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3290 else
3291 def_mman_h='#undef HAVE_SYS_MMAN_H'
3292 os2 && _need_mmap=yes
3294 echores "$_mman"
3296 cat > $TMPC << EOF
3297 #include <sys/types.h>
3298 #include <sys/mman.h>
3299 int main(void) { void *p = MAP_FAILED; return 0; }
3301 _mman_has_map_failed=no
3302 cc_check && _mman_has_map_failed=yes
3303 if test "$_mman_has_map_failed" = yes ; then
3304 def_mman_has_map_failed=''
3305 else
3306 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3309 echocheck "dynamic loader"
3310 cat > $TMPC << EOF
3311 #include <stddef.h>
3312 #include <dlfcn.h>
3313 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3315 _dl=no
3316 for _ld_tmp in "" "-ldl" ; do
3317 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3318 done
3319 if test "$_dl" = yes ; then
3320 def_dl='#define HAVE_LIBDL 1'
3321 else
3322 def_dl='#undef HAVE_LIBDL'
3324 echores "$_dl"
3327 echocheck "dynamic a/v plugins support"
3328 if test "$_dl" = no ; then
3329 _dynamic_plugins=no
3331 if test "$_dynamic_plugins" = yes ; then
3332 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3333 else
3334 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3336 echores "$_dynamic_plugins"
3339 def_threads='#define HAVE_THREADS 0'
3341 echocheck "pthread"
3342 if linux ; then
3343 THREAD_CFLAGS=-D_REENTRANT
3344 elif freebsd || netbsd || openbsd || bsdos ; then
3345 THREAD_CFLAGS=-D_THREAD_SAFE
3347 if test "$_pthreads" = auto ; then
3348 cat > $TMPC << EOF
3349 #include <pthread.h>
3350 void* func(void *arg) { return arg; }
3351 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3353 _pthreads=no
3354 if ! hpux ; then
3355 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3356 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3357 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3358 done
3361 if test "$_pthreads" = yes ; then
3362 test $_ld_pthread && _res_comment="using $_ld_pthread"
3363 def_pthreads='#define HAVE_PTHREADS 1'
3364 def_threads='#define HAVE_THREADS 1'
3365 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3366 else
3367 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3368 def_pthreads='#undef HAVE_PTHREADS'
3369 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3370 mingw32 || _win32dll=no
3372 echores "$_pthreads"
3374 if cygwin ; then
3375 if test "$_pthreads" = yes ; then
3376 def_pthread_cache="#define PTHREAD_CACHE 1"
3377 else
3378 _stream_cache=no
3379 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3383 echocheck "w32threads"
3384 if test "$_pthreads" = yes ; then
3385 _res_comment="using pthread instead"
3386 _w32threads=no
3388 if test "$_w32threads" = auto ; then
3389 _w32threads=no
3390 mingw32 && _w32threads=yes
3392 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3393 echores "$_w32threads"
3395 echocheck "rpath"
3396 netbsd &&_rpath=yes
3397 if test "$_rpath" = yes ; then
3398 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3399 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3400 done
3401 extra_ldflags=$tmp
3403 echores "$_rpath"
3405 echocheck "iconv"
3406 if test "$_iconv" = auto ; then
3407 cat > $TMPC << EOF
3408 #include <stdio.h>
3409 #include <unistd.h>
3410 #include <iconv.h>
3411 #define INBUFSIZE 1024
3412 #define OUTBUFSIZE 4096
3414 char inbuffer[INBUFSIZE];
3415 char outbuffer[OUTBUFSIZE];
3417 int main(void) {
3418 size_t numread;
3419 iconv_t icdsc;
3420 char *tocode="UTF-8";
3421 char *fromcode="cp1250";
3422 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3423 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3424 char *iptr=inbuffer;
3425 char *optr=outbuffer;
3426 size_t inleft=numread;
3427 size_t outleft=OUTBUFSIZE;
3428 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3429 != (size_t)(-1)) {
3430 write(1, outbuffer, OUTBUFSIZE - outleft);
3433 if (iconv_close(icdsc) == -1)
3436 return 0;
3439 _iconv=no
3440 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3441 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3442 _iconv=yes && break
3443 done
3445 if test "$_iconv" = yes ; then
3446 def_iconv='#define CONFIG_ICONV 1'
3447 else
3448 def_iconv='#undef CONFIG_ICONV'
3450 echores "$_iconv"
3453 echocheck "soundcard.h"
3454 _soundcard_h=no
3455 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3456 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3457 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3458 cat > $TMPC << EOF
3459 #include <$_soundcard_header>
3460 int main(void) { return 0; }
3462 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3463 done
3465 if test "$_soundcard_h" = yes ; then
3466 if test $_soundcard_header = "sys/soundcard.h"; then
3467 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3468 else
3469 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3472 echores "$_soundcard_h"
3475 echocheck "sys/dvdio.h"
3476 cat > $TMPC << EOF
3477 #include <unistd.h>
3478 #include <sys/dvdio.h>
3479 int main(void) { return 0; }
3481 _dvdio=no
3482 cc_check && _dvdio=yes
3483 if test "$_dvdio" = yes ; then
3484 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3485 else
3486 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3488 echores "$_dvdio"
3491 echocheck "sys/cdio.h"
3492 cat > $TMPC << EOF
3493 #include <unistd.h>
3494 #include <sys/cdio.h>
3495 int main(void) { return 0; }
3497 _cdio=no
3498 cc_check && _cdio=yes
3499 if test "$_cdio" = yes ; then
3500 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3501 else
3502 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3504 echores "$_cdio"
3507 echocheck "linux/cdrom.h"
3508 cat > $TMPC << EOF
3509 #include <sys/types.h>
3510 #include <linux/cdrom.h>
3511 int main(void) { return 0; }
3513 _cdrom=no
3514 cc_check && _cdrom=yes
3515 if test "$_cdrom" = yes ; then
3516 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3517 else
3518 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3520 echores "$_cdrom"
3523 echocheck "dvd.h"
3524 cat > $TMPC << EOF
3525 #include <dvd.h>
3526 int main(void) { return 0; }
3528 _dvd=no
3529 cc_check && _dvd=yes
3530 if test "$_dvd" = yes ; then
3531 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3532 else
3533 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3535 echores "$_dvd"
3538 if bsdos; then
3539 echocheck "BSDI dvd.h"
3540 cat > $TMPC << EOF
3541 #include <dvd.h>
3542 int main(void) { return 0; }
3544 _bsdi_dvd=no
3545 cc_check && _bsdi_dvd=yes
3546 if test "$_bsdi_dvd" = yes ; then
3547 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3548 else
3549 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3551 echores "$_bsdi_dvd"
3552 fi #if bsdos
3555 if hpux; then
3556 # also used by AIX, but AIX does not support VCD and/or libdvdread
3557 echocheck "HP-UX SCSI header"
3558 cat > $TMPC << EOF
3559 #include <sys/scsi.h>
3560 int main(void) { return 0; }
3562 _hpux_scsi_h=no
3563 cc_check && _hpux_scsi_h=yes
3564 if test "$_hpux_scsi_h" = yes ; then
3565 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3566 else
3567 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3569 echores "$_hpux_scsi_h"
3570 fi #if hpux
3573 if sunos; then
3574 echocheck "userspace SCSI headers (Solaris)"
3575 cat > $TMPC << EOF
3576 #include <unistd.h>
3577 #include <stropts.h>
3578 #include <sys/scsi/scsi_types.h>
3579 #include <sys/scsi/impl/uscsi.h>
3580 int main(void) { return 0; }
3582 _sol_scsi_h=no
3583 cc_check && _sol_scsi_h=yes
3584 if test "$_sol_scsi_h" = yes ; then
3585 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3586 else
3587 def_sol_scsi_h='#undef SOLARIS_USCSI'
3589 echores "$_sol_scsi_h"
3590 fi #if sunos
3593 echocheck "termcap"
3594 if test "$_termcap" = auto ; then
3595 cat > $TMPC <<EOF
3596 #include <stddef.h>
3597 #include <term.h>
3598 int main(void) { tgetent(NULL, NULL); return 0; }
3600 _termcap=no
3601 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3602 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3603 && _termcap=yes && break
3604 done
3606 if test "$_termcap" = yes ; then
3607 def_termcap='#define HAVE_TERMCAP 1'
3608 test $_ld_tmp && _res_comment="using $_ld_tmp"
3609 else
3610 def_termcap='#undef HAVE_TERMCAP'
3612 echores "$_termcap"
3615 echocheck "termios"
3616 def_termios='#undef HAVE_TERMIOS'
3617 def_termios_h='#undef HAVE_TERMIOS_H'
3618 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3619 if test "$_termios" = auto ; then
3620 _termios=no
3621 for _termios_header in "sys/termios.h" "termios.h"; do
3622 cat > $TMPC <<EOF
3623 #include <$_termios_header>
3624 int main(void) { return 0; }
3626 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3627 done
3630 if test "$_termios" = yes ; then
3631 def_termios='#define HAVE_TERMIOS 1'
3632 if test "$_termios_header" = "termios.h" ; then
3633 def_termios_h='#define HAVE_TERMIOS_H 1'
3634 else
3635 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3638 echores "$_termios"
3641 echocheck "shm"
3642 if test "$_shm" = auto ; then
3643 cat > $TMPC << EOF
3644 #include <sys/types.h>
3645 #include <sys/shm.h>
3646 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3648 _shm=no
3649 cc_check && _shm=yes
3651 if test "$_shm" = yes ; then
3652 def_shm='#define HAVE_SHM 1'
3653 else
3654 def_shm='#undef HAVE_SHM'
3656 echores "$_shm"
3659 echocheck "strsep()"
3660 cat > $TMPC << EOF
3661 #include <string.h>
3662 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3664 _strsep=no
3665 cc_check && _strsep=yes
3666 if test "$_strsep" = yes ; then
3667 def_strsep='#define HAVE_STRSEP 1'
3668 _need_strsep=no
3669 else
3670 def_strsep='#undef HAVE_STRSEP'
3671 _need_strsep=yes
3673 echores "$_strsep"
3676 echocheck "vsscanf()"
3677 cat > $TMPC << EOF
3678 #define _ISOC99_SOURCE
3679 #include <stdarg.h>
3680 #include <stdio.h>
3681 int main(void) { vsscanf(0, 0, 0); return 0; }
3683 _vsscanf=no
3684 cc_check && _vsscanf=yes
3685 if test "$_vsscanf" = yes ; then
3686 def_vsscanf='#define HAVE_VSSCANF 1'
3687 _need_vsscanf=no
3688 else
3689 def_vsscanf='#undef HAVE_VSSCANF'
3690 _need_vsscanf=yes
3692 echores "$_vsscanf"
3695 echocheck "swab()"
3696 cat > $TMPC << EOF
3697 #define _XOPEN_SOURCE 600
3698 #include <unistd.h>
3699 int main(void) { swab(0, 0, 0); return 0; }
3701 _swab=no
3702 cc_check && _swab=yes
3703 if test "$_swab" = yes ; then
3704 def_swab='#define HAVE_SWAB 1'
3705 _need_swab=no
3706 else
3707 def_swab='#undef HAVE_SWAB'
3708 _need_swab=yes
3710 echores "$_swab"
3712 echocheck "POSIX select()"
3713 cat > $TMPC << EOF
3714 #include <stdio.h>
3715 #include <stdlib.h>
3716 #include <sys/types.h>
3717 #include <string.h>
3718 #include <sys/time.h>
3719 #include <unistd.h>
3720 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3722 _posix_select=no
3723 def_posix_select='#undef HAVE_POSIX_SELECT'
3724 #select() of kLIBC (OS/2) supports socket only
3725 ! os2 && cc_check && _posix_select=yes \
3726 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3727 echores "$_posix_select"
3730 echocheck "audio select()"
3731 if test "$_select" = no ; then
3732 def_select='#undef HAVE_AUDIO_SELECT'
3733 elif test "$_select" = yes ; then
3734 def_select='#define HAVE_AUDIO_SELECT 1'
3736 echores "$_select"
3739 echocheck "gettimeofday()"
3740 cat > $TMPC << EOF
3741 #include <stdio.h>
3742 #include <sys/time.h>
3743 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3745 _gettimeofday=no
3746 cc_check && _gettimeofday=yes
3747 if test "$_gettimeofday" = yes ; then
3748 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3749 _need_gettimeofday=no
3750 else
3751 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3752 _need_gettimeofday=yes
3754 echores "$_gettimeofday"
3757 echocheck "glob()"
3758 cat > $TMPC << EOF
3759 #include <stdio.h>
3760 #include <glob.h>
3761 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3763 _glob=no
3764 cc_check && _glob=yes
3765 if test "$_glob" = yes ; then
3766 def_glob='#define HAVE_GLOB 1'
3767 _need_glob=no
3768 else
3769 def_glob='#undef HAVE_GLOB'
3770 _need_glob=yes
3772 echores "$_glob"
3775 echocheck "setenv()"
3776 cat > $TMPC << EOF
3777 #include <stdlib.h>
3778 int main(void) { setenv("","",0); return 0; }
3780 _setenv=no
3781 cc_check && _setenv=yes
3782 if test "$_setenv" = yes ; then
3783 def_setenv='#define HAVE_SETENV 1'
3784 _need_setenv=no
3785 else
3786 def_setenv='#undef HAVE_SETENV'
3787 _need_setenv=yes
3789 echores "$_setenv"
3792 if sunos; then
3793 echocheck "sysi86()"
3794 cat > $TMPC << EOF
3795 #include <sys/sysi86.h>
3796 int main(void) { sysi86(0); return 0; }
3798 _sysi86=no
3799 cc_check && _sysi86=yes
3800 if test "$_sysi86" = yes ; then
3801 def_sysi86='#define HAVE_SYSI86 1'
3802 cat > $TMPC << EOF
3803 #include <sys/sysi86.h>
3804 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3806 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3807 else
3808 def_sysi86='#undef HAVE_SYSI86'
3810 echores "$_sysi86"
3811 fi #if sunos
3814 echocheck "sys/sysinfo.h"
3815 cat > $TMPC << EOF
3816 #include <sys/sysinfo.h>
3817 int main(void) {
3818 struct sysinfo s_info;
3819 sysinfo(&s_info);
3820 return 0;
3823 _sys_sysinfo=no
3824 cc_check && _sys_sysinfo=yes
3825 if test "$_sys_sysinfo" = yes ; then
3826 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3827 else
3828 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3830 echores "$_sys_sysinfo"
3833 if darwin; then
3835 echocheck "Mac OS X Finder Support"
3836 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3837 if test "$_macosx_finder" = yes ; then
3838 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3839 extra_ldflags="$extra_ldflags -framework Carbon"
3841 echores "$_macosx_finder"
3843 echocheck "Mac OS X Bundle file locations"
3844 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3845 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3846 if test "$_macosx_bundle" = yes ; then
3847 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3848 extra_ldflags="$extra_ldflags -framework Carbon"
3850 echores "$_macosx_bundle"
3852 echocheck "Apple Remote"
3853 if test "$_apple_remote" = auto ; then
3854 _apple_remote=no
3855 cat > $TMPC <<EOF
3856 #include <stdio.h>
3857 #include <IOKit/IOCFPlugIn.h>
3858 int main(void) {
3859 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3860 CFMutableDictionaryRef hidMatchDictionary;
3861 IOReturn ioReturnValue;
3863 // Set up a matching dictionary to search the I/O Registry by class.
3864 // name for all HID class devices
3865 hidMatchDictionary = IOServiceMatching("AppleIRController");
3867 // Now search I/O Registry for matching devices.
3868 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3869 hidMatchDictionary, &hidObjectIterator);
3871 // If search is unsuccessful, return nonzero.
3872 if (ioReturnValue != kIOReturnSuccess ||
3873 !IOIteratorIsValid(hidObjectIterator)) {
3874 return 1;
3876 return 0;
3879 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3881 if test "$_apple_remote" = yes ; then
3882 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3883 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3884 else
3885 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3887 echores "$_apple_remote"
3889 fi #if darwin
3891 if linux; then
3893 echocheck "Apple IR"
3894 if test "$_apple_ir" = auto ; then
3895 _apple_ir=no
3896 cat > $TMPC <<EOF
3897 #include <linux/types.h>
3898 #include <linux/input.h>
3899 int main(void) {
3900 struct input_event ev;
3901 struct input_id id;
3902 return 0;
3905 cc_check && tmp_run && _apple_ir=yes
3907 if test "$_apple_ir" = yes ; then
3908 def_apple_ir='#define CONFIG_APPLE_IR 1'
3909 else
3910 def_apple_ir='#undef CONFIG_APPLE_IR'
3912 echores "$_apple_ir"
3913 fi #if linux
3915 echocheck "pkg-config"
3916 _pkg_config=pkg-config
3917 if $($_pkg_config --version > /dev/null 2>&1); then
3918 if test "$_ld_static"; then
3919 _pkg_config="$_pkg_config --static"
3921 echores "yes"
3922 else
3923 _pkg_config=false
3924 echores "no"
3928 echocheck "Samba support (libsmbclient)"
3929 if test "$_smb" = yes; then
3930 extra_ldflags="$extra_ldflags -lsmbclient"
3932 if test "$_smb" = auto; then
3933 _smb=no
3934 cat > $TMPC << EOF
3935 #include <libsmbclient.h>
3936 int main(void) { smbc_opendir("smb://"); return 0; }
3938 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3939 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3940 _smb=yes && break
3941 done
3944 if test "$_smb" = yes; then
3945 def_smb="#define CONFIG_LIBSMBCLIENT"
3946 _inputmodules="smb $_inputmodules"
3947 else
3948 def_smb="#undef CONFIG_LIBSMBCLIENT"
3949 _noinputmodules="smb $_noinputmodules"
3951 echores "$_smb"
3954 #########
3955 # VIDEO #
3956 #########
3959 echocheck "tdfxfb"
3960 if test "$_tdfxfb" = yes ; then
3961 def_tdfxfb='#define CONFIG_TDFXFB 1'
3962 _vomodules="tdfxfb $_vomodules"
3963 else
3964 def_tdfxfb='#undef CONFIG_TDFXFB'
3965 _novomodules="tdfxfb $_novomodules"
3967 echores "$_tdfxfb"
3969 echocheck "s3fb"
3970 if test "$_s3fb" = yes ; then
3971 def_s3fb='#define CONFIG_S3FB 1'
3972 _vomodules="s3fb $_vomodules"
3973 else
3974 def_s3fb='#undef CONFIG_S3FB'
3975 _novomodules="s3fb $_novomodules"
3977 echores "$_s3fb"
3979 echocheck "wii"
3980 if test "$_wii" = yes ; then
3981 def_wii='#define CONFIG_WII 1'
3982 _vomodules="wii $_vomodules"
3983 else
3984 def_wii='#undef CONFIG_WII'
3985 _novomodules="wii $_novomodules"
3987 echores "$_wii"
3989 echocheck "tdfxvid"
3990 if test "$_tdfxvid" = yes ; then
3991 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3992 _vomodules="tdfx_vid $_vomodules"
3993 else
3994 def_tdfxvid='#undef CONFIG_TDFX_VID'
3995 _novomodules="tdfx_vid $_novomodules"
3997 echores "$_tdfxvid"
3999 echocheck "xvr100"
4000 if test "$_xvr100" = auto ; then
4001 cat > $TMPC << EOF
4002 #include <unistd.h>
4003 #include <sys/fbio.h>
4004 #include <sys/visual_io.h>
4005 int main(void) {
4006 struct vis_identifier ident;
4007 struct fbgattr attr;
4008 ioctl(0, VIS_GETIDENTIFIER, &ident);
4009 ioctl(0, FBIOGATTR, &attr);
4010 return 0;
4013 _xvr100=no
4014 cc_check && _xvr100=yes
4016 if test "$_xvr100" = yes ; then
4017 def_xvr100='#define CONFIG_XVR100 1'
4018 _vomodules="xvr100 $_vomodules"
4019 else
4020 def_tdfxvid='#undef CONFIG_XVR100'
4021 _novomodules="xvr100 $_novomodules"
4023 echores "$_xvr100"
4025 echocheck "tga"
4026 if test "$_tga" = yes ; then
4027 def_tga='#define CONFIG_TGA 1'
4028 _vomodules="tga $_vomodules"
4029 else
4030 def_tga='#undef CONFIG_TGA'
4031 _novomodules="tga $_novomodules"
4033 echores "$_tga"
4036 echocheck "md5sum support"
4037 if test "$_md5sum" = yes; then
4038 def_md5sum="#define CONFIG_MD5SUM"
4039 _vomodules="md5sum $_vomodules"
4040 else
4041 def_md5sum="#undef CONFIG_MD5SUM"
4042 _novomodules="md5sum $_novomodules"
4044 echores "$_md5sum"
4047 echocheck "yuv4mpeg support"
4048 if test "$_yuv4mpeg" = yes; then
4049 def_yuv4mpeg="#define CONFIG_YUV4MPEG"
4050 _vomodules="yuv4mpeg $_vomodules"
4051 else
4052 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4053 _novomodules="yuv4mpeg $_novomodules"
4055 echores "$_yuv4mpeg"
4058 echocheck "bl"
4059 if test "$_bl" = yes ; then
4060 def_bl='#define CONFIG_BL 1'
4061 _vomodules="bl $_vomodules"
4062 else
4063 def_bl='#undef CONFIG_BL'
4064 _novomodules="bl $_novomodules"
4066 echores "$_bl"
4069 echocheck "DirectFB"
4070 if test "$_directfb" = auto ; then
4071 _directfb=no
4072 cat > $TMPC <<EOF
4073 #include <directfb.h>
4074 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4076 for _inc_tmp in "" -I/usr/local/include/directfb \
4077 -I/usr/include/directfb -I/usr/local/include; do
4078 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4079 extra_cflags="$extra_cflags $_inc_tmp" && break
4080 done
4083 dfb_version() {
4084 expr $1 \* 65536 + $2 \* 256 + $3
4087 if test "$_directfb" = yes; then
4088 cat > $TMPC << EOF
4089 #include <directfb_version.h>
4091 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4094 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4095 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4096 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4097 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4098 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4099 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4100 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4101 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4102 _res_comment="$_directfb_version"
4103 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4104 else
4105 def_directfb_version='#undef DIRECTFBVERSION'
4106 _directfb=no
4107 _res_comment="version >=0.9.13 required"
4109 else
4110 _directfb=no
4111 _res_comment="failed to get version"
4114 echores "$_directfb"
4116 if test "$_directfb" = yes ; then
4117 def_directfb='#define CONFIG_DIRECTFB 1'
4118 _vomodules="directfb $_vomodules"
4119 libs_mplayer="$libs_mplayer -ldirectfb"
4120 else
4121 def_directfb='#undef CONFIG_DIRECTFB'
4122 _novomodules="directfb $_novomodules"
4124 if test "$_dfbmga" = yes; then
4125 _vomodules="dfbmga $_vomodules"
4126 def_dfbmga='#define CONFIG_DFBMGA 1'
4127 else
4128 _novomodules="dfbmga $_novomodules"
4129 def_dfbmga='#undef CONFIG_DFBMGA'
4133 echocheck "X11 headers presence"
4134 _x11_headers="no"
4135 _res_comment="check if the dev(el) packages are installed"
4136 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4137 if test -f "$I/X11/Xlib.h" ; then
4138 _x11_headers="yes"
4139 _res_comment=""
4140 break
4142 done
4143 if test $_cross_compile = no; then
4144 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4145 /usr/include/X11R6 /usr/openwin/include ; do
4146 if test -f "$I/X11/Xlib.h" ; then
4147 extra_cflags="$extra_cflags -I$I"
4148 _x11_headers="yes"
4149 _res_comment="using $I"
4150 break
4152 done
4154 echores "$_x11_headers"
4157 echocheck "X11"
4158 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4159 cat > $TMPC <<EOF
4160 #include <X11/Xlib.h>
4161 #include <X11/Xutil.h>
4162 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4164 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4165 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4166 -L/usr/lib ; do
4167 if netbsd; then
4168 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4169 else
4170 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4172 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4173 && _x11=yes && break
4174 done
4176 if test "$_x11" = yes ; then
4177 def_x11='#define CONFIG_X11 1'
4178 _vomodules="x11 xover $_vomodules"
4179 else
4180 _x11=no
4181 def_x11='#undef CONFIG_X11'
4182 _novomodules="x11 $_novomodules"
4183 _res_comment="check if the dev(el) packages are installed"
4184 # disable stuff that depends on X
4185 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4187 echores "$_x11"
4189 echocheck "Xss screensaver extensions"
4190 if test "$_xss" = auto ; then
4191 cat > $TMPC << EOF
4192 #include <X11/Xlib.h>
4193 #include <X11/extensions/scrnsaver.h>
4194 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4196 _xss=no
4197 cc_check -lXss && _xss=yes
4199 if test "$_xss" = yes ; then
4200 def_xss='#define CONFIG_XSS 1'
4201 libs_mplayer="$libs_mplayer -lXss"
4202 else
4203 def_xss='#undef CONFIG_XSS'
4205 echores "$_xss"
4207 echocheck "DPMS"
4208 _xdpms3=no
4209 _xdpms4=no
4210 if test "$_x11" = yes ; then
4211 cat > $TMPC <<EOF
4212 #include <X11/Xmd.h>
4213 #include <X11/Xlib.h>
4214 #include <X11/Xutil.h>
4215 #include <X11/Xatom.h>
4216 #include <X11/extensions/dpms.h>
4217 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4219 cc_check -lXdpms && _xdpms3=yes
4220 cat > $TMPC <<EOF
4221 #include <X11/Xlib.h>
4222 #include <X11/extensions/dpms.h>
4223 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4225 cc_check -lXext && _xdpms4=yes
4227 if test "$_xdpms4" = yes ; then
4228 def_xdpms='#define CONFIG_XDPMS 1'
4229 _res_comment="using Xdpms 4"
4230 echores "yes"
4231 elif test "$_xdpms3" = yes ; then
4232 def_xdpms='#define CONFIG_XDPMS 1'
4233 libs_mplayer="$libs_mplayer -lXdpms"
4234 _res_comment="using Xdpms 3"
4235 echores "yes"
4236 else
4237 def_xdpms='#undef CONFIG_XDPMS'
4238 echores "no"
4242 echocheck "Xv"
4243 if test "$_xv" = auto ; then
4244 cat > $TMPC <<EOF
4245 #include <X11/Xlib.h>
4246 #include <X11/extensions/Xvlib.h>
4247 int main(void) {
4248 (void) XvGetPortAttribute(0, 0, 0, 0);
4249 (void) XvQueryPortAttributes(0, 0, 0);
4250 return 0; }
4252 _xv=no
4253 cc_check -lXv && _xv=yes
4256 if test "$_xv" = yes ; then
4257 def_xv='#define CONFIG_XV 1'
4258 libs_mplayer="$libs_mplayer -lXv"
4259 _vomodules="xv $_vomodules"
4260 else
4261 def_xv='#undef CONFIG_XV'
4262 _novomodules="xv $_novomodules"
4264 echores "$_xv"
4267 echocheck "XvMC"
4268 if test "$_xv" = yes && test "$_xvmc" != no ; then
4269 _xvmc=no
4270 cat > $TMPC <<EOF
4271 #include <X11/Xlib.h>
4272 #include <X11/extensions/Xvlib.h>
4273 #include <X11/extensions/XvMClib.h>
4274 int main(void) {
4275 (void) XvMCQueryExtension(0,0,0);
4276 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4277 return 0; }
4279 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4280 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4281 done
4283 if test "$_xvmc" = yes ; then
4284 def_xvmc='#define CONFIG_XVMC 1'
4285 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4286 _vomodules="xvmc $_vomodules"
4287 _res_comment="using $_xvmclib"
4288 else
4289 def_xvmc='#define CONFIG_XVMC 0'
4290 _novomodules="xvmc $_novomodules"
4291 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4293 echores "$_xvmc"
4296 echocheck "VDPAU"
4297 if test "$_vdpau" = auto ; then
4298 _vdpau=no
4299 if test "$_dl" = yes ; then
4300 cat > $TMPC <<EOF
4301 #include <vdpau/vdpau_x11.h>
4302 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4304 cc_check && _vdpau=yes
4307 if test "$_vdpau" = yes ; then
4308 def_vdpau='#define CONFIG_VDPAU 1'
4309 _vomodules="vdpau $_vomodules"
4310 else
4311 def_vdpau='#define CONFIG_VDPAU 0'
4312 _novomodules="vdpau $_novomodules"
4313 _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//)
4315 echores "$_vdpau"
4318 echocheck "Xinerama"
4319 if test "$_xinerama" = auto ; then
4320 cat > $TMPC <<EOF
4321 #include <X11/Xlib.h>
4322 #include <X11/extensions/Xinerama.h>
4323 int main(void) { (void) XineramaIsActive(0); return 0; }
4325 _xinerama=no
4326 cc_check -lXinerama && _xinerama=yes
4329 if test "$_xinerama" = yes ; then
4330 def_xinerama='#define CONFIG_XINERAMA 1'
4331 libs_mplayer="$libs_mplayer -lXinerama"
4332 else
4333 def_xinerama='#undef CONFIG_XINERAMA'
4335 echores "$_xinerama"
4338 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4339 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4340 # named 'X extensions' or something similar.
4341 # This check may be useful for future mplayer versions (to change resolution)
4342 # If you run into problems, remove '-lXxf86vm'.
4343 echocheck "Xxf86vm"
4344 if test "$_vm" = auto ; then
4345 cat > $TMPC <<EOF
4346 #include <X11/Xlib.h>
4347 #include <X11/extensions/xf86vmode.h>
4348 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4350 _vm=no
4351 cc_check -lXxf86vm && _vm=yes
4353 if test "$_vm" = yes ; then
4354 def_vm='#define CONFIG_XF86VM 1'
4355 libs_mplayer="$libs_mplayer -lXxf86vm"
4356 else
4357 def_vm='#undef CONFIG_XF86VM'
4359 echores "$_vm"
4361 # Check for the presence of special keycodes, like audio control buttons
4362 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4363 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4364 # have these new keycodes.
4365 echocheck "XF86keysym"
4366 if test "$_xf86keysym" = auto; then
4367 _xf86keysym=no
4368 cat > $TMPC <<EOF
4369 #include <X11/Xlib.h>
4370 #include <X11/XF86keysym.h>
4371 int main(void) { return XF86XK_AudioPause; }
4373 cc_check && _xf86keysym=yes
4375 if test "$_xf86keysym" = yes ; then
4376 def_xf86keysym='#define CONFIG_XF86XK 1'
4377 else
4378 def_xf86keysym='#undef CONFIG_XF86XK'
4380 echores "$_xf86keysym"
4382 echocheck "DGA"
4383 if test "$_dga2" = auto && test "$_x11" = yes ; then
4384 cat > $TMPC << EOF
4385 #include <X11/Xlib.h>
4386 #include <X11/extensions/xf86dga.h>
4387 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4389 _dga2=no
4390 cc_check -lXxf86dga && _dga2=yes
4392 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4393 cat > $TMPC << EOF
4394 #include <X11/Xlib.h>
4395 #include <X11/extensions/xf86dga.h>
4396 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4398 _dga1=no
4399 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4402 _dga=no
4403 def_dga='#undef CONFIG_DGA'
4404 def_dga1='#undef CONFIG_DGA1'
4405 def_dga2='#undef CONFIG_DGA2'
4406 if test "$_dga1" = yes ; then
4407 _dga=yes
4408 def_dga1='#define CONFIG_DGA1 1'
4409 _res_comment="using DGA 1.0"
4410 elif test "$_dga2" = yes ; then
4411 _dga=yes
4412 def_dga2='#define CONFIG_DGA2 1'
4413 _res_comment="using DGA 2.0"
4415 if test "$_dga" = yes ; then
4416 def_dga='#define CONFIG_DGA 1'
4417 libs_mplayer="$libs_mplayer -lXxf86dga"
4418 _vomodules="dga $_vomodules"
4419 else
4420 _novomodules="dga $_novomodules"
4422 echores "$_dga"
4425 echocheck "3dfx"
4426 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4427 def_3dfx='#define CONFIG_3DFX 1'
4428 _vomodules="3dfx $_vomodules"
4429 else
4430 def_3dfx='#undef CONFIG_3DFX'
4431 _novomodules="3dfx $_novomodules"
4433 echores "$_3dfx"
4436 echocheck "OpenGL"
4437 #Note: this test is run even with --enable-gl since we autodetect linker flags
4438 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4439 cat > $TMPC << EOF
4440 #ifdef GL_WIN32
4441 #include <windows.h>
4442 #include <GL/gl.h>
4443 #else
4444 #include <GL/gl.h>
4445 #include <X11/Xlib.h>
4446 #include <GL/glx.h>
4447 #endif
4448 int main(void) {
4449 #ifdef GL_WIN32
4450 HDC dc;
4451 wglCreateContext(dc);
4452 #else
4453 glXCreateContext(NULL, NULL, NULL, True);
4454 #endif
4455 glFinish();
4456 return 0;
4459 _gl=no
4460 if cc_check -lGL $_ld_lm ; then
4461 _gl=yes
4462 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4463 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4464 _gl=yes
4465 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4466 elif cc_check -DGL_WIN32 -lopengl32 ; then
4467 _gl=yes
4468 _gl_win32=yes
4469 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4471 else
4472 _gl=no
4474 if test "$_gl" = yes ; then
4475 def_gl='#define CONFIG_GL 1'
4476 if test "$_gl_win32" = yes ; then
4477 def_gl_win32='#define GL_WIN32 1'
4478 _res_comment="win32 version"
4480 _vomodules="opengl $_vomodules"
4481 else
4482 def_gl='#undef CONFIG_GL'
4483 def_gl_win32='#undef GL_WIN32'
4484 _novomodules="opengl $_novomodules"
4486 echores "$_gl"
4489 echocheck "VIDIX"
4490 def_vidix='#undef CONFIG_VIDIX'
4491 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4492 _vidix_drv_cyberblade=no
4493 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4494 _vidix_drv_ivtv=no
4495 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4496 _vidix_drv_ivtv=no
4497 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4498 _vidix_drv_mach64=no
4499 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4500 _vidix_drv_mga=no
4501 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4502 _vidix_drv_mga_crtc2=no
4503 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4504 _vidix_drv_nvidia=no
4505 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4506 _vidix_drv_pm2=no
4507 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4508 _vidix_drv_pm3=no
4509 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4510 _vidix_drv_radeon=no
4511 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4512 _vidix_drv_rage128=no
4513 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4514 _vidix_drv_s3=no
4515 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4516 _vidix_drv_sh_veu=no
4517 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4518 _vidix_drv_sis=no
4519 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4520 _vidix_drv_unichrome=no
4521 if test "$_vidix" = auto ; then
4522 _vidix=no
4523 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4524 && _vidix=yes
4525 (ppc || alpha) && linux && _vidix=yes
4527 echores "$_vidix"
4529 if test "$_vidix" = yes ; then
4530 def_vidix='#define CONFIG_VIDIX 1'
4531 _vomodules="cvidix $_vomodules"
4532 test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4533 test $_ivtv = "yes" || _vidix_drivers=$(echo $_vidix_drivers | sed s/ivtv//)
4535 # some vidix drivers are architecture and os specific, discard them elsewhere
4536 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4537 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4539 for driver in $_vidix_drivers ; do
4540 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4541 eval _vidix_drv_${driver}=yes
4542 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4543 done
4545 echocheck "VIDIX PCI device name database"
4546 echores "$_vidix_pcidb"
4547 if test "$_vidix_pcidb" = yes ; then
4548 _vidix_pcidb_val=1
4549 else
4550 _vidix_pcidb_val=0
4553 echocheck "VIDIX dhahelper support"
4554 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4555 echores "$_dhahelper"
4557 echocheck "VIDIX svgalib_helper support"
4558 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4559 echores "$_svgalib_helper"
4561 else
4562 _novomodules="cvidix $_novomodules"
4565 if test "$_vidix" = yes && win32; then
4566 winvidix=yes
4567 _vomodules="winvidix $_vomodules"
4568 libs_mplayer="$libs_mplayer -lgdi32"
4569 else
4570 _novomodules="winvidix $_novomodules"
4572 if test "$_vidix" = yes && test "$_x11" = yes; then
4573 xvidix=yes
4574 _vomodules="xvidix $_vomodules"
4575 else
4576 _novomodules="xvidix $_novomodules"
4579 echocheck "/dev/mga_vid"
4580 if test "$_mga" = auto ; then
4581 _mga=no
4582 test -c /dev/mga_vid && _mga=yes
4584 if test "$_mga" = yes ; then
4585 def_mga='#define CONFIG_MGA 1'
4586 _vomodules="mga $_vomodules"
4587 else
4588 def_mga='#undef CONFIG_MGA'
4589 _novomodules="mga $_novomodules"
4591 echores "$_mga"
4594 echocheck "xmga"
4595 if test "$_xmga" = auto ; then
4596 _xmga=no
4597 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4599 if test "$_xmga" = yes ; then
4600 def_xmga='#define CONFIG_XMGA 1'
4601 _vomodules="xmga $_vomodules"
4602 else
4603 def_xmga='#undef CONFIG_XMGA'
4604 _novomodules="xmga $_novomodules"
4606 echores "$_xmga"
4609 echocheck "GGI"
4610 if test "$_ggi" = auto ; then
4611 cat > $TMPC << EOF
4612 #include <ggi/ggi.h>
4613 int main(void) { ggiInit(); return 0; }
4615 _ggi=no
4616 cc_check -lggi && _ggi=yes
4618 if test "$_ggi" = yes ; then
4619 def_ggi='#define CONFIG_GGI 1'
4620 libs_mplayer="$libs_mplayer -lggi"
4621 _vomodules="ggi $_vomodules"
4622 else
4623 def_ggi='#undef CONFIG_GGI'
4624 _novomodules="ggi $_novomodules"
4626 echores "$_ggi"
4628 echocheck "GGI extension: libggiwmh"
4629 if test "$_ggiwmh" = auto ; then
4630 _ggiwmh=no
4631 cat > $TMPC << EOF
4632 #include <ggi/ggi.h>
4633 #include <ggi/wmh.h>
4634 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4636 cc_check -lggi -lggiwmh && _ggiwmh=yes
4638 # needed to get right output on obscure combination
4639 # like --disable-ggi --enable-ggiwmh
4640 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4641 def_ggiwmh='#define CONFIG_GGIWMH 1'
4642 libs_mplayer="$libs_mplayer -lggiwmh"
4643 else
4644 _ggiwmh=no
4645 def_ggiwmh='#undef CONFIG_GGIWMH'
4647 echores "$_ggiwmh"
4650 echocheck "AA"
4651 if test "$_aa" = auto ; then
4652 cat > $TMPC << EOF
4653 #include <aalib.h>
4654 extern struct aa_hardware_params aa_defparams;
4655 extern struct aa_renderparams aa_defrenderparams;
4656 int main(void) {
4657 aa_context *c;
4658 aa_renderparams *p;
4659 (void) aa_init(0, 0, 0);
4660 c = aa_autoinit(&aa_defparams);
4661 p = aa_getrenderparams();
4662 aa_autoinitkbd(c,0);
4663 return 0; }
4665 _aa=no
4666 for _ld_tmp in "-laa" ; do
4667 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4668 done
4670 if test "$_aa" = yes ; then
4671 def_aa='#define CONFIG_AA 1'
4672 if cygwin ; then
4673 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4675 _vomodules="aa $_vomodules"
4676 else
4677 def_aa='#undef CONFIG_AA'
4678 _novomodules="aa $_novomodules"
4680 echores "$_aa"
4683 echocheck "CACA"
4684 if test "$_caca" = auto ; then
4685 _caca=no
4686 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4687 cat > $TMPC << EOF
4688 #include <caca.h>
4689 #ifdef CACA_API_VERSION_1
4690 #include <caca0.h>
4691 #endif
4692 int main(void) { (void) caca_init(); return 0; }
4694 cc_check $(caca-config --libs) && _caca=yes
4697 if test "$_caca" = yes ; then
4698 def_caca='#define CONFIG_CACA 1'
4699 extra_cflags="$extra_cflags $(caca-config --cflags)"
4700 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4701 _vomodules="caca $_vomodules"
4702 else
4703 def_caca='#undef CONFIG_CACA'
4704 _novomodules="caca $_novomodules"
4706 echores "$_caca"
4709 echocheck "SVGAlib"
4710 if test "$_svga" = auto ; then
4711 cat > $TMPC << EOF
4712 #include <vga.h>
4713 int main(void) { return 0; }
4715 _svga=no
4716 cc_check -lvga $_ld_lm && _svga=yes
4718 if test "$_svga" = yes ; then
4719 def_svga='#define CONFIG_SVGALIB 1'
4720 libs_mplayer="$libs_mplayer -lvga"
4721 _vomodules="svga $_vomodules"
4722 else
4723 def_svga='#undef CONFIG_SVGALIB'
4724 _novomodules="svga $_novomodules"
4726 echores "$_svga"
4729 echocheck "FBDev"
4730 if test "$_fbdev" = auto ; then
4731 _fbdev=no
4732 linux && _fbdev=yes
4734 if test "$_fbdev" = yes ; then
4735 def_fbdev='#define CONFIG_FBDEV 1'
4736 _vomodules="fbdev $_vomodules"
4737 else
4738 def_fbdev='#undef CONFIG_FBDEV'
4739 _novomodules="fbdev $_novomodules"
4741 echores "$_fbdev"
4745 echocheck "DVB"
4746 if test "$_dvb" = auto ; then
4747 _dvb=no
4748 cat >$TMPC << EOF
4749 #include <poll.h>
4750 #include <sys/ioctl.h>
4751 #include <stdio.h>
4752 #include <time.h>
4753 #include <unistd.h>
4754 #include <ost/dmx.h>
4755 #include <ost/frontend.h>
4756 #include <ost/sec.h>
4757 #include <ost/video.h>
4758 #include <ost/audio.h>
4759 int main(void) {return 0;}
4761 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4762 cc_check $_inc_tmp && _dvb=yes && \
4763 extra_cflags="$extra_cflags $_inc_tmp" && break
4764 done
4766 echores "$_dvb"
4767 if test "$_dvb" = yes ; then
4768 def_dvb='#define CONFIG_DVB 1'
4769 def_dvbin='#define CONFIG_DVBIN 1'
4770 _aomodules="mpegpes(dvb) $_aomodules"
4771 _vomodules="mpegpes(dvb) $_vomodules"
4774 echocheck "DVB HEAD"
4775 if test "$_dvbhead" = auto ; then
4776 _dvbhead=no
4778 cat >$TMPC << EOF
4779 #include <poll.h>
4780 #include <sys/ioctl.h>
4781 #include <stdio.h>
4782 #include <time.h>
4783 #include <unistd.h>
4784 #include <linux/dvb/dmx.h>
4785 #include <linux/dvb/frontend.h>
4786 #include <linux/dvb/video.h>
4787 #include <linux/dvb/audio.h>
4788 int main(void) {return 0;}
4790 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4791 cc_check $_inc_tmp && _dvbhead=yes && \
4792 extra_cflags="$extra_cflags $_inc_tmp" && break
4793 done
4795 echores "$_dvbhead"
4796 if test "$_dvbhead" = yes ; then
4797 def_dvb='#define CONFIG_DVB 1'
4798 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4799 def_dvbin='#define CONFIG_DVBIN 1'
4800 _aomodules="mpegpes(dvb) $_aomodules"
4801 _vomodules="mpegpes(dvb) $_vomodules"
4804 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4805 def_dvb='#undef CONFIG_DVB'
4806 def_dvb_head='#undef CONFIG_DVB_HEAD'
4807 def_dvbin='#undef CONFIG_DVBIN '
4808 _aomodules="mpegpes(file) $_aomodules"
4809 _vomodules="mpegpes(file) $_vomodules"
4812 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4813 _dvbin=yes
4814 _inputmodules="dvb $_inputmodules"
4815 else
4816 _dvbin=no
4817 _noinputmodules="dvb $_noinputmodules"
4821 if darwin; then
4823 echocheck "Quartz"
4824 if test "$_quartz" = auto ; then
4825 cat > $TMPC <<EOF
4826 #include <Carbon/Carbon.h>
4827 #include <QuickTime/QuickTime.h>
4828 int main(void) {
4829 EnterMovies();
4830 ExitMovies();
4831 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4832 return 0;
4835 _quartz=no
4836 cc_check -framework Carbon -framework QuickTime && _quartz=yes
4838 if test "$_quartz" = yes ; then
4839 libs_mplayer="$libs_mplayer -framework Carbon -framework QuickTime"
4840 def_quartz='#define CONFIG_QUARTZ 1'
4841 _vomodules="quartz $_vomodules"
4842 else
4843 def_quartz='#undef CONFIG_QUARTZ'
4844 _novomodules="quartz $_novomodules"
4846 echores $_quartz
4848 echocheck "CoreVideo"
4849 if test "$_corevideo" = auto ; then
4850 cat > $TMPC <<EOF
4851 #include <Carbon/Carbon.h>
4852 #include <CoreServices/CoreServices.h>
4853 #include <OpenGL/OpenGL.h>
4854 #include <QuartzCore/CoreVideo.h>
4855 int main(void) { return 0; }
4857 _corevideo=no
4858 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4860 if test "$_corevideo" = yes ; then
4861 _vomodules="corevideo $_vomodules"
4862 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4863 def_corevideo='#define CONFIG_COREVIDEO 1'
4864 else
4865 _novomodules="corevideo $_novomodules"
4866 def_corevideo='#undef CONFIG_COREVIDEO'
4868 echores "$_corevideo"
4870 fi #if darwin
4873 echocheck "PNG support"
4874 if test "$_png" = auto ; then
4875 _png=no
4876 if irix ; then
4877 # Don't check for -lpng on irix since it has its own libpng
4878 # incompatible with the GNU libpng
4879 _res_comment="disabled on irix (not GNU libpng)"
4880 else
4881 cat > $TMPC << EOF
4882 #include <png.h>
4883 #include <string.h>
4884 int main(void) {
4885 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4886 printf("libpng: %s\n", png_libpng_ver);
4887 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4890 if cc_check -lpng -lz $_ld_lm ; then
4891 if tmp_run ; then
4892 _png=yes
4893 else
4894 _res_comment="mismatch of library and header versions"
4899 echores "$_png"
4900 if test "$_png" = yes ; then
4901 def_png='#define CONFIG_PNG 1'
4902 extra_ldflags="$extra_ldflags -lpng -lz"
4903 _vomodules="png $_vomodules"
4904 else
4905 def_png='#undef CONFIG_PNG'
4906 _novomodules="png $_novomodules"
4909 echocheck "MNG support"
4910 if test "$_mng" = auto ; then
4911 _mng=no
4912 cat > $TMPC << EOF
4913 #include <libmng.h>
4914 int main(void) {
4915 const char * p_ver = mng_version_text();
4916 return !p_ver || p_ver[0] == 0;
4919 if cc_check -lmng -lz $_ld_lm ; then
4920 _mng=yes
4923 echores "$_mng"
4924 if test "$_mng" = yes ; then
4925 def_mng='#define CONFIG_MNG 1'
4926 extra_ldflags="$extra_ldflags -lmng -lz"
4927 else
4928 def_mng='#undef CONFIG_MNG'
4931 echocheck "JPEG support"
4932 if test "$_jpeg" = auto ; then
4933 _jpeg=no
4934 cat > $TMPC << EOF
4935 #include <stdio.h>
4936 #include <stdlib.h>
4937 #include <setjmp.h>
4938 #include <string.h>
4939 #include <jpeglib.h>
4940 int main(void) { return 0; }
4942 if cc_check -ljpeg $_ld_lm ; then
4943 if tmp_run ; then
4944 _jpeg=yes
4948 echores "$_jpeg"
4950 if test "$_jpeg" = yes ; then
4951 def_jpeg='#define CONFIG_JPEG 1'
4952 _vomodules="jpeg $_vomodules"
4953 extra_ldflags="$extra_ldflags -ljpeg"
4954 else
4955 def_jpeg='#undef CONFIG_JPEG'
4956 _novomodules="jpeg $_novomodules"
4961 echocheck "PNM support"
4962 if test "$_pnm" = yes; then
4963 def_pnm="#define CONFIG_PNM 1"
4964 _vomodules="pnm $_vomodules"
4965 else
4966 def_pnm="#undef CONFIG_PNM"
4967 _novomodules="pnm $_novomodules"
4969 echores "$_pnm"
4973 echocheck "GIF support"
4974 # This is to appease people who want to force gif support.
4975 # If it is forced to yes, then we still do checks to determine
4976 # which gif library to use.
4977 if test "$_gif" = yes ; then
4978 _force_gif=yes
4979 _gif=auto
4982 if test "$_gif" = auto ; then
4983 _gif=no
4984 cat > $TMPC << EOF
4985 #include <gif_lib.h>
4986 int main(void) { return 0; }
4988 for _ld_gif in "-lungif" "-lgif" ; do
4989 cc_check $_ld_gif && tmp_run && _gif=yes && break
4990 done
4993 # If no library was found, and the user wants support forced,
4994 # then we force it on with libgif, as this is the safest
4995 # assumption IMHO. (libungif & libregif both create symbolic
4996 # links to libgif. We also assume that no x11 support is needed,
4997 # because if you are forcing this, then you _should_ know what
4998 # you are doing. [ Besides, package maintainers should never
4999 # have compiled x11 deps into libungif in the first place. ] )
5000 # </rant>
5001 # --Joey
5002 if test "$_force_gif" = yes && test "$_gif" = no ; then
5003 _gif=yes
5004 _ld_gif="-lgif"
5007 if test "$_gif" = yes ; then
5008 def_gif='#define CONFIG_GIF 1'
5009 _codecmodules="gif $_codecmodules"
5010 _vomodules="gif89a $_vomodules"
5011 _res_comment="old version, some encoding functions disabled"
5012 def_gif_4='#undef CONFIG_GIF_4'
5013 extra_ldflags="$extra_ldflags $_ld_gif"
5015 cat > $TMPC << EOF
5016 #include <signal.h>
5017 #include <gif_lib.h>
5018 void catch() { exit(1); }
5019 int main(void) {
5020 signal(SIGSEGV, catch); // catch segfault
5021 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5022 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5023 return 0;
5026 if cc_check "$_ld_gif" && tmp_run ; then
5027 def_gif_4='#define CONFIG_GIF_4 1'
5028 _res_comment=""
5030 else
5031 def_gif='#undef CONFIG_GIF'
5032 def_gif_4='#undef CONFIG_GIF_4'
5033 _novomodules="gif89a $_novomodules"
5034 _nocodecmodules="gif $_nocodecmodules"
5036 echores "$_gif"
5039 case "$_gif" in yes*)
5040 echocheck "broken giflib workaround"
5041 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5043 cat > $TMPC << EOF
5044 #include <gif_lib.h>
5045 int main(void) {
5046 GifFileType gif;
5047 printf("UserData is at address %p\n", gif.UserData);
5048 return 0;
5051 if cc_check "$_ld_gif" && tmp_run ; then
5052 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5053 echores "disabled"
5054 else
5055 echores "enabled"
5058 esac
5061 echocheck "VESA support"
5062 if test "$_vesa" = auto ; then
5063 cat > $TMPC << EOF
5064 #include <vbe.h>
5065 int main(void) { vbeVersion(); return 0; }
5067 _vesa=no
5068 cc_check -lvbe -llrmi && _vesa=yes
5070 if test "$_vesa" = yes ; then
5071 def_vesa='#define CONFIG_VESA 1'
5072 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5073 _vomodules="vesa $_vomodules"
5074 else
5075 def_vesa='#undef CONFIG_VESA'
5076 _novomodules="vesa $_novomodules"
5078 echores "$_vesa"
5080 #################
5081 # VIDEO + AUDIO #
5082 #################
5085 echocheck "SDL"
5086 if test -z "$_sdlconfig" ; then
5087 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5088 _sdlconfig="sdl-config"
5089 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5090 _sdlconfig="sdl11-config"
5091 else
5092 _sdlconfig=false
5095 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5096 cat > $TMPC << EOF
5097 #include <SDL.h>
5098 int main(int argc, char *argv[]) {
5099 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5100 return 0;
5103 _sdl=no
5104 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5105 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5106 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5107 if test "$_sdlversion" -gt 116 ; then
5108 if test "$_sdlversion" -lt 121 ; then
5109 def_sdlbuggy='#define BUGGY_SDL'
5110 else
5111 def_sdlbuggy='#undef BUGGY_SDL'
5113 _sdl=yes
5118 if test "$_sdl" = yes ; then
5119 def_sdl='#define CONFIG_SDL 1'
5120 if cygwin ; then
5121 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5122 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5123 elif mingw32 ; then
5124 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5125 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5126 else
5127 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5128 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5130 _vomodules="sdl $_vomodules"
5131 _aomodules="sdl $_aomodules"
5132 _res_comment="using $_sdlconfig"
5133 else
5134 def_sdl='#undef CONFIG_SDL'
5135 _novomodules="sdl $_novomodules"
5136 _noaomodules="sdl $_noaomodules"
5138 echores "$_sdl"
5141 if os2 ; then
5142 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5143 if test "$_kva" = auto; then
5144 cat > $TMPC << EOF
5145 #include <os2.h>
5146 #include <kva.h>
5147 int main( void ) { return 0; }
5149 _kva=no;
5150 cc_check -lkva && _kva=yes
5152 if test "$_kva" = yes ; then
5153 def_kva='#define CONFIG_KVA 1'
5154 libs_mplayer="$libs_mplayer -lkva"
5155 _vomodules="kva $_vomodules"
5156 else
5157 def_kva='#undef CONFIG_KVA'
5158 _novomodules="kva $_novomodules"
5160 echores "$_kva"
5161 fi #if os2
5164 if win32; then
5166 echocheck "Windows waveout"
5167 if test "$_win32waveout" = auto ; then
5168 cat > $TMPC << EOF
5169 #include <windows.h>
5170 #include <mmsystem.h>
5171 int main(void) { return 0; }
5173 _win32waveout=no
5174 cc_check -lwinmm && _win32waveout=yes
5176 if test "$_win32waveout" = yes ; then
5177 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5178 libs_mplayer="$libs_mplayer -lwinmm"
5179 _aomodules="win32 $_aomodules"
5180 else
5181 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5182 _noaomodules="win32 $_noaomodules"
5184 echores "$_win32waveout"
5186 echocheck "Direct3D"
5187 if test "$_direct3d" = auto ; then
5188 cat > $TMPC << EOF
5189 #include <windows.h>
5190 #include <d3d9.h>
5191 int main(void) { return 0; }
5193 _direct3d=no
5194 cc_check -ld3d9 && _direct3d=yes
5196 if test "$_direct3d" = yes ; then
5197 def_direct3d='#define CONFIG_DIRECT3D 1'
5198 libs_mplayer="$libs_mplayer -ld3d9"
5199 _vomodules="direct3d $_vomodules"
5200 else
5201 def_direct3d='#undef CONFIG_DIRECT3D'
5202 _novomodules="direct3d $_novomodules"
5204 echores "$_direct3d"
5206 echocheck "Directx"
5207 if test "$_directx" = auto ; then
5208 cat > $TMPC << EOF
5209 #include <windows.h>
5210 #include <ddraw.h>
5211 #include <dsound.h>
5212 int main(void) { return 0; }
5214 _directx=no
5215 cc_check -lgdi32 && _directx=yes
5217 if test "$_directx" = yes ; then
5218 def_directx='#define CONFIG_DIRECTX 1'
5219 libs_mplayer="$libs_mplayer -lgdi32"
5220 _vomodules="directx $_vomodules"
5221 _aomodules="dsound $_aomodules"
5222 else
5223 def_directx='#undef CONFIG_DIRECTX'
5224 _novomodules="directx $_novomodules"
5225 _noaomodules="dsound $_noaomodules"
5227 echores "$_directx"
5229 fi #if win32; then
5232 echocheck "DXR2"
5233 if test "$_dxr2" = auto; then
5234 _dxr2=no
5235 cat > $TMPC << EOF
5236 #include <dxr2ioctl.h>
5237 int main(void) { return 0; }
5239 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5240 cc_check $_inc_tmp && _dxr2=yes && \
5241 extra_cflags="$extra_cflags $_inc_tmp" && break
5242 done
5244 if test "$_dxr2" = yes; then
5245 def_dxr2='#define CONFIG_DXR2 1'
5246 _aomodules="dxr2 $_aomodules"
5247 _vomodules="dxr2 $_vomodules"
5248 else
5249 def_dxr2='#undef CONFIG_DXR2'
5250 _noaomodules="dxr2 $_noaomodules"
5251 _novomodules="dxr2 $_novomodules"
5253 echores "$_dxr2"
5255 echocheck "DXR3/H+"
5256 if test "$_dxr3" = auto ; then
5257 cat > $TMPC << EOF
5258 #include <linux/em8300.h>
5259 int main(void) { return 0; }
5261 _dxr3=no
5262 cc_check && _dxr3=yes
5264 if test "$_dxr3" = yes ; then
5265 def_dxr3='#define CONFIG_DXR3 1'
5266 _vomodules="dxr3 $_vomodules"
5267 else
5268 def_dxr3='#undef CONFIG_DXR3'
5269 _novomodules="dxr3 $_novomodules"
5271 echores "$_dxr3"
5274 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5275 if test "$_ivtv" = auto ; then
5276 cat > $TMPC << EOF
5277 #include <stdlib.h>
5278 #include <inttypes.h>
5279 #include <linux/types.h>
5280 #include <linux/videodev2.h>
5281 #include <linux/ivtv.h>
5282 #include <sys/ioctl.h>
5283 int main(void) {
5284 struct ivtv_cfg_stop_decode sd;
5285 struct ivtv_cfg_start_decode sd1;
5286 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5287 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5288 return 0; }
5290 _ivtv=no
5291 cc_check && _ivtv=yes
5293 if test "$_ivtv" = yes ; then
5294 def_ivtv='#define CONFIG_IVTV 1'
5295 _vomodules="ivtv $_vomodules"
5296 _aomodules="ivtv $_aomodules"
5297 else
5298 def_ivtv='#undef CONFIG_IVTV'
5299 _novomodules="ivtv $_novomodules"
5300 _noaomodules="ivtv $_noaomodules"
5302 echores "$_ivtv"
5305 echocheck "V4L2 MPEG Decoder"
5306 if test "$_v4l2" = auto ; then
5307 cat > $TMPC << EOF
5308 #include <stdlib.h>
5309 #include <inttypes.h>
5310 #include <linux/types.h>
5311 #include <linux/videodev2.h>
5312 #include <linux/version.h>
5313 int main(void) {
5314 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5315 #error kernel headers too old, need 2.6.22
5316 bad_kernel_version();
5317 #endif
5318 struct v4l2_ext_controls ctrls;
5319 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5320 return 0;
5323 _v4l2=no
5324 cc_check && _v4l2=yes
5326 if test "$_v4l2" = yes ; then
5327 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5328 _vomodules="v4l2 $_vomodules"
5329 _aomodules="v4l2 $_aomodules"
5330 else
5331 def_v4l2='#undef CONFIG_V4L2_DECODER'
5332 _novomodules="v4l2 $_novomodules"
5333 _noaomodules="v4l2 $_noaomodules"
5335 echores "$_v4l2"
5339 #########
5340 # AUDIO #
5341 #########
5344 echocheck "OSS Audio"
5345 if test "$_ossaudio" = auto ; then
5346 cat > $TMPC << EOF
5347 #include <sys/ioctl.h>
5348 #include <$_soundcard_header>
5349 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5351 _ossaudio=no
5352 cc_check && _ossaudio=yes
5354 if test "$_ossaudio" = yes ; then
5355 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5356 _aomodules="oss $_aomodules"
5357 if test "$_linux_devfs" = yes; then
5358 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5359 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5360 else
5361 cat > $TMPC << EOF
5362 #include <sys/ioctl.h>
5363 #include <$_soundcard_header>
5364 #ifdef OPEN_SOUND_SYSTEM
5365 int main(void) { return 0; }
5366 #else
5367 #error Not the real thing
5368 #endif
5370 _real_ossaudio=no
5371 cc_check && _real_ossaudio=yes
5372 if test "$_real_ossaudio" = yes; then
5373 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5374 # Check for OSS4 headers (override default headers)
5375 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5376 if test -f /etc/oss.conf; then
5377 . /etc/oss.conf
5378 _ossinc="$OSSLIBDIR/include"
5379 if test -f "$_ossinc/sys/soundcard.h"; then
5380 extra_cflags="-I$_ossinc $extra_cflags"
5383 elif netbsd || openbsd ; then
5384 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5385 extra_ldflags="$extra_ldflags -lossaudio"
5386 else
5387 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5389 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5391 else
5392 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5393 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5394 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5395 _noaomodules="oss $_noaomodules"
5397 echores "$_ossaudio"
5400 echocheck "aRts"
5401 if test "$_arts" = auto ; then
5402 _arts=no
5403 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5405 cat > $TMPC << EOF
5406 #include <artsc.h>
5407 int main(void) { return 0; }
5409 cc_check $(artsc-config --libs) $(artsc-config --cflags) && tmp_run && _arts=yes
5414 if test "$_arts" = yes ; then
5415 def_arts='#define CONFIG_ARTS 1'
5416 _aomodules="arts $_aomodules"
5417 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5418 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5419 else
5420 _noaomodules="arts $_noaomodules"
5422 echores "$_arts"
5425 echocheck "EsounD"
5426 if test "$_esd" = auto ; then
5427 _esd=no
5428 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5430 cat > $TMPC << EOF
5431 #include <esd.h>
5432 int main(void) { int fd = esd_open_sound("test"); return fd; }
5434 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5438 echores "$_esd"
5440 if test "$_esd" = yes ; then
5441 def_esd='#define CONFIG_ESD 1'
5442 _aomodules="esd $_aomodules"
5443 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5444 extra_cflags="$extra_cflags $(esd-config --cflags)"
5446 echocheck "esd_get_latency()"
5447 cat > $TMPC << EOF
5448 #include <esd.h>
5449 int main(void) { return esd_get_latency(0); }
5451 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY'
5452 echores "$_esd_latency"
5453 else
5454 def_esd='#undef CONFIG_ESD'
5455 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5456 _noaomodules="esd $_noaomodules"
5460 echocheck "NAS"
5461 if test "$_nas" = auto ; then
5462 cat > $TMPC << EOF
5463 #include <audio/audiolib.h>
5464 int main(void) { return 0; }
5466 _nas=no
5467 cc_check $_ld_lm -laudio -lXt && _nas=yes
5469 if test "$_nas" = yes ; then
5470 def_nas='#define CONFIG_NAS 1'
5471 libs_mplayer="$libs_mplayer -laudio -lXt"
5472 _aomodules="nas $_aomodules"
5473 else
5474 _noaomodules="nas $_noaomodules"
5475 def_nas='#undef CONFIG_NAS'
5477 echores "$_nas"
5480 echocheck "pulse"
5481 if test "$_pulse" = auto ; then
5482 _pulse=no
5483 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5485 cat > $TMPC << EOF
5486 #include <pulse/pulseaudio.h>
5487 int main(void) { return 0; }
5489 cc_check $($_pkg_config --libs --cflags libpulse) && tmp_run && _pulse=yes
5493 echores "$_pulse"
5495 if test "$_pulse" = yes ; then
5496 def_pulse='#define CONFIG_PULSE 1'
5497 _aomodules="pulse $_aomodules"
5498 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5499 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5500 else
5501 def_pulse='#undef CONFIG_PULSE'
5502 _noaomodules="pulse $_noaomodules"
5506 echocheck "JACK"
5507 if test "$_jack" = auto ; then
5508 _jack=yes
5510 cat > $TMPC << EOF
5511 #include <jack/jack.h>
5512 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5514 if cc_check -ljack ; then
5515 libs_mplayer="$libs_mplayer -ljack"
5516 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5517 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5518 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5519 else
5520 _jack=no
5524 if test "$_jack" = yes ; then
5525 def_jack='#define CONFIG_JACK 1'
5526 _aomodules="jack $_aomodules"
5527 else
5528 _noaomodules="jack $_noaomodules"
5530 echores "$_jack"
5532 echocheck "OpenAL"
5533 if test "$_openal" = auto ; then
5534 _openal=no
5535 cat > $TMPC << EOF
5536 #ifdef OPENAL_AL_H
5537 #include <OpenAL/al.h>
5538 #else
5539 #include <AL/al.h>
5540 #endif
5541 int main(void) {
5542 alSourceQueueBuffers(0, 0, 0);
5543 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5544 return 0;
5547 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5548 cc_check $I && _openal=yes && break
5549 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5550 done
5551 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5553 if test "$_openal" = yes ; then
5554 def_openal='#define CONFIG_OPENAL 1'
5555 _aomodules="openal $_aomodules"
5556 else
5557 _noaomodules="openal $_noaomodules"
5559 echores "$_openal"
5561 echocheck "ALSA audio"
5562 if test "$_alloca" != yes ; then
5563 _alsa=no
5564 _res_comment="alloca missing"
5566 if test "$_alsa" != no ; then
5567 _alsa=no
5568 cat > $TMPC << EOF
5569 #include <sys/time.h>
5570 #include <sys/asoundlib.h>
5571 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5572 #error "alsa version != 0.5.x"
5573 #endif
5574 int main(void) { return 0; }
5576 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5578 cat > $TMPC << EOF
5579 #include <sys/time.h>
5580 #include <sys/asoundlib.h>
5581 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5582 #error "alsa version != 0.9.x"
5583 #endif
5584 int main(void) { return 0; }
5586 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5587 cat > $TMPC << EOF
5588 #include <sys/time.h>
5589 #include <alsa/asoundlib.h>
5590 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5591 #error "alsa version != 0.9.x"
5592 #endif
5593 int main(void) { return 0; }
5595 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5597 cat > $TMPC << EOF
5598 #include <sys/time.h>
5599 #include <sys/asoundlib.h>
5600 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5601 #error "alsa version != 1.0.x"
5602 #endif
5603 int main(void) { return 0; }
5605 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5606 cat > $TMPC << EOF
5607 #include <sys/time.h>
5608 #include <alsa/asoundlib.h>
5609 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5610 #error "alsa version != 1.0.x"
5611 #endif
5612 int main(void) { return 0; }
5614 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5616 def_alsa='#undef CONFIG_ALSA'
5617 def_alsa5='#undef CONFIG_ALSA5'
5618 def_alsa9='#undef CONFIG_ALSA9'
5619 def_alsa1x='#undef CONFIG_ALSA1X'
5620 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5621 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5622 if test "$_alsaver" ; then
5623 _alsa=yes
5624 if test "$_alsaver" = '0.5.x' ; then
5625 _alsa5=yes
5626 _aomodules="alsa5 $_aomodules"
5627 def_alsa5='#define CONFIG_ALSA5 1'
5628 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5629 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5630 elif test "$_alsaver" = '0.9.x-sys' ; then
5631 _alsa9=yes
5632 _aomodules="alsa $_aomodules"
5633 def_alsa='#define CONFIG_ALSA 1'
5634 def_alsa9='#define CONFIG_ALSA9 1'
5635 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5636 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5637 elif test "$_alsaver" = '0.9.x-alsa' ; then
5638 _alsa9=yes
5639 _aomodules="alsa $_aomodules"
5640 def_alsa='#define CONFIG_ALSA 1'
5641 def_alsa9='#define CONFIG_ALSA9 1'
5642 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5643 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5644 elif test "$_alsaver" = '1.0.x-sys' ; then
5645 _alsa1x=yes
5646 _aomodules="alsa $_aomodules"
5647 def_alsa='#define CONFIG_ALSA 1'
5648 def_alsa1x="#define CONFIG_ALSA1X 1"
5649 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5650 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5651 elif test "$_alsaver" = '1.0.x-alsa' ; then
5652 _alsa1x=yes
5653 _aomodules="alsa $_aomodules"
5654 def_alsa='#define CONFIG_ALSA 1'
5655 def_alsa1x="#define CONFIG_ALSA1X 1"
5656 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5657 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5658 else
5659 _alsa=no
5660 _res_comment="unknown version"
5662 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5663 else
5664 _noaomodules="alsa $_noaomodules"
5666 echores "$_alsa"
5669 echocheck "Sun audio"
5670 if test "$_sunaudio" = auto ; then
5671 cat > $TMPC << EOF
5672 #include <sys/types.h>
5673 #include <sys/audioio.h>
5674 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5676 _sunaudio=no
5677 cc_check && _sunaudio=yes
5679 if test "$_sunaudio" = yes ; then
5680 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5681 _aomodules="sun $_aomodules"
5682 else
5683 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5684 _noaomodules="sun $_noaomodules"
5686 echores "$_sunaudio"
5689 def_mlib='#define CONFIG_MLIB 0'
5690 if sunos; then
5691 echocheck "Sun mediaLib"
5692 if test "$_mlib" = auto ; then
5693 _mlib=no
5694 cat > $TMPC << EOF
5695 #include <mlib.h>
5696 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5698 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5700 echores "$_mlib"
5701 fi #if sunos
5704 if darwin; then
5705 echocheck "CoreAudio"
5706 if test "$_coreaudio" = auto ; then
5707 cat > $TMPC <<EOF
5708 #include <CoreAudio/CoreAudio.h>
5709 #include <AudioToolbox/AudioToolbox.h>
5710 #include <AudioUnit/AudioUnit.h>
5711 int main(void) { return 0; }
5713 _coreaudio=no
5714 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5716 if test "$_coreaudio" = yes ; then
5717 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5718 def_coreaudio='#define CONFIG_COREAUDIO 1'
5719 _aomodules="coreaudio $_aomodules"
5720 else
5721 def_coreaudio='#undef CONFIG_COREAUDIO'
5722 _noaomodules="coreaudio $_noaomodules"
5724 echores $_coreaudio
5725 fi #if darwin
5728 if irix; then
5729 echocheck "SGI audio"
5730 if test "$_sgiaudio" = auto ; then
5731 # check for SGI audio
5732 cat > $TMPC << EOF
5733 #include <dmedia/audio.h>
5734 int main(void) { return 0; }
5736 _sgiaudio=no
5737 cc_check && _sgiaudio=yes
5739 if test "$_sgiaudio" = "yes" ; then
5740 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5741 libs_mplayer="$libs_mplayer -laudio"
5742 _aomodules="sgi $_aomodules"
5743 else
5744 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5745 _noaomodules="sgi $_noaomodules"
5747 echores "$_sgiaudio"
5748 fi #if irix
5751 if os2 ; then
5752 echocheck "DART"
5753 if test "$_dart" = auto; then
5754 cat > $TMPC << EOF
5755 #include <os2.h>
5756 #include <dart.h>
5757 int main( void ) { return 0; }
5759 _dart=no;
5760 cc_check -ldart && _dart=yes
5762 if test "$_dart" = yes ; then
5763 def_dart='#define CONFIG_DART 1'
5764 libs_mplayer="$libs_mplayer -ldart"
5765 _aomodules="dart $_aomodules"
5766 else
5767 def_dart='#undef CONFIG_DART'
5768 _noaomodules="dart $_noaomodules"
5770 echores "$_dart"
5771 fi #if os2
5774 # set default CD/DVD devices
5775 if win32 || os2 ; then
5776 default_cdrom_device="D:"
5777 elif darwin ; then
5778 default_cdrom_device="/dev/disk1"
5779 elif dragonfly ; then
5780 default_cdrom_device="/dev/cd0"
5781 elif freebsd ; then
5782 default_cdrom_device="/dev/acd0"
5783 elif openbsd ; then
5784 default_cdrom_device="/dev/rcd0a"
5785 elif sunos ; then
5786 default_cdrom_device="/vol/dev/aliases/cdrom0"
5787 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5788 # file system and the volfs service.
5789 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5790 elif amigaos ; then
5791 default_cdrom_device="a1ide.device:2"
5792 else
5793 default_cdrom_device="/dev/cdrom"
5796 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5797 default_dvd_device=$default_cdrom_device
5798 elif darwin ; then
5799 default_dvd_device="/dev/rdiskN"
5800 else
5801 default_dvd_device="/dev/dvd"
5805 echocheck "VCD support"
5806 if test "$_vcd" = auto; then
5807 _vcd=no
5808 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5809 _vcd=yes
5810 elif mingw32; then
5811 cat > $TMPC << EOF
5812 #include <ddk/ntddcdrm.h>
5813 int main(void) { return 0; }
5815 cc_check && _vcd=yes
5818 if test "$_vcd" = yes; then
5819 _inputmodules="vcd $_inputmodules"
5820 def_vcd='#define CONFIG_VCD 1'
5821 else
5822 def_vcd='#undef CONFIG_VCD'
5823 _noinputmodules="vcd $_noinputmodules"
5824 _res_comment="not supported on this OS"
5826 echores "$_vcd"
5830 echocheck "dvdread"
5831 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5832 _dvdread_internal=no
5834 if test "$_dvdread_internal" = auto ; then
5835 _dvdread_internal=no
5836 _dvdread=no
5837 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5838 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5839 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5840 || darwin || win32 || os2; then
5841 _dvdread_internal=yes
5842 _dvdread=yes
5843 extra_cflags="-Ilibdvdread4 $extra_cflags"
5845 elif test "$_dvdread" = auto ; then
5846 _dvdread=no
5847 if test "$_dl" = yes; then
5848 cat > $TMPC << EOF
5849 #include <inttypes.h>
5850 #include <dvdread/dvd_reader.h>
5851 #include <dvdread/ifo_types.h>
5852 #include <dvdread/ifo_read.h>
5853 #include <dvdread/nav_read.h>
5854 int main(void) { return 0; }
5856 _dvdreadcflags=$($_dvdreadconfig --cflags)
5857 _dvdreadlibs=$($_dvdreadconfig --libs)
5858 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5859 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5860 _dvdread=yes
5861 extra_cflags="$extra_cflags $_dvdreadcflags"
5862 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5863 _res_comment="external"
5868 if test "$_dvdread_internal" = yes; then
5869 def_dvdread='#define CONFIG_DVDREAD 1'
5870 _inputmodules="dvdread(internal) $_inputmodules"
5871 _largefiles=yes
5872 _res_comment="internal"
5873 elif test "$_dvdread" = yes; then
5874 def_dvdread='#define CONFIG_DVDREAD 1'
5875 _largefiles=yes
5876 extra_ldflags="$extra_ldflags -ldvdread"
5877 _inputmodules="dvdread(external) $_inputmodules"
5878 _res_comment="external"
5879 else
5880 def_dvdread='#undef CONFIG_DVDREAD'
5881 _noinputmodules="dvdread $_noinputmodules"
5883 echores "$_dvdread"
5886 echocheck "internal libdvdcss"
5887 if test "$_libdvdcss_internal" = auto ; then
5888 _libdvdcss_internal=no
5889 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5890 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5892 if test "$_libdvdcss_internal" = yes ; then
5893 if linux || netbsd || openbsd || bsdos ; then
5894 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5895 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5896 elif freebsd || dragonfly ; then
5897 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5898 elif darwin ; then
5899 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5900 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5901 elif cygwin ; then
5902 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5903 elif beos ; then
5904 cflags_libdvdcss="-DSYS_BEOS"
5905 elif os2 ; then
5906 cflags_libdvdcss="-DSYS_OS2"
5908 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5909 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5910 _inputmodules="libdvdcss(internal) $_inputmodules"
5911 _largefiles=yes
5912 else
5913 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5915 echores "$_libdvdcss_internal"
5918 echocheck "cdparanoia"
5919 if test "$_cdparanoia" = auto ; then
5920 cat > $TMPC <<EOF
5921 #include <cdda_interface.h>
5922 #include <cdda_paranoia.h>
5923 // This need a better test. How ?
5924 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5926 _cdparanoia=no
5927 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5928 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5929 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5930 done
5932 if test "$_cdparanoia" = yes ; then
5933 _cdda='yes'
5934 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5935 openbsd && extra_ldflags="$extra_ldflags -lutil"
5937 echores "$_cdparanoia"
5940 echocheck "libcdio"
5941 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5942 cat > $TMPC << EOF
5943 #include <stdio.h>
5944 #include <cdio/version.h>
5945 #include <cdio/cdda.h>
5946 #include <cdio/paranoia.h>
5947 int main(void) {
5948 void *test = cdda_verbose_set;
5949 printf("%s\n", CDIO_VERSION);
5950 return test == (void *)1;
5953 _libcdio=no
5954 for _ld_tmp in "" "-lwinmm" ; do
5955 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5956 cc_check $_ld_tmp $_ld_lm \
5957 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5958 done
5959 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5960 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5961 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5962 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5963 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5966 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5967 _cdda='yes'
5968 def_libcdio='#define CONFIG_LIBCDIO'
5969 def_havelibcdio='yes'
5970 else
5971 if test "$_cdparanoia" = yes ; then
5972 _res_comment="using cdparanoia"
5974 def_libcdio='#undef CONFIG_LIBCDIO'
5975 def_havelibcdio='no'
5977 echores "$_libcdio"
5979 if test "$_cdda" = yes ; then
5980 test $_cddb = auto && test $_network = yes && _cddb=yes
5981 def_cdparanoia='#define CONFIG_CDDA'
5982 _inputmodules="cdda $_inputmodules"
5983 else
5984 def_cdparanoia='#undef CONFIG_CDDA'
5985 _noinputmodules="cdda $_noinputmodules"
5988 if test "$_cddb" = yes ; then
5989 def_cddb='#define CONFIG_CDDB'
5990 _inputmodules="cddb $_inputmodules"
5991 else
5992 _cddb=no
5993 def_cddb='#undef CONFIG_CDDB'
5994 _noinputmodules="cddb $_noinputmodules"
5997 echocheck "bitmap font support"
5998 if test "$_bitmap_font" = yes ; then
5999 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6000 else
6001 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6003 echores "$_bitmap_font"
6006 echocheck "freetype >= 2.0.9"
6008 # freetype depends on iconv
6009 if test "$_iconv" = no ; then
6010 _freetype=no
6011 _res_comment="iconv support needed"
6014 if test "$_freetype" = auto ; then
6015 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6016 cat > $TMPC << EOF
6017 #include <stdio.h>
6018 #include <ft2build.h>
6019 #include FT_FREETYPE_H
6020 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6021 #error "Need FreeType 2.0.9 or newer"
6022 #endif
6023 int main(void) {
6024 FT_Library library;
6025 FT_Int major=-1,minor=-1,patch=-1;
6026 int err=FT_Init_FreeType(&library);
6027 if (err) {
6028 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
6029 exit(err);
6031 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
6032 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
6033 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
6034 (int)major,(int)minor,(int)patch );
6035 if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) {
6036 printf("Library and header version mismatch! Fix it in your distribution!\n");
6037 exit(1);
6039 return 0;
6042 _freetype=no
6043 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _freetype=yes
6044 else
6045 _freetype=no
6048 if test "$_freetype" = yes ; then
6049 def_freetype='#define CONFIG_FREETYPE'
6050 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6051 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6052 else
6053 def_freetype='#undef CONFIG_FREETYPE'
6055 echores "$_freetype"
6057 if test "$_freetype" = no ; then
6058 _fontconfig=no
6059 _res_comment="FreeType support needed"
6061 echocheck "fontconfig"
6062 if test "$_fontconfig" = auto ; then
6063 cat > $TMPC << EOF
6064 #include <stdio.h>
6065 #include <stdlib.h>
6066 #include <fontconfig/fontconfig.h>
6067 int main(void) {
6068 int err = FcInit();
6069 if (err == FcFalse) {
6070 printf("Couldn't initialize fontconfig lib\n");
6071 exit(err);
6073 return 0;
6076 _fontconfig=no
6077 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6078 _ld_tmp="-lfontconfig $_ld_tmp"
6079 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6080 done
6081 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6082 _inc_tmp=$($_pkg_config --cflags fontconfig)
6083 _ld_tmp=$($_pkg_config --libs fontconfig)
6084 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6085 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6088 if test "$_fontconfig" = yes ; then
6089 def_fontconfig='#define CONFIG_FONTCONFIG'
6090 else
6091 def_fontconfig='#undef CONFIG_FONTCONFIG'
6093 echores "$_fontconfig"
6096 echocheck "SSA/ASS support"
6097 # libass depends on FreeType
6098 if test "$_freetype" = no ; then
6099 _ass=no
6100 _res_comment="FreeType support needed"
6103 if test "$_ass" = auto ; then
6104 cat > $TMPC << EOF
6105 #include <ft2build.h>
6106 #include FT_FREETYPE_H
6107 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6108 #error "Need FreeType 2.1.8 or newer"
6109 #endif
6110 int main(void) { return 0; }
6112 _ass=no
6113 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _ass=yes
6114 if test "$_ass" = no ; then
6115 _res_comment="FreeType >= 2.1.8 needed"
6118 if test "$_ass" = yes ; then
6119 def_ass='#define CONFIG_ASS'
6120 else
6121 def_ass='#undef CONFIG_ASS'
6123 echores "$_ass"
6126 echocheck "fribidi with charsets"
6127 if test "$_fribidi" = auto ; then
6128 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6129 cat > $TMPC << EOF
6130 #include <stdio.h>
6131 /* workaround for fribidi 0.10.4 and below */
6132 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6133 #include <fribidi/fribidi.h>
6134 int main(void) {
6135 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6136 printf("Fribidi headers are not consistents with the library!\n");
6137 exit(1);
6139 return 0;
6142 _fribidi=no
6143 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && tmp_run && _fribidi=yes
6144 else
6145 _fribidi=no
6148 if test "$_fribidi" = yes ; then
6149 def_fribidi='#define CONFIG_FRIBIDI'
6150 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6151 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6152 else
6153 def_fribidi='#undef CONFIG_FRIBIDI'
6155 echores "$_fribidi"
6158 echocheck "ENCA"
6159 if test "$_enca" = auto ; then
6160 cat > $TMPC << EOF
6161 #include <sys/types.h>
6162 #include <enca.h>
6163 int main(void) {
6164 const char **langs;
6165 size_t langcnt;
6166 langs = enca_get_languages(&langcnt);
6167 return 0;
6170 _enca=no
6171 cc_check -lenca $_ld_lm && _enca=yes
6173 if test "$_enca" = yes ; then
6174 def_enca='#define CONFIG_ENCA 1'
6175 extra_ldflags="$extra_ldflags -lenca"
6176 else
6177 def_enca='#undef CONFIG_ENCA'
6179 echores "$_enca"
6182 echocheck "zlib"
6183 cat > $TMPC << EOF
6184 #include <zlib.h>
6185 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6187 _zlib=no
6188 cc_check -lz && _zlib=yes
6189 if test "$_zlib" = yes ; then
6190 def_zlib='#define CONFIG_ZLIB 1'
6191 extra_ldflags="$extra_ldflags -lz"
6192 else
6193 def_zlib='#define CONFIG_ZLIB 0'
6194 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6195 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER//)
6197 echores "$_zlib"
6200 echocheck "bzlib"
6201 bzlib=no
6202 def_bzlib='#define CONFIG_BZLIB 0'
6203 cat > $TMPC << EOF
6204 #include <bzlib.h>
6205 int main(void) { BZ2_bzlibVersion(); return 0; }
6207 cc_check -lbz2 && bzlib=yes
6208 if test "$bzlib" = yes ; then
6209 def_bzlib='#define CONFIG_BZLIB 1'
6210 extra_ldflags="$extra_ldflags -lbz2"
6212 echores "$bzlib"
6215 echocheck "RTC"
6216 if test "$_rtc" = auto ; then
6217 cat > $TMPC << EOF
6218 #include <sys/ioctl.h>
6219 #ifdef __linux__
6220 #include <linux/rtc.h>
6221 #else
6222 #include <rtc.h>
6223 #define RTC_PIE_ON RTCIO_PIE_ON
6224 #endif
6225 int main(void) { return RTC_PIE_ON; }
6227 _rtc=no
6228 cc_check && _rtc=yes
6229 ppc && _rtc=no
6231 if test "$_rtc" = yes ; then
6232 def_rtc='#define HAVE_RTC 1'
6233 else
6234 def_rtc='#undef HAVE_RTC'
6236 echores "$_rtc"
6239 echocheck "liblzo2 support"
6240 if test "$_liblzo" = auto ; then
6241 _liblzo=no
6242 cat > $TMPC << EOF
6243 #include <lzo/lzo1x.h>
6244 int main(void) { lzo_init();return 0; }
6246 cc_check -llzo2 && _liblzo=yes
6248 if test "$_liblzo" = yes ; then
6249 def_liblzo='#define CONFIG_LIBLZO 1'
6250 extra_ldflags="$extra_ldflags -llzo2"
6251 _codecmodules="liblzo $_codecmodules"
6252 else
6253 def_liblzo='#undef CONFIG_LIBLZO'
6254 _nocodecmodules="liblzo $_nocodecmodules"
6256 echores "$_liblzo"
6259 echocheck "mad support"
6260 if test "$_mad" = auto ; then
6261 _mad=no
6262 cat > $TMPC << EOF
6263 #include <mad.h>
6264 int main(void) { return 0; }
6266 cc_check -lmad && _mad=yes
6268 if test "$_mad" = yes ; then
6269 def_mad='#define CONFIG_LIBMAD 1'
6270 extra_ldflags="$extra_ldflags -lmad"
6271 _codecmodules="libmad $_codecmodules"
6272 else
6273 def_mad='#undef CONFIG_LIBMAD'
6274 _nocodecmodules="libmad $_nocodecmodules"
6276 echores "$_mad"
6278 echocheck "Twolame"
6279 if test "$_twolame" = auto ; then
6280 cat > $TMPC <<EOF
6281 #include <twolame.h>
6282 int main(void) { twolame_init(); return 0; }
6284 _twolame=no
6285 cc_check -ltwolame $_ld_lm && _twolame=yes
6287 if test "$_twolame" = yes ; then
6288 def_twolame='#define CONFIG_TWOLAME 1'
6289 libs_mencoder="$libs_mencoder -ltwolame"
6290 _codecmodules="twolame $_codecmodules"
6291 else
6292 def_twolame='#undef CONFIG_TWOLAME'
6293 _nocodecmodules="twolame $_nocodecmodules"
6295 echores "$_twolame"
6297 echocheck "Toolame"
6298 if test "$_toolame" = auto ; then
6299 _toolame=no
6300 if test "$_twolame" = yes ; then
6301 _res_comment="disabled by twolame"
6302 else
6303 cat > $TMPC <<EOF
6304 #include <toolame.h>
6305 int main(void) { toolame_init(); return 0; }
6307 cc_check -ltoolame $_ld_lm && _toolame=yes
6310 if test "$_toolame" = yes ; then
6311 def_toolame='#define CONFIG_TOOLAME 1'
6312 libs_mencoder="$libs_mencoder -ltoolame"
6313 _codecmodules="toolame $_codecmodules"
6314 else
6315 def_toolame='#undef CONFIG_TOOLAME'
6316 _nocodecmodules="toolame $_nocodecmodules"
6318 if test "$_toolamedir" ; then
6319 _res_comment="using $_toolamedir"
6321 echores "$_toolame"
6323 echocheck "OggVorbis support"
6324 if test "$_tremor_internal" = yes; then
6325 _libvorbis=no
6326 elif test "$_tremor" = auto; then
6327 _tremor=no
6328 cat > $TMPC << EOF
6329 #include <tremor/ivorbiscodec.h>
6330 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6332 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6334 if test "$_libvorbis" = auto; then
6335 _libvorbis=no
6336 cat > $TMPC << EOF
6337 #include <vorbis/codec.h>
6338 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6340 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6342 if test "$_tremor_internal" = yes ; then
6343 _vorbis=yes
6344 def_vorbis='#define CONFIG_OGGVORBIS 1'
6345 def_tremor='#define CONFIG_TREMOR 1'
6346 _codecmodules="tremor(internal) $_codecmodules"
6347 _res_comment="internal Tremor"
6348 if test "$_tremor_low" = yes ; then
6349 cflags_tremor_low="-D_LOW_ACCURACY_"
6350 _res_comment="internal low accuracy Tremor"
6352 elif test "$_tremor" = yes ; then
6353 _vorbis=yes
6354 def_vorbis='#define CONFIG_OGGVORBIS 1'
6355 def_tremor='#define CONFIG_TREMOR 1'
6356 _codecmodules="tremor(external) $_codecmodules"
6357 _res_comment="external Tremor"
6358 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6359 elif test "$_libvorbis" = yes ; then
6360 _vorbis=yes
6361 def_vorbis='#define CONFIG_OGGVORBIS 1'
6362 _codecmodules="libvorbis $_codecmodules"
6363 _res_comment="libvorbis"
6364 extra_ldflags="$extra_ldflags -lvorbis -logg"
6365 else
6366 _vorbis=no
6367 _nocodecmodules="libvorbis $_nocodecmodules"
6369 echores "$_vorbis"
6371 echocheck "libspeex (version >= 1.1 required)"
6372 if test "$_speex" = auto ; then
6373 _speex=no
6374 cat > $TMPC << EOF
6375 #include <speex/speex.h>
6376 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6378 cc_check -lspeex $_ld_lm && _speex=yes
6380 if test "$_speex" = yes ; then
6381 def_speex='#define CONFIG_SPEEX 1'
6382 extra_ldflags="$extra_ldflags -lspeex"
6383 _codecmodules="speex $_codecmodules"
6384 else
6385 def_speex='#undef CONFIG_SPEEX'
6386 _nocodecmodules="speex $_nocodecmodules"
6388 echores "$_speex"
6390 echocheck "OggTheora support"
6391 if test "$_theora" = auto ; then
6392 _theora=no
6393 cat > $TMPC << EOF
6394 #include <theora/theora.h>
6395 #include <string.h>
6396 int main(void) {
6397 /* Theora is in flux, make sure that all interface routines and datatypes
6398 * exist and work the way we expect it, so we don't break MPlayer. */
6399 ogg_packet op;
6400 theora_comment tc;
6401 theora_info inf;
6402 theora_state st;
6403 yuv_buffer yuv;
6404 int r;
6405 double t;
6407 theora_info_init(&inf);
6408 theora_comment_init(&tc);
6410 return 0;
6412 /* we don't want to execute this kind of nonsense; just for making sure
6413 * that compilation works... */
6414 memset(&op, 0, sizeof(op));
6415 r = theora_decode_header(&inf, &tc, &op);
6416 r = theora_decode_init(&st, &inf);
6417 t = theora_granule_time(&st, op.granulepos);
6418 r = theora_decode_packetin(&st, &op);
6419 r = theora_decode_YUVout(&st, &yuv);
6420 theora_clear(&st);
6422 return 0;
6425 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6426 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6427 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6428 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6429 if test _theora = no; then
6430 _ld_theora="-ltheora -logg"
6431 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6433 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6434 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6435 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6436 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6437 extra_ldflags="$extra_ldflags $_ld_theora" &&
6438 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6439 if test _theora = no; then
6440 _ld_theora="-ltheora -logg"
6441 cc_check tremor/bitwise.c $_ld_theora &&
6442 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6446 if test "$_theora" = yes ; then
6447 def_theora='#define CONFIG_OGGTHEORA 1'
6448 _codecmodules="libtheora $_codecmodules"
6449 # when --enable-theora is forced, we'd better provide a probably sane
6450 # $_ld_theora than nothing
6451 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6452 else
6453 def_theora='#undef CONFIG_OGGTHEORA'
6454 _nocodecmodules="libtheora $_nocodecmodules"
6456 echores "$_theora"
6458 echocheck "internal mp3lib support"
6459 if test "$_mp3lib" = auto ; then
6460 test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes
6462 if test "$_mp3lib" = yes ; then
6463 def_mp3lib='#define CONFIG_MP3LIB 1'
6464 _codecmodules="mp3lib(internal) $_codecmodules"
6465 else
6466 def_mp3lib='#undef CONFIG_MP3LIB'
6467 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6469 echores "$_mp3lib"
6471 echocheck "liba52 support"
6472 if test "$_liba52_internal" = auto ; then
6473 test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes
6475 def_liba52='#undef CONFIG_LIBA52'
6476 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6477 if test "$_liba52_internal" = yes ; then
6478 _liba52=yes
6479 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6480 _res_comment="internal"
6481 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6482 _liba52=no
6483 cat > $TMPC << EOF
6484 #include <inttypes.h>
6485 #include <a52dec/a52.h>
6486 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6488 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6490 if test "$_liba52" = yes ; then
6491 def_liba52='#define CONFIG_LIBA52 1'
6492 _codecmodules="liba52($_res_comment) $_codecmodules"
6493 else
6494 _nocodecmodules="liba52 $_nocodecmodules"
6496 echores "$_liba52"
6498 echocheck "internal libmpeg2 support"
6499 if test "$_libmpeg2" = auto ; then
6500 _libmpeg2=yes
6501 if alpha && test cc_vendor=gnu; then
6502 case $cc_version in
6503 2*|3.0*|3.1*) # cannot compile MVI instructions
6504 _libmpeg2=no
6505 _res_comment="broken gcc"
6507 esac
6510 if test "$_libmpeg2" = yes ; then
6511 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6512 _codecmodules="libmpeg2(internal) $_codecmodules"
6513 else
6514 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6515 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6517 echores "$_libmpeg2"
6519 echocheck "libdca support"
6520 if test "$_libdca" = auto ; then
6521 _libdca=no
6522 cat > $TMPC << EOF
6523 #include <inttypes.h>
6524 #include <dts.h>
6525 int main(void) { dts_init(0); return 0; }
6527 for _ld_dca in -ldts -ldca ; do
6528 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6529 && _libdca=yes && break
6530 done
6532 if test "$_libdca" = yes ; then
6533 def_libdca='#define CONFIG_LIBDCA 1'
6534 _codecmodules="libdca $_codecmodules"
6535 else
6536 def_libdca='#undef CONFIG_LIBDCA'
6537 _nocodecmodules="libdca $_nocodecmodules"
6539 echores "$_libdca"
6541 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6542 if test "$_musepack" = auto ; then
6543 _musepack=no
6544 cat > $TMPC << EOF
6545 #include <stddef.h>
6546 #include <mpcdec/mpcdec.h>
6547 int main(void) {
6548 mpc_streaminfo info;
6549 mpc_decoder decoder;
6550 mpc_decoder_set_streaminfo(&decoder, &info);
6551 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6552 return 0;
6555 cc_check -lmpcdec $_ld_lm && _musepack=yes
6557 if test "$_musepack" = yes ; then
6558 def_musepack='#define CONFIG_MUSEPACK 1'
6559 extra_ldflags="$extra_ldflags -lmpcdec"
6560 _codecmodules="musepack $_codecmodules"
6561 else
6562 def_musepack='#undef CONFIG_MUSEPACK'
6563 _nocodecmodules="musepack $_nocodecmodules"
6565 echores "$_musepack"
6568 echocheck "FAAC support"
6569 if test "$_faac" = auto ; then
6570 cat > $TMPC <<EOF
6571 #include <inttypes.h>
6572 #include <faac.h>
6573 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6575 _faac=no
6576 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6577 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6578 done
6580 if test "$_faac" = yes ; then
6581 def_faac="#define CONFIG_FAAC 1"
6582 test "$_faac_lavc" = auto && _faac_lavc=yes
6583 if test "$_faac_lavc" = yes ; then
6584 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6585 libs_mplayer="$libs_mplayer $_ld_faac"
6586 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6588 _codecmodules="faac $_codecmodules"
6589 else
6590 _faac_lavc=no
6591 def_faac="#undef CONFIG_FAAC"
6592 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6593 _nocodecmodules="faac $_nocodecmodules"
6595 _res_comment="in libavcodec: $_faac_lavc"
6596 echores "$_faac"
6599 echocheck "FAAD2 support"
6600 if test "$_faad_internal" = auto ; then
6601 if x86_32 && test cc_vendor=gnu; then
6602 case $cc_version in
6603 3.1*|3.2) # ICE/insn with these versions
6604 _faad_internal=no
6605 _res_comment="broken gcc"
6608 _faad=yes
6609 _faad_internal=yes
6611 esac
6612 else
6613 _faad=yes
6614 _faad_internal=yes
6617 if test "$_faad" = auto ; then
6618 cat > $TMPC << EOF
6619 #include <faad.h>
6620 #ifndef FAAD_MIN_STREAMSIZE
6621 #error Too old version
6622 #endif
6623 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6624 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6626 cc_check -lfaad $_ld_lm && _faad=yes
6629 def_faad='#undef CONFIG_FAAD'
6630 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6631 if test "$_faad_internal" = yes ; then
6632 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6633 _res_comment="internal floating-point"
6634 if test "$_faad_fixed" = yes ; then
6635 # The FIXED_POINT implementation of FAAD2 improves performance
6636 # on some platforms, especially for SBR files.
6637 cflags_faad_fixed="-DFIXED_POINT"
6638 _res_comment="internal fixed-point"
6640 elif test "$_faad" = yes ; then
6641 extra_ldflags="$extra_ldflags -lfaad"
6644 if test "$_faad" = yes ; then
6645 def_faad='#define CONFIG_FAAD 1'
6646 if test "$_faad_internal" = yes ; then
6647 _codecmodules="faad2(internal) $_codecmodules"
6648 else
6649 _codecmodules="faad2 $_codecmodules"
6651 else
6652 _faad=no
6653 _nocodecmodules="faad2 $_nocodecmodules"
6655 echores "$_faad"
6658 echocheck "LADSPA plugin support"
6659 if test "$_ladspa" = auto ; then
6660 cat > $TMPC <<EOF
6661 #include <stdio.h>
6662 #include <ladspa.h>
6663 int main(void) {
6664 const LADSPA_Descriptor *ld = NULL;
6665 return 0;
6668 _ladspa=no
6669 cc_check && _ladspa=yes
6671 if test "$_ladspa" = yes; then
6672 def_ladspa="#define CONFIG_LADSPA"
6673 else
6674 def_ladspa="#undef CONFIG_LADSPA"
6676 echores "$_ladspa"
6679 echocheck "libbs2b audio filter support"
6680 if test "$_libbs2b" = auto ; then
6681 cat > $TMPC <<EOF
6682 #include <bs2b.h>
6683 #if BS2B_VERSION_MAJOR < 3
6684 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6685 #endif
6686 int main(void) {
6687 t_bs2bdp filter;
6688 filter=bs2b_open();
6689 bs2b_close(filter);
6690 return 0;
6693 _libbs2b=no
6694 if $_pkg_config --exists libbs2b ; then
6695 _inc_tmp=$($_pkg_config --cflags libbs2b)
6696 _ld_tmp=$($_pkg_config --libs libbs2b)
6697 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6698 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6699 else
6700 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6701 -I/usr/local/include/bs2b ; do
6702 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6703 extra_ldflags="$extra_ldflags -lbs2b"
6704 extra_cflags="$extra_cflags $_inc_tmp"
6705 _libbs2b=yes
6706 break
6708 done
6711 def_libbs2b="#undef CONFIG_LIBBS2B"
6712 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B"
6713 echores "$_libbs2b"
6716 if test -z "$_codecsdir" ; then
6717 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6718 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6719 if test -d "$dir" ; then
6720 _codecsdir="$dir"
6721 break;
6723 done
6725 # Fall back on default directory.
6726 if test -z "$_codecsdir" ; then
6727 _codecsdir="$_libdir/codecs"
6728 mingw32 && _codecsdir="codecs"
6729 os2 && _codecsdir="codecs"
6733 echocheck "Win32 codecs"
6734 if test "$_win32dll" = auto ; then
6735 _win32dll=no
6736 if x86_32 && ! qnx; then
6737 _win32dll=yes
6740 if test "$_win32dll" = yes ; then
6741 def_win32dll='#define CONFIG_WIN32DLL 1'
6742 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6743 _res_comment="using $_win32codecsdir"
6744 if ! win32 ; then
6745 def_win32_loader='#define WIN32_LOADER 1'
6746 _win32_emulation=yes
6747 else
6748 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6749 _res_comment="using native windows"
6751 _codecmodules="win32 $_codecmodules"
6752 else
6753 def_win32dll='#undef CONFIG_WIN32DLL'
6754 def_win32_loader='#undef WIN32_LOADER'
6755 _nocodecmodules="win32 $_nocodecmodules"
6757 echores "$_win32dll"
6760 echocheck "XAnim codecs"
6761 if test "$_xanim" = auto ; then
6762 _xanim=no
6763 _res_comment="dynamic loader support needed"
6764 if test "$_dl" = yes ; then
6765 _xanim=yes
6768 if test "$_xanim" = yes ; then
6769 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6770 def_xanim='#define CONFIG_XANIM 1'
6771 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6772 _codecmodules="xanim $_codecmodules"
6773 _res_comment="using $_xanimcodecsdir"
6774 else
6775 def_xanim='#undef CONFIG_XANIM'
6776 def_xanim_path='#undef XACODEC_PATH'
6777 _nocodecmodules="xanim $_nocodecmodules"
6779 echores "$_xanim"
6782 echocheck "RealPlayer codecs"
6783 if test "$_real" = auto ; then
6784 _real=no
6785 _res_comment="dynamic loader support needed"
6786 if test "$_dl" = yes || test "$_win32dll" = yes &&
6787 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6788 _real=yes
6791 if test "$_real" = yes ; then
6792 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6793 def_real='#define CONFIG_REALCODECS 1'
6794 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6795 _codecmodules="real $_codecmodules"
6796 _res_comment="using $_realcodecsdir"
6797 else
6798 def_real='#undef CONFIG_REALCODECS'
6799 def_real_path="#undef REALCODEC_PATH"
6800 _nocodecmodules="real $_nocodecmodules"
6802 echores "$_real"
6805 echocheck "QuickTime codecs"
6806 _qtx_emulation=no
6807 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6808 def_quicktime='#undef CONFIG_QUICKTIME'
6809 if test "$_qtx" = auto ; then
6810 test "$_win32dll" = yes || darwin && _qtx=yes
6812 if test "$_qtx" = yes ; then
6813 darwin && extra_ldflags="$extra_ldflags -framework QuickTime" && def_quicktime='#define CONFIG_QUICKTIME 1'
6814 def_qtx='#define CONFIG_QTX_CODECS 1'
6815 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6816 _codecmodules="qtx $_codecmodules"
6817 darwin || win32 || _qtx_emulation=yes
6818 else
6819 def_qtx='#undef CONFIG_QTX_CODECS'
6820 _nocodecmodules="qtx $_nocodecmodules"
6822 echores "$_qtx"
6824 echocheck "Nemesi Streaming Media libraries"
6825 if test "$_nemesi" = auto && test "$_network" = yes ; then
6826 _nemesi=no
6827 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6828 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6829 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6830 _nemesi=yes
6833 if test "$_nemesi" = yes; then
6834 _native_rtsp=no
6835 def_nemesi='#define CONFIG_LIBNEMESI 1'
6836 _inputmodules="nemesi $_inputmodules"
6837 else
6838 _native_rtsp="$_network"
6839 _nemesi=no
6840 def_nemesi='#undef CONFIG_LIBNEMESI'
6841 _noinputmodules="nemesi $_noinputmodules"
6843 echores "$_nemesi"
6845 echocheck "LIVE555 Streaming Media libraries"
6846 if test "$_live" = auto && test "$_network" = yes ; then
6847 cat > $TMPCPP << EOF
6848 #include <liveMedia.hh>
6849 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6850 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6851 #endif
6852 int main(void) { return 0; }
6855 _live=no
6856 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
6857 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6858 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6859 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6860 $_livelibdir/groupsock/libgroupsock.a \
6861 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6862 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6863 $extra_ldflags -lstdc++" \
6864 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6865 -I$_livelibdir/UsageEnvironment/include \
6866 -I$_livelibdir/BasicUsageEnvironment/include \
6867 -I$_livelibdir/groupsock/include" && \
6868 _live=yes && break
6869 done
6870 if test "$_live" != yes ; then
6871 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6872 _live_dist=yes
6876 if test "$_live" = yes && test "$_network" = yes; then
6877 test $_livelibdir && _res_comment="using $_livelibdir"
6878 def_live='#define CONFIG_LIVE555 1'
6879 _inputmodules="live555 $_inputmodules"
6880 elif test "$_live_dist" = yes && test "$_network" = yes; then
6881 _res_comment="using distribution version"
6882 _live="yes"
6883 def_live='#define CONFIG_LIVE555 1'
6884 extra_ldflags="$extra_ldflags -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6885 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6886 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6887 _inputmodules="live555 $_inputmodules"
6888 else
6889 _live=no
6890 def_live='#undef CONFIG_LIVE555'
6891 _noinputmodules="live555 $_noinputmodules"
6893 echores "$_live"
6896 echocheck "FFmpeg libavutil"
6897 if test "$_libavutil_a" = auto ; then
6898 if test -d ffmpeg/libavutil ; then
6899 _libavutil_a=yes
6900 _res_comment="static"
6901 else
6902 die "MPlayer will not compile without libavutil in the source tree."
6904 elif test "$_libavutil_so" = auto ; then
6905 _libavutil_so=no
6906 cat > $TMPC << EOF
6907 #include <libavutil/common.h>
6908 int main(void) { av_gcd(1,1); return 0; }
6910 if $_pkg_config --exists libavutil ; then
6911 _inc_libavutil=$($_pkg_config --cflags libavutil)
6912 _ld_tmp=$($_pkg_config --libs libavutil)
6913 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6914 && _libavutil_so=yes
6915 elif cc_check -lavutil $_ld_lm ; then
6916 extra_ldflags="$extra_ldflags -lavutil"
6917 _libavutil_so=yes
6918 _res_comment="using libavutil.so, but static libavutil is recommended"
6921 _libavutil=no
6922 def_libavutil='#undef CONFIG_LIBAVUTIL'
6923 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6924 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6925 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6926 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6927 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6928 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6929 # neither static nor shared libavutil is available, but it is mandatory ...
6930 if test "$_libavutil" = no ; then
6931 die "You need static or shared libavutil, MPlayer will not compile without!"
6933 echores "$_libavutil"
6935 echocheck "FFmpeg libavcodec"
6936 if test "$_libavcodec_a" = auto ; then
6937 _libavcodec_a=no
6938 if test -d ffmpeg/libavcodec && test -f ffmpeg/libavcodec/utils.c ; then
6939 _libavcodec_a="yes"
6940 _res_comment="static"
6942 elif test "$_libavcodec_so" = auto ; then
6943 _libavcodec_so=no
6944 _res_comment="libavcodec.so is discouraged over static libavcodec"
6945 cat > $TMPC << EOF
6946 #include <libavcodec/avcodec.h>
6947 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6949 if $_pkg_config --exists libavcodec ; then
6950 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6951 _ld_tmp=$($_pkg_config --libs libavcodec)
6952 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6953 && _libavcodec_so=yes
6954 elif cc_check -lavcodec $_ld_lm ; then
6955 extra_ldflags="$extra_ldflags -lavcodec"
6956 _libavcodec_so=yes
6957 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6960 _libavcodec=no
6961 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6962 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
6963 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
6964 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6965 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6966 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
6967 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
6968 test "$_libavcodec_mpegaudio_hp" = yes \
6969 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6970 if test "$_libavcodec_a" = yes ; then
6971 _codecmodules="libavcodec(internal) $_codecmodules"
6972 elif test "$_libavcodec_so" = yes ; then
6973 _codecmodules="libavcodec.so $_codecmodules"
6974 else
6975 _nocodecmodules="libavcodec $_nocodecmodules"
6977 echores "$_libavcodec"
6979 echocheck "FFmpeg libavformat"
6980 if test "$_libavformat_a" = auto ; then
6981 _libavformat_a=no
6982 if test -d ffmpeg/libavformat && test -f ffmpeg/libavformat/utils.c ; then
6983 _libavformat_a=yes
6984 _res_comment="static"
6986 elif test "$_libavformat_so" = auto ; then
6987 _libavformat_so=no
6988 cat > $TMPC <<EOF
6989 #include <libavformat/avformat.h>
6990 #include <libavcodec/opt.h>
6991 int main(void) { av_alloc_format_context(); return 0; }
6993 if $_pkg_config --exists libavformat ; then
6994 _inc_libavformat=$($_pkg_config --cflags libavformat)
6995 _ld_tmp=$($_pkg_config --libs libavformat)
6996 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6997 && _libavformat_so=yes
6998 elif cc_check $_ld_lm -lavformat ; then
6999 extra_ldflags="$extra_ldflags -lavformat"
7000 _libavformat_so=yes
7001 _res_comment="using libavformat.so, but static libavformat is recommended"
7004 _libavformat=no
7005 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7006 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7007 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7008 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7009 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7010 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7011 test "$_libavformat_so" = yes \
7012 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7013 echores "$_libavformat"
7015 echocheck "FFmpeg libpostproc"
7016 if test "$_libpostproc_a" = auto ; then
7017 _libpostproc_a=no
7018 if test -d ffmpeg/libpostproc && test -f ffmpeg/libpostproc/postprocess.h ; then
7019 _libpostproc_a='yes'
7020 _res_comment="static"
7022 elif test "$_libpostproc_so" = auto ; then
7023 _libpostproc_so=no
7024 cat > $TMPC << EOF
7025 #include <inttypes.h>
7026 #include <libpostproc/postprocess.h>
7027 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7029 if cc_check -lpostproc $_ld_lm ; then
7030 extra_ldflags="$extra_ldflags -lpostproc"
7031 _libpostproc_so=yes
7032 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7035 _libpostproc=no
7036 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7037 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7038 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7039 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7040 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7041 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7042 test "$_libpostproc_so" = yes \
7043 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7044 echores "$_libpostproc"
7046 echocheck "FFmpeg libswscale"
7047 if test "$_libswscale_a" = auto ; then
7048 _libswscale_a=no
7049 if test -d libswscale && test -f libswscale/swscale.h ; then
7050 _libswscale_a='yes'
7051 _res_comment="static"
7053 elif test "$_libswscale_so" = auto ; then
7054 _libswscale_so=no
7055 _res_comment="using libswscale.so, but static libswscale is recommended"
7056 cat > $TMPC << EOF
7057 #include <libswscale/swscale.h>
7058 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7060 if $_pkg_config --exists libswscale ; then
7061 _inc_libswscale=$($_pkg_config --cflags libswscale)
7062 _ld_tmp=$($_pkg_config --libs libswscale)
7063 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7064 && _libswscale_so=yes
7065 elif cc_check -lswscale ; then
7066 extra_ldflags="$extra_ldflags -lswscale"
7067 _libswscale_so=yes
7070 _libswscale=no
7071 def_libswscale='#undef CONFIG_LIBSWSCALE'
7072 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7073 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7074 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7075 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7076 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7077 test "$_libswscale_so" = yes \
7078 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7079 echores "$_libswscale"
7081 echocheck "libamr narrowband"
7082 if test "$_libamr_nb" = auto ; then
7083 _libamr_nb=no
7084 cat > $TMPC << EOF
7085 #include <amrnb/sp_dec.h>
7086 int main(void) { Speech_Decode_Frame_init(); return 0; }
7088 cc_check -lamrnb && _libamr_nb=yes
7089 if test "$_libavcodec_a" != yes ; then
7090 _libamr_nb=no
7091 _res_comment="libavcodec (static) is required by libamr_nb, sorry"
7094 if test "$_libamr_nb" = yes ; then
7095 _libamr=yes
7096 extra_ldflags="$extra_ldflags -lamrnb"
7097 def_libamr='#define CONFIG_LIBAMR 1'
7098 def_libamr_nb='#define CONFIG_LIBAMR_NB 1'
7099 _libavdecoders="$_libavdecoders LIBAMR_NB_DECODER"
7100 _libavencoders="$_libavencoders LIBAMR_NB_ENCODER"
7101 _codecmodules="libamr_nb $_codecmodules"
7102 else
7103 def_libamr_nb='#define CONFIG_LIBAMR_NB 0'
7104 _nocodecmodules="libamr_nb $_nocodecmodules"
7106 echores "$_libamr_nb"
7109 echocheck "libamr wideband"
7110 if test "$_libamr_wb" = auto ; then
7111 _libamr_wb=no
7112 cat > $TMPC << EOF
7113 #include <amrwb/dec_if.h>
7114 int main(void) { D_IF_init(); return 0; }
7116 cc_check -lamrwb && _libamr_wb=yes
7117 if test "$_libavcodec_a" != yes ; then
7118 _libamr_wb=no
7119 _res_comment="libavcodec (static) is required by libamr_wb, sorry"
7122 if test "$_libamr_wb" = yes ; then
7123 _libamr=yes
7124 extra_ldflags="$extra_ldflags -lamrwb"
7125 def_libamr='#define CONFIG_LIBAMR 1'
7126 def_libamr_wb='#define CONFIG_LIBAMR_WB 1'
7127 _libavdecoders="$_libavdecoders LIBAMR_WB_DECODER"
7128 _libavencoders="$_libavencoders LIBAMR_WB_ENCODER"
7129 _codecmodules="libamr_wb $_codecmodules"
7130 else
7131 def_libamr_wb='#define CONFIG_LIBAMR_WB 0'
7132 _nocodecmodules="libamr_wb $_nocodecmodules"
7134 echores "$_libamr_wb"
7136 echocheck "libdv-0.9.5+"
7137 if test "$_libdv" = auto ; then
7138 _libdv=no
7139 cat > $TMPC <<EOF
7140 #include <libdv/dv.h>
7141 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7143 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7145 if test "$_libdv" = yes ; then
7146 def_libdv='#define CONFIG_LIBDV095 1'
7147 extra_ldflags="$extra_ldflags -ldv"
7148 _codecmodules="libdv $_codecmodules"
7149 else
7150 def_libdv='#undef CONFIG_LIBDV095'
7151 _nocodecmodules="libdv $_nocodecmodules"
7153 echores "$_libdv"
7156 echocheck "Xvid"
7157 if test "$_xvid" = auto ; then
7158 _xvid=no
7159 cat > $TMPC << EOF
7160 #include <xvid.h>
7161 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7163 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7164 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7165 done
7168 if test "$_xvid" = yes ; then
7169 def_xvid='#define CONFIG_XVID4 1'
7170 _codecmodules="xvid $_codecmodules"
7171 else
7172 def_xvid='#undef CONFIG_XVID4'
7173 _nocodecmodules="xvid $_nocodecmodules"
7175 echores "$_xvid"
7177 echocheck "Xvid two pass plugin"
7178 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7179 cat > $TMPC << EOF
7180 #include <xvid.h>
7181 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7183 cc_check && _xvid_lavc=yes
7185 if test "$_xvid_lavc" = yes ; then
7186 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7187 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7188 else
7189 _xvid_lavc=no
7190 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7192 echores "$_xvid_lavc"
7195 echocheck "x264"
7196 if test "$_x264" = auto ; then
7197 cat > $TMPC << EOF
7198 #include <inttypes.h>
7199 #include <x264.h>
7200 #if X264_BUILD < 65
7201 #error We do not support old versions of x264. Get the latest from SVN.
7202 #endif
7203 int main(void) { x264_encoder_open((void*)0); return 0; }
7205 _x264=no
7206 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7207 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7208 done
7211 if test "$_x264" = yes ; then
7212 def_x264='#define CONFIG_X264 1'
7213 _codecmodules="x264 $_codecmodules"
7214 test "$_x264_lavc" = auto && _x264_lavc=yes
7215 if test "$_x264_lavc" = yes ; then
7216 def_x264_lavc='#define CONFIG_LIBX264 1'
7217 libs_mplayer="$libs_mplayer $_ld_x264"
7218 _libavencoders="$_libavencoders LIBX264_ENCODER"
7220 else
7221 _x264_lavc=no
7222 def_x264='#undef CONFIG_X264'
7223 def_x264_lavc='#define CONFIG_LIBX264 0'
7224 _nocodecmodules="x264 $_nocodecmodules"
7226 _res_comment="in libavcodec: $_x264_lavc"
7227 echores "$_x264"
7230 echocheck "libdirac"
7231 if test "$_libdirac_lavc" = auto; then
7232 _libdirac_lavc=no
7233 if test "$_libavcodec_a" != yes; then
7234 _res_comment="libavcodec (static) is required by libdirac, sorry"
7235 else
7236 cat > $TMPC << EOF
7237 #include <libdirac_encoder/dirac_encoder.h>
7238 #include <libdirac_decoder/dirac_parser.h>
7239 int main(void)
7241 dirac_encoder_context_t enc_ctx;
7242 dirac_decoder_t *dec_handle;
7243 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7244 dec_handle = dirac_decoder_init(0);
7245 if (dec_handle)
7246 dirac_decoder_close(dec_handle);
7247 return 0;
7250 if $_pkg_config --exists dirac ; then
7251 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7252 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7253 cc_check $_inc_dirac $_ld_dirac &&
7254 _libdirac_lavc=yes &&
7255 extra_cflags="$extra_cflags $_inc_dirac" &&
7256 extra_ldflags="$extra_ldflags $_ld_dirac"
7260 if test "$_libdirac_lavc" = yes ; then
7261 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7262 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7263 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7264 _codecmodules="libdirac $_codecmodules"
7265 else
7266 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7267 _nocodecmodules="libdirac $_nocodecmodules"
7269 echores "$_libdirac_lavc"
7272 echocheck "libschroedinger"
7273 if test "$_libschroedinger_lavc" = auto ; then
7274 _libschroedinger_lavc=no
7275 if test "$_libavcodec_a" != yes; then
7276 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7277 else
7278 cat > $TMPC << EOF
7279 #include <schroedinger/schro.h>
7280 int main(void) { schro_init(); return 0; }
7282 if $_pkg_config --exists schroedinger-1.0 ; then
7283 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7284 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7285 cc_check $_inc_schroedinger $_ld_schroedinger &&
7286 _libschroedinger_lavc=yes &&
7287 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7288 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7292 if test "$_libschroedinger_lavc" = yes ; then
7293 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7294 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7295 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7296 _codecmodules="libschroedinger $_codecmodules"
7297 else
7298 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7299 _nocodecmodules="libschroedinger $_nocodecmodules"
7301 echores "$_libschroedinger_lavc"
7303 echocheck "libnut"
7304 if test "$_libnut" = auto ; then
7305 cat > $TMPC << EOF
7306 #include <stdio.h>
7307 #include <stdlib.h>
7308 #include <inttypes.h>
7309 #include <libnut.h>
7310 nut_context_tt * nut;
7311 int main(void) { (void)nut_error(0); return 0; }
7313 _libnut=no
7314 cc_check -lnut && _libnut=yes
7317 if test "$_libnut" = yes ; then
7318 def_libnut='#define CONFIG_LIBNUT 1'
7319 extra_ldflags="$extra_ldflags -lnut"
7320 else
7321 def_libnut='#undef CONFIG_LIBNUT'
7323 echores "$_libnut"
7325 #check must be done after libavcodec one
7326 echocheck "zr"
7327 if test "$_zr" = auto ; then
7328 #36067's seem to identify themselves as 36057PQC's, so the line
7329 #below should work for 36067's and 36057's.
7330 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7331 _zr=yes
7332 else
7333 _zr=no
7336 if test "$_zr" = yes ; then
7337 if test "$_libavcodec_a" = yes ; then
7338 def_zr='#define CONFIG_ZR 1'
7339 _vomodules="zr zr2 $_vomodules"
7340 else
7341 _res_comment="libavcodec (static) is required by zr, sorry"
7342 _novomodules="zr $_novomodules"
7343 def_zr='#undef CONFIG_ZR'
7345 else
7346 def_zr='#undef CONFIG_ZR'
7347 _novomodules="zr zr2 $_novomodules"
7349 echores "$_zr"
7351 # mencoder requires (optional) those libs: libmp3lame
7352 if test "$_mencoder" != no ; then
7354 echocheck "libmp3lame"
7355 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7356 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7357 if test "$_mp3lame" = auto ; then
7358 _mp3lame=no
7359 cat > $TMPC <<EOF
7360 #include <lame/lame.h>
7361 int main(void) { lame_version_t lv; (void) lame_init();
7362 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7363 return 0; }
7365 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
7367 if test "$_mp3lame" = yes ; then
7368 def_mp3lame="#define CONFIG_MP3LAME"
7369 _ld_mp3lame=-lmp3lame
7370 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7371 cat > $TMPC << EOF
7372 #include <lame/lame.h>
7373 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7375 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET"
7376 cat > $TMPC << EOF
7377 #include <lame/lame.h>
7378 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7380 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM"
7381 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7382 if test "$_mp3lame_lavc" = yes ; then
7383 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7384 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7385 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7387 else
7388 _mp3lame_lavc=no
7389 def_mp3lame='#undef CONFIG_MP3LAME'
7390 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7392 _res_comment="in libavcodec: $_mp3lame_lavc"
7393 echores "$_mp3lame"
7395 fi # test "$_mencoder" != no
7397 echocheck "mencoder"
7398 if test "$_mencoder" = yes ; then
7399 def_muxers='#define CONFIG_MUXERS 1'
7400 else
7401 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7402 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7403 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7404 _libavmuxers=""
7405 def_muxers='#define CONFIG_MUXERS 0'
7407 echores "$_mencoder"
7410 echocheck "UnRAR executable"
7411 if test "$_unrar_exec" = auto ; then
7412 _unrar_exec="yes"
7413 mingw32 && _unrar_exec="no"
7415 if test "$_unrar_exec" = yes ; then
7416 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7417 else
7418 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7420 echores "$_unrar_exec"
7422 echocheck "TV interface"
7423 if test "$_tv" = yes ; then
7424 def_tv='#define CONFIG_TV 1'
7425 _inputmodules="tv $_inputmodules"
7426 else
7427 _noinputmodules="tv $_noinputmodules"
7428 def_tv='#undef CONFIG_TV'
7430 echores "$_tv"
7433 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7434 echocheck "*BSD BT848 bt8xx header"
7435 _ioctl_bt848_h=no
7436 for file in "machine/ioctl_bt848.h" \
7437 "dev/bktr/ioctl_bt848.h" \
7438 "dev/video/bktr/ioctl_bt848.h" \
7439 "dev/ic/bt8xx.h" ; do
7440 cat > $TMPC <<EOF
7441 #include <sys/types.h>
7442 #include <sys/ioctl.h>
7443 #include <$file>
7444 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7446 if cc_check ; then
7447 _ioctl_bt848_h=yes
7448 _ioctl_bt848_h_name="$file"
7449 break;
7451 done
7452 if test "$_ioctl_bt848_h" = yes ; then
7453 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7454 _res_comment="using $_ioctl_bt848_h_name"
7455 else
7456 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7458 echores "$_ioctl_bt848_h"
7460 echocheck "*BSD ioctl_meteor.h"
7461 _ioctl_meteor_h=no
7462 for file in "machine/ioctl_meteor.h" \
7463 "dev/bktr/ioctl_meteor.h" \
7464 "dev/video/bktr/ioctl_meteor.h" ; do
7465 cat > $TMPC <<EOF
7466 #include <sys/types.h>
7467 #include <$file>
7468 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7470 if cc_check ; then
7471 _ioctl_meteor_h=yes
7472 _ioctl_meteor_h_name="$file"
7473 break;
7475 done
7476 if test "$_ioctl_meteor_h" = yes ; then
7477 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7478 _res_comment="using $_ioctl_meteor_h_name"
7479 else
7480 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7482 echores "$_ioctl_meteor_h"
7484 echocheck "*BSD BrookTree 848 TV interface"
7485 if test "$_tv_bsdbt848" = auto ; then
7486 _tv_bsdbt848=no
7487 if test "$_tv" = yes ; then
7488 cat > $TMPC <<EOF
7489 #include <sys/types.h>
7490 $def_ioctl_meteor_h_name
7491 $def_ioctl_bt848_h_name
7492 #ifdef IOCTL_METEOR_H_NAME
7493 #include IOCTL_METEOR_H_NAME
7494 #endif
7495 #ifdef IOCTL_BT848_H_NAME
7496 #include IOCTL_BT848_H_NAME
7497 #endif
7498 int main(void) {
7499 ioctl(0, METEORSINPUT, 0);
7500 ioctl(0, TVTUNER_GETFREQ, 0);
7501 return 0;
7504 cc_check && _tv_bsdbt848=yes
7507 if test "$_tv_bsdbt848" = yes ; then
7508 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7509 _inputmodules="tv-bsdbt848 $_inputmodules"
7510 else
7511 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7512 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7514 echores "$_tv_bsdbt848"
7515 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7518 echocheck "DirectShow TV interface"
7519 if test "$_tv_dshow" = auto ; then
7520 _tv_dshow=no
7521 if test "$_tv" = yes && win32 ; then
7522 cat > $TMPC <<EOF
7523 #include <ole2.h>
7524 int main(void) {
7525 void* p;
7526 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7527 return 0;
7530 cc_check -lole32 -luuid && _tv_dshow=yes
7533 if test "$_tv_dshow" = yes ; then
7534 _inputmodules="tv-dshow $_inputmodules"
7535 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7536 extra_ldflags="$extra_ldflags -lole32 -luuid"
7537 else
7538 _noinputmodules="tv-dshow $_noinputmodules"
7539 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7541 echores "$_tv_dshow"
7544 echocheck "Video 4 Linux TV interface"
7545 if test "$_tv_v4l1" = auto ; then
7546 _tv_v4l1=no
7547 if test "$_tv" = yes && linux ; then
7548 cat > $TMPC <<EOF
7549 #include <stdlib.h>
7550 #include <linux/videodev.h>
7551 int main(void) { return 0; }
7553 cc_check && _tv_v4l1=yes
7556 if test "$_tv_v4l1" = yes ; then
7557 _audio_input=yes
7558 _tv_v4l=yes
7559 def_tv_v4l='#define CONFIG_TV_V4L 1'
7560 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7561 _inputmodules="tv-v4l $_inputmodules"
7562 else
7563 _noinputmodules="tv-v4l1 $_noinputmodules"
7564 def_tv_v4l='#undef CONFIG_TV_V4L'
7566 echores "$_tv_v4l1"
7569 echocheck "Video 4 Linux 2 TV interface"
7570 if test "$_tv_v4l2" = auto ; then
7571 _tv_v4l2=no
7572 if test "$_tv" = yes && linux ; then
7573 cat > $TMPC <<EOF
7574 #include <stdlib.h>
7575 #include <linux/types.h>
7576 #include <linux/videodev2.h>
7577 int main(void) { return 0; }
7579 cc_check && _tv_v4l2=yes
7582 if test "$_tv_v4l2" = yes ; then
7583 _audio_input=yes
7584 _tv_v4l=yes
7585 def_tv_v4l='#define CONFIG_TV_V4L 1'
7586 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7587 _inputmodules="tv-v4l2 $_inputmodules"
7588 else
7589 _noinputmodules="tv-v4l2 $_noinputmodules"
7590 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7592 echores "$_tv_v4l2"
7595 echocheck "TV teletext interface"
7596 if test "$_tv_teletext" = auto ; then
7597 _tv_teletext=no
7598 if test "$_freetype" = yes && test "$_pthreads" = yes; then
7599 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
7600 _tv_teletext=yes
7604 if test "$_tv_teletext" = yes ; then
7605 def_tv_teletext='#define CONFIG_TV_TELETEXT 1'
7606 _inputmodules="tv-teletext $_inputmodules"
7607 else
7608 _noinputmodules="tv-teletext $_noinputmodules"
7609 def_tv_teletext='#undef CONFIG_TV_TELETEXT'
7611 echores "$_tv_teletext"
7614 echocheck "Radio interface"
7615 if test "$_radio" = yes ; then
7616 def_radio='#define CONFIG_RADIO 1'
7617 _inputmodules="radio $_inputmodules"
7618 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7619 _radio_capture=no
7621 if test "$_radio_capture" = yes ; then
7622 _audio_input=yes
7623 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7624 else
7625 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7627 else
7628 _noinputmodules="radio $_noinputmodules"
7629 def_radio='#undef CONFIG_RADIO'
7630 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7631 _radio_capture=no
7633 echores "$_radio"
7634 echocheck "Capture for Radio interface"
7635 echores "$_radio_capture"
7637 echocheck "Video 4 Linux 2 Radio interface"
7638 if test "$_radio_v4l2" = auto ; then
7639 _radio_v4l2=no
7640 if test "$_radio" = yes && linux ; then
7641 cat > $TMPC <<EOF
7642 #include <stdlib.h>
7643 #include <linux/types.h>
7644 #include <linux/videodev2.h>
7645 int main(void) { return 0; }
7647 cc_check && _radio_v4l2=yes
7650 if test "$_radio_v4l2" = yes ; then
7651 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7652 else
7653 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7655 echores "$_radio_v4l2"
7657 echocheck "Video 4 Linux Radio interface"
7658 if test "$_radio_v4l" = auto ; then
7659 _radio_v4l=no
7660 if test "$_radio" = yes && linux ; then
7661 cat > $TMPC <<EOF
7662 #include <stdlib.h>
7663 #include <linux/videodev.h>
7664 int main(void) { return 0; }
7666 cc_check && _radio_v4l=yes
7669 if test "$_radio_v4l" = yes ; then
7670 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7671 else
7672 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7674 echores "$_radio_v4l"
7676 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7677 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7678 echocheck "*BSD BrookTree 848 Radio interface"
7679 _radio_bsdbt848=no
7680 cat > $TMPC <<EOF
7681 #include <sys/types.h>
7682 $def_ioctl_bt848_h_name
7683 #ifdef IOCTL_BT848_H_NAME
7684 #include IOCTL_BT848_H_NAME
7685 #endif
7686 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7688 cc_check && _radio_bsdbt848=yes
7689 echores "$_radio_bsdbt848"
7690 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7692 if test "$_radio_bsdbt848" = yes ; then
7693 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7694 else
7695 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7698 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7699 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7700 die "Radio driver requires BSD BT848, V4L or V4L2!"
7703 echocheck "Video 4 Linux 2 MPEG PVR interface"
7704 if test "$_pvr" = auto ; then
7705 _pvr=no
7706 if test "$_tv_v4l2" = yes && linux ; then
7707 cat > $TMPC <<EOF
7708 #include <stdlib.h>
7709 #include <inttypes.h>
7710 #include <linux/types.h>
7711 #include <linux/videodev2.h>
7712 int main(void) { struct v4l2_ext_controls ext; return 0; }
7714 cc_check && _pvr=yes
7717 if test "$_pvr" = yes ; then
7718 def_pvr='#define CONFIG_PVR 1'
7719 _inputmodules="pvr $_inputmodules"
7720 else
7721 _noinputmodules="pvr $_noinputmodules"
7722 def_pvr='#undef CONFIG_PVR'
7724 echores "$_pvr"
7727 echocheck "ftp"
7728 if ! beos && test "$_ftp" = yes ; then
7729 def_ftp='#define CONFIG_FTP 1'
7730 _inputmodules="ftp $_inputmodules"
7731 else
7732 _noinputmodules="ftp $_noinputmodules"
7733 def_ftp='#undef CONFIG_FTP'
7735 echores "$_ftp"
7737 echocheck "vstream client"
7738 if test "$_vstream" = auto ; then
7739 _vstream=no
7740 cat > $TMPC <<EOF
7741 #include <vstream-client.h>
7742 void vstream_error(const char *format, ... ) {}
7743 int main(void) { vstream_start(); return 0; }
7745 cc_check -lvstream-client && _vstream=yes
7747 if test "$_vstream" = yes ; then
7748 def_vstream='#define CONFIG_VSTREAM 1'
7749 _inputmodules="vstream $_inputmodules"
7750 extra_ldflags="$extra_ldflags -lvstream-client"
7751 else
7752 _noinputmodules="vstream $_noinputmodules"
7753 def_vstream='#undef CONFIG_VSTREAM'
7755 echores "$_vstream"
7758 echocheck "OSD menu"
7759 if test "$_menu" = yes ; then
7760 def_menu='#define CONFIG_MENU 1'
7761 test $_dvbin = "yes" && _menu_dvbin=yes
7762 else
7763 def_menu='#undef CONFIG_MENU'
7764 _menu_dvbin=no
7766 echores "$_menu"
7769 echocheck "Subtitles sorting"
7770 if test "$_sortsub" = yes ; then
7771 def_sortsub='#define CONFIG_SORTSUB 1'
7772 else
7773 def_sortsub='#undef CONFIG_SORTSUB'
7775 echores "$_sortsub"
7778 echocheck "XMMS inputplugin support"
7779 if test "$_xmms" = yes ; then
7780 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7781 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7782 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7783 else
7784 _xmmsplugindir=/usr/lib/xmms/Input
7785 _xmmslibdir=/usr/lib
7788 def_xmms='#define CONFIG_XMMS 1'
7789 if darwin ; then
7790 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7791 else
7792 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7794 else
7795 def_xmms='#undef CONFIG_XMMS'
7797 echores "$_xmms"
7800 # --------------- GUI specific tests begin -------------------
7801 echocheck "GUI"
7802 echo "$_gui"
7803 if test "$_gui" = yes ; then
7805 # Required libraries
7806 if test "$_libavcodec" != yes ||
7807 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7808 die "The GUI requires libavcodec with PNG support (needs zlib)."
7810 test "$_freetype" = no && test "$_bitmap_font" = no && \
7811 die "The GUI requires either FreeType or bitmap font support."
7812 if ! win32 ; then
7813 _gui_gtk=yes
7814 test "$_x11" != yes && die "X11 support required for GUI compilation."
7816 echocheck "XShape extension"
7817 if test "$_xshape" = auto ; then
7818 _xshape=no
7819 cat > $TMPC << EOF
7820 #include <X11/Xlib.h>
7821 #include <X11/Xproto.h>
7822 #include <X11/Xutil.h>
7823 #include <X11/extensions/shape.h>
7824 #include <stdlib.h>
7825 int main(void) {
7826 char *name = ":0.0";
7827 Display *wsDisplay;
7828 int exitvar = 0;
7829 int eventbase, errorbase;
7830 if (getenv("DISPLAY"))
7831 name=getenv("DISPLAY");
7832 wsDisplay=XOpenDisplay(name);
7833 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7834 exitvar=1;
7835 XCloseDisplay(wsDisplay);
7836 return exitvar;
7839 cc_check -lXext && _xshape=yes
7841 if test "$_xshape" = yes ; then
7842 def_xshape='#define CONFIG_XSHAPE 1'
7843 else
7844 die "The GUI requires the X11 extension XShape (which was not found)."
7846 echores "$_xshape"
7848 #Check for GTK
7849 if test "$_gtk1" = no ; then
7850 #Check for GTK2 :
7851 echocheck "GTK+ version"
7853 if $_pkg_config gtk+-2.0 --exists ; then
7854 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7855 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7856 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7857 echores "$_gtk"
7859 # Check for GLIB2
7860 if $_pkg_config glib-2.0 --exists ; then
7861 echocheck "glib version"
7862 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7863 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7864 echores "$_glib"
7866 def_gui='#define CONFIG_GUI 1'
7867 def_gtk2='#define CONFIG_GTK2 1'
7868 else
7869 _gtk1=yes
7870 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7872 else
7873 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7874 _gtk1=yes
7878 if test "$_gtk1" = yes ; then
7879 # Check for old GTK (1.2.x)
7880 echocheck "GTK version"
7881 if test -z "$_gtkconfig" ; then
7882 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7883 _gtkconfig="gtk-config"
7884 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7885 _gtkconfig="gtk12-config"
7886 else
7887 die "The GUI requires GTK devel packages (which were not found)."
7890 _gtk=$($_gtkconfig --version 2>&1)
7891 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7892 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7893 echores "$_gtk (using $_gtkconfig)"
7895 # Check for GLIB
7896 echocheck "glib version"
7897 if test -z "$_glibconfig" ; then
7898 if ( glib-config --version ) >/dev/null 2>&1 ; then
7899 _glibconfig="glib-config"
7900 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7901 _glibconfig="glib12-config"
7902 else
7903 die "The GUI requires GLIB devel packages (which were not found)"
7906 _glib=$($_glibconfig --version 2>&1)
7907 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7908 echores "$_glib (using $_glibconfig)"
7910 def_gui='#define CONFIG_GUI 1'
7911 def_gtk2='#undef CONFIG_GTK2'
7914 else #if ! win32
7915 _gui_win32=yes
7916 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7917 def_gui='#define CONFIG_GUI 1'
7918 def_gtk2='#undef CONFIG_GTK2'
7919 fi #if ! win32
7921 else #if test "$_gui"
7922 def_gui='#undef CONFIG_GUI'
7923 def_gtk2='#undef CONFIG_GTK2'
7924 fi #if test "$_gui"
7925 # --------------- GUI specific tests end -------------------
7928 if test "$_charset" != "noconv" ; then
7929 def_charset="#define MSG_CHARSET \"$_charset\""
7930 else
7931 def_charset="#undef MSG_CHARSET"
7932 _charset="UTF-8"
7935 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7936 echocheck "iconv program"
7937 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7938 if test "$?" -ne 0 ; then
7939 echores "no"
7940 echo "No working iconv program found, use "
7941 echo "--charset=UTF-8 to continue anyway."
7942 echo "If you also have problems with iconv library functions use --charset=noconv."
7943 echo "Messages in the GTK-2 interface will be broken then."
7944 exit 1
7945 else
7946 echores "yes"
7950 #############################################################################
7952 echocheck "automatic gdb attach"
7953 if test "$_crash_debug" = yes ; then
7954 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7955 else
7956 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7957 _crash_debug=no
7959 echores "$_crash_debug"
7961 echocheck "compiler support for noexecstack"
7962 cat > $TMPC <<EOF
7963 int main(void) { return 0; }
7965 if cc_check -Wl,-z,noexecstack ; then
7966 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7967 echores "yes"
7968 else
7969 echores "no"
7973 # Dynamic linking flags
7974 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7975 _ld_dl_dynamic=''
7976 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7977 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7978 _ld_dl_dynamic='-rdynamic'
7981 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7982 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7983 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7985 def_debug='#undef MP_DEBUG'
7986 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7989 echocheck "joystick"
7990 def_joystick='#undef CONFIG_JOYSTICK'
7991 if test "$_joystick" = yes ; then
7992 if linux ; then
7993 # TODO add some check
7994 def_joystick='#define CONFIG_JOYSTICK 1'
7995 else
7996 _joystick="no"
7997 _res_comment="unsupported under $system_name"
8000 echores "$_joystick"
8002 echocheck "lirc"
8003 if test "$_lirc" = auto ; then
8004 _lirc=no
8005 cat > $TMPC <<EOF
8006 #include <lirc/lirc_client.h>
8007 int main(void) { return 0; }
8009 cc_check -llirc_client && _lirc=yes
8011 if test "$_lirc" = yes ; then
8012 def_lirc='#define CONFIG_LIRC 1'
8013 libs_mplayer="$libs_mplayer -llirc_client"
8014 else
8015 def_lirc='#undef CONFIG_LIRC'
8017 echores "$_lirc"
8019 echocheck "lircc"
8020 if test "$_lircc" = auto ; then
8021 _lircc=no
8022 cat > $TMPC <<EOF
8023 #include <lirc/lircc.h>
8024 int main(void) { return 0; }
8026 cc_check -llircc && _lircc=yes
8028 if test "$_lircc" = yes ; then
8029 def_lircc='#define CONFIG_LIRCC 1'
8030 libs_mplayer="$libs_mplayer -llircc"
8031 else
8032 def_lircc='#undef CONFIG_LIRCC'
8034 echores "$_lircc"
8036 if arm; then
8037 # Detect maemo development platform libraries availability (http://www.maemo.org),
8038 # they are used when run on Nokia 770|8x0
8039 echocheck "maemo (Nokia 770|8x0)"
8040 if test "$_maemo" = auto ; then
8041 _maemo=no
8042 cat > $TMPC << EOF
8043 #include <libosso.h>
8044 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8046 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8048 if test "$_maemo" = yes ; then
8049 def_maemo='#define CONFIG_MAEMO 1'
8050 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8051 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8052 else
8053 def_maemo='#undef CONFIG_MAEMO'
8055 echores "$_maemo"
8058 #############################################################################
8060 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8061 # the OMF format needs to come after the 'extern symbol prefix' check, which
8062 # uses nm.
8063 if os2 ; then
8064 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8067 # linker paths should be the same for mencoder and mplayer
8068 _ld_tmp=""
8069 for I in $libs_mplayer ; do
8070 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8071 if test -z "$_tmp" ; then
8072 extra_ldflags="$extra_ldflags $I"
8073 else
8074 _ld_tmp="$_ld_tmp $I"
8076 done
8077 libs_mplayer=$_ld_tmp
8080 #############################################################################
8081 # 64 bit file offsets?
8082 if test "$_largefiles" = yes || freebsd ; then
8083 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8084 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8085 # dvdread support requires this (for off64_t)
8086 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8090 CXXFLAGS=" $CFLAGS -Iffmpeg -D__STDC_LIMIT_MACROS"
8092 # This must be the last test to be performed. Any other tests following it
8093 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8094 # against libdvdread (to permit MPlayer to use its own copy of the library).
8095 # So any compilation using the flags added here but not linking against
8096 # libdvdread can fail.
8097 echocheck "DVD support (libdvdnav)"
8098 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
8099 _dvdnav=no
8101 dvdnav_internal=no
8102 if test "$_dvdnav" = auto ; then
8103 if test "$_dvdread_internal" = yes ; then
8104 _dvdnav=yes
8105 dvdnav_internal=yes
8106 _res_comment="internal"
8107 else
8108 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8111 if test "$_dvdnav" = auto ; then
8112 cat > $TMPC <<EOF
8113 #include <inttypes.h>
8114 #include <dvdnav/dvdnav.h>
8115 int main(void) { dvdnav_t *dvd=0; return 0; }
8117 _dvdnav=no
8118 _dvdnavdir=$($_dvdnavconfig --cflags)
8119 _dvdnavlibs=$($_dvdnavconfig --libs)
8120 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8122 if test "$_dvdnav" = yes ; then
8123 _largefiles=yes
8124 def_dvdnav='#define CONFIG_DVDNAV 1'
8125 if test "$dvdnav_internal" = yes ; then
8126 cflags_libdvdnav="-Ilibdvdnav"
8127 _inputmodules="dvdnav(internal) $_inputmodules"
8128 else
8129 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8130 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8131 _inputmodules="dvdnav $_inputmodules"
8133 else
8134 def_dvdnav='#undef CONFIG_DVDNAV'
8135 _noinputmodules="dvdnav $_noinputmodules"
8137 echores "$_dvdnav"
8139 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8140 # Read dvdnav comment above.
8142 CFLAGS_FFMPEG="-I../.. $CFLAGS"
8143 CFLAGS="-Iffmpeg $CFLAGS"
8145 #############################################################################
8146 echo "Creating config.mak"
8147 cat > config.mak << EOF
8148 # -------- Generated by configure -----------
8150 # Ensure that locale settings do not interfere with shell commands.
8151 export LC_ALL = C
8153 CONFIGURATION = $_configuration
8155 CHARSET = $_charset
8156 DOC_LANGS = $language_doc
8157 DOC_LANG_ALL = $doc_lang_all
8158 MAN_LANGS = $language_man
8159 MAN_LANG_ALL = $man_lang_all
8161 prefix = \$(DESTDIR)$_prefix
8162 BINDIR = \$(DESTDIR)$_bindir
8163 DATADIR = \$(DESTDIR)$_datadir
8164 LIBDIR = \$(DESTDIR)$_libdir
8165 MANDIR = \$(DESTDIR)$_mandir
8166 CONFDIR = \$(DESTDIR)$_confdir
8168 AR = $_ar
8169 AS = $_cc
8170 CC = $_cc
8171 CXX = $_cc
8172 HOST_CC = $_host_cc
8173 YASM = $_yasm
8174 INSTALL = $_install
8175 INSTALLSTRIP = $_install_strip
8176 RANLIB = $_ranlib
8177 WINDRES = $_windres
8179 CFLAGS = $CFLAGS $extra_cflags
8180 OPTFLAGS = $CFLAGS $extra_cflags
8181 FFMPEG_OFLAGS = $CFLAGS_FFMPEG $extra_cflags
8182 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8183 CFLAGS_DHAHELPER = $cflags_dhahelper
8184 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8185 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8186 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8187 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8188 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8189 CFLAGS_STACKREALIGN = $cflags_stackrealign
8190 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8191 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8192 YASMFLAGS = $YASMFLAGS
8194 EXTRALIBS = $extra_libs
8195 EXTRA_LIB = $extra_ldflags $_ld_static $_ld_lm
8196 EXTRALIBS_MPLAYER = $libs_mplayer
8197 EXTRALIBS_MENCODER = $libs_mencoder
8199 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8201 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 &,"
8202 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 &,"
8204 GETCH = $_getch
8205 HELP_FILE = $_mp_help
8206 TIMER = $_timer
8208 EXESUF = $_exesuf
8209 EXESUFS_ALL = .exe
8211 $_target_arch
8212 $_target_subarch
8213 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8215 MENCODER = $_mencoder
8216 MPLAYER = $_mplayer
8218 NEED_GETTIMEOFDAY = $_need_gettimeofday
8219 NEED_GLOB = $_need_glob
8220 NEED_MMAP = $_need_mmap
8221 NEED_SETENV = $_need_setenv
8222 NEED_SHMEM = $_need_shmem
8223 NEED_STRSEP = $_need_strsep
8224 NEED_SWAB = $_need_swab
8225 NEED_VSSCANF = $_need_vsscanf
8227 # features
8228 3DFX = $_3dfx
8229 AA = $_aa
8230 ALSA1X = $_alsa1x
8231 ALSA9 = $_alsa9
8232 ALSA5 = $_alsa5
8233 APPLE_IR = $_apple_ir
8234 APPLE_REMOTE = $_apple_remote
8235 ARTS = $_arts
8236 AUDIO_INPUT = $_audio_input
8237 BITMAP_FONT = $_bitmap_font
8238 BL = $_bl
8239 CACA = $_caca
8240 CDDA = $_cdda
8241 CDDB = $_cddb
8242 COREAUDIO = $_coreaudio
8243 COREVIDEO = $_corevideo
8244 DART = $_dart
8245 DFBMGA = $_dfbmga
8246 DGA = $_dga
8247 DIRECT3D = $_direct3d
8248 DIRECTFB = $_directfb
8249 DIRECTX = $_directx
8250 DVBIN = $_dvbin
8251 DVDNAV = $_dvdnav
8252 DVDNAV_INTERNAL = $dvdnav_internal
8253 DVDREAD = $_dvdread
8254 DVDREAD_INTERNAL = $_dvdread_internal
8255 DXR2 = $_dxr2
8256 DXR3 = $_dxr3
8257 ESD = $_esd
8258 FAAC=$_faac
8259 FAAD = $_faad
8260 FAAD_INTERNAL = $_faad_internal
8261 FASTMEMCPY = $_fastmemcpy
8262 FBDEV = $_fbdev
8263 FREETYPE = $_freetype
8264 FTP = $_ftp
8265 GIF = $_gif
8266 GGI = $_ggi
8267 GL = $_gl
8268 GL_WIN32 = $_gl_win32
8269 GUI = $_gui
8270 GUI_GTK = $_gui_gtk
8271 GUI_WIN32 = $_gui_win32
8272 HAVE_POSIX_SELECT = $_posix_select
8273 HAVE_SYS_MMAN_H = $_mman
8274 IVTV = $_ivtv
8275 JACK = $_jack
8276 JOYSTICK = $_joystick
8277 JPEG = $_jpeg
8278 KVA = $_kva
8279 LADSPA = $_ladspa
8280 LIBA52 = $_liba52
8281 LIBA52_INTERNAL = $_liba52_internal
8282 LIBASS = $_ass
8283 LIBBS2B = $_libbs2b
8284 LIBDCA = $_libdca
8285 LIBDV = $_libdv
8286 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8287 LIBLZO = $_liblzo
8288 LIBMAD = $_mad
8289 LIBMENU = $_menu
8290 LIBMENU_DVBIN = $_menu_dvbin
8291 LIBMPEG2 = $_libmpeg2
8292 LIBNEMESI = $_nemesi
8293 LIBNUT = $_libnut
8294 LIBSMBCLIENT = $_smb
8295 LIBTHEORA = $_theora
8296 LIRC = $_lirc
8297 LIVE555 = $_live
8298 MACOSX_BUNDLE = $_macosx_bundle
8299 MACOSX_FINDER = $_macosx_finder
8300 MD5SUM = $_md5sum
8301 MGA = $_mga
8302 MNG = $_mng
8303 MP3LAME = $_mp3lame
8304 MP3LIB = $_mp3lib
8305 MUSEPACK = $_musepack
8306 NAS = $_nas
8307 NATIVE_RTSP = $_native_rtsp
8308 NETWORK = $_network
8309 OPENAL = $_openal
8310 OSS = $_ossaudio
8311 PE_EXECUTABLE = $_pe_executable
8312 PNG = $_png
8313 PNM = $_pnm
8314 PRIORITY = $_priority
8315 PULSE = $_pulse
8316 PVR = $_pvr
8317 QTX_CODECS = $_qtx
8318 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8319 QTX_EMULATION = $_qtx_emulation
8320 QUARTZ = $_quartz
8321 RADIO=$_radio
8322 RADIO_CAPTURE=$_radio_capture
8323 REAL_CODECS = $_real
8324 S3FB = $_s3fb
8325 SDL = $_sdl
8326 SPEEX = $_speex
8327 STREAM_CACHE = $_stream_cache
8328 SGIAUDIO = $_sgiaudio
8329 SUNAUDIO = $_sunaudio
8330 SVGA = $_svga
8331 TDFXFB = $_tdfxfb
8332 TDFXVID = $_tdfxvid
8333 TGA = $_tga
8334 TOOLAME=$_toolame
8335 TREMOR_INTERNAL = $_tremor_internal
8336 TV = $_tv
8337 TV_BSDBT848 = $_tv_bsdbt848
8338 TV_DSHOW = $_tv_dshow
8339 TV_TELETEXT = $_tv_teletext
8340 TV_V4L = $_tv_v4l
8341 TV_V4L1 = $_tv_v4l1
8342 TV_V4L2 = $_tv_v4l2
8343 TWOLAME=$_twolame
8344 UNRAR_EXEC = $_unrar_exec
8345 V4L2 = $_v4l2
8346 VCD = $_vcd
8347 VDPAU = $_vdpau
8348 VESA = $_vesa
8349 VIDIX = $_vidix
8350 VIDIX_PCIDB = $_vidix_pcidb_val
8351 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8352 VIDIX_IVTV=$_vidix_drv_ivtv
8353 VIDIX_MACH64=$_vidix_drv_mach64
8354 VIDIX_MGA=$_vidix_drv_mga
8355 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8356 VIDIX_NVIDIA=$_vidix_drv_nvidia
8357 VIDIX_PM2=$_vidix_drv_pm2
8358 VIDIX_PM3=$_vidix_drv_pm3
8359 VIDIX_RADEON=$_vidix_drv_radeon
8360 VIDIX_RAGE128=$_vidix_drv_rage128
8361 VIDIX_S3=$_vidix_drv_s3
8362 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8363 VIDIX_SIS=$_vidix_drv_sis
8364 VIDIX_UNICHROME=$_vidix_drv_unichrome
8365 VORBIS = $_vorbis
8366 VSTREAM = $_vstream
8367 WII = $_wii
8368 WIN32DLL = $_win32dll
8369 WIN32WAVEOUT = $_win32waveout
8370 WIN32_EMULATION = $_win32_emulation
8371 WINVIDIX = $winvidix
8372 X11 = $_x11
8373 X264 = $_x264
8374 XANIM_CODECS = $_xanim
8375 XMGA = $_xmga
8376 XMMS_PLUGINS = $_xmms
8377 XV = $_xv
8378 XVID4 = $_xvid
8379 XVIDIX = $xvidix
8380 XVMC = $_xvmc
8381 XVR100 = $_xvr100
8382 YUV4MPEG = $_yuv4mpeg
8383 ZR = $_zr
8385 # FFmpeg
8386 LIBAVUTIL = $_libavutil
8387 LIBAVUTIL_A = $_libavutil_a
8388 LIBAVUTIL_SO = $_libavutil_so
8389 LIBAVCODEC = $_libavcodec
8390 LIBAVCODEC_A = $_libavcodec_a
8391 LIBAVCODEC_SO = $_libavcodec_so
8392 LIBAVFORMAT = $_libavformat
8393 LIBAVFORMAT_A = $_libavformat_a
8394 LIBAVFORMAT_SO = $_libavformat_so
8395 LIBPOSTPROC = $_libpostproc
8396 LIBPOSTPROC_A = $_libpostproc_a
8397 LIBPOSTPROC_SO = $_libpostproc_so
8398 LIBSWSCALE = $_libswscale
8399 LIBSWSCALE_A = $_libswscale_a
8400 LIBSWSCALE_SO = $_libswscale_so
8402 BUILD_STATIC=yes
8403 SRC_PATH=..
8404 BUILD_ROOT=..
8405 LIBPREF=lib
8406 LIBSUF=.a
8407 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8409 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8410 CONFIG_AANDCT=yes
8411 CONFIG_FFT=yes
8412 CONFIG_FFT_MMX=$fft_mmx
8413 CONFIG_GOLOMB=yes
8414 CONFIG_MDCT=yes
8415 CONFIG_RDFT=yes
8417 CONFIG_BZLIB=$bzlib
8418 CONFIG_ENCODERS=yes
8419 CONFIG_GPL=yes
8420 CONFIG_LIBAMR=$_libamr
8421 CONFIG_LIBAMR_NB=$_libamr_nb
8422 CONFIG_LIBAMR_WB=$_libamr_wb
8423 CONFIG_LIBDIRAC=$_libdirac_lavc
8424 CONFIG_LIBFAAC=$_faac_lavc
8425 CONFIG_LIBMP3LAME=$_mp3lame_lavc
8426 CONFIG_LIBSCHROEDINGER=$_libschroedinger_lavc
8427 CONFIG_LIBVORBIS=$_libvorbis
8428 CONFIG_LIBX264=$_x264_lavc
8429 CONFIG_LIBXVID=$_xvid_lavc
8430 CONFIG_MLIB = $_mlib
8431 CONFIG_MUXERS=$_mencoder
8432 CONFIG_POSTPROC = yes
8433 # Prevent building libavcodec/imgresample.c with conflicting symbols
8434 CONFIG_SWSCALE=yes
8435 CONFIG_VDPAU=$_vdpau
8436 CONFIG_XVMC=$_xvmc
8437 CONFIG_ZLIB=$_zlib
8439 HAVE_PTHREADS = $_pthreads
8440 HAVE_W32THREADS = $_w32threads
8441 HAVE_YASM = $_have_yasm
8443 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8444 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8445 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8446 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8447 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8448 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8451 #############################################################################
8453 ff_config_enable () {
8454 _nprefix=$3;
8455 test -z "$_nprefix" && _nprefix='CONFIG'
8456 for part in $1; do
8457 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8458 echo "#define ${_nprefix}_$part 1"
8459 else
8460 echo "#define ${_nprefix}_$part 0"
8462 done
8465 echo "Creating config.h"
8466 cat > $TMPH << EOF
8467 /*----------------------------------------------------------------------------
8468 ** This file has been automatically generated by configure any changes in it
8469 ** will be lost when you run configure again.
8470 ** Instead of modifying definitions here, use the --enable/--disable options
8471 ** of the configure script! See ./configure --help for details.
8472 *---------------------------------------------------------------------------*/
8474 #ifndef MPLAYER_CONFIG_H
8475 #define MPLAYER_CONFIG_H
8477 /* Undefine this if you do not want to select mono audio (left or right)
8478 with a stereo MPEG layer 2/3 audio stream. The command line option
8479 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8480 right-only), with 0 being the default.
8482 #define CONFIG_FAKE_MONO 1
8484 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8485 #define MAX_OUTBURST 65536
8487 /* set up audio OUTBURST. Do not change this! */
8488 #define OUTBURST 512
8490 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8491 #undef FAST_OSD
8492 #undef FAST_OSD_TABLE
8494 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8495 #define MPEG12_POSTPROC 1
8496 #define ATTRIBUTE_ALIGNED_MAX 16
8500 #define CONFIGURATION "$_configuration"
8502 #define MPLAYER_DATADIR "$_datadir"
8503 #define MPLAYER_CONFDIR "$_confdir"
8504 #define MPLAYER_LIBDIR "$_libdir"
8506 /* definitions needed by included libraries */
8507 #define HAVE_INTTYPES_H 1
8508 /* libmpeg2 + FFmpeg */
8509 $def_fast_inttypes
8510 /* libdvdcss */
8511 #define HAVE_ERRNO_H 1
8512 /* libdvdcss + libdvdread */
8513 #define HAVE_LIMITS_H 1
8514 /* libdvdcss + libfaad2 */
8515 #define HAVE_UNISTD_H 1
8516 /* libfaad2 + libdvdread */
8517 #define STDC_HEADERS 1
8518 #define HAVE_MEMCPY 1
8519 /* libfaad2 */
8520 #define HAVE_STRING_H 1
8521 #define HAVE_STRINGS_H 1
8522 #define HAVE_SYS_STAT_H 1
8523 #define HAVE_SYS_TYPES_H 1
8524 /* libdvdnav */
8525 #define READ_CACHE_TRACE 0
8526 /* libdvdread */
8527 #define HAVE_DLFCN_H 1
8528 $def_dvdcss
8531 /* system headers */
8532 $def_alloca_h
8533 $def_alsa_asoundlib_h
8534 $def_altivec_h
8535 $def_malloc_h
8536 $def_mman_h
8537 $def_mman_has_map_failed
8538 $def_soundcard_h
8539 $def_sys_asoundlib_h
8540 $def_sys_soundcard_h
8541 $def_sys_sysinfo_h
8542 $def_termios_h
8543 $def_termios_sys_h
8544 $def_winsock2_h
8547 /* system functions */
8548 $def_gethostbyname2
8549 $def_gettimeofday
8550 $def_glob
8551 $def_langinfo
8552 $def_llrint
8553 $def_lrint
8554 $def_lrintf
8555 $def_map_memalign
8556 $def_memalign
8557 $def_nanosleep
8558 $def_posix_select
8559 $def_round
8560 $def_roundf
8561 $def_select
8562 $def_setenv
8563 $def_shm
8564 $def_strsep
8565 $def_swab
8566 $def_sysi86
8567 $def_sysi86_iv
8568 $def_termcap
8569 $def_termios
8570 $def_truncf
8571 $def_vsscanf
8574 /* system-specific features */
8575 $def_asmalign_pot
8576 $def_builtin_expect
8577 $def_dl
8578 $def_extern_prefix
8579 $def_iconv
8580 $def_kstat
8581 $def_macosx_bundle
8582 $def_macosx_finder
8583 $def_maemo
8584 $def_named_asm_args
8585 $def_priority
8586 $def_quicktime
8587 $def_restrict_keyword
8588 $def_rtc
8589 $def_unrar_exec
8592 /* configurable options */
8593 $def_charset
8594 $def_crash_debug
8595 $def_debug
8596 $def_dynamic_plugins
8597 $def_fastmemcpy
8598 $def_menu
8599 $def_runtime_cpudetection
8600 $def_sighandler
8601 $def_sortsub
8602 $def_stream_cache
8603 $def_pthread_cache
8606 /* CPU stuff */
8607 #define __CPU__ $iproc
8608 $def_words_endian
8609 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8610 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8613 /* DVD/VCD/CD */
8614 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8615 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8616 $def_bsdi_dvd
8617 $def_cddb
8618 $def_cdio
8619 $def_cdparanoia
8620 $def_cdrom
8621 $def_dvd
8622 $def_dvd_bsd
8623 $def_dvd_darwin
8624 $def_dvd_linux
8625 $def_dvd_openbsd
8626 $def_dvdio
8627 $def_dvdnav
8628 $def_dvdread
8629 $def_hpux_scsi_h
8630 $def_libcdio
8631 $def_sol_scsi_h
8632 $def_vcd
8635 /* codec libraries */
8636 $def_faac
8637 $def_faad
8638 $def_faad_internal
8639 $def_liba52
8640 $def_liba52_internal
8641 $def_libdca
8642 $def_libdv
8643 $def_liblzo
8644 $def_libmpeg2
8645 $def_mad
8646 $def_mp3lame
8647 $def_mp3lame_preset
8648 $def_mp3lame_preset_medium
8649 $def_mp3lib
8650 $def_musepack
8651 $def_speex
8652 $def_theora
8653 $def_toolame
8654 $def_tremor
8655 $def_twolame
8656 $def_vorbis
8657 $def_x264
8658 $def_xvid
8659 $def_zlib
8661 $def_libnut
8664 /* binary codecs */
8665 $def_qtx
8666 $def_qtx_win32
8667 $def_real
8668 $def_real_path
8669 $def_win32_loader
8670 $def_win32dll
8671 #define WIN32_PATH "$_win32codecsdir"
8672 $def_xanim
8673 $def_xanim_path
8674 $def_xmms
8675 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8678 /* GUI */
8679 $def_gtk2
8680 $def_gui
8681 $def_xshape
8684 /* Audio output drivers */
8685 $def_alsa
8686 $def_alsa1x
8687 $def_alsa5
8688 $def_alsa9
8689 $def_arts
8690 $def_coreaudio
8691 $def_dart
8692 $def_esd
8693 $def_esd_latency
8694 $def_jack
8695 $def_nas
8696 $def_openal
8697 $def_openal_h
8698 $def_ossaudio
8699 $def_ossaudio_devdsp
8700 $def_ossaudio_devmixer
8701 $def_pulse
8702 $def_sgiaudio
8703 $def_sunaudio
8704 $def_win32waveout
8706 $def_ladspa
8707 $def_libbs2b
8710 /* input */
8711 $def_apple_ir
8712 $def_apple_remote
8713 $def_ioctl_bt848_h_name
8714 $def_ioctl_meteor_h_name
8715 $def_joystick
8716 $def_lirc
8717 $def_lircc
8718 $def_pvr
8719 $def_radio
8720 $def_radio_bsdbt848
8721 $def_radio_capture
8722 $def_radio_v4l
8723 $def_radio_v4l2
8724 $def_tv
8725 $def_tv_bsdbt848
8726 $def_tv_dshow
8727 $def_tv_teletext
8728 $def_tv_v4l
8729 $def_tv_v4l1
8730 $def_tv_v4l2
8733 /* font stuff */
8734 $def_ass
8735 $def_bitmap_font
8736 $def_enca
8737 $def_fontconfig
8738 $def_freetype
8739 $def_fribidi
8742 /* networking */
8743 $def_closesocket
8744 $def_ftp
8745 $def_inet6
8746 $def_inet_aton
8747 $def_inet_pton
8748 $def_live
8749 $def_nemesi
8750 $def_network
8751 $def_smb
8752 $def_socklen_t
8753 $def_vstream
8756 /* libvo options */
8757 $def_3dfx
8758 $def_aa
8759 $def_bl
8760 $def_caca
8761 $def_corevideo
8762 $def_dfbmga
8763 $def_dga
8764 $def_dga1
8765 $def_dga2
8766 $def_direct3d
8767 $def_directfb
8768 $def_directfb_version
8769 $def_directx
8770 $def_dvb
8771 $def_dvb_head
8772 $def_dvbin
8773 $def_dxr2
8774 $def_dxr3
8775 $def_fbdev
8776 $def_ggi
8777 $def_ggiwmh
8778 $def_gif
8779 $def_gif_4
8780 $def_gif_tvt_hack
8781 $def_gl
8782 $def_gl_win32
8783 $def_ivtv
8784 $def_jpeg
8785 $def_kva
8786 $def_md5sum
8787 $def_mga
8788 $def_mng
8789 $def_png
8790 $def_pnm
8791 $def_quartz
8792 $def_s3fb
8793 $def_sdl
8794 $def_sdlbuggy
8795 $def_svga
8796 $def_tdfxfb
8797 $def_tdfxvid
8798 $def_tga
8799 $def_v4l2
8800 $def_vdpau
8801 $def_vesa
8802 $def_vidix
8803 $def_vidix_drv_cyberblade
8804 $def_vidix_drv_ivtv
8805 $def_vidix_drv_mach64
8806 $def_vidix_drv_mga
8807 $def_vidix_drv_mga_crtc2
8808 $def_vidix_drv_nvidia
8809 $def_vidix_drv_pm3
8810 $def_vidix_drv_radeon
8811 $def_vidix_drv_rage128
8812 $def_vidix_drv_s3
8813 $def_vidix_drv_sh_veu
8814 $def_vidix_drv_sis
8815 $def_vidix_drv_unichrome
8816 $def_vidix_pfx
8817 $def_vm
8818 $def_wii
8819 $def_x11
8820 $def_xdpms
8821 $def_xf86keysym
8822 $def_xinerama
8823 $def_xmga
8824 $def_xss
8825 $def_xv
8826 $def_xvmc
8827 $def_xvr100
8828 $def_yuv4mpeg
8829 $def_zr
8832 /* FFmpeg */
8833 $def_libavcodec
8834 $def_libavcodec_a
8835 $def_libavcodec_so
8836 $def_libavformat
8837 $def_libavformat_a
8838 $def_libavformat_so
8839 $def_libavutil
8840 $def_libavutil_a
8841 $def_libavutil_so
8842 $def_libpostproc
8843 $def_libpostproc_a
8844 $def_libpostproc_so
8845 $def_libswscale
8846 $def_libswscale_a
8847 $def_libswscale_so
8849 #define CONFIG_DECODERS 1
8850 #define CONFIG_ENCODERS 1
8851 #define CONFIG_DEMUXERS 1
8852 $def_muxers
8854 $def_arpa_inet_h
8855 $def_bswap
8856 $def_bzlib
8857 $def_dcbzl
8858 $def_dos_paths
8859 $def_fast_64bit
8860 $def_fast_unaligned
8861 $def_libavcodec_mpegaudio_hp
8862 $def_memalign_hack
8863 $def_mlib
8864 $def_mkstemp
8865 $def_posix_memalign
8866 $def_pthreads
8867 $def_ten_operands
8868 $def_threads
8869 $def_xform_asm
8870 $def_yasm
8872 #define CONFIG_FASTDIV 0
8873 #define CONFIG_FFSERVER 0
8874 #define CONFIG_GPL 1
8875 #define CONFIG_GRAY 0
8876 #define CONFIG_HARDCODED_TABLES 0
8877 #define CONFIG_LIBAMR_NB_FIXED 0
8878 #define CONFIG_LIBVORBIS 0
8879 #define CONFIG_POWERPC_PERF 0
8880 #define CONFIG_SMALL 0
8881 #define CONFIG_SWSCALE 1
8882 #define CONFIG_SWSCALE_ALPHA 1
8884 #define HAVE_GETHRTIME 0
8885 #define HAVE_INLINE_ASM 0
8886 #define HAVE_LDBRX 0
8887 #define HAVE_POLL_H 1
8888 #define HAVE_PPC4XX 0
8889 #define HAVE_VIRTUALALLOC 0
8891 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8892 #define CONFIG_AANDCT 1
8893 #define CONFIG_FFT 1
8894 #define CONFIG_GOLOMB 1
8895 #define CONFIG_MDCT 1
8896 #define CONFIG_RDFT 1
8898 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8899 #define HAVE_EBX_AVAILABLE 1
8900 #ifndef MP_DEBUG
8901 #define HAVE_EBP_AVAILABLE 1
8902 #else
8903 #define HAVE_EBP_AVAILABLE 0
8904 #endif
8906 /* External libraries used through libavcodec. */
8907 $def_faac_lavc
8908 $def_libamr
8909 $def_libamr_nb
8910 $def_libamr_wb
8911 $def_libdirac_lavc
8912 $def_libschroedinger_lavc
8913 $def_mp3lame_lavc
8914 $def_x264_lavc
8915 $def_xvid_lavc
8917 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8918 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8919 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8920 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8921 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8922 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8923 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8925 #define CONFIG_H263_VAAPI_HWACCEL 0
8926 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8927 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8928 #define CONFIG_H264_VAAPI_HWACCEL 0
8929 #define CONFIG_VC1_VAAPI_HWACCEL 0
8930 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8932 #endif /* MPLAYER_CONFIG_H */
8935 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8936 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8938 cp -p config.h ffmpeg/config.h
8939 sed -e 's/OPTFLAGS/MPLAYER_OPTFLAGS/' -e 's/FFMPEG_OFLAGS/OPTFLAGS/' config.mak >ffmpeg/config.mak
8941 #############################################################################
8943 cat << EOF
8945 Config files successfully generated by ./configure $_configuration !
8947 Install prefix: $_prefix
8948 Data directory: $_datadir
8949 Config direct.: $_confdir
8951 Byte order: $_byte_order
8952 Optimizing for: $_optimizing
8954 Languages:
8955 Messages/GUI: $language_msg
8956 Manual pages: $language_man
8957 Documentation: $language_doc
8959 Enabled optional drivers:
8960 Input: $_inputmodules
8961 Codecs: $_codecmodules
8962 Audio output: $_aomodules
8963 Video output: $_vomodules
8965 Disabled optional drivers:
8966 Input: $_noinputmodules
8967 Codecs: $_nocodecmodules
8968 Audio output: $_noaomodules
8969 Video output: $_novomodules
8971 'config.h' and 'config.mak' contain your configuration options.
8972 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8973 compile *** DO NOT REPORT BUGS if you tweak these files ***
8975 'make' will now compile MPlayer and 'make install' will install it.
8976 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8981 if test "$_mtrr" = yes ; then
8982 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8983 echo
8986 if ! x86_32; then
8987 cat <<EOF
8988 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8989 operating system ($system_name). You may encounter a few files that cannot
8990 be played due to missing open source video/audio codec support.
8996 cat <<EOF
8997 Check $TMPLOG if you wonder why an autodetection failed (make sure
8998 development headers/packages are installed).
9000 NOTE: The --enable-* parameters unconditionally force options on, completely
9001 skipping autodetection. This behavior is unlike what you may be used to from
9002 autoconf-based configure scripts that can decide to override you. This greater
9003 level of control comes at a price. You may have to provide the correct compiler
9004 and linker flags yourself.
9005 If you used one of these options (except --enable-gui and similar ones that
9006 turn on internal features) and experience a compilation or linking failure,
9007 make sure you have passed the necessary compiler/linker flags to configure.
9009 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9013 if test "$_warn_CFLAGS" = yes; then
9014 cat <<EOF
9016 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9017 but:
9019 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9021 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9022 To do so, execute 'CFLAGS= ./configure <options>'
9027 # Last move:
9028 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"