If we have no FPS value, try enabling -correct-pts mode, it does
[mplayer/glamo.git] / configure
blob7a87fd65482c0150673fe7ea88efa4cfa03bb71d
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 source="$1"
63 shift
64 echo >> "$TMPLOG"
65 cat "$source" >> "$TMPLOG"
66 echo >> "$TMPLOG"
67 echo "$_cc $source $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
68 rm -f "$TMPEXE"
69 $_cc $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
70 TMPRES="$?"
71 echo >> "$TMPLOG"
72 echo >> "$TMPLOG"
73 return "$TMPRES"
76 cc_check() {
77 compile_check $TMPC $@
80 cxx_check() {
81 compile_check $TMPCPP $@ -lstdc++
84 yasm_check() {
85 echo >> "$TMPLOG"
86 cat "$TMPS" >> "$TMPLOG"
87 echo >> "$TMPLOG"
88 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
89 rm -f "$TMPEXE"
90 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
91 TMPRES="$?"
92 echo >> "$TMPLOG"
93 echo >> "$TMPLOG"
94 return "$TMPRES"
97 tmp_run() {
98 "$TMPEXE" >> "$TMPLOG" 2>&1
101 # Display error message, flushes tempfile, exit
102 die () {
103 echo
104 echo "Error: $@" >&2
105 echo >&2
106 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
107 echo "Check \"$TMPLOG\" if you do not understand why it failed."
108 exit 1
111 # OS test booleans functions
112 issystem() {
113 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
115 aix() { issystem "AIX"; }
116 amigaos() { issystem "AmigaOS"; }
117 beos() { issystem "BEOS"; }
118 bsdos() { issystem "BSD/OS"; }
119 cygwin() { issystem "CYGWIN"; }
120 darwin() { issystem "Darwin"; }
121 dragonfly() { issystem "DragonFly"; }
122 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
123 gnu() { issystem "GNU"; }
124 hpux() { issystem "HP-UX"; }
125 irix() { issystem "IRIX"; }
126 linux() { issystem "Linux"; }
127 mingw32() { issystem "MINGW32"; }
128 morphos() { issystem "MorphOS"; }
129 netbsd() { issystem "NetBSD"; }
130 openbsd() { issystem "OpenBSD"; }
131 os2() { issystem "OS/2"; }
132 qnx() { issystem "QNX"; }
133 sunos() { issystem "SunOS"; }
134 win32() { cygwin || mingw32; }
136 # arch test boolean functions
137 # x86/x86pc is used by QNX
138 x86_32() {
139 case "$host_arch" in
140 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
141 *) return 1 ;;
142 esac
145 x86_64() {
146 case "$host_arch" in
147 x86_64|amd64) return 0 ;;
148 *) return 1 ;;
149 esac
152 x86() {
153 x86_32 || x86_64
156 ppc() {
157 case "$host_arch" in
158 ppc|ppc64|powerpc|powerpc64) return 0;;
159 *) return 1;;
160 esac
163 alpha() {
164 case "$host_arch" in
165 alpha*) return 0;;
166 *) return 1;;
167 esac
170 arm() {
171 case "$host_arch" in
172 arm*) return 0;;
173 *) return 1;;
174 esac
177 # Use this before starting a check
178 echocheck() {
179 echo "============ Checking for $@ ============" >> "$TMPLOG"
180 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
183 # Use this to echo the results of a check
184 echores() {
185 if test "$res_comment" ; then
186 res_comment="($res_comment)"
188 echo "Result is: $@ $res_comment" >> "$TMPLOG"
189 echo "##########################################" >> "$TMPLOG"
190 echo "" >> "$TMPLOG"
191 echo "$@ $res_comment"
192 res_comment=""
194 #############################################################################
196 # Check how echo works in this /bin/sh
197 case $(echo -n) in
198 -n) _echo_n= _echo_c='\c' ;; # SysV echo
199 *) _echo_n='-n ' _echo_c= ;; # BSD echo
200 esac
202 msg_lang_all=$(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")
203 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")
204 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
206 show_help(){
207 cat << EOF
208 Usage: $0 [OPTIONS]...
210 Configuration:
211 -h, --help display this help and exit
213 Installation directories:
214 --prefix=DIR prefix directory for installation [/usr/local]
215 --bindir=DIR directory for installing binaries [PREFIX/bin]
216 --datadir=DIR directory for installing machine independent
217 data files (skins, etc) [PREFIX/share/mplayer]
218 --mandir=DIR directory for installing man pages [PREFIX/share/man]
219 --confdir=DIR directory for installing configuration files
220 [PREFIX/etc/mplayer]
221 --libdir=DIR directory for object code libraries [PREFIX/lib]
222 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
224 Optional features:
225 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
226 --disable-mplayer disable MPlayer compilation [enable]
227 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
228 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
229 --disable-largefiles disable support for files > 2GB [enable]
230 --enable-linux-devfs set default devices to devfs [disable]
231 --enable-termcap use termcap database for key codes [autodetect]
232 --enable-termios use termios database for key codes [autodetect]
233 --disable-iconv disable iconv for encoding conversion [autodetect]
234 --disable-langinfo do not use langinfo [autodetect]
235 --enable-lirc enable LIRC (remote control) support [autodetect]
236 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
237 --enable-joystick enable joystick support [disable]
238 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
239 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
240 --disable-vm disable X video mode extensions [autodetect]
241 --disable-xf86keysym disable support for multimedia keys [autodetect]
242 --enable-radio enable radio interface [disable]
243 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
244 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
245 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
246 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
247 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
248 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
249 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
250 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
251 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
252 --disable-network disable networking [enable]
253 --enable-winsock2_h enable winsock2_h [autodetect]
254 --enable-smb enable Samba (SMB) input [autodetect]
255 --enable-live enable LIVE555 Streaming Media [autodetect]
256 --enable-nemesi enable Nemesi Streaming Media [autodetect]
257 --enable-librtmp enable RTMPDump Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
284 --disable-ass disable 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 [autodetect]
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-libvpx-lavc disable libvpx in libavcodec [autodetect]
306 --disable-libnut disable libnut [autodetect]
307 --disable-libavutil_a disable static libavutil [autodetect]
308 --disable-libavcodec_a disable static libavcodec [autodetect]
309 --disable-libavformat_a disable static libavformat [autodetect]
310 --disable-libpostproc_a disable static libpostproc [autodetect]
311 --disable-libswscale_a disable static libswscale [autodetect]
312 --disable-libavutil_so disable shared libavutil [autodetect]
313 --disable-libavcodec_so disable shared libavcodec [autodetect]
314 --disable-libavformat_so disable shared libavformat [autodetect]
315 --disable-libpostproc_so disable shared libpostproc [autodetect]
316 --disable-libswscale_so disable shared libswscale [autodetect]
317 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
318 in libavcodec [enabled]
319 --disable-tremor-internal disable internal Tremor [enabled]
320 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
321 --enable-tremor enable external Tremor [autodetect]
322 --disable-libvorbis disable libvorbis support [autodetect]
323 --disable-speex disable Speex support [autodetect]
324 --enable-theora enable OggTheora libraries [autodetect]
325 --enable-faad enable external FAAD2 (AAC) [autodetect]
326 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
327 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
328 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
329 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
330 --disable-ladspa disable LADSPA plugin support [autodetect]
331 --disable-libbs2b disable libbs2b audio filter support [autodetect]
332 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
333 --disable-mad disable libmad (MPEG audio) support [autodetect]
334 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
335 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
336 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
337 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
338 --enable-xmms enable XMMS input plugin support [disabled]
339 --enable-libdca enable libdca support [autodetect]
340 --disable-mp3lib disable builtin mp3lib [autodetect]
341 --disable-liba52 disable liba52 [autodetect]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
345 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
346 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
347 --disable-decoder=DECODER disable specified FFmpeg decoder
348 --enable-decoder=DECODER enable specified FFmpeg decoder
349 --disable-encoder=ENCODER disable specified FFmpeg encoder
350 --enable-encoder=ENCODER enable specified FFmpeg encoder
351 --disable-parser=PARSER disable specified FFmpeg parser
352 --enable-parser=PARSER enable specified FFmpeg parser
353 --disable-protocol=PROTO disable specified FFmpeg protocol
354 --enable-protocol=PROTO enable specified FFmpeg protocol
355 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
356 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
357 --disable-muxer=MUXER disable specified FFmpeg muxer
358 --enable-muxer=MUXER enable specified FFmpeg muxer
360 Video output:
361 --disable-vidix disable VIDIX [for x86 *nix]
362 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
363 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
364 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
365 --disable-vidix-pcidb disable VIDIX PCI device name database
366 --enable-dhahelper enable VIDIX dhahelper support
367 --enable-svgalib_helper enable VIDIX svgalib_helper support
368 --enable-gl enable OpenGL video output [autodetect]
369 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
370 --enable-dga2 enable DGA 2 support [autodetect]
371 --enable-dga1 enable DGA 1 support [autodetect]
372 --enable-vesa enable VESA video output [autodetect]
373 --enable-svga enable SVGAlib video output [autodetect]
374 --enable-sdl enable SDL video output [autodetect]
375 --enable-kva enable KVA video output [autodetect]
376 --enable-aa enable AAlib video output [autodetect]
377 --enable-caca enable CACA video output [autodetect]
378 --enable-ggi enable GGI video output [autodetect]
379 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
380 --enable-direct3d enable Direct3D video output [autodetect]
381 --enable-directx enable DirectX video output [autodetect]
382 --enable-dxr2 enable DXR2 video output [autodetect]
383 --enable-dxr3 enable DXR3/H+ video output [autodetect]
384 --enable-ivtv enable IVTV TV-Out video output [autodetect]
385 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
386 --enable-dvb enable DVB video output [autodetect]
387 --enable-mga enable mga_vid video output [autodetect]
388 --enable-xmga enable mga_vid X11 video output [autodetect]
389 --enable-xv enable Xv video output [autodetect]
390 --enable-xvmc enable XvMC acceleration [disable]
391 --enable-vdpau enable VDPAU acceleration [autodetect]
392 --enable-vm enable XF86VidMode support [autodetect]
393 --enable-xinerama enable Xinerama support [autodetect]
394 --enable-x11 enable X11 video output [autodetect]
395 --enable-xshape enable XShape support [autodetect]
396 --disable-xss disable screensaver support via xss [autodetect]
397 --enable-fbdev enable FBDev video output [autodetect]
398 --enable-mlib enable mediaLib video output (Solaris) [disable]
399 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
400 --enable-tdfxfb enable tdfxfb video output [disable]
401 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
402 --enable-wii enable Nintendo Wii/GameCube video output [disable]
403 --enable-directfb enable DirectFB video output [autodetect]
404 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
405 --enable-bl enable Blinkenlights video output [disable]
406 --enable-tdfxvid enable tdfx_vid video output [disable]
407 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
408 --disable-tga disable Targa video output [enable]
409 --disable-pnm disable PNM video output [enable]
410 --disable-md5sum disable md5sum video output [enable]
411 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
412 --disable-corevideo disable CoreVideo video output [autodetect]
413 --disable-quartz disable Quartz video output [autodetect]
415 Audio output:
416 --disable-alsa disable ALSA audio output [autodetect]
417 --disable-ossaudio disable OSS audio output [autodetect]
418 --disable-arts disable aRts audio output [autodetect]
419 --disable-esd disable esd audio output [autodetect]
420 --disable-pulse disable Pulseaudio audio output [autodetect]
421 --disable-jack disable JACK audio output [autodetect]
422 --disable-openal disable OpenAL audio output [autodetect]
423 --disable-nas disable NAS audio output [autodetect]
424 --disable-sgiaudio disable SGI audio output [autodetect]
425 --disable-sunaudio disable Sun audio output [autodetect]
426 --disable-kai disable KAI audio output [autodetect]
427 --disable-dart disable DART audio output [autodetect]
428 --disable-win32waveout disable Windows waveout audio output [autodetect]
429 --disable-coreaudio disable CoreAudio audio output [autodetect]
430 --disable-select disable using select() on the audio device [enable]
432 Language options:
433 --charset=charset convert the console messages to this character set
434 --language-doc=lang language to use for the documentation [en]
435 --language-man=lang language to use for the man pages [en]
436 --language-msg=lang language to use for the messages and the GUI [en]
437 --language=lang default language to use [en]
438 Specific options override --language. You can pass a list of languages separated
439 by whitespace or commas instead of a single language. Nonexisting translations
440 will be dropped from each list. All documentation and man page translations
441 available in the list will be installed, for the messages the first available
442 translation will be used. The value "all" will activate all translations. The
443 LINGUAS environment variable is honored. In all cases the fallback is English.
444 Available values are: all $msg_lang_all
446 Miscellaneous options:
447 --enable-runtime-cpudetection enable runtime CPU detection [disable]
448 --enable-cross-compile enable cross-compilation [autodetect]
449 --cc=COMPILER C compiler to build MPlayer [gcc]
450 --host-cc=COMPILER C compiler for tools needed while building [gcc]
451 --as=ASSEMBLER assembler to build MPlayer [as]
452 --nm=NM nm tool to build MPlayer [nm]
453 --yasm=YASM Yasm assembler to build MPlayer [yasm]
454 --ar=AR librarian to build MPlayer [ar]
455 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
456 --windres=WINDRES windres to build MPlayer [windres]
457 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
458 --enable-static build a statically linked binary
459 --with-install=PATH path to a custom install program
461 Advanced options:
462 --enable-mmx enable MMX [autodetect]
463 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
464 --enable-3dnow enable 3DNow! [autodetect]
465 --enable-3dnowext enable extended 3DNow! [autodetect]
466 --enable-sse enable SSE [autodetect]
467 --enable-sse2 enable SSE2 [autodetect]
468 --enable-ssse3 enable SSSE3 [autodetect]
469 --enable-shm enable shm [autodetect]
470 --enable-altivec enable AltiVec (PowerPC) [autodetect]
471 --enable-armv5te enable DSP extensions (ARM) [autodetect]
472 --enable-armv6 enable ARMv6 (ARM) [autodetect]
473 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
474 --enable-armvfp enable ARM VFP (ARM) [autodetect]
475 --enable-neon enable NEON (ARM) [autodetect]
476 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
477 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
478 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
479 --enable-big-endian force byte order to big-endian [autodetect]
480 --enable-debug[=1-3] compile-in debugging information [disable]
481 --enable-profile compile-in profiling information [disable]
482 --disable-sighandler disable sighandler for crashes [enable]
483 --enable-crash-debug enable automatic gdb attach on crash [disable]
484 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
486 Use these options if autodetection fails:
487 --extra-cflags=FLAGS extra CFLAGS
488 --extra-ldflags=FLAGS extra LDFLAGS
489 --extra-libs=FLAGS extra linker flags
490 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
491 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
492 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
494 --with-freetype-config=PATH path to freetype-config
495 --with-glib-config=PATH path to glib*-config
496 --with-gtk-config=PATH path to gtk*-config
497 --with-sdl-config=PATH path to sdl*-config
498 --with-dvdnav-config=PATH path to dvdnav-config
499 --with-dvdread-config=PATH path to dvdread-config
501 This configure script is NOT autoconf-based, even though its output is similar.
502 It will try to autodetect all configuration options. If you --enable an option
503 it will be forcefully turned on, skipping autodetection. This can break
504 compilation, so you need to know what you are doing.
506 exit 0
507 } #show_help()
509 # GOTCHA: the variables below defines the default behavior for autodetection
510 # and have - unless stated otherwise - at least 2 states : yes no
511 # If autodetection is available then the third state is: auto
512 _mmx=auto
513 _3dnow=auto
514 _3dnowext=auto
515 _mmxext=auto
516 _sse=auto
517 _sse2=auto
518 _ssse3=auto
519 _cmov=auto
520 _fast_cmov=auto
521 _fast_clz=auto
522 _armv5te=auto
523 _armv6=auto
524 _armv6t2=auto
525 _armvfp=auto
526 neon=auto
527 _iwmmxt=auto
528 _mtrr=auto
529 _altivec=auto
530 _install=install
531 _ranlib=ranlib
532 _windres=windres
533 _cc=cc
534 _ar=ar
535 test "$CC" && _cc="$CC"
536 _as=auto
537 _nm=auto
538 _yasm=yasm
539 _runtime_cpudetection=no
540 _cross_compile=auto
541 _prefix="/usr/local"
542 _libavutil_a=auto
543 _libavutil_so=auto
544 _libavcodec_a=auto
545 _libopencore_amrnb=auto
546 _libopencore_amrwb=auto
547 libopenjpeg=auto
548 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
549 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
550 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
551 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
552 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
553 _libavparsers=$_libavparsers_all
554 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
555 _libavbsfs=$_libavbsfs_all
556 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
557 # Disable all hardware accelerators for now.
558 _libavhwaccels=
559 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
560 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
561 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
562 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// -e s/RTSP_MUXER//)
563 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
564 _libavprotocols=$_libavprotocols_all
565 _libavcodec_so=auto
566 _libavformat_a=auto
567 _libavformat_so=auto
568 _libpostproc_a=auto
569 _libpostproc_so=auto
570 _libswscale_a=auto
571 _libswscale_so=auto
572 _libavcodec_mpegaudio_hp=yes
573 _mencoder=yes
574 _mplayer=yes
575 _x11=auto
576 _xshape=auto
577 _xss=auto
578 _dga1=auto
579 _dga2=auto
580 _xv=auto
581 _xvmc=no #auto when complete
582 _vdpau=auto
583 _sdl=auto
584 _kva=auto
585 _direct3d=auto
586 _directx=auto
587 _win32waveout=auto
588 _nas=auto
589 _png=auto
590 _mng=auto
591 _jpeg=auto
592 _pnm=yes
593 _md5sum=yes
594 _yuv4mpeg=yes
595 _gif=auto
596 _gl=auto
597 matrixview=yes
598 _ggi=auto
599 _ggiwmh=auto
600 _aa=auto
601 _caca=auto
602 _svga=auto
603 _vesa=auto
604 _fbdev=auto
605 _dvb=auto
606 _dxr2=auto
607 _dxr3=auto
608 _ivtv=auto
609 _v4l2=auto
610 _iconv=auto
611 _langinfo=auto
612 _rtc=auto
613 _ossaudio=auto
614 _arts=auto
615 _esd=auto
616 _pulse=auto
617 _jack=auto
618 _kai=auto
619 _dart=auto
620 _openal=auto
621 _libcdio=auto
622 _liblzo=auto
623 _mad=auto
624 _mp3lame=auto
625 _mp3lame_lavc=auto
626 _toolame=auto
627 _twolame=auto
628 _tremor=auto
629 _tremor_internal=yes
630 _tremor_low=no
631 _libvorbis=auto
632 _speex=auto
633 _theora=auto
634 _mp3lib=auto
635 _liba52=auto
636 _libdca=auto
637 _libmpeg2=auto
638 _faad=auto
639 _faad_internal=auto
640 _faad_fixed=no
641 _faac=auto
642 _faac_lavc=auto
643 _ladspa=auto
644 _libbs2b=auto
645 _xmms=no
646 _vcd=auto
647 _dvdnav=auto
648 _dvdnavconfig=dvdnav-config
649 _dvdreadconfig=dvdread-config
650 _dvdread=auto
651 _dvdread_internal=auto
652 _libdvdcss_internal=auto
653 _xanim=auto
654 _real=auto
655 _live=auto
656 _nemesi=auto
657 _librtmp=auto
658 _native_rtsp=yes
659 _xinerama=auto
660 _mga=auto
661 _xmga=auto
662 _vm=auto
663 _xf86keysym=auto
664 _mlib=no #broken, thus disabled
665 _sgiaudio=auto
666 _sunaudio=auto
667 _alsa=auto
668 _fastmemcpy=yes
669 hardcoded_tables=no
670 _unrar_exec=auto
671 _win32dll=auto
672 _select=yes
673 _radio=no
674 _radio_capture=no
675 _radio_v4l=auto
676 _radio_v4l2=auto
677 _radio_bsdbt848=auto
678 _tv=yes
679 _tv_v4l1=auto
680 _tv_v4l2=auto
681 _tv_bsdbt848=auto
682 _tv_dshow=auto
683 _pvr=auto
684 _network=yes
685 _winsock2_h=auto
686 _struct_addrinfo=auto
687 _getaddrinfo=auto
688 _struct_sockaddr_storage=auto
689 _smb=auto
690 _vidix=auto
691 _vidix_pcidb=yes
692 _dhahelper=no
693 _svgalib_helper=no
694 _joystick=no
695 _xvid=auto
696 _xvid_lavc=auto
697 _x264=auto
698 _x264_lavc=auto
699 _libdirac_lavc=auto
700 _libschroedinger_lavc=auto
701 _libvpx_lavc=auto
702 _libnut=auto
703 _lirc=auto
704 _lircc=auto
705 _apple_remote=auto
706 _apple_ir=auto
707 _gui=no
708 _gtk1=no
709 _termcap=auto
710 _termios=auto
711 _3dfx=no
712 _s3fb=no
713 _wii=no
714 _tdfxfb=no
715 _tdfxvid=no
716 _xvr100=auto
717 _tga=yes
718 _directfb=auto
719 _zr=auto
720 _bl=no
721 _largefiles=yes
722 #language=en
723 _shm=auto
724 _linux_devfs=no
725 _charset="UTF-8"
726 _dynamic_plugins=no
727 _crash_debug=no
728 _sighandler=yes
729 _libdv=auto
730 _cdparanoia=auto
731 _cddb=auto
732 _big_endian=auto
733 _bitmap_font=yes
734 _freetype=auto
735 _fontconfig=auto
736 _menu=no
737 _qtx=auto
738 _maemo=auto
739 _coreaudio=auto
740 _corevideo=auto
741 _quartz=auto
742 quicktime=auto
743 _macosx_finder=no
744 _macosx_bundle=auto
745 _sortsub=yes
746 _freetypeconfig='freetype-config'
747 _fribidi=auto
748 _enca=auto
749 _inet6=auto
750 _gethostbyname2=auto
751 _ftp=yes
752 _musepack=auto
753 _vstream=auto
754 _pthreads=auto
755 _w32threads=auto
756 _ass=auto
757 ass_internal=yes
758 _rpath=no
759 _asmalign_pot=auto
760 _stream_cache=yes
761 _priority=no
762 def_dos_paths="#define HAVE_DOS_PATHS 0"
763 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
764 def_priority="#undef CONFIG_PRIORITY"
765 def_pthread_cache="#undef PTHREAD_CACHE"
766 _need_shmem=yes
767 for ac_option do
768 case "$ac_option" in
769 --help|-help|-h)
770 show_help
772 --prefix=*)
773 _prefix=$(echo $ac_option | cut -d '=' -f 2)
775 --bindir=*)
776 _bindir=$(echo $ac_option | cut -d '=' -f 2)
778 --datadir=*)
779 _datadir=$(echo $ac_option | cut -d '=' -f 2)
781 --mandir=*)
782 _mandir=$(echo $ac_option | cut -d '=' -f 2)
784 --confdir=*)
785 _confdir=$(echo $ac_option | cut -d '=' -f 2)
787 --libdir=*)
788 _libdir=$(echo $ac_option | cut -d '=' -f 2)
790 --codecsdir=*)
791 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
794 --with-install=*)
795 _install=$(echo $ac_option | cut -d '=' -f 2 )
797 --with-xvmclib=*)
798 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
801 --with-sdl-config=*)
802 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
804 --with-freetype-config=*)
805 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
807 --with-gtk-config=*)
808 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
810 --with-glib-config=*)
811 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
813 --with-dvdnav-config=*)
814 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
816 --with-dvdread-config=*)
817 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
820 --extra-cflags=*)
821 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
823 --extra-ldflags=*)
824 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
826 --extra-libs=*)
827 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
829 --extra-libs-mplayer=*)
830 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
832 --extra-libs-mencoder=*)
833 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
836 --target=*)
837 _target=$(echo $ac_option | cut -d '=' -f 2)
839 --cc=*)
840 _cc=$(echo $ac_option | cut -d '=' -f 2)
842 --host-cc=*)
843 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
845 --as=*)
846 _as=$(echo $ac_option | cut -d '=' -f 2)
848 --nm=*)
849 _nm=$(echo $ac_option | cut -d '=' -f 2)
851 --yasm=*)
852 _yasm=$(echo $ac_option | cut -d '=' -f 2)
854 --ar=*)
855 _ar=$(echo $ac_option | cut -d '=' -f 2)
857 --ranlib=*)
858 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
860 --windres=*)
861 _windres=$(echo $ac_option | cut -d '=' -f 2)
863 --charset=*)
864 _charset=$(echo $ac_option | cut -d '=' -f 2)
866 --language-doc=*)
867 language_doc=$(echo $ac_option | cut -d '=' -f 2)
869 --language-man=*)
870 language_man=$(echo $ac_option | cut -d '=' -f 2)
872 --language-msg=*)
873 language_msg=$(echo $ac_option | cut -d '=' -f 2)
875 --language=*)
876 language=$(echo $ac_option | cut -d '=' -f 2)
879 --enable-static)
880 _ld_static='-static'
882 --disable-static)
883 _ld_static=''
885 --enable-profile)
886 _profile='-p'
888 --disable-profile)
889 _profile=
891 --enable-debug)
892 _debug='-g'
894 --enable-debug=*)
895 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
897 --disable-debug)
898 _debug=
900 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
901 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
902 --enable-cross-compile) _cross_compile=yes ;;
903 --disable-cross-compile) _cross_compile=no ;;
904 --enable-mencoder) _mencoder=yes ;;
905 --disable-mencoder) _mencoder=no ;;
906 --enable-mplayer) _mplayer=yes ;;
907 --disable-mplayer) _mplayer=no ;;
908 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
909 --disable-dynamic-plugins) _dynamic_plugins=no ;;
910 --enable-x11) _x11=yes ;;
911 --disable-x11) _x11=no ;;
912 --enable-xshape) _xshape=yes ;;
913 --disable-xshape) _xshape=no ;;
914 --enable-xss) _xss=yes ;;
915 --disable-xss) _xss=no ;;
916 --enable-xv) _xv=yes ;;
917 --disable-xv) _xv=no ;;
918 --enable-xvmc) _xvmc=yes ;;
919 --disable-xvmc) _xvmc=no ;;
920 --enable-vdpau) _vdpau=yes ;;
921 --disable-vdpau) _vdpau=no ;;
922 --enable-sdl) _sdl=yes ;;
923 --disable-sdl) _sdl=no ;;
924 --enable-kva) _kva=yes ;;
925 --disable-kva) _kva=no ;;
926 --enable-direct3d) _direct3d=yes ;;
927 --disable-direct3d) _direct3d=no ;;
928 --enable-directx) _directx=yes ;;
929 --disable-directx) _directx=no ;;
930 --enable-win32waveout) _win32waveout=yes ;;
931 --disable-win32waveout) _win32waveout=no ;;
932 --enable-nas) _nas=yes ;;
933 --disable-nas) _nas=no ;;
934 --enable-png) _png=yes ;;
935 --disable-png) _png=no ;;
936 --enable-mng) _mng=yes ;;
937 --disable-mng) _mng=no ;;
938 --enable-jpeg) _jpeg=yes ;;
939 --disable-jpeg) _jpeg=no ;;
940 --enable-libopenjpeg) libopenjpeg=yes ;;
941 --disable-libopenjpeg)libopenjpeg=no ;;
942 --enable-pnm) _pnm=yes ;;
943 --disable-pnm) _pnm=no ;;
944 --enable-md5sum) _md5sum=yes ;;
945 --disable-md5sum) _md5sum=no ;;
946 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
947 --disable-yuv4mpeg) _yuv4mpeg=no ;;
948 --enable-gif) _gif=yes ;;
949 --disable-gif) _gif=no ;;
950 --enable-gl) _gl=yes ;;
951 --disable-gl) _gl=no ;;
952 --enable-matrixview) matrixview=yes ;;
953 --disable-matrixview) matrixview=no ;;
954 --enable-ggi) _ggi=yes ;;
955 --disable-ggi) _ggi=no ;;
956 --enable-ggiwmh) _ggiwmh=yes ;;
957 --disable-ggiwmh) _ggiwmh=no ;;
958 --enable-aa) _aa=yes ;;
959 --disable-aa) _aa=no ;;
960 --enable-caca) _caca=yes ;;
961 --disable-caca) _caca=no ;;
962 --enable-svga) _svga=yes ;;
963 --disable-svga) _svga=no ;;
964 --enable-vesa) _vesa=yes ;;
965 --disable-vesa) _vesa=no ;;
966 --enable-fbdev) _fbdev=yes ;;
967 --disable-fbdev) _fbdev=no ;;
968 --enable-dvb) _dvb=yes ;;
969 --disable-dvb) _dvb=no ;;
970 --enable-dxr2) _dxr2=yes ;;
971 --disable-dxr2) _dxr2=no ;;
972 --enable-dxr3) _dxr3=yes ;;
973 --disable-dxr3) _dxr3=no ;;
974 --enable-ivtv) _ivtv=yes ;;
975 --disable-ivtv) _ivtv=no ;;
976 --enable-v4l2) _v4l2=yes ;;
977 --disable-v4l2) _v4l2=no ;;
978 --enable-iconv) _iconv=yes ;;
979 --disable-iconv) _iconv=no ;;
980 --enable-langinfo) _langinfo=yes ;;
981 --disable-langinfo) _langinfo=no ;;
982 --enable-rtc) _rtc=yes ;;
983 --disable-rtc) _rtc=no ;;
984 --enable-libdv) _libdv=yes ;;
985 --disable-libdv) _libdv=no ;;
986 --enable-ossaudio) _ossaudio=yes ;;
987 --disable-ossaudio) _ossaudio=no ;;
988 --enable-arts) _arts=yes ;;
989 --disable-arts) _arts=no ;;
990 --enable-esd) _esd=yes ;;
991 --disable-esd) _esd=no ;;
992 --enable-pulse) _pulse=yes ;;
993 --disable-pulse) _pulse=no ;;
994 --enable-jack) _jack=yes ;;
995 --disable-jack) _jack=no ;;
996 --enable-openal) _openal=yes ;;
997 --disable-openal) _openal=no ;;
998 --enable-kai) _kai=yes ;;
999 --disable-kai) _kai=no ;;
1000 --enable-dart) _dart=yes ;;
1001 --disable-dart) _dart=no ;;
1002 --enable-mad) _mad=yes ;;
1003 --disable-mad) _mad=no ;;
1004 --enable-mp3lame) _mp3lame=yes ;;
1005 --disable-mp3lame) _mp3lame=no ;;
1006 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1007 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1008 --enable-toolame) _toolame=yes ;;
1009 --disable-toolame) _toolame=no ;;
1010 --enable-twolame) _twolame=yes ;;
1011 --disable-twolame) _twolame=no ;;
1012 --enable-libcdio) _libcdio=yes ;;
1013 --disable-libcdio) _libcdio=no ;;
1014 --enable-liblzo) _liblzo=yes ;;
1015 --disable-liblzo) _liblzo=no ;;
1016 --enable-libvorbis) _libvorbis=yes ;;
1017 --disable-libvorbis) _libvorbis=no ;;
1018 --enable-speex) _speex=yes ;;
1019 --disable-speex) _speex=no ;;
1020 --enable-tremor) _tremor=yes ;;
1021 --disable-tremor) _tremor=no ;;
1022 --enable-tremor-internal) _tremor_internal=yes ;;
1023 --disable-tremor-internal) _tremor_internal=no ;;
1024 --enable-tremor-low) _tremor_low=yes ;;
1025 --disable-tremor-low) _tremor_low=no ;;
1026 --enable-theora) _theora=yes ;;
1027 --disable-theora) _theora=no ;;
1028 --enable-mp3lib) _mp3lib=yes ;;
1029 --disable-mp3lib) _mp3lib=no ;;
1030 --enable-liba52) _liba52=yes ;;
1031 --disable-liba52) _liba52=no ;;
1032 --enable-libdca) _libdca=yes ;;
1033 --disable-libdca) _libdca=no ;;
1034 --enable-libmpeg2) _libmpeg2=yes ;;
1035 --disable-libmpeg2) _libmpeg2=no ;;
1036 --enable-musepack) _musepack=yes ;;
1037 --disable-musepack) _musepack=no ;;
1038 --enable-faad) _faad=yes ;;
1039 --disable-faad) _faad=no ;;
1040 --enable-faad-internal) _faad_internal=yes ;;
1041 --disable-faad-internal) _faad_internal=no ;;
1042 --enable-faad-fixed) _faad_fixed=yes ;;
1043 --disable-faad-fixed) _faad_fixed=no ;;
1044 --enable-faac) _faac=yes ;;
1045 --disable-faac) _faac=no ;;
1046 --enable-faac-lavc) _faac_lavc=yes ;;
1047 --disable-faac-lavc) _faac_lavc=no ;;
1048 --enable-ladspa) _ladspa=yes ;;
1049 --disable-ladspa) _ladspa=no ;;
1050 --enable-libbs2b) _libbs2b=yes ;;
1051 --disable-libbs2b) _libbs2b=no ;;
1052 --enable-xmms) _xmms=yes ;;
1053 --disable-xmms) _xmms=no ;;
1054 --enable-vcd) _vcd=yes ;;
1055 --disable-vcd) _vcd=no ;;
1056 --enable-dvdread) _dvdread=yes ;;
1057 --disable-dvdread) _dvdread=no ;;
1058 --enable-dvdread-internal) _dvdread_internal=yes ;;
1059 --disable-dvdread-internal) _dvdread_internal=no ;;
1060 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1061 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1062 --enable-dvdnav) _dvdnav=yes ;;
1063 --disable-dvdnav) _dvdnav=no ;;
1064 --enable-xanim) _xanim=yes ;;
1065 --disable-xanim) _xanim=no ;;
1066 --enable-real) _real=yes ;;
1067 --disable-real) _real=no ;;
1068 --enable-live) _live=yes ;;
1069 --disable-live) _live=no ;;
1070 --enable-nemesi) _nemesi=yes ;;
1071 --disable-nemesi) _nemesi=no ;;
1072 --enable-librtmp) _librtmp=yes ;;
1073 --disable-librtmp) _librtmp=no ;;
1074 --enable-xinerama) _xinerama=yes ;;
1075 --disable-xinerama) _xinerama=no ;;
1076 --enable-mga) _mga=yes ;;
1077 --disable-mga) _mga=no ;;
1078 --enable-xmga) _xmga=yes ;;
1079 --disable-xmga) _xmga=no ;;
1080 --enable-vm) _vm=yes ;;
1081 --disable-vm) _vm=no ;;
1082 --enable-xf86keysym) _xf86keysym=yes ;;
1083 --disable-xf86keysym) _xf86keysym=no ;;
1084 --enable-mlib) _mlib=yes ;;
1085 --disable-mlib) _mlib=no ;;
1086 --enable-sunaudio) _sunaudio=yes ;;
1087 --disable-sunaudio) _sunaudio=no ;;
1088 --enable-sgiaudio) _sgiaudio=yes ;;
1089 --disable-sgiaudio) _sgiaudio=no ;;
1090 --enable-alsa) _alsa=yes ;;
1091 --disable-alsa) _alsa=no ;;
1092 --enable-tv) _tv=yes ;;
1093 --disable-tv) _tv=no ;;
1094 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1095 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1096 --enable-tv-v4l1) _tv_v4l1=yes ;;
1097 --disable-tv-v4l1) _tv_v4l1=no ;;
1098 --enable-tv-v4l2) _tv_v4l2=yes ;;
1099 --disable-tv-v4l2) _tv_v4l2=no ;;
1100 --enable-tv-dshow) _tv_dshow=yes ;;
1101 --disable-tv-dshow) _tv_dshow=no ;;
1102 --enable-radio) _radio=yes ;;
1103 --enable-radio-capture) _radio_capture=yes ;;
1104 --disable-radio-capture) _radio_capture=no ;;
1105 --disable-radio) _radio=no ;;
1106 --enable-radio-v4l) _radio_v4l=yes ;;
1107 --disable-radio-v4l) _radio_v4l=no ;;
1108 --enable-radio-v4l2) _radio_v4l2=yes ;;
1109 --disable-radio-v4l2) _radio_v4l2=no ;;
1110 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1111 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1112 --enable-pvr) _pvr=yes ;;
1113 --disable-pvr) _pvr=no ;;
1114 --enable-fastmemcpy) _fastmemcpy=yes ;;
1115 --disable-fastmemcpy) _fastmemcpy=no ;;
1116 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1117 --disable-hardcoded-tables) hardcoded_tables=no ;;
1118 --enable-network) _network=yes ;;
1119 --disable-network) _network=no ;;
1120 --enable-winsock2_h) _winsock2_h=yes ;;
1121 --disable-winsock2_h) _winsock2_h=no ;;
1122 --enable-smb) _smb=yes ;;
1123 --disable-smb) _smb=no ;;
1124 --enable-vidix) _vidix=yes ;;
1125 --disable-vidix) _vidix=no ;;
1126 --with-vidix-drivers=*)
1127 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1129 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1130 --enable-dhahelper) _dhahelper=yes ;;
1131 --disable-dhahelper) _dhahelper=no ;;
1132 --enable-svgalib_helper) _svgalib_helper=yes ;;
1133 --disable-svgalib_helper) _svgalib_helper=no ;;
1134 --enable-joystick) _joystick=yes ;;
1135 --disable-joystick) _joystick=no ;;
1136 --enable-xvid) _xvid=yes ;;
1137 --disable-xvid) _xvid=no ;;
1138 --enable-xvid-lavc) _xvid_lavc=yes ;;
1139 --disable-xvid-lavc) _xvid_lavc=no ;;
1140 --enable-x264) _x264=yes ;;
1141 --disable-x264) _x264=no ;;
1142 --enable-x264-lavc) _x264_lavc=yes ;;
1143 --disable-x264-lavc) _x264_lavc=no ;;
1144 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1145 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1146 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1147 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1148 --enable-libvpx-lavc) _libvpx_lavc=yes ;;
1149 --disable-libvpx-lavc) _libvpx_lavc=no ;;
1150 --enable-libnut) _libnut=yes ;;
1151 --disable-libnut) _libnut=no ;;
1152 --enable-libavutil_a) _libavutil_a=yes ;;
1153 --disable-libavutil_a) _libavutil_a=no ;;
1154 --enable-libavutil_so) _libavutil_so=yes ;;
1155 --disable-libavutil_so) _libavutil_so=no ;;
1156 --enable-libavcodec_a) _libavcodec_a=yes ;;
1157 --disable-libavcodec_a) _libavcodec_a=no ;;
1158 --enable-libavcodec_so) _libavcodec_so=yes ;;
1159 --disable-libavcodec_so) _libavcodec_so=no ;;
1160 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1161 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1162 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1163 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1164 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1165 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1166 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1167 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1168 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1169 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1170 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1171 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1172 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1173 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1174 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1175 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1176 --enable-libavformat_a) _libavformat_a=yes ;;
1177 --disable-libavformat_a) _libavformat_a=no ;;
1178 --enable-libavformat_so) _libavformat_so=yes ;;
1179 --disable-libavformat_so) _libavformat_so=no ;;
1180 --enable-libpostproc_a) _libpostproc_a=yes ;;
1181 --disable-libpostproc_a) _libpostproc_a=no ;;
1182 --enable-libpostproc_so) _libpostproc_so=yes ;;
1183 --disable-libpostproc_so) _libpostproc_so=no ;;
1184 --enable-libswscale_a) _libswscale_a=yes ;;
1185 --disable-libswscale_a) _libswscale_a=no ;;
1186 --enable-libswscale_so) _libswscale_so=yes ;;
1187 --disable-libswscale_so) _libswscale_so=no ;;
1188 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1189 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1191 --enable-lirc) _lirc=yes ;;
1192 --disable-lirc) _lirc=no ;;
1193 --enable-lircc) _lircc=yes ;;
1194 --disable-lircc) _lircc=no ;;
1195 --enable-apple-remote) _apple_remote=yes ;;
1196 --disable-apple-remote) _apple_remote=no ;;
1197 --enable-apple-ir) _apple_ir=yes ;;
1198 --disable-apple-ir) _apple_ir=no ;;
1199 --enable-gui) _gui=yes ;;
1200 --disable-gui) _gui=no ;;
1201 --enable-gtk1) _gtk1=yes ;;
1202 --disable-gtk1) _gtk1=no ;;
1203 --enable-termcap) _termcap=yes ;;
1204 --disable-termcap) _termcap=no ;;
1205 --enable-termios) _termios=yes ;;
1206 --disable-termios) _termios=no ;;
1207 --enable-3dfx) _3dfx=yes ;;
1208 --disable-3dfx) _3dfx=no ;;
1209 --enable-s3fb) _s3fb=yes ;;
1210 --disable-s3fb) _s3fb=no ;;
1211 --enable-wii) _wii=yes ;;
1212 --disable-wii) _wii=no ;;
1213 --enable-tdfxfb) _tdfxfb=yes ;;
1214 --disable-tdfxfb) _tdfxfb=no ;;
1215 --disable-tdfxvid) _tdfxvid=no ;;
1216 --enable-tdfxvid) _tdfxvid=yes ;;
1217 --disable-xvr100) _xvr100=no ;;
1218 --enable-xvr100) _xvr100=yes ;;
1219 --disable-tga) _tga=no ;;
1220 --enable-tga) _tga=yes ;;
1221 --enable-directfb) _directfb=yes ;;
1222 --disable-directfb) _directfb=no ;;
1223 --enable-zr) _zr=yes ;;
1224 --disable-zr) _zr=no ;;
1225 --enable-bl) _bl=yes ;;
1226 --disable-bl) _bl=no ;;
1227 --enable-mtrr) _mtrr=yes ;;
1228 --disable-mtrr) _mtrr=no ;;
1229 --enable-largefiles) _largefiles=yes ;;
1230 --disable-largefiles) _largefiles=no ;;
1231 --enable-shm) _shm=yes ;;
1232 --disable-shm) _shm=no ;;
1233 --enable-select) _select=yes ;;
1234 --disable-select) _select=no ;;
1235 --enable-linux-devfs) _linux_devfs=yes ;;
1236 --disable-linux-devfs) _linux_devfs=no ;;
1237 --enable-cdparanoia) _cdparanoia=yes ;;
1238 --disable-cdparanoia) _cdparanoia=no ;;
1239 --enable-cddb) _cddb=yes ;;
1240 --disable-cddb) _cddb=no ;;
1241 --enable-big-endian) _big_endian=yes ;;
1242 --disable-big-endian) _big_endian=no ;;
1243 --enable-bitmap-font) _bitmap_font=yes ;;
1244 --disable-bitmap-font) _bitmap_font=no ;;
1245 --enable-freetype) _freetype=yes ;;
1246 --disable-freetype) _freetype=no ;;
1247 --enable-fontconfig) _fontconfig=yes ;;
1248 --disable-fontconfig) _fontconfig=no ;;
1249 --enable-unrarexec) _unrar_exec=yes ;;
1250 --disable-unrarexec) _unrar_exec=no ;;
1251 --enable-ftp) _ftp=yes ;;
1252 --disable-ftp) _ftp=no ;;
1253 --enable-vstream) _vstream=yes ;;
1254 --disable-vstream) _vstream=no ;;
1255 --enable-pthreads) _pthreads=yes ;;
1256 --disable-pthreads) _pthreads=no ;;
1257 --enable-w32threads) _w32threads=yes ;;
1258 --disable-w32threads) _w32threads=no ;;
1259 --enable-ass) _ass=yes ;;
1260 --disable-ass) _ass=no ;;
1261 --enable-ass-internal) ass_internal=yes ;;
1262 --disable-ass-internal) ass_internal=no ;;
1263 --enable-rpath) _rpath=yes ;;
1264 --disable-rpath) _rpath=no ;;
1266 --enable-fribidi) _fribidi=yes ;;
1267 --disable-fribidi) _fribidi=no ;;
1269 --enable-enca) _enca=yes ;;
1270 --disable-enca) _enca=no ;;
1272 --enable-inet6) _inet6=yes ;;
1273 --disable-inet6) _inet6=no ;;
1275 --enable-gethostbyname2) _gethostbyname2=yes ;;
1276 --disable-gethostbyname2) _gethostbyname2=no ;;
1278 --enable-dga1) _dga1=yes ;;
1279 --disable-dga1) _dga1=no ;;
1280 --enable-dga2) _dga2=yes ;;
1281 --disable-dga2) _dga2=no ;;
1283 --enable-menu) _menu=yes ;;
1284 --disable-menu) _menu=no ;;
1286 --enable-qtx) _qtx=yes ;;
1287 --disable-qtx) _qtx=no ;;
1289 --enable-coreaudio) _coreaudio=yes ;;
1290 --disable-coreaudio) _coreaudio=no ;;
1291 --enable-corevideo) _corevideo=yes ;;
1292 --disable-corevideo) _corevideo=no ;;
1293 --enable-quartz) _quartz=yes ;;
1294 --disable-quartz) _quartz=no ;;
1295 --enable-macosx-finder) _macosx_finder=yes ;;
1296 --disable-macosx-finder) _macosx_finder=no ;;
1297 --enable-macosx-bundle) _macosx_bundle=yes ;;
1298 --disable-macosx-bundle) _macosx_bundle=no ;;
1300 --enable-maemo) _maemo=yes ;;
1301 --disable-maemo) _maemo=no ;;
1303 --enable-sortsub) _sortsub=yes ;;
1304 --disable-sortsub) _sortsub=no ;;
1306 --enable-crash-debug) _crash_debug=yes ;;
1307 --disable-crash-debug) _crash_debug=no ;;
1308 --enable-sighandler) _sighandler=yes ;;
1309 --disable-sighandler) _sighandler=no ;;
1310 --enable-win32dll) _win32dll=yes ;;
1311 --disable-win32dll) _win32dll=no ;;
1313 --enable-sse) _sse=yes ;;
1314 --disable-sse) _sse=no ;;
1315 --enable-sse2) _sse2=yes ;;
1316 --disable-sse2) _sse2=no ;;
1317 --enable-ssse3) _ssse3=yes ;;
1318 --disable-ssse3) _ssse3=no ;;
1319 --enable-mmxext) _mmxext=yes ;;
1320 --disable-mmxext) _mmxext=no ;;
1321 --enable-3dnow) _3dnow=yes ;;
1322 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1323 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1324 --disable-3dnowext) _3dnowext=no ;;
1325 --enable-cmov) _cmov=yes ;;
1326 --disable-cmov) _cmov=no ;;
1327 --enable-fast-cmov) _fast_cmov=yes ;;
1328 --disable-fast-cmov) _fast_cmov=no ;;
1329 --enable-fast-clz) _fast_clz=yes ;;
1330 --disable-fast-clz) _fast_clz=no ;;
1331 --enable-altivec) _altivec=yes ;;
1332 --disable-altivec) _altivec=no ;;
1333 --enable-armv5te) _armv5te=yes ;;
1334 --disable-armv5te) _armv5te=no ;;
1335 --enable-armv6) _armv6=yes ;;
1336 --disable-armv6) _armv6=no ;;
1337 --enable-armv6t2) _armv6t2=yes ;;
1338 --disable-armv6t2) _armv6t2=no ;;
1339 --enable-armvfp) _armvfp=yes ;;
1340 --disable-armvfp) _armvfp=no ;;
1341 --enable-neon) neon=yes ;;
1342 --disable-neon) neon=no ;;
1343 --enable-iwmmxt) _iwmmxt=yes ;;
1344 --disable-iwmmxt) _iwmmxt=no ;;
1345 --enable-mmx) _mmx=yes ;;
1346 --disable-mmx) # 3Dnow! and MMX2 require MMX
1347 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1350 echo "Unknown parameter: $ac_option"
1351 exit 1
1354 esac
1355 done
1357 # Atmos: moved this here, to be correct, if --prefix is specified
1358 test -z "$_bindir" && _bindir="$_prefix/bin"
1359 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1360 test -z "$_mandir" && _mandir="$_prefix/share/man"
1361 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1362 test -z "$_libdir" && _libdir="$_prefix/lib"
1364 # Determine our OS name and CPU architecture
1365 if test -z "$_target" ; then
1366 # OS name
1367 system_name=$(uname -s 2>&1)
1368 case "$system_name" in
1369 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1371 Haiku)
1372 system_name=BeOS
1374 IRIX*)
1375 system_name=IRIX
1377 GNU/kFreeBSD)
1378 system_name=FreeBSD
1380 HP-UX*)
1381 system_name=HP-UX
1383 [cC][yY][gG][wW][iI][nN]*)
1384 system_name=CYGWIN
1386 MINGW32*)
1387 system_name=MINGW32
1389 OS/2*)
1390 system_name=OS/2
1393 system_name="$system_name-UNKNOWN"
1395 esac
1398 # host's CPU/instruction set
1399 host_arch=$(uname -p 2>&1)
1400 case "$host_arch" in
1401 i386|sparc|ppc|alpha|arm|mips|vax)
1403 powerpc) # Darwin returns 'powerpc'
1404 host_arch=ppc
1406 *) # uname -p on Linux returns 'unknown' for the processor type,
1407 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1409 # Maybe uname -m (machine hardware name) returns something we
1410 # recognize.
1412 # x86/x86pc is used by QNX
1413 case "$(uname -m 2>&1)" in
1414 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1415 ia64) host_arch=ia64 ;;
1416 macppc|ppc) host_arch=ppc ;;
1417 ppc64) host_arch=ppc64 ;;
1418 alpha) host_arch=alpha ;;
1419 sparc) host_arch=sparc ;;
1420 sparc64) host_arch=sparc64 ;;
1421 parisc*|hppa*|9000*) host_arch=hppa ;;
1422 arm*|zaurus|cats) host_arch=arm ;;
1423 sh3|sh4|sh4a) host_arch=sh ;;
1424 s390) host_arch=s390 ;;
1425 s390x) host_arch=s390x ;;
1426 *mips*) host_arch=mips ;;
1427 vax) host_arch=vax ;;
1428 xtensa*) host_arch=xtensa ;;
1429 *) host_arch=UNKNOWN ;;
1430 esac
1432 esac
1433 else # if test -z "$_target"
1434 system_name=$(echo $_target | cut -d '-' -f 2)
1435 case "$(echo $system_name | tr A-Z a-z)" in
1436 linux) system_name=Linux ;;
1437 freebsd) system_name=FreeBSD ;;
1438 gnu/kfreebsd) system_name=FreeBSD ;;
1439 netbsd) system_name=NetBSD ;;
1440 bsd/os) system_name=BSD/OS ;;
1441 openbsd) system_name=OpenBSD ;;
1442 dragonfly) system_name=DragonFly ;;
1443 sunos) system_name=SunOS ;;
1444 qnx) system_name=QNX ;;
1445 morphos) system_name=MorphOS ;;
1446 amigaos) system_name=AmigaOS ;;
1447 mingw32*) system_name=MINGW32 ;;
1448 esac
1449 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1450 host_arch=$(echo $_target | cut -d '-' -f 1)
1451 if test $(echo $host_arch) != "x86_64" ; then
1452 host_arch=$(echo $host_arch | tr '_' '-')
1456 extra_cflags="-I. $extra_cflags"
1457 _timer=timer-linux.c
1458 _getch=getch2.c
1459 if freebsd ; then
1460 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1461 extra_cflags="$extra_cflags -I/usr/local/include"
1464 if netbsd || dragonfly ; then
1465 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1466 extra_cflags="$extra_cflags -I/usr/pkg/include"
1469 if darwin; then
1470 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1471 _timer=timer-darwin.c
1474 if aix ; then
1475 extra_ldflags="$extra_ldflags -lC"
1478 if irix ; then
1479 _ranlib='ar -r'
1480 elif linux ; then
1481 _ranlib='true'
1484 if win32 ; then
1485 _exesuf=".exe"
1486 extra_cflags="$extra_cflags -fno-common"
1487 # -lwinmm is always needed for osdep/timer-win2.c
1488 extra_ldflags="$extra_ldflags -lwinmm"
1489 _pe_executable=yes
1490 _timer=timer-win2.c
1491 _priority=yes
1492 def_dos_paths="#define HAVE_DOS_PATHS 1"
1493 def_priority="#define CONFIG_PRIORITY 1"
1496 if mingw32 ; then
1497 _getch=getch2-win.c
1498 _need_shmem=no
1501 if amigaos ; then
1502 _select=no
1503 _sighandler=no
1504 _stream_cache=no
1505 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1506 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1509 if qnx ; then
1510 extra_ldflags="$extra_ldflags -lph"
1513 if os2 ; then
1514 _exesuf=".exe"
1515 _getch=getch2-os2.c
1516 _need_shmem=no
1517 _priority=yes
1518 def_dos_paths="#define HAVE_DOS_PATHS 1"
1519 def_priority="#define CONFIG_PRIORITY 1"
1522 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1523 test "$I" && break
1524 done
1527 TMPLOG="configure.log"
1528 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1529 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1530 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1531 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1532 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1534 rm -f "$TMPLOG"
1535 echo configuration: $_configuration > "$TMPLOG"
1536 echo >> "$TMPLOG"
1539 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1540 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1544 # Checking CC version...
1545 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1546 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1547 echocheck "$_cc version"
1548 cc_vendor=intel
1549 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1550 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1551 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1552 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1553 # TODO verify older icc/ecc compatibility
1554 case $cc_version in
1556 cc_version="v. ?.??, bad"
1557 cc_fail=yes
1559 10.1|11.0|11.1)
1560 cc_version="$cc_version, ok"
1563 cc_version="$cc_version, bad"
1564 cc_fail=yes
1566 esac
1567 echores "$cc_version"
1568 else
1569 for _cc in "$_cc" gcc cc ; do
1570 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1571 if test "$cc_name_tmp" = "gcc"; then
1572 cc_name=$cc_name_tmp
1573 echocheck "$_cc version"
1574 cc_vendor=gnu
1575 cc_version=$($_cc -dumpversion 2>&1)
1576 case $cc_version in
1577 2.96*)
1578 cc_fail=yes
1581 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1582 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1583 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1585 esac
1586 echores "$cc_version"
1587 break
1589 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1590 if test "$cc_name_tmp" = "Sun C"; then
1591 echocheck "$_cc version"
1592 cc_vendor=sun
1593 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1594 res_comment="experimental support only"
1595 echores "Sun C $cc_version"
1596 break
1598 done
1599 fi # icc
1600 test "$cc_fail" = yes && die "unsupported compiler version"
1602 if test -z "$_target" && x86 ; then
1603 cat > $TMPC << EOF
1604 int main(void) {
1605 int test[(int)sizeof(char *)-7];
1606 return 0;
1609 cc_check && host_arch=x86_64 || host_arch=i386
1612 echo "Detected operating system: $system_name"
1613 echo "Detected host architecture: $host_arch"
1615 echocheck "host cc"
1616 test "$_host_cc" || _host_cc=$_cc
1617 echores $_host_cc
1619 echocheck "cross compilation"
1620 if test $_cross_compile = auto ; then
1621 cat > $TMPC << EOF
1622 int main(void) { return 0; }
1624 _cross_compile=yes
1625 cc_check && "$TMPEXE" && _cross_compile=no
1627 echores $_cross_compile
1629 if test $_cross_compile = yes; then
1630 tmp_run() {
1631 return 0
1635 # ---
1637 # now that we know what compiler should be used for compilation, try to find
1638 # out which assembler is used by the $_cc compiler
1639 if test "$_as" = auto ; then
1640 _as=$($_cc -print-prog-name=as)
1641 test -z "$_as" && _as=as
1644 if test "$_nm" = auto ; then
1645 _nm=$($_cc -print-prog-name=nm)
1646 test -z "$_nm" && _nm=nm
1649 # XXX: this should be ok..
1650 _cpuinfo="echo"
1652 if test "$_runtime_cpudetection" = no ; then
1654 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1655 # FIXME: Remove the cygwin check once AMD CPUs are supported
1656 if test -r /proc/cpuinfo && ! cygwin; then
1657 # Linux with /proc mounted, extract CPU information from it
1658 _cpuinfo="cat /proc/cpuinfo"
1659 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1660 # FreeBSD with Linux emulation /proc mounted,
1661 # extract CPU information from it
1662 # Don't use it on x86 though, it never reports 3Dnow
1663 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1664 elif darwin && ! x86 ; then
1665 # use hostinfo on Darwin
1666 _cpuinfo="hostinfo"
1667 elif aix; then
1668 # use 'lsattr' on AIX
1669 _cpuinfo="lsattr -E -l proc0 -a type"
1670 elif x86; then
1671 # all other OSes try to extract CPU information from a small helper
1672 # program cpuinfo instead
1673 $_cc -o cpuinfo$_exesuf cpuinfo.c
1674 _cpuinfo="./cpuinfo$_exesuf"
1677 if [ "$cc_vendor" = "gnu" ] && [ "$_cc_major" = 2 ] ; then
1678 test $_sse = auto && _sse=no
1679 test $_win32dll = auto && _win32dll=no
1680 ass_internal=no
1683 if x86 ; then
1684 # gather more CPU information
1685 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1686 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1687 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1688 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1689 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1691 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1693 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1694 -e s/xmm/sse/ -e s/kni/sse/)
1696 for ext in $pparam ; do
1697 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1698 done
1700 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1701 test $_sse = kernel_check && _mmxext=kernel_check
1703 echocheck "CPU vendor"
1704 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1706 echocheck "CPU type"
1707 echores "$pname"
1710 fi # test "$_runtime_cpudetection" = no
1712 if x86 && test "$_runtime_cpudetection" = no ; then
1713 extcheck() {
1714 if test "$1" = kernel_check ; then
1715 echocheck "kernel support of $2"
1716 cat > $TMPC <<EOF
1717 #include <stdlib.h>
1718 #include <signal.h>
1719 void catch() { exit(1); }
1720 int main(void) {
1721 signal(SIGILL, catch);
1722 __asm__ volatile ("$3":::"memory"); return 0;
1726 if cc_check && tmp_run ; then
1727 eval _$2=yes
1728 echores "yes"
1729 _optimizing="$_optimizing $2"
1730 return 0
1731 else
1732 eval _$2=no
1733 echores "failed"
1734 echo "It seems that your kernel does not correctly support $2."
1735 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1736 return 1
1739 return 0
1742 extcheck $_mmx "mmx" "emms"
1743 extcheck $_mmxext "mmxext" "sfence"
1744 extcheck $_3dnow "3dnow" "femms"
1745 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1746 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1747 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1748 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1749 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1751 echocheck "mtrr support"
1752 if test "$_mtrr" = kernel_check ; then
1753 _mtrr="yes"
1754 _optimizing="$_optimizing mtrr"
1756 echores "$_mtrr"
1758 if test "$_gcc3_ext" != ""; then
1759 # if we had to disable sse/sse2 because the active kernel does not
1760 # support this instruction set extension, we also have to tell
1761 # gcc3 to not generate sse/sse2 instructions for normal C code
1762 cat > $TMPC << EOF
1763 int main(void) { return 0; }
1765 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1771 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1772 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1773 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1774 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1775 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1776 subarch_all='X86_32 X86_64 PPC64'
1777 case "$host_arch" in
1778 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1779 arch='x86'
1780 subarch='x86_32'
1781 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1782 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1783 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1784 iproc=486
1785 proc=i486
1788 if test "$_runtime_cpudetection" = no ; then
1789 case "$pvendor" in
1790 AuthenticAMD)
1791 case "$pfamily" in
1792 3) proc=i386 iproc=386 ;;
1793 4) proc=i486 iproc=486 ;;
1794 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1795 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1796 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1797 proc=k6-3
1798 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1799 proc=geode
1800 elif test "$pmodel" -ge 8; then
1801 proc=k6-2
1802 elif test "$pmodel" -ge 6; then
1803 proc=k6
1804 else
1805 proc=i586
1808 6) iproc=686
1809 # It's a bit difficult to determine the correct type of Family 6
1810 # AMD CPUs just from their signature. Instead, we check directly
1811 # whether it supports SSE.
1812 if test "$_sse" = yes; then
1813 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1814 proc=athlon-xp
1815 else
1816 # Again, gcc treats athlon and athlon-tbird similarly.
1817 proc=athlon
1820 15) iproc=686
1821 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1822 # caught and remedied in the optimization tests below.
1823 proc=k8
1826 *) proc=amdfam10 iproc=686
1827 test $_fast_clz = "auto" && _fast_clz=yes
1829 esac
1831 GenuineIntel)
1832 case "$pfamily" in
1833 3) proc=i386 iproc=386 ;;
1834 4) proc=i486 iproc=486 ;;
1835 5) iproc=586
1836 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1837 proc=pentium-mmx # 4 is desktop, 8 is mobile
1838 else
1839 proc=i586
1842 6) iproc=686
1843 if test "$pmodel" -ge 15; then
1844 proc=core2
1845 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1846 proc=pentium-m
1847 elif test "$pmodel" -ge 7; then
1848 proc=pentium3
1849 elif test "$pmodel" -ge 3; then
1850 proc=pentium2
1851 else
1852 proc=i686
1854 test $_fast_clz = "auto" && _fast_clz=yes
1856 15) iproc=686
1857 # A nocona in 32-bit mode has no more capabilities than a prescott.
1858 if test "$pmodel" -ge 3; then
1859 proc=prescott
1860 else
1861 proc=pentium4
1862 test $_fast_clz = "auto" && _fast_clz=yes
1864 test $_fast_cmov = "auto" && _fast_cmov=no
1866 *) proc=prescott iproc=686 ;;
1867 esac
1869 CentaurHauls)
1870 case "$pfamily" in
1871 5) iproc=586
1872 if test "$pmodel" -ge 8; then
1873 proc=winchip2
1874 elif test "$pmodel" -ge 4; then
1875 proc=winchip-c6
1876 else
1877 proc=i586
1880 6) iproc=686
1881 if test "$pmodel" -ge 9; then
1882 proc=c3-2
1883 else
1884 proc=c3
1885 iproc=586
1888 *) proc=i686 iproc=i686 ;;
1889 esac
1891 unknown)
1892 case "$pfamily" in
1893 3) proc=i386 iproc=386 ;;
1894 4) proc=i486 iproc=486 ;;
1895 *) proc=i586 iproc=586 ;;
1896 esac
1899 proc=i586 iproc=586 ;;
1900 esac
1901 test $_fast_clz = "auto" && _fast_clz=no
1902 fi # test "$_runtime_cpudetection" = no
1905 # check that gcc supports our CPU, if not, fall back to earlier ones
1906 # LGB: check -mcpu and -march swithing step by step with enabling
1907 # to fall back till 386.
1909 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1911 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1912 cpuopt=-mtune
1913 else
1914 cpuopt=-mcpu
1917 echocheck "GCC & CPU optimization abilities"
1918 cat > $TMPC << EOF
1919 int main(void) { return 0; }
1921 if test "$_runtime_cpudetection" = no ; then
1922 if test $cc_vendor != "intel" ; then
1923 cc_check -march=native && proc=native
1925 if test "$proc" = "amdfam10"; then
1926 cc_check -march=$proc $cpuopt=$proc || proc=k8
1928 if test "$proc" = "k8"; then
1929 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1931 if test "$proc" = "athlon-xp"; then
1932 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1934 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1935 cc_check -march=$proc $cpuopt=$proc || proc=k6
1937 if test "$proc" = "k6" || test "$proc" = "c3"; then
1938 if ! cc_check -march=$proc $cpuopt=$proc; then
1939 if cc_check -march=i586 $cpuopt=i686; then
1940 proc=i586-i686
1941 else
1942 proc=i586
1946 if test "$proc" = "prescott" ; then
1947 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1949 if test "$proc" = "core2" ; then
1950 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1952 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
1953 cc_check -march=$proc $cpuopt=$proc || proc=i686
1955 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1956 cc_check -march=$proc $cpuopt=$proc || proc=i586
1958 if test "$proc" = "i586"; then
1959 cc_check -march=$proc $cpuopt=$proc || proc=i486
1961 if test "$proc" = "i486" ; then
1962 cc_check -march=$proc $cpuopt=$proc || proc=i386
1964 if test "$proc" = "i386" ; then
1965 cc_check -march=$proc $cpuopt=$proc || proc=error
1967 if test "$proc" = "error" ; then
1968 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1969 _mcpu=""
1970 _march=""
1971 _optimizing=""
1972 elif test "$proc" = "i586-i686"; then
1973 _march="-march=i586"
1974 _mcpu="$cpuopt=i686"
1975 _optimizing="$proc"
1976 else
1977 _march="-march=$proc"
1978 _mcpu="$cpuopt=$proc"
1979 _optimizing="$proc"
1981 else # if test "$_runtime_cpudetection" = no
1982 _mcpu="$cpuopt=generic"
1983 # at least i486 required, for bswap instruction
1984 _march="-march=i486"
1985 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1986 cc_check $_mcpu || _mcpu=""
1987 cc_check $_march $_mcpu || _march=""
1990 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1991 ## autodetected mcpu/march parameters
1992 if test "$_target" ; then
1993 # TODO: it may be a good idea to check GCC and fall back in all cases
1994 if test "$host_arch" = "i586-i686"; then
1995 _march="-march=i586"
1996 _mcpu="$cpuopt=i686"
1997 else
1998 _march="-march=$host_arch"
1999 _mcpu="$cpuopt=$host_arch"
2002 proc="$host_arch"
2004 case "$proc" in
2005 i386) iproc=386 ;;
2006 i486) iproc=486 ;;
2007 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2008 i686|athlon*|pentium*) iproc=686 ;;
2009 *) iproc=586 ;;
2010 esac
2013 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2014 _fast_cmov="yes"
2015 else
2016 _fast_cmov="no"
2018 test $_fast_clz = "auto" && _fast_clz=yes
2020 echores "$proc"
2023 ia64)
2024 arch='ia64'
2025 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2026 iproc='ia64'
2029 x86_64|amd64)
2030 arch='x86'
2031 subarch='x86_64'
2032 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2033 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2034 iproc='x86_64'
2036 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2037 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2038 cpuopt=-mtune
2039 else
2040 cpuopt=-mcpu
2042 if test "$_runtime_cpudetection" = no ; then
2043 case "$pvendor" in
2044 AuthenticAMD)
2045 case "$pfamily" in
2046 15) proc=k8
2047 test $_fast_clz = "auto" && _fast_clz=no
2049 *) proc=amdfam10;;
2050 esac
2052 GenuineIntel)
2053 case "$pfamily" in
2054 6) proc=core2;;
2056 # 64-bit prescotts exist, but as far as GCC is concerned they
2057 # have the same capabilities as a nocona.
2058 proc=nocona
2059 test $_fast_cmov = "auto" && _fast_cmov=no
2060 test $_fast_clz = "auto" && _fast_clz=no
2062 esac
2065 proc=error;;
2066 esac
2067 fi # test "$_runtime_cpudetection" = no
2069 echocheck "GCC & CPU optimization abilities"
2070 cat > $TMPC << EOF
2071 int main(void) { return 0; }
2073 # This is a stripped-down version of the i386 fallback.
2074 if test "$_runtime_cpudetection" = no ; then
2075 if test $cc_vendor != "intel" ; then
2076 cc_check -march=native && proc=native
2078 # --- AMD processors ---
2079 if test "$proc" = "amdfam10"; then
2080 cc_check -march=$proc $cpuopt=$proc || proc=k8
2082 if test "$proc" = "k8"; then
2083 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2085 # This will fail if gcc version < 3.3, which is ok because earlier
2086 # versions don't really support 64-bit on amd64.
2087 # Is this a valid assumption? -Corey
2088 if test "$proc" = "athlon-xp"; then
2089 cc_check -march=$proc $cpuopt=$proc || proc=error
2091 # --- Intel processors ---
2092 if test "$proc" = "core2"; then
2093 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2095 if test "$proc" = "x86-64"; then
2096 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2098 if test "$proc" = "nocona"; then
2099 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2101 if test "$proc" = "pentium4"; then
2102 cc_check -march=$proc $cpuopt=$proc || proc=error
2105 _march="-march=$proc"
2106 _mcpu="$cpuopt=$proc"
2107 if test "$proc" = "error" ; then
2108 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2109 _mcpu=""
2110 _march=""
2112 else # if test "$_runtime_cpudetection" = no
2113 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2114 _march="-march=x86-64"
2115 _mcpu="$cpuopt=generic"
2116 cc_check $_mcpu || _mcpu="x86-64"
2117 cc_check $_mcpu || _mcpu=""
2118 cc_check $_march $_mcpu || _march=""
2121 _optimizing="$proc"
2122 test $_fast_cmov = "auto" && _fast_cmov=yes
2123 test $_fast_clz = "auto" && _fast_clz=yes
2125 echores "$proc"
2128 sparc|sparc64)
2129 arch='sparc'
2130 iproc='sparc'
2131 if test "$host_arch" = "sparc64" ; then
2132 _vis='yes'
2133 proc='ultrasparc'
2134 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2135 elif sunos ; then
2136 echocheck "CPU type"
2137 karch=$(uname -m)
2138 case "$(echo $karch)" in
2139 sun4) proc=v7 ;;
2140 sun4c) proc=v7 ;;
2141 sun4d) proc=v8 ;;
2142 sun4m) proc=v8 ;;
2143 sun4u) proc=ultrasparc _vis='yes' ;;
2144 sun4v) proc=v9 ;;
2145 *) proc=v8 ;;
2146 esac
2147 echores "$proc"
2148 else
2149 proc=v8
2151 _mcpu="-mcpu=$proc"
2152 _optimizing="$proc"
2155 arm*)
2156 arch='arm'
2157 iproc='arm'
2160 avr32)
2161 arch='avr32'
2162 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2163 iproc='avr32'
2164 test $_fast_clz = "auto" && _fast_clz=yes
2167 sh|sh4)
2168 arch='sh4'
2169 iproc='sh4'
2172 ppc|ppc64|powerpc|powerpc64)
2173 arch='ppc'
2174 def_dcbzl='#define HAVE_DCBZL 0'
2175 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2176 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2177 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2178 iproc='ppc'
2180 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2181 subarch='ppc64'
2182 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2184 echocheck "CPU type"
2185 case $system_name in
2186 Linux)
2187 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2188 if test -n "$($_cpuinfo | grep altivec)"; then
2189 test $_altivec = auto && _altivec=yes
2192 Darwin)
2193 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2194 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2195 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2196 test $_altivec = auto && _altivec=yes
2199 NetBSD)
2200 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2201 case $cc_version in
2202 2*|3.0*|3.1*|3.2*|3.3*)
2205 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2206 test $_altivec = auto && _altivec=yes
2209 esac
2211 AIX)
2212 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2214 esac
2215 if test "$_altivec" = yes; then
2216 echores "$proc altivec"
2217 else
2218 _altivec=no
2219 echores "$proc"
2222 echocheck "GCC & CPU optimization abilities"
2224 if test -n "$proc"; then
2225 case "$proc" in
2226 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2227 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2228 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2229 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2230 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2231 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2232 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2233 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2234 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2235 *) ;;
2236 esac
2237 # gcc 3.1(.1) and up supports 7400 and 7450
2238 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2239 case "$proc" in
2240 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2241 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2242 *) ;;
2243 esac
2245 # gcc 3.2 and up supports 970
2246 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2247 case "$proc" in
2248 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2249 def_dcbzl='#define HAVE_DCBZL 1' ;;
2250 *) ;;
2251 esac
2253 # gcc 3.3 and up supports POWER4
2254 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2255 case "$proc" in
2256 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2257 *) ;;
2258 esac
2260 # gcc 3.4 and up supports 440*
2261 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2262 case "$proc" in
2263 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2264 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2265 *) ;;
2266 esac
2268 # gcc 4.0 and up supports POWER5
2269 if test "$_cc_major" -ge "4"; then
2270 case "$proc" in
2271 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2272 *) ;;
2273 esac
2277 if test -n "$_mcpu"; then
2278 _optimizing=$(echo $_mcpu | cut -c 8-)
2279 echores "$_optimizing"
2280 else
2281 echores "none"
2284 test $_fast_clz = "auto" && _fast_clz=yes
2288 alpha*)
2289 arch='alpha'
2290 iproc='alpha'
2292 echocheck "CPU type"
2293 cat > $TMPC << EOF
2294 int main(void) {
2295 unsigned long ver, mask;
2296 __asm__ ("implver %0" : "=r" (ver));
2297 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2298 printf("%ld-%x\n", ver, ~mask);
2299 return 0;
2302 $_cc -o "$TMPEXE" "$TMPC"
2303 case $("$TMPEXE") in
2305 0-0) proc="ev4"; _mvi="0";;
2306 1-0) proc="ev5"; _mvi="0";;
2307 1-1) proc="ev56"; _mvi="0";;
2308 1-101) proc="pca56"; _mvi="1";;
2309 2-303) proc="ev6"; _mvi="1";;
2310 2-307) proc="ev67"; _mvi="1";;
2311 2-1307) proc="ev68"; _mvi="1";;
2312 esac
2313 echores "$proc"
2315 echocheck "GCC & CPU optimization abilities"
2316 if test "$proc" = "ev68" ; then
2317 cc_check -mcpu=$proc || proc=ev67
2319 if test "$proc" = "ev67" ; then
2320 cc_check -mcpu=$proc || proc=ev6
2322 _mcpu="-mcpu=$proc"
2323 echores "$proc"
2325 test $_fast_clz = "auto" && _fast_clz=yes
2327 _optimizing="$proc"
2330 mips)
2331 arch='mips'
2332 iproc='mips'
2334 if irix ; then
2335 echocheck "CPU type"
2336 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2337 case "$(echo $proc)" in
2338 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2339 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2340 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2341 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2342 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2343 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2344 esac
2345 # gcc < 3.x does not support -mtune.
2346 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2347 _mcpu=''
2349 echores "$proc"
2352 test $_fast_clz = "auto" && _fast_clz=yes
2356 hppa)
2357 arch='pa_risc'
2358 iproc='PA-RISC'
2361 s390)
2362 arch='s390'
2363 iproc='390'
2366 s390x)
2367 arch='s390x'
2368 iproc='390x'
2371 vax)
2372 arch='vax'
2373 iproc='vax'
2376 xtensa)
2377 arch='xtensa'
2378 iproc='xtensa'
2381 generic)
2382 arch='generic'
2386 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2387 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2388 die "unsupported architecture $host_arch"
2390 esac # case "$host_arch" in
2392 if test "$_runtime_cpudetection" = yes ; then
2393 if x86 ; then
2394 test "$_cmov" != no && _cmov=yes
2395 x86_32 && _cmov=no
2396 test "$_mmx" != no && _mmx=yes
2397 test "$_3dnow" != no && _3dnow=yes
2398 test "$_3dnowext" != no && _3dnowext=yes
2399 test "$_mmxext" != no && _mmxext=yes
2400 test "$_sse" != no && _sse=yes
2401 test "$_sse2" != no && _sse2=yes
2402 test "$_ssse3" != no && _ssse3=yes
2403 test "$_mtrr" != no && _mtrr=yes
2405 if ppc; then
2406 _altivec=yes
2411 # endian testing
2412 echocheck "byte order"
2413 if test "$_big_endian" = auto ; then
2414 cat > $TMPC <<EOF
2415 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2416 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2417 int main(void) { return (int)ascii_name; }
2419 if cc_check ; then
2420 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2421 _big_endian=yes
2422 else
2423 _big_endian=no
2425 else
2426 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2429 if test "$_big_endian" = yes ; then
2430 _byte_order='big-endian'
2431 def_words_endian='#define WORDS_BIGENDIAN 1'
2432 def_bigendian='#define HAVE_BIGENDIAN 1'
2433 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2434 else
2435 _byte_order='little-endian'
2436 def_words_endian='#undef WORDS_BIGENDIAN'
2437 def_bigendian='#define HAVE_BIGENDIAN 0'
2438 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2440 echores "$_byte_order"
2443 echocheck "extern symbol prefix"
2444 cat > $TMPC << EOF
2445 int ff_extern;
2447 cc_check -c || die "Symbol mangling check failed."
2448 sym=$($_nm -P -g $TMPEXE)
2449 extern_prefix=${sym%%ff_extern*}
2450 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2451 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2452 echores $extern_prefix
2455 echocheck "assembler support of -pipe option"
2456 cat > $TMPC << EOF
2457 int main(void) { return 0; }
2459 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2460 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2463 echocheck "compiler support of named assembler arguments"
2464 _named_asm_args=yes
2465 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2466 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2467 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2468 _named_asm_args=no
2469 def_named_asm_args="#undef NAMED_ASM_ARGS"
2471 echores $_named_asm_args
2474 if darwin && test "$cc_vendor" = "gnu" ; then
2475 echocheck "GCC support of -mstackrealign"
2476 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2477 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2478 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2479 # wrong code with this flag, but this can be worked around by adding
2480 # -fno-unit-at-a-time as described in the blog post at
2481 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2482 cat > $TMPC << EOF
2483 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2484 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2486 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2487 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2488 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2489 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2490 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2493 # Checking for CFLAGS
2494 _install_strip="-s"
2495 if test "$_profile" != "" || test "$_debug" != "" ; then
2496 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2497 _install_strip=
2498 elif test -z "$CFLAGS" ; then
2499 if test "$cc_vendor" = "intel" ; then
2500 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2501 elif test "$cc_vendor" = "sun" ; then
2502 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2503 elif test "$cc_vendor" != "gnu" ; then
2504 CFLAGS="-O2 $_march $_mcpu $_pipe"
2505 else
2506 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2507 extra_ldflags="$extra_ldflags -ffast-math"
2509 else
2510 _warn_CFLAGS=yes
2513 cat > $TMPC << EOF
2514 int main(void) { return 0; }
2516 if test "$cc_vendor" = "gnu" ; then
2517 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2518 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2519 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2520 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2521 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2522 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2523 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2524 else
2525 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2528 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2529 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2532 if test -n "$LDFLAGS" ; then
2533 extra_ldflags="$extra_ldflags $LDFLAGS"
2534 _warn_CFLAGS=yes
2535 elif test "$cc_vendor" = "intel" ; then
2536 extra_ldflags="$extra_ldflags -i-static"
2538 if test -n "$CPPFLAGS" ; then
2539 extra_cflags="$extra_cflags $CPPFLAGS"
2540 _warn_CFLAGS=yes
2545 if x86_32 ; then
2546 # Checking assembler (_as) compatibility...
2547 # Added workaround for older as that reads from stdin by default - atmos
2548 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2549 echocheck "assembler ($_as $as_version)"
2551 _pref_as_version='2.9.1'
2552 echo 'nop' > $TMPS
2553 if test "$_mmx" = yes ; then
2554 echo 'emms' >> $TMPS
2556 if test "$_3dnow" = yes ; then
2557 _pref_as_version='2.10.1'
2558 echo 'femms' >> $TMPS
2560 if test "$_3dnowext" = yes ; then
2561 _pref_as_version='2.10.1'
2562 echo 'pswapd %mm0, %mm0' >> $TMPS
2564 if test "$_mmxext" = yes ; then
2565 _pref_as_version='2.10.1'
2566 echo 'movntq %mm0, (%eax)' >> $TMPS
2568 if test "$_sse" = yes ; then
2569 _pref_as_version='2.10.1'
2570 echo 'xorps %xmm0, %xmm0' >> $TMPS
2572 #if test "$_sse2" = yes ; then
2573 # _pref_as_version='2.11'
2574 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2576 if test "$_cmov" = yes ; then
2577 _pref_as_version='2.10.1'
2578 echo 'cmovb %eax, %ebx' >> $TMPS
2580 if test "$_ssse3" = yes ; then
2581 _pref_as_version='2.16.92'
2582 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2584 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2586 if test "$as_verc_fail" != yes ; then
2587 echores "ok"
2588 else
2589 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2590 echores "failed"
2591 die "obsolete binutils version"
2594 fi #if x86_32
2596 echocheck ".align is a power of two"
2597 if test "$_asmalign_pot" = auto ; then
2598 _asmalign_pot=no
2599 cat > $TMPC << EOF
2600 int main(void) { __asm__ (".align 3"); return 0; }
2602 cc_check && _asmalign_pot=yes
2604 if test "$_asmalign_pot" = "yes" ; then
2605 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2606 else
2607 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2609 echores $_asmalign_pot
2611 if x86 ; then
2612 echocheck "10 assembler operands"
2613 ten_operands=no
2614 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2615 cat > $TMPC << EOF
2616 int main(void) {
2617 int x=0;
2618 __asm__ volatile(
2620 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2622 return 0;
2625 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2626 echores $ten_operands
2628 echocheck "ebx availability"
2629 ebx_available=no
2630 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2631 cat > $TMPC << EOF
2632 int main(void) {
2633 int x;
2634 __asm__ volatile(
2635 "xor %0, %0"
2636 :"=b"(x)
2637 // just adding ebx to clobber list seems unreliable with some
2638 // compilers, e.g. Haiku's gcc 2.95
2640 // and the above check does not work for OSX 64 bit...
2641 __asm__ volatile("":::"%ebx");
2642 return 0;
2645 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2646 echores $ebx_available
2648 echocheck "PIC"
2649 pic=no
2650 cat > $TMPC << EOF
2651 int main(void) {
2652 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2653 #error PIC not enabled
2654 #endif
2655 return 0;
2658 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2659 echores $pic
2661 echocheck "yasm"
2662 if test -z "$YASMFLAGS" ; then
2663 if darwin ; then
2664 x86_64 && objformat="macho64" || objformat="macho"
2665 elif win32 ; then
2666 objformat="win32"
2667 else
2668 objformat="elf"
2670 # currently tested for Linux x86, x86_64
2671 YASMFLAGS="-f $objformat"
2672 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2673 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2674 case "$objformat" in
2675 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2676 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2677 esac
2678 else
2679 _warn_CFLAGS=yes
2682 echo "pabsw xmm0, xmm0" > $TMPS
2683 yasm_check || _yasm=""
2684 if test $_yasm ; then
2685 def_yasm='#define HAVE_YASM 1'
2686 have_yasm="yes"
2687 echores "$_yasm"
2688 else
2689 def_yasm='#define HAVE_YASM 0'
2690 have_yasm="no"
2691 echores "no"
2694 echocheck "bswap"
2695 def_bswap='#define HAVE_BSWAP 0'
2696 echo 'bswap %eax' > $TMPS
2697 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2698 echores "$bswap"
2699 fi #if x86
2702 #FIXME: This should happen before the check for CFLAGS..
2703 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2704 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2706 # check if AltiVec is supported by the compiler, and how to enable it
2707 echocheck "GCC AltiVec flags"
2708 cat > $TMPC << EOF
2709 int main(void) { return 0; }
2711 if $(cc_check -maltivec -mabi=altivec) ; then
2712 _altivec_gcc_flags="-maltivec -mabi=altivec"
2713 # check if <altivec.h> should be included
2714 cat > $TMPC << EOF
2715 #include <altivec.h>
2716 int main(void) { return 0; }
2718 if $(cc_check $_altivec_gcc_flags) ; then
2719 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2720 inc_altivec_h='#include <altivec.h>'
2721 else
2722 cat > $TMPC << EOF
2723 int main(void) { return 0; }
2725 if $(cc_check -faltivec) ; then
2726 _altivec_gcc_flags="-faltivec"
2727 else
2728 _altivec=no
2729 _altivec_gcc_flags="none, AltiVec disabled"
2733 echores "$_altivec_gcc_flags"
2735 # check if the compiler supports braces for vector declarations
2736 cat > $TMPC << EOF
2737 $inc_altivec_h
2738 int main(void) { (vector int) {1}; return 0; }
2740 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2742 # Disable runtime cpudetection if we cannot generate AltiVec code or
2743 # AltiVec is disabled by the user.
2744 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2745 && _runtime_cpudetection=no
2747 # Show that we are optimizing for AltiVec (if enabled and supported).
2748 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2749 && _optimizing="$_optimizing altivec"
2751 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2752 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2755 if ppc ; then
2756 def_xform_asm='#define HAVE_XFORM_ASM 0'
2757 xform_asm=no
2758 echocheck "XFORM ASM support"
2759 cat > $TMPC << EOF
2760 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2762 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2763 echores "$xform_asm"
2766 if arm ; then
2767 echocheck "ARM pld instruction"
2768 cat > $TMPC << EOF
2769 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2771 pld=no
2772 cc_check && pld=yes
2773 echores "$pld"
2775 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2776 if test $_armv5te = "auto" ; then
2777 cat > $TMPC << EOF
2778 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2780 _armv5te=no
2781 cc_check && _armv5te=yes
2783 echores "$_armv5te"
2785 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2787 echocheck "ARMv6 (SIMD instructions)"
2788 if test $_armv6 = "auto" ; then
2789 cat > $TMPC << EOF
2790 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2792 _armv6=no
2793 cc_check && _armv6=yes
2795 echores "$_armv6"
2797 echocheck "ARMv6t2 (SIMD instructions)"
2798 if test $_armv6t2 = "auto" ; then
2799 cat > $TMPC << EOF
2800 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2802 _armv6t2=no
2803 cc_check && _armv6t2=yes
2805 echores "$_armv6"
2807 echocheck "ARM VFP"
2808 if test $_armvfp = "auto" ; then
2809 cat > $TMPC << EOF
2810 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2812 _armvfp=no
2813 cc_check && _armvfp=yes
2815 echores "$_armvfp"
2817 echocheck "ARM NEON"
2818 if test $neon = "auto" ; then
2819 cat > $TMPC << EOF
2820 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2822 neon=no
2823 cc_check && neon=yes
2825 echores "$neon"
2827 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2828 if test $_iwmmxt = "auto" ; then
2829 cat > $TMPC << EOF
2830 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2832 _iwmmxt=no
2833 cc_check && _iwmmxt=yes
2835 echores "$_iwmmxt"
2838 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2839 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2840 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2841 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2842 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2843 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2844 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2845 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2846 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2847 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2848 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2849 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2850 test "$pld" = yes && cpuexts="PLD $cpuexts"
2851 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2852 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2853 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2854 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2855 test "$neon" = yes && cpuexts="NEON $cpuexts"
2856 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2857 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2858 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2860 # Checking kernel version...
2861 if x86_32 && linux ; then
2862 _k_verc_problem=no
2863 kernel_version=$(uname -r 2>&1)
2864 echocheck "$system_name kernel version"
2865 case "$kernel_version" in
2866 '') kernel_version="?.??"; _k_verc_fail=yes;;
2867 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2868 _k_verc_problem=yes;;
2869 esac
2870 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2871 _k_verc_fail=yes
2873 if test "$_k_verc_fail" ; then
2874 echores "$kernel_version, fail"
2875 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2876 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2877 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2878 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2879 echo "2.2.x you must upgrade it to get SSE support!"
2880 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2881 else
2882 echores "$kernel_version, ok"
2886 ######################
2887 # MAIN TESTS GO HERE #
2888 ######################
2891 echocheck "-lposix"
2892 cat > $TMPC <<EOF
2893 int main(void) { return 0; }
2895 if cc_check -lposix ; then
2896 extra_ldflags="$extra_ldflags -lposix"
2897 echores "yes"
2898 else
2899 echores "no"
2902 echocheck "-lm"
2903 cat > $TMPC <<EOF
2904 int main(void) { return 0; }
2906 if cc_check -lm ; then
2907 _ld_lm="-lm"
2908 echores "yes"
2909 else
2910 _ld_lm=""
2911 echores "no"
2915 echocheck "langinfo"
2916 if test "$_langinfo" = auto ; then
2917 cat > $TMPC <<EOF
2918 #include <langinfo.h>
2919 int main(void) { nl_langinfo(CODESET); return 0; }
2921 _langinfo=no
2922 cc_check && _langinfo=yes
2924 if test "$_langinfo" = yes ; then
2925 def_langinfo='#define HAVE_LANGINFO 1'
2926 else
2927 def_langinfo='#undef HAVE_LANGINFO'
2929 echores "$_langinfo"
2932 echocheck "language"
2933 # Set preferred languages, "all" uses English as main language.
2934 test -z "$language" && language=$LINGUAS
2935 test -z "$language_doc" && language_doc=$language
2936 test -z "$language_man" && language_man=$language
2937 test -z "$language_msg" && language_msg=$language
2938 language_doc=$(echo $language_doc | tr , " ")
2939 language_man=$(echo $language_man | tr , " ")
2940 language_msg=$(echo $language_msg | tr , " ")
2942 test "$language_doc" = "all" && language_doc=$doc_lang_all
2943 test "$language_man" = "all" && language_man=$man_lang_all
2944 test "$language_msg" = "all" && language_msg=en
2946 # Prune non-existing translations from language lists.
2947 # Set message translation to the first available language.
2948 # Fall back on English.
2949 for lang in $language_doc ; do
2950 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2951 done
2952 language_doc=$tmp_language_doc
2953 test -z "$language_doc" && language_doc=en
2955 for lang in $language_man ; do
2956 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2957 done
2958 language_man=$tmp_language_man
2959 test -z "$language_man" && language_man=en
2961 for lang in $language_msg ; do
2962 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2963 done
2964 language_msg=$tmp_language_msg
2965 test -z "$language_msg" && language_msg=en
2966 _mp_help="help/help_mp-${language_msg}.h"
2967 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2970 echocheck "enable sighandler"
2971 if test "$_sighandler" = yes ; then
2972 def_sighandler='#define CONFIG_SIGHANDLER 1'
2973 else
2974 def_sighandler='#undef CONFIG_SIGHANDLER'
2976 echores "$_sighandler"
2978 echocheck "runtime cpudetection"
2979 if test "$_runtime_cpudetection" = yes ; then
2980 _optimizing="Runtime CPU-Detection enabled"
2981 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2982 else
2983 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2985 echores "$_runtime_cpudetection"
2988 echocheck "restrict keyword"
2989 for restrict_keyword in restrict __restrict __restrict__ ; do
2990 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2991 if cc_check; then
2992 def_restrict_keyword=$restrict_keyword
2993 break;
2995 done
2996 if [ -n "$def_restrict_keyword" ]; then
2997 echores "$def_restrict_keyword"
2998 else
2999 echores "none"
3001 # Avoid infinite recursion loop ("#define restrict restrict")
3002 if [ "$def_restrict_keyword" != "restrict" ]; then
3003 def_restrict_keyword="#define restrict $def_restrict_keyword"
3004 else
3005 def_restrict_keyword=""
3009 echocheck "__builtin_expect"
3010 # GCC branch prediction hint
3011 cat > $TMPC << EOF
3012 int foo(int a) {
3013 a = __builtin_expect(a, 10);
3014 return a == 10 ? 0 : 1;
3016 int main(void) { return foo(10) && foo(0); }
3018 _builtin_expect=no
3019 cc_check && _builtin_expect=yes
3020 if test "$_builtin_expect" = yes ; then
3021 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3022 else
3023 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3025 echores "$_builtin_expect"
3028 echocheck "kstat"
3029 cat > $TMPC << EOF
3030 #include <kstat.h>
3031 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3033 _kstat=no
3034 cc_check -lkstat && _kstat=yes
3035 if test "$_kstat" = yes ; then
3036 def_kstat="#define HAVE_LIBKSTAT 1"
3037 extra_ldflags="$extra_ldflags -lkstat"
3038 else
3039 def_kstat="#undef HAVE_LIBKSTAT"
3041 echores "$_kstat"
3044 echocheck "posix4"
3045 # required for nanosleep on some systems
3046 cat > $TMPC << EOF
3047 #include <time.h>
3048 int main(void) { (void) nanosleep(0, 0); return 0; }
3050 _posix4=no
3051 cc_check -lposix4 && _posix4=yes
3052 if test "$_posix4" = yes ; then
3053 extra_ldflags="$extra_ldflags -lposix4"
3055 echores "$_posix4"
3057 for func in exp2 exp2f llrint llrintf log2 log2f lrint lrintf round roundf truncf; do
3058 echocheck $func
3059 cat > $TMPC << EOF
3060 #include <math.h>
3061 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3063 eval _$func=no
3064 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3065 if eval test "x\$_$func" = "xyes"; then
3066 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3067 echores yes
3068 else
3069 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3070 echores no
3072 done
3075 echocheck "mkstemp"
3076 cat > $TMPC << EOF
3077 #include <stdlib.h>
3078 int main(void) { char a; mkstemp(&a); return 0; }
3080 _mkstemp=no
3081 cc_check && _mkstemp=yes
3082 if test "$_mkstemp" = yes ; then
3083 def_mkstemp='#define HAVE_MKSTEMP 1'
3084 else
3085 def_mkstemp='#undef HAVE_MKSTEMP'
3087 echores "$_mkstemp"
3090 echocheck "nanosleep"
3091 # also check for nanosleep
3092 cat > $TMPC << EOF
3093 #include <time.h>
3094 int main(void) { (void) nanosleep(0, 0); return 0; }
3096 _nanosleep=no
3097 cc_check && _nanosleep=yes
3098 if test "$_nanosleep" = yes ; then
3099 def_nanosleep='#define HAVE_NANOSLEEP 1'
3100 else
3101 def_nanosleep='#undef HAVE_NANOSLEEP'
3103 echores "$_nanosleep"
3106 echocheck "socklib"
3107 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3108 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3109 cat > $TMPC << EOF
3110 #include <netdb.h>
3111 #include <sys/socket.h>
3112 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3114 _socklib=no
3115 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3116 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3117 done
3118 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3119 if test $_winsock2_h = auto ; then
3120 _winsock2_h=no
3121 cat > $TMPC << EOF
3122 #include <winsock2.h>
3123 int main(void) { (void) gethostbyname(0); return 0; }
3125 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3127 test "$_ld_sock" && res_comment="using $_ld_sock"
3128 echores "$_socklib"
3131 if test $_winsock2_h = yes ; then
3132 _ld_sock="-lws2_32"
3133 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3134 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3135 else
3136 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3137 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3141 echocheck "netdb.h, struct addrinfo"
3142 if test "$_struct_addrinfo" = auto; then
3143 _struct_addrinfo=no
3144 cat > $TMPC << EOF
3145 #if HAVE_WINSOCK2_H
3146 #include <winsock2.h>
3147 #include <ws2tcpip.h>
3148 #else
3149 #include <sys/types.h>
3150 #include <sys/socket.h>
3151 #include <netdb.h>
3152 #endif
3153 int main(void) { struct addrinfo ai; return 0; }
3155 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3157 echores "$_struct_addrinfo"
3159 if test "$_struct_addrinfo" = yes; then
3160 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3161 else
3162 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3166 echocheck "netdb.h, getaddrinfo()"
3167 if test "$_getaddrinfo" = auto; then
3168 _getaddrinfo=no
3169 cat > $TMPC << EOF
3170 #if HAVE_WINSOCK2_H
3171 #include <winsock2.h>
3172 #else
3173 #include <sys/types.h>
3174 #include <sys/socket.h>
3175 #include <netdb.h>
3176 #endif
3177 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3179 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3181 echores "$_getaddrinfo"
3183 if test "$_getaddrinfo" = yes; then
3184 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3185 else
3186 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3190 echocheck "sockaddr_storage"
3191 if test "$_struct_sockaddr_storage" = auto; then
3192 _struct_sockaddr_storage=no
3193 cat > $TMPC << EOF
3194 #if HAVE_WINSOCK2_H
3195 #include <winsock2.h>
3196 #else
3197 #include <sys/socket.h>
3198 #endif
3199 int main(void) { struct sockaddr_storage sas; return 0; }
3201 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3203 echores "$_struct_sockaddr_storage"
3205 if test "$_struct_sockaddr_storage" = yes; then
3206 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3207 else
3208 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3212 echocheck "struct ipv6_mreq"
3213 _struct_ipv6_mreq=no
3214 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3215 for header in "netinet/in.h" "ws2tcpip.h" ; do
3216 cat > $TMPC << EOF
3217 #include <$header>
3218 int main(void) { struct ipv6_mreq mreq6; return 0; }
3220 cc_check && _struct_ipv6_mreq=yes && \
3221 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3222 done
3223 echores "$_struct_ipv6_mreq"
3226 echocheck "struct sockaddr_in6"
3227 _struct_sockaddr_in6=no
3228 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3229 for header in "netinet/in.h" "ws2tcpip.h" ; do
3230 cat > $TMPC << EOF
3231 #include <$header>
3232 int main(void) { struct sockaddr_in6 addr; return 0; }
3234 cc_check && _struct_sockaddr_in6=yes && \
3235 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3236 done
3237 echores "$_struct_sockaddr_in6"
3240 echocheck "struct sockaddr sa_len"
3241 _struct_sockaddr_sa_len=no
3242 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3243 cat > $TMPC << EOF
3244 #if HAVE_WINSOCK2_H
3245 #include <winsock2.h>
3246 #else
3247 #include <sys/types.h>
3248 #include <sys/socket.h>
3249 #endif
3250 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3252 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3253 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3254 echores "$_struct_sockaddr_sa_len"
3257 echocheck "arpa/inet.h"
3258 arpa_inet_h=no
3259 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3260 cat > $TMPC << EOF
3261 #include <arpa/inet.h>
3262 int main(void) { return 0; }
3264 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3265 echores "$arpa_inet_h"
3268 echocheck "inet_pton()"
3269 def_inet_pton='#define HAVE_INET_PTON 0'
3270 inet_pton=no
3271 cat > $TMPC << EOF
3272 #include <sys/types.h>
3273 #include <sys/socket.h>
3274 #include <arpa/inet.h>
3275 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3277 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3278 cc_check $_ld_tmp && inet_pton=yes && break
3279 done
3280 if test $inet_pton = yes ; then
3281 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3282 def_inet_pton='#define HAVE_INET_PTON 1'
3284 echores "$inet_pton"
3287 echocheck "inet_aton()"
3288 def_inet_aton='#define HAVE_INET_ATON 0'
3289 inet_aton=no
3290 cat > $TMPC << EOF
3291 #include <sys/types.h>
3292 #include <sys/socket.h>
3293 #include <arpa/inet.h>
3294 int main(void) { (void) inet_aton(0, 0); return 0; }
3296 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3297 cc_check $_ld_tmp && inet_aton=yes && break
3298 done
3299 if test $inet_aton = yes ; then
3300 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3301 def_inet_aton='#define HAVE_INET_ATON 1'
3303 echores "$inet_aton"
3306 echocheck "socklen_t"
3307 _socklen_t=no
3308 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3309 cat > $TMPC << EOF
3310 #include <$header>
3311 int main(void) { socklen_t v = 0; return v; }
3313 cc_check && _socklen_t=yes && break
3314 done
3315 if test "$_socklen_t" = yes ; then
3316 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3317 else
3318 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3320 echores "$_socklen_t"
3323 echocheck "closesocket()"
3324 _closesocket=no
3325 cat > $TMPC << EOF
3326 #include <winsock2.h>
3327 int main(void) { closesocket(~0); return 0; }
3329 cc_check $_ld_sock && _closesocket=yes
3330 if test "$_closesocket" = yes ; then
3331 def_closesocket='#define HAVE_CLOSESOCKET 1'
3332 else
3333 def_closesocket='#define HAVE_CLOSESOCKET 0'
3335 echores "$_closesocket"
3338 echocheck "network"
3339 test $_winsock2_h = no && test $inet_pton = no &&
3340 test $inet_aton = no && _network=no
3341 if test "$_network" = yes ; then
3342 def_network='#define CONFIG_NETWORK 1'
3343 extra_ldflags="$extra_ldflags $_ld_sock"
3344 inputmodules="network $inputmodules"
3345 else
3346 noinputmodules="network $noinputmodules"
3347 def_network='#undef CONFIG_NETWORK'
3348 _ftp=no
3349 _libavprotocols=$(echo $_libavprotocols | sed -e s/GOPHER_PROTOCOL// -e s/HTTP_PROTOCOL// -e s/RTMP_PROTOCOL// -e s/RTP_PROTOCOL// -e s/TCP_PROTOCOL// -e s/UDP_PROTOCOL//)
3350 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3352 echores "$_network"
3355 echocheck "inet6"
3356 if test "$_inet6" = auto ; then
3357 cat > $TMPC << EOF
3358 #include <sys/types.h>
3359 #if !defined(_WIN32) || defined(__CYGWIN__)
3360 #include <sys/socket.h>
3361 #include <netinet/in.h>
3362 #else
3363 #include <ws2tcpip.h>
3364 #endif
3365 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3367 _inet6=no
3368 if cc_check $_ld_sock ; then
3369 _inet6=yes
3372 if test "$_inet6" = yes ; then
3373 def_inet6='#define HAVE_AF_INET6 1'
3374 else
3375 def_inet6='#undef HAVE_AF_INET6'
3377 echores "$_inet6"
3380 echocheck "gethostbyname2"
3381 if test "$_gethostbyname2" = auto ; then
3382 cat > $TMPC << EOF
3383 #include <sys/types.h>
3384 #include <sys/socket.h>
3385 #include <netdb.h>
3386 int main(void) { gethostbyname2("", AF_INET); return 0; }
3388 _gethostbyname2=no
3389 if cc_check ; then
3390 _gethostbyname2=yes
3393 if test "$_gethostbyname2" = yes ; then
3394 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3395 else
3396 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3398 echores "$_gethostbyname2"
3401 echocheck "inttypes.h (required)"
3402 cat > $TMPC << EOF
3403 #include <inttypes.h>
3404 int main(void) { return 0; }
3406 _inttypes=no
3407 cc_check && _inttypes=yes
3408 echores "$_inttypes"
3410 if test "$_inttypes" = no ; then
3411 echocheck "bitypes.h (inttypes.h predecessor)"
3412 cat > $TMPC << EOF
3413 #include <sys/bitypes.h>
3414 int main(void) { return 0; }
3416 cc_check && _inttypes=yes
3417 if test "$_inttypes" = yes ; then
3418 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."
3419 else
3420 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3425 echocheck "int_fastXY_t in inttypes.h"
3426 cat > $TMPC << EOF
3427 #include <inttypes.h>
3428 int main(void) {
3429 volatile int_fast16_t v= 0;
3430 return v; }
3432 _fast_inttypes=no
3433 cc_check && _fast_inttypes=yes
3434 if test "$_fast_inttypes" = no ; then
3435 def_fast_inttypes='
3436 typedef signed char int_fast8_t;
3437 typedef signed int int_fast16_t;
3438 typedef signed int int_fast32_t;
3439 typedef signed long long int_fast64_t;
3440 typedef unsigned char uint_fast8_t;
3441 typedef unsigned int uint_fast16_t;
3442 typedef unsigned int uint_fast32_t;
3443 typedef unsigned long long uint_fast64_t;'
3445 echores "$_fast_inttypes"
3448 echocheck "malloc.h"
3449 cat > $TMPC << EOF
3450 #include <malloc.h>
3451 int main(void) { (void) malloc(0); return 0; }
3453 _malloc=no
3454 cc_check && _malloc=yes
3455 if test "$_malloc" = yes ; then
3456 def_malloc_h='#define HAVE_MALLOC_H 1'
3457 else
3458 def_malloc_h='#define HAVE_MALLOC_H 0'
3460 echores "$_malloc"
3463 echocheck "memalign()"
3464 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3465 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3466 cat > $TMPC << EOF
3467 #include <malloc.h>
3468 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3470 _memalign=no
3471 cc_check && _memalign=yes
3472 if test "$_memalign" = yes ; then
3473 def_memalign='#define HAVE_MEMALIGN 1'
3474 else
3475 def_memalign='#define HAVE_MEMALIGN 0'
3476 def_map_memalign='#define memalign(a,b) malloc(b)'
3477 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3479 echores "$_memalign"
3482 echocheck "posix_memalign()"
3483 posix_memalign=no
3484 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3485 cat > $TMPC << EOF
3486 #define _XOPEN_SOURCE 600
3487 #include <stdlib.h>
3488 int main(void) { posix_memalign(NULL, 0, 0); }
3490 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3491 echores "$posix_memalign"
3494 echocheck "alloca.h"
3495 cat > $TMPC << EOF
3496 #include <alloca.h>
3497 int main(void) { (void) alloca(0); return 0; }
3499 _alloca=no
3500 cc_check && _alloca=yes
3501 if cc_check ; then
3502 def_alloca_h='#define HAVE_ALLOCA_H 1'
3503 else
3504 def_alloca_h='#undef HAVE_ALLOCA_H'
3506 echores "$_alloca"
3509 echocheck "fastmemcpy"
3510 if test "$_fastmemcpy" = yes ; then
3511 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3512 else
3513 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3515 echores "$_fastmemcpy"
3518 echocheck "hard-coded tables"
3519 if test "$hardcoded_tables" = yes ; then
3520 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3521 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3522 else
3523 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3525 echores "$hardcoded_tables"
3528 echocheck "mman.h"
3529 cat > $TMPC << EOF
3530 #include <sys/types.h>
3531 #include <sys/mman.h>
3532 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3534 _mman=no
3535 cc_check && _mman=yes
3536 if test "$_mman" = yes ; then
3537 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3538 else
3539 def_mman_h='#undef HAVE_SYS_MMAN_H'
3540 os2 && _need_mmap=yes
3542 echores "$_mman"
3544 cat > $TMPC << EOF
3545 #include <sys/types.h>
3546 #include <sys/mman.h>
3547 int main(void) { void *p = MAP_FAILED; return 0; }
3549 _mman_has_map_failed=no
3550 cc_check && _mman_has_map_failed=yes
3551 if test "$_mman_has_map_failed" = yes ; then
3552 def_mman_has_map_failed=''
3553 else
3554 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3557 echocheck "dynamic loader"
3558 cat > $TMPC << EOF
3559 #include <stddef.h>
3560 #include <dlfcn.h>
3561 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3563 _dl=no
3564 for _ld_tmp in "" "-ldl" ; do
3565 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3566 done
3567 if test "$_dl" = yes ; then
3568 def_dl='#define HAVE_LIBDL 1'
3569 else
3570 def_dl='#undef HAVE_LIBDL'
3572 echores "$_dl"
3575 echocheck "dynamic a/v plugins support"
3576 if test "$_dl" = no ; then
3577 _dynamic_plugins=no
3579 if test "$_dynamic_plugins" = yes ; then
3580 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3581 else
3582 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3584 echores "$_dynamic_plugins"
3587 def_threads='#define HAVE_THREADS 0'
3589 echocheck "pthread"
3590 if linux ; then
3591 THREAD_CFLAGS=-D_REENTRANT
3592 elif freebsd || netbsd || openbsd || bsdos ; then
3593 THREAD_CFLAGS=-D_THREAD_SAFE
3595 if test "$_pthreads" = auto ; then
3596 cat > $TMPC << EOF
3597 #include <pthread.h>
3598 void* func(void *arg) { return arg; }
3599 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3601 _pthreads=no
3602 if ! hpux ; then
3603 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3604 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3605 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3606 done
3609 if test "$_pthreads" = yes ; then
3610 test $_ld_pthread && res_comment="using $_ld_pthread"
3611 def_pthreads='#define HAVE_PTHREADS 1'
3612 def_threads='#define HAVE_THREADS 1'
3613 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3614 else
3615 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3616 def_pthreads='#undef HAVE_PTHREADS'
3617 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3618 mingw32 || _win32dll=no
3620 echores "$_pthreads"
3622 if cygwin ; then
3623 if test "$_pthreads" = yes ; then
3624 def_pthread_cache="#define PTHREAD_CACHE 1"
3625 else
3626 _stream_cache=no
3627 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3631 echocheck "w32threads"
3632 if test "$_pthreads" = yes ; then
3633 res_comment="using pthread instead"
3634 _w32threads=no
3636 if test "$_w32threads" = auto ; then
3637 _w32threads=no
3638 mingw32 && _w32threads=yes
3640 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3641 echores "$_w32threads"
3643 echocheck "rpath"
3644 netbsd &&_rpath=yes
3645 if test "$_rpath" = yes ; then
3646 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3647 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3648 done
3649 extra_ldflags=$tmp
3651 echores "$_rpath"
3653 echocheck "iconv"
3654 if test "$_iconv" = auto ; then
3655 cat > $TMPC << EOF
3656 #include <stdio.h>
3657 #include <unistd.h>
3658 #include <iconv.h>
3659 #define INBUFSIZE 1024
3660 #define OUTBUFSIZE 4096
3662 char inbuffer[INBUFSIZE];
3663 char outbuffer[OUTBUFSIZE];
3665 int main(void) {
3666 size_t numread;
3667 iconv_t icdsc;
3668 char *tocode="UTF-8";
3669 char *fromcode="cp1250";
3670 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3671 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3672 char *iptr=inbuffer;
3673 char *optr=outbuffer;
3674 size_t inleft=numread;
3675 size_t outleft=OUTBUFSIZE;
3676 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3677 != (size_t)(-1)) {
3678 write(1, outbuffer, OUTBUFSIZE - outleft);
3681 if (iconv_close(icdsc) == -1)
3684 return 0;
3687 _iconv=no
3688 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3689 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3690 _iconv=yes && break
3691 done
3693 if test "$_iconv" = yes ; then
3694 def_iconv='#define CONFIG_ICONV 1'
3695 else
3696 def_iconv='#undef CONFIG_ICONV'
3698 echores "$_iconv"
3701 echocheck "soundcard.h"
3702 _soundcard_h=no
3703 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3704 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3705 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3706 cat > $TMPC << EOF
3707 #include <$_soundcard_header>
3708 int main(void) { return 0; }
3710 cc_check && _soundcard_h=yes && res_comment="$_soundcard_header" && break
3711 done
3713 if test "$_soundcard_h" = yes ; then
3714 if test $_soundcard_header = "sys/soundcard.h"; then
3715 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3716 else
3717 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3720 echores "$_soundcard_h"
3723 echocheck "sys/dvdio.h"
3724 cat > $TMPC << EOF
3725 #include <unistd.h>
3726 #include <sys/dvdio.h>
3727 int main(void) { return 0; }
3729 _dvdio=no
3730 cc_check && _dvdio=yes
3731 if test "$_dvdio" = yes ; then
3732 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3733 else
3734 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3736 echores "$_dvdio"
3739 echocheck "sys/cdio.h"
3740 cat > $TMPC << EOF
3741 #include <unistd.h>
3742 #include <sys/cdio.h>
3743 int main(void) { return 0; }
3745 _cdio=no
3746 cc_check && _cdio=yes
3747 if test "$_cdio" = yes ; then
3748 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3749 else
3750 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3752 echores "$_cdio"
3755 echocheck "linux/cdrom.h"
3756 cat > $TMPC << EOF
3757 #include <sys/types.h>
3758 #include <linux/cdrom.h>
3759 int main(void) { return 0; }
3761 _cdrom=no
3762 cc_check && _cdrom=yes
3763 if test "$_cdrom" = yes ; then
3764 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3765 else
3766 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3768 echores "$_cdrom"
3771 echocheck "dvd.h"
3772 cat > $TMPC << EOF
3773 #include <dvd.h>
3774 int main(void) { return 0; }
3776 _dvd=no
3777 cc_check && _dvd=yes
3778 if test "$_dvd" = yes ; then
3779 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3780 else
3781 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3783 echores "$_dvd"
3786 if bsdos; then
3787 echocheck "BSDI dvd.h"
3788 cat > $TMPC << EOF
3789 #include <dvd.h>
3790 int main(void) { return 0; }
3792 _bsdi_dvd=no
3793 cc_check && _bsdi_dvd=yes
3794 if test "$_bsdi_dvd" = yes ; then
3795 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3796 else
3797 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3799 echores "$_bsdi_dvd"
3800 fi #if bsdos
3803 if hpux; then
3804 # also used by AIX, but AIX does not support VCD and/or libdvdread
3805 echocheck "HP-UX SCSI header"
3806 cat > $TMPC << EOF
3807 #include <sys/scsi.h>
3808 int main(void) { return 0; }
3810 _hpux_scsi_h=no
3811 cc_check && _hpux_scsi_h=yes
3812 if test "$_hpux_scsi_h" = yes ; then
3813 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3814 else
3815 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3817 echores "$_hpux_scsi_h"
3818 fi #if hpux
3821 if sunos; then
3822 echocheck "userspace SCSI headers (Solaris)"
3823 cat > $TMPC << EOF
3824 #include <unistd.h>
3825 #include <stropts.h>
3826 #include <sys/scsi/scsi_types.h>
3827 #include <sys/scsi/impl/uscsi.h>
3828 int main(void) { return 0; }
3830 _sol_scsi_h=no
3831 cc_check && _sol_scsi_h=yes
3832 if test "$_sol_scsi_h" = yes ; then
3833 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3834 else
3835 def_sol_scsi_h='#undef SOLARIS_USCSI'
3837 echores "$_sol_scsi_h"
3838 fi #if sunos
3841 echocheck "termcap"
3842 if test "$_termcap" = auto ; then
3843 cat > $TMPC <<EOF
3844 #include <stddef.h>
3845 #include <term.h>
3846 int main(void) { tgetent(NULL, NULL); return 0; }
3848 _termcap=no
3849 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3850 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3851 && _termcap=yes && break
3852 done
3854 if test "$_termcap" = yes ; then
3855 def_termcap='#define HAVE_TERMCAP 1'
3856 test $_ld_tmp && res_comment="using $_ld_tmp"
3857 else
3858 def_termcap='#undef HAVE_TERMCAP'
3860 echores "$_termcap"
3863 echocheck "termios"
3864 def_termios='#undef HAVE_TERMIOS'
3865 def_termios_h='#undef HAVE_TERMIOS_H'
3866 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3867 if test "$_termios" = auto ; then
3868 _termios=no
3869 for _termios_header in "termios.h" "sys/termios.h"; do
3870 cat > $TMPC <<EOF
3871 #include <$_termios_header>
3872 int main(void) { return 0; }
3874 cc_check && _termios=yes && res_comment="using $_termios_header" && break
3875 done
3878 if test "$_termios" = yes ; then
3879 def_termios='#define HAVE_TERMIOS 1'
3880 if test "$_termios_header" = "termios.h" ; then
3881 def_termios_h='#define HAVE_TERMIOS_H 1'
3882 else
3883 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3886 echores "$_termios"
3889 echocheck "shm"
3890 if test "$_shm" = auto ; then
3891 cat > $TMPC << EOF
3892 #include <sys/types.h>
3893 #include <sys/shm.h>
3894 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3896 _shm=no
3897 cc_check && _shm=yes
3899 if test "$_shm" = yes ; then
3900 def_shm='#define HAVE_SHM 1'
3901 else
3902 def_shm='#undef HAVE_SHM'
3904 echores "$_shm"
3907 echocheck "strsep()"
3908 cat > $TMPC << EOF
3909 #include <string.h>
3910 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3912 _strsep=no
3913 cc_check && _strsep=yes
3914 if test "$_strsep" = yes ; then
3915 def_strsep='#define HAVE_STRSEP 1'
3916 _need_strsep=no
3917 else
3918 def_strsep='#undef HAVE_STRSEP'
3919 _need_strsep=yes
3921 echores "$_strsep"
3924 echocheck "vsscanf()"
3925 cat > $TMPC << EOF
3926 #define _ISOC99_SOURCE
3927 #include <stdarg.h>
3928 #include <stdio.h>
3929 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3931 _vsscanf=no
3932 cc_check && _vsscanf=yes
3933 if test "$_vsscanf" = yes ; then
3934 def_vsscanf='#define HAVE_VSSCANF 1'
3935 _need_vsscanf=no
3936 else
3937 def_vsscanf='#undef HAVE_VSSCANF'
3938 _need_vsscanf=yes
3940 echores "$_vsscanf"
3943 echocheck "swab()"
3944 cat > $TMPC << EOF
3945 #define _XOPEN_SOURCE 600
3946 #include <unistd.h>
3947 int main(void) { swab(0, 0, 0); return 0; }
3949 _swab=no
3950 cc_check && _swab=yes
3951 if test "$_swab" = yes ; then
3952 def_swab='#define HAVE_SWAB 1'
3953 _need_swab=no
3954 else
3955 def_swab='#undef HAVE_SWAB'
3956 _need_swab=yes
3958 echores "$_swab"
3960 echocheck "POSIX select()"
3961 cat > $TMPC << EOF
3962 #include <stdio.h>
3963 #include <stdlib.h>
3964 #include <sys/types.h>
3965 #include <string.h>
3966 #include <sys/time.h>
3967 #include <unistd.h>
3968 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3970 _posix_select=no
3971 def_posix_select='#undef HAVE_POSIX_SELECT'
3972 #select() of kLIBC (OS/2) supports socket only
3973 ! os2 && cc_check && _posix_select=yes \
3974 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3975 echores "$_posix_select"
3978 echocheck "audio select()"
3979 if test "$_select" = no ; then
3980 def_select='#undef HAVE_AUDIO_SELECT'
3981 elif test "$_select" = yes ; then
3982 def_select='#define HAVE_AUDIO_SELECT 1'
3984 echores "$_select"
3987 echocheck "gettimeofday()"
3988 cat > $TMPC << EOF
3989 #include <stdio.h>
3990 #include <sys/time.h>
3991 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3993 _gettimeofday=no
3994 cc_check && _gettimeofday=yes
3995 if test "$_gettimeofday" = yes ; then
3996 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3997 _need_gettimeofday=no
3998 else
3999 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
4000 _need_gettimeofday=yes
4002 echores "$_gettimeofday"
4005 echocheck "glob()"
4006 cat > $TMPC << EOF
4007 #include <stdio.h>
4008 #include <glob.h>
4009 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4011 _glob=no
4012 cc_check && _glob=yes
4013 if test "$_glob" = yes ; then
4014 def_glob='#define HAVE_GLOB 1'
4015 _need_glob=no
4016 else
4017 def_glob='#undef HAVE_GLOB'
4018 _need_glob=yes
4020 echores "$_glob"
4023 echocheck "setenv()"
4024 cat > $TMPC << EOF
4025 #include <stdlib.h>
4026 int main(void) { setenv("","",0); return 0; }
4028 _setenv=no
4029 cc_check && _setenv=yes
4030 if test "$_setenv" = yes ; then
4031 def_setenv='#define HAVE_SETENV 1'
4032 _need_setenv=no
4033 else
4034 def_setenv='#undef HAVE_SETENV'
4035 _need_setenv=yes
4037 echores "$_setenv"
4040 echocheck "setmode()"
4041 _setmode=no
4042 def_setmode='#define HAVE_SETMODE 0'
4043 cat > $TMPC << EOF
4044 #include <io.h>
4045 int main(void) { setmode(0, 0); return 0; }
4047 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
4048 echores "$_setmode"
4051 if sunos; then
4052 echocheck "sysi86()"
4053 cat > $TMPC << EOF
4054 #include <sys/sysi86.h>
4055 int main(void) { sysi86(0); return 0; }
4057 _sysi86=no
4058 cc_check && _sysi86=yes
4059 if test "$_sysi86" = yes ; then
4060 def_sysi86='#define HAVE_SYSI86 1'
4061 cat > $TMPC << EOF
4062 #include <sys/sysi86.h>
4063 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4065 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4066 else
4067 def_sysi86='#undef HAVE_SYSI86'
4069 echores "$_sysi86"
4070 fi #if sunos
4073 echocheck "sys/sysinfo.h"
4074 cat > $TMPC << EOF
4075 #include <sys/sysinfo.h>
4076 int main(void) {
4077 struct sysinfo s_info;
4078 sysinfo(&s_info);
4079 return 0;
4082 _sys_sysinfo=no
4083 cc_check && _sys_sysinfo=yes
4084 if test "$_sys_sysinfo" = yes ; then
4085 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4086 else
4087 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4089 echores "$_sys_sysinfo"
4092 if darwin; then
4094 echocheck "Mac OS X Finder Support"
4095 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4096 if test "$_macosx_finder" = yes ; then
4097 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4098 extra_ldflags="$extra_ldflags -framework Carbon"
4100 echores "$_macosx_finder"
4102 echocheck "Mac OS X Bundle file locations"
4103 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4104 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4105 if test "$_macosx_bundle" = yes ; then
4106 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4107 extra_ldflags="$extra_ldflags -framework Carbon"
4109 echores "$_macosx_bundle"
4111 echocheck "Apple Remote"
4112 if test "$_apple_remote" = auto ; then
4113 _apple_remote=no
4114 cat > $TMPC <<EOF
4115 #include <stdio.h>
4116 #include <IOKit/IOCFPlugIn.h>
4117 int main(void) {
4118 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4119 CFMutableDictionaryRef hidMatchDictionary;
4120 IOReturn ioReturnValue;
4122 // Set up a matching dictionary to search the I/O Registry by class.
4123 // name for all HID class devices
4124 hidMatchDictionary = IOServiceMatching("AppleIRController");
4126 // Now search I/O Registry for matching devices.
4127 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4128 hidMatchDictionary, &hidObjectIterator);
4130 // If search is unsuccessful, return nonzero.
4131 if (ioReturnValue != kIOReturnSuccess ||
4132 !IOIteratorIsValid(hidObjectIterator)) {
4133 return 1;
4135 return 0;
4138 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4140 if test "$_apple_remote" = yes ; then
4141 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4142 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4143 else
4144 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4146 echores "$_apple_remote"
4148 fi #if darwin
4150 if linux; then
4152 echocheck "Apple IR"
4153 if test "$_apple_ir" = auto ; then
4154 _apple_ir=no
4155 cat > $TMPC <<EOF
4156 #include <linux/types.h>
4157 #include <linux/input.h>
4158 int main(void) {
4159 struct input_event ev;
4160 struct input_id id;
4161 return 0;
4164 cc_check && _apple_ir=yes
4166 if test "$_apple_ir" = yes ; then
4167 def_apple_ir='#define CONFIG_APPLE_IR 1'
4168 else
4169 def_apple_ir='#undef CONFIG_APPLE_IR'
4171 echores "$_apple_ir"
4172 fi #if linux
4174 echocheck "pkg-config"
4175 _pkg_config=pkg-config
4176 if $($_pkg_config --version > /dev/null 2>&1); then
4177 if test "$_ld_static"; then
4178 _pkg_config="$_pkg_config --static"
4180 echores "yes"
4181 else
4182 _pkg_config=false
4183 echores "no"
4187 echocheck "Samba support (libsmbclient)"
4188 if test "$_smb" = yes; then
4189 extra_ldflags="$extra_ldflags -lsmbclient"
4191 if test "$_smb" = auto; then
4192 _smb=no
4193 cat > $TMPC << EOF
4194 #include <libsmbclient.h>
4195 int main(void) { smbc_opendir("smb://"); return 0; }
4197 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4198 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4199 _smb=yes && break
4200 done
4203 if test "$_smb" = yes; then
4204 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4205 inputmodules="smb $inputmodules"
4206 else
4207 def_smb="#undef CONFIG_LIBSMBCLIENT"
4208 noinputmodules="smb $noinputmodules"
4210 echores "$_smb"
4213 #########
4214 # VIDEO #
4215 #########
4218 echocheck "tdfxfb"
4219 if test "$_tdfxfb" = yes ; then
4220 def_tdfxfb='#define CONFIG_TDFXFB 1'
4221 vomodules="tdfxfb $vomodules"
4222 else
4223 def_tdfxfb='#undef CONFIG_TDFXFB'
4224 novomodules="tdfxfb $novomodules"
4226 echores "$_tdfxfb"
4228 echocheck "s3fb"
4229 if test "$_s3fb" = yes ; then
4230 def_s3fb='#define CONFIG_S3FB 1'
4231 vomodules="s3fb $vomodules"
4232 else
4233 def_s3fb='#undef CONFIG_S3FB'
4234 novomodules="s3fb $novomodules"
4236 echores "$_s3fb"
4238 echocheck "wii"
4239 if test "$_wii" = yes ; then
4240 def_wii='#define CONFIG_WII 1'
4241 vomodules="wii $vomodules"
4242 else
4243 def_wii='#undef CONFIG_WII'
4244 novomodules="wii $novomodules"
4246 echores "$_wii"
4248 echocheck "tdfxvid"
4249 if test "$_tdfxvid" = yes ; then
4250 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4251 vomodules="tdfx_vid $vomodules"
4252 else
4253 def_tdfxvid='#undef CONFIG_TDFX_VID'
4254 novomodules="tdfx_vid $novomodules"
4256 echores "$_tdfxvid"
4258 echocheck "xvr100"
4259 if test "$_xvr100" = auto ; then
4260 cat > $TMPC << EOF
4261 #include <unistd.h>
4262 #include <sys/fbio.h>
4263 #include <sys/visual_io.h>
4264 int main(void) {
4265 struct vis_identifier ident;
4266 struct fbgattr attr;
4267 ioctl(0, VIS_GETIDENTIFIER, &ident);
4268 ioctl(0, FBIOGATTR, &attr);
4269 return 0;
4272 _xvr100=no
4273 cc_check && _xvr100=yes
4275 if test "$_xvr100" = yes ; then
4276 def_xvr100='#define CONFIG_XVR100 1'
4277 vomodules="xvr100 $vomodules"
4278 else
4279 def_tdfxvid='#undef CONFIG_XVR100'
4280 novomodules="xvr100 $novomodules"
4282 echores "$_xvr100"
4284 echocheck "tga"
4285 if test "$_tga" = yes ; then
4286 def_tga='#define CONFIG_TGA 1'
4287 vomodules="tga $vomodules"
4288 else
4289 def_tga='#undef CONFIG_TGA'
4290 novomodules="tga $novomodules"
4292 echores "$_tga"
4295 echocheck "md5sum support"
4296 if test "$_md5sum" = yes; then
4297 def_md5sum="#define CONFIG_MD5SUM 1"
4298 vomodules="md5sum $vomodules"
4299 else
4300 def_md5sum="#undef CONFIG_MD5SUM"
4301 novomodules="md5sum $novomodules"
4303 echores "$_md5sum"
4306 echocheck "yuv4mpeg support"
4307 if test "$_yuv4mpeg" = yes; then
4308 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4309 vomodules="yuv4mpeg $vomodules"
4310 else
4311 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4312 novomodules="yuv4mpeg $novomodules"
4314 echores "$_yuv4mpeg"
4317 echocheck "bl"
4318 if test "$_bl" = yes ; then
4319 def_bl='#define CONFIG_BL 1'
4320 vomodules="bl $vomodules"
4321 else
4322 def_bl='#undef CONFIG_BL'
4323 novomodules="bl $novomodules"
4325 echores "$_bl"
4328 echocheck "DirectFB"
4329 if test "$_directfb" = auto ; then
4330 _directfb=no
4331 cat > $TMPC <<EOF
4332 #include <directfb.h>
4333 int main(void) { DirectFBInit(0, 0); return 0; }
4335 for _inc_tmp in "" -I/usr/local/include/directfb \
4336 -I/usr/include/directfb -I/usr/local/include; do
4337 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4338 extra_cflags="$extra_cflags $_inc_tmp" && break
4339 done
4342 dfb_version() {
4343 expr $1 \* 65536 + $2 \* 256 + $3
4346 if test "$_directfb" = yes; then
4347 cat > $TMPC << EOF
4348 #include <directfb_version.h>
4350 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4353 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4354 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4355 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4356 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4357 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4358 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4359 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4360 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4361 res_comment="$_directfb_version"
4362 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4363 else
4364 def_directfb_version='#undef DIRECTFBVERSION'
4365 _directfb=no
4366 res_comment="version >=0.9.13 required"
4368 else
4369 _directfb=no
4370 res_comment="failed to get version"
4373 echores "$_directfb"
4375 if test "$_directfb" = yes ; then
4376 def_directfb='#define CONFIG_DIRECTFB 1'
4377 vomodules="directfb $vomodules"
4378 libs_mplayer="$libs_mplayer -ldirectfb"
4379 else
4380 def_directfb='#undef CONFIG_DIRECTFB'
4381 novomodules="directfb $novomodules"
4383 if test "$_dfbmga" = yes; then
4384 vomodules="dfbmga $vomodules"
4385 def_dfbmga='#define CONFIG_DFBMGA 1'
4386 else
4387 novomodules="dfbmga $novomodules"
4388 def_dfbmga='#undef CONFIG_DFBMGA'
4392 echocheck "X11 headers presence"
4393 _x11_headers="no"
4394 res_comment="check if the dev(el) packages are installed"
4395 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4396 if test -f "$I/X11/Xlib.h" ; then
4397 _x11_headers="yes"
4398 res_comment=""
4399 break
4401 done
4402 if test $_cross_compile = no; then
4403 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4404 /usr/include/X11R6 /usr/openwin/include ; do
4405 if test -f "$I/X11/Xlib.h" ; then
4406 extra_cflags="$extra_cflags -I$I"
4407 _x11_headers="yes"
4408 res_comment="using $I"
4409 break
4411 done
4413 echores "$_x11_headers"
4416 echocheck "X11"
4417 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4418 cat > $TMPC <<EOF
4419 #include <X11/Xlib.h>
4420 #include <X11/Xutil.h>
4421 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4423 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4424 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4425 -L/usr/lib ; do
4426 if netbsd; then
4427 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4428 else
4429 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4431 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4432 && _x11=yes && break
4433 done
4435 if test "$_x11" = yes ; then
4436 def_x11='#define CONFIG_X11 1'
4437 vomodules="x11 xover $vomodules"
4438 else
4439 _x11=no
4440 def_x11='#undef CONFIG_X11'
4441 novomodules="x11 $novomodules"
4442 res_comment="check if the dev(el) packages are installed"
4443 # disable stuff that depends on X
4444 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4446 echores "$_x11"
4448 echocheck "Xss screensaver extensions"
4449 if test "$_xss" = auto ; then
4450 cat > $TMPC << EOF
4451 #include <X11/Xlib.h>
4452 #include <X11/extensions/scrnsaver.h>
4453 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4455 _xss=no
4456 cc_check -lXss && _xss=yes
4458 if test "$_xss" = yes ; then
4459 def_xss='#define CONFIG_XSS 1'
4460 libs_mplayer="$libs_mplayer -lXss"
4461 else
4462 def_xss='#undef CONFIG_XSS'
4464 echores "$_xss"
4466 echocheck "DPMS"
4467 _xdpms3=no
4468 _xdpms4=no
4469 if test "$_x11" = yes ; then
4470 cat > $TMPC <<EOF
4471 #include <X11/Xmd.h>
4472 #include <X11/Xlib.h>
4473 #include <X11/Xutil.h>
4474 #include <X11/Xatom.h>
4475 #include <X11/extensions/dpms.h>
4476 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4478 cc_check -lXdpms && _xdpms3=yes
4479 cat > $TMPC <<EOF
4480 #include <X11/Xlib.h>
4481 #include <X11/extensions/dpms.h>
4482 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4484 cc_check -lXext && _xdpms4=yes
4486 if test "$_xdpms4" = yes ; then
4487 def_xdpms='#define CONFIG_XDPMS 1'
4488 res_comment="using Xdpms 4"
4489 echores "yes"
4490 elif test "$_xdpms3" = yes ; then
4491 def_xdpms='#define CONFIG_XDPMS 1'
4492 libs_mplayer="$libs_mplayer -lXdpms"
4493 res_comment="using Xdpms 3"
4494 echores "yes"
4495 else
4496 def_xdpms='#undef CONFIG_XDPMS'
4497 echores "no"
4501 echocheck "Xv"
4502 if test "$_xv" = auto ; then
4503 cat > $TMPC <<EOF
4504 #include <X11/Xlib.h>
4505 #include <X11/extensions/Xvlib.h>
4506 int main(void) {
4507 (void) XvGetPortAttribute(0, 0, 0, 0);
4508 (void) XvQueryPortAttributes(0, 0, 0);
4509 return 0; }
4511 _xv=no
4512 cc_check -lXv && _xv=yes
4515 if test "$_xv" = yes ; then
4516 def_xv='#define CONFIG_XV 1'
4517 libs_mplayer="$libs_mplayer -lXv"
4518 vomodules="xv $vomodules"
4519 else
4520 def_xv='#undef CONFIG_XV'
4521 novomodules="xv $novomodules"
4523 echores "$_xv"
4526 echocheck "XvMC"
4527 if test "$_xv" = yes && test "$_xvmc" != no ; then
4528 _xvmc=no
4529 cat > $TMPC <<EOF
4530 #include <X11/Xlib.h>
4531 #include <X11/extensions/Xvlib.h>
4532 #include <X11/extensions/XvMClib.h>
4533 int main(void) {
4534 (void) XvMCQueryExtension(0,0,0);
4535 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4536 return 0; }
4538 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4539 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4540 done
4542 if test "$_xvmc" = yes ; then
4543 def_xvmc='#define CONFIG_XVMC 1'
4544 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4545 vomodules="xvmc $vomodules"
4546 res_comment="using $_xvmclib"
4547 else
4548 def_xvmc='#define CONFIG_XVMC 0'
4549 novomodules="xvmc $novomodules"
4550 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4552 echores "$_xvmc"
4555 echocheck "VDPAU"
4556 if test "$_vdpau" = auto ; then
4557 _vdpau=no
4558 if test "$_dl" = yes ; then
4559 cat > $TMPC <<EOF
4560 #include <vdpau/vdpau_x11.h>
4561 int main(void) {
4562 (void) vdp_device_create_x11(0, 0, 0, 0);
4563 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4565 cc_check -lvdpau && _vdpau=yes
4568 if test "$_vdpau" = yes ; then
4569 def_vdpau='#define CONFIG_VDPAU 1'
4570 libs_mplayer="$libs_mplayer -lvdpau"
4571 vomodules="vdpau $vomodules"
4572 else
4573 def_vdpau='#define CONFIG_VDPAU 0'
4574 novomodules="vdpau $novomodules"
4575 _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// -e s/MPEG4_VDPAU_DECODER//)
4577 echores "$_vdpau"
4580 echocheck "Xinerama"
4581 if test "$_xinerama" = auto ; then
4582 cat > $TMPC <<EOF
4583 #include <X11/Xlib.h>
4584 #include <X11/extensions/Xinerama.h>
4585 int main(void) { (void) XineramaIsActive(0); return 0; }
4587 _xinerama=no
4588 cc_check -lXinerama && _xinerama=yes
4591 if test "$_xinerama" = yes ; then
4592 def_xinerama='#define CONFIG_XINERAMA 1'
4593 libs_mplayer="$libs_mplayer -lXinerama"
4594 else
4595 def_xinerama='#undef CONFIG_XINERAMA'
4597 echores "$_xinerama"
4600 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4601 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4602 # named 'X extensions' or something similar.
4603 # This check may be useful for future mplayer versions (to change resolution)
4604 # If you run into problems, remove '-lXxf86vm'.
4605 echocheck "Xxf86vm"
4606 if test "$_vm" = auto ; then
4607 cat > $TMPC <<EOF
4608 #include <X11/Xlib.h>
4609 #include <X11/extensions/xf86vmode.h>
4610 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4612 _vm=no
4613 cc_check -lXxf86vm && _vm=yes
4615 if test "$_vm" = yes ; then
4616 def_vm='#define CONFIG_XF86VM 1'
4617 libs_mplayer="$libs_mplayer -lXxf86vm"
4618 else
4619 def_vm='#undef CONFIG_XF86VM'
4621 echores "$_vm"
4623 # Check for the presence of special keycodes, like audio control buttons
4624 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4625 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4626 # have these new keycodes.
4627 echocheck "XF86keysym"
4628 if test "$_xf86keysym" = auto; then
4629 _xf86keysym=no
4630 cat > $TMPC <<EOF
4631 #include <X11/Xlib.h>
4632 #include <X11/XF86keysym.h>
4633 int main(void) { return XF86XK_AudioPause; }
4635 cc_check && _xf86keysym=yes
4637 if test "$_xf86keysym" = yes ; then
4638 def_xf86keysym='#define CONFIG_XF86XK 1'
4639 else
4640 def_xf86keysym='#undef CONFIG_XF86XK'
4642 echores "$_xf86keysym"
4644 echocheck "DGA"
4645 if test "$_dga2" = auto && test "$_x11" = yes ; then
4646 cat > $TMPC << EOF
4647 #include <X11/Xlib.h>
4648 #include <X11/extensions/xf86dga.h>
4649 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4651 _dga2=no
4652 cc_check -lXxf86dga && _dga2=yes
4654 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4655 cat > $TMPC << EOF
4656 #include <X11/Xlib.h>
4657 #include <X11/extensions/xf86dga.h>
4658 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4660 _dga1=no
4661 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4664 _dga=no
4665 def_dga='#undef CONFIG_DGA'
4666 def_dga1='#undef CONFIG_DGA1'
4667 def_dga2='#undef CONFIG_DGA2'
4668 if test "$_dga1" = yes ; then
4669 _dga=yes
4670 def_dga1='#define CONFIG_DGA1 1'
4671 res_comment="using DGA 1.0"
4672 elif test "$_dga2" = yes ; then
4673 _dga=yes
4674 def_dga2='#define CONFIG_DGA2 1'
4675 res_comment="using DGA 2.0"
4677 if test "$_dga" = yes ; then
4678 def_dga='#define CONFIG_DGA 1'
4679 libs_mplayer="$libs_mplayer -lXxf86dga"
4680 vomodules="dga $vomodules"
4681 else
4682 novomodules="dga $novomodules"
4684 echores "$_dga"
4687 echocheck "3dfx"
4688 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4689 def_3dfx='#define CONFIG_3DFX 1'
4690 vomodules="3dfx $vomodules"
4691 else
4692 def_3dfx='#undef CONFIG_3DFX'
4693 novomodules="3dfx $novomodules"
4695 echores "$_3dfx"
4698 echocheck "VIDIX"
4699 def_vidix='#undef CONFIG_VIDIX'
4700 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4701 _vidix_drv_cyberblade=no
4702 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4703 _vidix_drv_ivtv=no
4704 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4705 _vidix_drv_mach64=no
4706 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4707 _vidix_drv_mga=no
4708 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4709 _vidix_drv_mga_crtc2=no
4710 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4711 _vidix_drv_nvidia=no
4712 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4713 _vidix_drv_pm2=no
4714 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4715 _vidix_drv_pm3=no
4716 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4717 _vidix_drv_radeon=no
4718 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4719 _vidix_drv_rage128=no
4720 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4721 _vidix_drv_s3=no
4722 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4723 _vidix_drv_sh_veu=no
4724 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4725 _vidix_drv_sis=no
4726 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4727 _vidix_drv_unichrome=no
4728 if test "$_vidix" = auto ; then
4729 _vidix=no
4730 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4731 && _vidix=yes
4732 x86_64 && ! linux && _vidix=no
4733 (ppc || alpha) && linux && _vidix=yes
4735 echores "$_vidix"
4737 if test "$_vidix" = yes ; then
4738 def_vidix='#define CONFIG_VIDIX 1'
4739 vomodules="cvidix $vomodules"
4740 # FIXME: ivtv driver temporarily disabled until we have a proper test
4741 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4742 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4744 # some vidix drivers are architecture and os specific, discard them elsewhere
4745 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4746 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4748 for driver in $_vidix_drivers ; do
4749 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4750 eval _vidix_drv_${driver}=yes
4751 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4752 done
4754 echocheck "VIDIX PCI device name database"
4755 echores "$_vidix_pcidb"
4756 if test "$_vidix_pcidb" = yes ; then
4757 _vidix_pcidb_val=1
4758 else
4759 _vidix_pcidb_val=0
4762 echocheck "VIDIX dhahelper support"
4763 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4764 echores "$_dhahelper"
4766 echocheck "VIDIX svgalib_helper support"
4767 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4768 echores "$_svgalib_helper"
4770 else
4771 novomodules="cvidix $novomodules"
4774 if test "$_vidix" = yes && win32; then
4775 winvidix=yes
4776 vomodules="winvidix $vomodules"
4777 libs_mplayer="$libs_mplayer -lgdi32"
4778 else
4779 novomodules="winvidix $novomodules"
4781 if test "$_vidix" = yes && test "$_x11" = yes; then
4782 xvidix=yes
4783 vomodules="xvidix $vomodules"
4784 else
4785 novomodules="xvidix $novomodules"
4788 echocheck "/dev/mga_vid"
4789 if test "$_mga" = auto ; then
4790 _mga=no
4791 test -c /dev/mga_vid && _mga=yes
4793 if test "$_mga" = yes ; then
4794 def_mga='#define CONFIG_MGA 1'
4795 vomodules="mga $vomodules"
4796 else
4797 def_mga='#undef CONFIG_MGA'
4798 novomodules="mga $novomodules"
4800 echores "$_mga"
4802 echocheck "xmga"
4803 if test "$_xmga" = auto ; then
4804 _xmga=no
4805 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4807 if test "$_xmga" = yes ; then
4808 def_xmga='#define CONFIG_XMGA 1'
4809 vomodules="xmga $vomodules"
4810 else
4811 def_xmga='#undef CONFIG_XMGA'
4812 novomodules="xmga $novomodules"
4814 echores "$_xmga"
4817 echocheck "GGI"
4818 if test "$_ggi" = auto ; then
4819 cat > $TMPC << EOF
4820 #include <ggi/ggi.h>
4821 int main(void) { ggiInit(); return 0; }
4823 _ggi=no
4824 cc_check -lggi && _ggi=yes
4826 if test "$_ggi" = yes ; then
4827 def_ggi='#define CONFIG_GGI 1'
4828 libs_mplayer="$libs_mplayer -lggi"
4829 vomodules="ggi $vomodules"
4830 else
4831 def_ggi='#undef CONFIG_GGI'
4832 novomodules="ggi $novomodules"
4834 echores "$_ggi"
4836 echocheck "GGI extension: libggiwmh"
4837 if test "$_ggiwmh" = auto ; then
4838 _ggiwmh=no
4839 cat > $TMPC << EOF
4840 #include <ggi/ggi.h>
4841 #include <ggi/wmh.h>
4842 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4844 cc_check -lggi -lggiwmh && _ggiwmh=yes
4846 # needed to get right output on obscure combination
4847 # like --disable-ggi --enable-ggiwmh
4848 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4849 def_ggiwmh='#define CONFIG_GGIWMH 1'
4850 libs_mplayer="$libs_mplayer -lggiwmh"
4851 else
4852 _ggiwmh=no
4853 def_ggiwmh='#undef CONFIG_GGIWMH'
4855 echores "$_ggiwmh"
4858 echocheck "AA"
4859 if test "$_aa" = auto ; then
4860 cat > $TMPC << EOF
4861 #include <aalib.h>
4862 extern struct aa_hardware_params aa_defparams;
4863 extern struct aa_renderparams aa_defrenderparams;
4864 int main(void) {
4865 aa_context *c;
4866 aa_renderparams *p;
4867 (void) aa_init(0, 0, 0);
4868 c = aa_autoinit(&aa_defparams);
4869 p = aa_getrenderparams();
4870 aa_autoinitkbd(c,0);
4871 return 0; }
4873 _aa=no
4874 for _ld_tmp in "-laa" ; do
4875 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4876 done
4878 if test "$_aa" = yes ; then
4879 def_aa='#define CONFIG_AA 1'
4880 if cygwin ; then
4881 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4883 vomodules="aa $vomodules"
4884 else
4885 def_aa='#undef CONFIG_AA'
4886 novomodules="aa $novomodules"
4888 echores "$_aa"
4891 echocheck "CACA"
4892 if test "$_caca" = auto ; then
4893 _caca=no
4894 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4895 cat > $TMPC << EOF
4896 #include <caca.h>
4897 #ifdef CACA_API_VERSION_1
4898 #include <caca0.h>
4899 #endif
4900 int main(void) { (void) caca_init(); return 0; }
4902 cc_check $(caca-config --libs) && _caca=yes
4905 if test "$_caca" = yes ; then
4906 def_caca='#define CONFIG_CACA 1'
4907 extra_cflags="$extra_cflags $(caca-config --cflags)"
4908 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4909 vomodules="caca $vomodules"
4910 else
4911 def_caca='#undef CONFIG_CACA'
4912 novomodules="caca $novomodules"
4914 echores "$_caca"
4917 echocheck "SVGAlib"
4918 if test "$_svga" = auto ; then
4919 cat > $TMPC << EOF
4920 #include <vga.h>
4921 int main(void) { return 0; }
4923 _svga=no
4924 cc_check -lvga $_ld_lm && _svga=yes
4926 if test "$_svga" = yes ; then
4927 def_svga='#define CONFIG_SVGALIB 1'
4928 libs_mplayer="$libs_mplayer -lvga"
4929 vomodules="svga $vomodules"
4930 else
4931 def_svga='#undef CONFIG_SVGALIB'
4932 novomodules="svga $novomodules"
4934 echores "$_svga"
4937 echocheck "FBDev"
4938 if test "$_fbdev" = auto ; then
4939 _fbdev=no
4940 linux && _fbdev=yes
4942 if test "$_fbdev" = yes ; then
4943 def_fbdev='#define CONFIG_FBDEV 1'
4944 vomodules="fbdev $vomodules"
4945 else
4946 def_fbdev='#undef CONFIG_FBDEV'
4947 novomodules="fbdev $novomodules"
4949 echores "$_fbdev"
4953 echocheck "DVB"
4954 if test "$_dvb" = auto ; then
4955 _dvb=no
4956 cat >$TMPC << EOF
4957 #include <poll.h>
4958 #include <sys/ioctl.h>
4959 #include <stdio.h>
4960 #include <time.h>
4961 #include <unistd.h>
4962 #include <linux/dvb/dmx.h>
4963 #include <linux/dvb/frontend.h>
4964 #include <linux/dvb/video.h>
4965 #include <linux/dvb/audio.h>
4966 int main(void) {return 0;}
4968 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4969 cc_check $_inc_tmp && _dvb=yes && \
4970 extra_cflags="$extra_cflags $_inc_tmp" && break
4971 done
4973 echores "$_dvb"
4974 if test "$_dvb" = yes ; then
4975 _dvbin=yes
4976 inputmodules="dvb $inputmodules"
4977 def_dvb='#define CONFIG_DVB 1'
4978 def_dvbin='#define CONFIG_DVBIN 1'
4979 aomodules="mpegpes(dvb) $aomodules"
4980 vomodules="mpegpes(dvb) $vomodules"
4981 else
4982 _dvbin=no
4983 noinputmodules="dvb $noinputmodules"
4984 def_dvb='#undef CONFIG_DVB'
4985 def_dvbin='#undef CONFIG_DVBIN '
4986 aomodules="mpegpes(file) $aomodules"
4987 vomodules="mpegpes(file) $vomodules"
4991 if darwin; then
4993 echocheck "QuickTime"
4994 if test "$quicktime" = auto ; then
4995 cat > $TMPC <<EOF
4996 #include <QuickTime/QuickTime.h>
4997 int main(void) {
4998 ImageDescription *desc;
4999 EnterMovies();
5000 ExitMovies();
5001 return 0;
5004 quicktime=no
5005 cc_check -framework QuickTime && quicktime=yes
5007 if test "$quicktime" = yes ; then
5008 extra_ldflags="$extra_ldflags -framework QuickTime"
5009 def_quicktime='#define CONFIG_QUICKTIME 1'
5010 else
5011 def_quicktime='#undef CONFIG_QUICKTIME'
5012 _quartz=no
5014 echores $quicktime
5016 echocheck "Quartz"
5017 if test "$_quartz" = auto ; then
5018 cat > $TMPC <<EOF
5019 #include <Carbon/Carbon.h>
5020 int main(void) {
5021 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5022 return 0;
5025 _quartz=no
5026 cc_check -framework Carbon && _quartz=yes
5028 if test "$_quartz" = yes ; then
5029 libs_mplayer="$libs_mplayer -framework Carbon"
5030 def_quartz='#define CONFIG_QUARTZ 1'
5031 vomodules="quartz $vomodules"
5032 else
5033 def_quartz='#undef CONFIG_QUARTZ'
5034 novomodules="quartz $novomodules"
5036 echores $_quartz
5038 echocheck "CoreVideo"
5039 if test "$_corevideo" = auto ; then
5040 cat > $TMPC <<EOF
5041 #include <Carbon/Carbon.h>
5042 #include <CoreServices/CoreServices.h>
5043 #include <OpenGL/OpenGL.h>
5044 #include <QuartzCore/CoreVideo.h>
5045 int main(void) { return 0; }
5047 _corevideo=no
5048 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5050 if test "$_corevideo" = yes ; then
5051 vomodules="corevideo $vomodules"
5052 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5053 def_corevideo='#define CONFIG_COREVIDEO 1'
5054 else
5055 novomodules="corevideo $novomodules"
5056 def_corevideo='#undef CONFIG_COREVIDEO'
5058 echores "$_corevideo"
5060 fi #if darwin
5063 echocheck "PNG support"
5064 if test "$_png" = auto ; then
5065 _png=no
5066 if irix ; then
5067 # Don't check for -lpng on irix since it has its own libpng
5068 # incompatible with the GNU libpng
5069 res_comment="disabled on irix (not GNU libpng)"
5070 else
5071 cat > $TMPC << EOF
5072 #include <png.h>
5073 #include <string.h>
5074 int main(void) {
5075 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5076 printf("libpng: %s\n", png_libpng_ver);
5077 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5080 cc_check -lpng -lz $_ld_lm && _png=yes
5083 echores "$_png"
5084 if test "$_png" = yes ; then
5085 def_png='#define CONFIG_PNG 1'
5086 extra_ldflags="$extra_ldflags -lpng -lz"
5087 else
5088 def_png='#undef CONFIG_PNG'
5091 echocheck "MNG support"
5092 if test "$_mng" = auto ; then
5093 _mng=no
5094 cat > $TMPC << EOF
5095 #include <libmng.h>
5096 int main(void) {
5097 const char * p_ver = mng_version_text();
5098 return !p_ver || p_ver[0] == 0;
5101 if cc_check -lmng -lz $_ld_lm ; then
5102 _mng=yes
5105 echores "$_mng"
5106 if test "$_mng" = yes ; then
5107 def_mng='#define CONFIG_MNG 1'
5108 extra_ldflags="$extra_ldflags -lmng -lz"
5109 else
5110 def_mng='#undef CONFIG_MNG'
5113 echocheck "JPEG support"
5114 if test "$_jpeg" = auto ; then
5115 _jpeg=no
5116 cat > $TMPC << EOF
5117 #include <stdio.h>
5118 #include <stdlib.h>
5119 #include <setjmp.h>
5120 #include <string.h>
5121 #include <jpeglib.h>
5122 int main(void) { return 0; }
5124 cc_check -ljpeg $_ld_lm && _jpeg=yes
5126 echores "$_jpeg"
5128 if test "$_jpeg" = yes ; then
5129 def_jpeg='#define CONFIG_JPEG 1'
5130 vomodules="jpeg $vomodules"
5131 extra_ldflags="$extra_ldflags -ljpeg"
5132 else
5133 def_jpeg='#undef CONFIG_JPEG'
5134 novomodules="jpeg $novomodules"
5138 echocheck "OpenJPEG (JPEG2000) support"
5139 if test "$libopenjpeg" = auto ; then
5140 libopenjpeg=no
5141 cat > $TMPC << EOF
5142 #define OPJ_STATIC
5143 #include <openjpeg.h>
5144 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5146 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5148 echores "$libopenjpeg"
5149 if test "$libopenjpeg" = yes ; then
5150 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5151 extra_ldflags="$extra_ldflags -lopenjpeg"
5152 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5153 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5154 codecmodules="OpenJPEG $codecmodules"
5155 else
5156 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5157 nocodecmodules="OpenJPEG $nocodecmodules"
5161 echocheck "PNM support"
5162 if test "$_pnm" = yes; then
5163 def_pnm="#define CONFIG_PNM 1"
5164 vomodules="pnm $vomodules"
5165 else
5166 def_pnm="#undef CONFIG_PNM"
5167 novomodules="pnm $novomodules"
5169 echores "$_pnm"
5173 echocheck "GIF support"
5174 # This is to appease people who want to force gif support.
5175 # If it is forced to yes, then we still do checks to determine
5176 # which gif library to use.
5177 if test "$_gif" = yes ; then
5178 _force_gif=yes
5179 _gif=auto
5182 if test "$_gif" = auto ; then
5183 _gif=no
5184 cat > $TMPC << EOF
5185 #include <gif_lib.h>
5186 int main(void) { return 0; }
5188 for _ld_gif in "-lungif" "-lgif" ; do
5189 cc_check $_ld_gif && _gif=yes && break
5190 done
5193 # If no library was found, and the user wants support forced,
5194 # then we force it on with libgif, as this is the safest
5195 # assumption IMHO. (libungif & libregif both create symbolic
5196 # links to libgif. We also assume that no x11 support is needed,
5197 # because if you are forcing this, then you _should_ know what
5198 # you are doing. [ Besides, package maintainers should never
5199 # have compiled x11 deps into libungif in the first place. ] )
5200 # </rant>
5201 # --Joey
5202 if test "$_force_gif" = yes && test "$_gif" = no ; then
5203 _gif=yes
5204 _ld_gif="-lgif"
5207 if test "$_gif" = yes ; then
5208 def_gif='#define CONFIG_GIF 1'
5209 codecmodules="gif $codecmodules"
5210 vomodules="gif89a $vomodules"
5211 res_comment="old version, some encoding functions disabled"
5212 def_gif_4='#undef CONFIG_GIF_4'
5213 extra_ldflags="$extra_ldflags $_ld_gif"
5215 cat > $TMPC << EOF
5216 #include <signal.h>
5217 #include <gif_lib.h>
5218 void catch() { exit(1); }
5219 int main(void) {
5220 signal(SIGSEGV, catch); // catch segfault
5221 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5222 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5223 return 0;
5226 if cc_check "$_ld_gif" ; then
5227 def_gif_4='#define CONFIG_GIF_4 1'
5228 res_comment=""
5230 else
5231 def_gif='#undef CONFIG_GIF'
5232 def_gif_4='#undef CONFIG_GIF_4'
5233 novomodules="gif89a $novomodules"
5234 nocodecmodules="gif $nocodecmodules"
5236 echores "$_gif"
5239 case "$_gif" in yes*)
5240 echocheck "broken giflib workaround"
5241 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5243 cat > $TMPC << EOF
5244 #include <gif_lib.h>
5245 int main(void) {
5246 GifFileType gif;
5247 printf("UserData is at address %p\n", gif.UserData);
5248 return 0;
5251 if cc_check "$_ld_gif" ; then
5252 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5253 echores "disabled"
5254 else
5255 echores "enabled"
5258 esac
5261 echocheck "VESA support"
5262 if test "$_vesa" = auto ; then
5263 cat > $TMPC << EOF
5264 #include <vbe.h>
5265 int main(void) { vbeVersion(); return 0; }
5267 _vesa=no
5268 cc_check -lvbe -llrmi && _vesa=yes
5270 if test "$_vesa" = yes ; then
5271 def_vesa='#define CONFIG_VESA 1'
5272 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5273 vomodules="vesa $vomodules"
5274 else
5275 def_vesa='#undef CONFIG_VESA'
5276 novomodules="vesa $novomodules"
5278 echores "$_vesa"
5280 #################
5281 # VIDEO + AUDIO #
5282 #################
5285 echocheck "SDL"
5286 _inc_tmp=""
5287 _ld_tmp=""
5288 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5289 if test -z "$_sdlconfig" ; then
5290 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5291 _sdlconfig="sdl-config"
5292 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5293 _sdlconfig="sdl11-config"
5294 else
5295 _sdlconfig=false
5298 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5299 cat > $TMPC << EOF
5300 #ifdef CONFIG_SDL_SDL_H
5301 #include <SDL/SDL.h>
5302 #else
5303 #include <SDL.h>
5304 #endif
5305 #ifndef __APPLE__
5306 // we allow SDL hacking our main() only on OSX
5307 #undef main
5308 #endif
5309 int main(int argc, char *argv[]) {
5310 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5311 return 0;
5314 _sdl=no
5315 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5316 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5317 _sdl=yes
5318 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5319 break
5321 done
5322 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5323 res_comment="using $_sdlconfig"
5324 if cygwin ; then
5325 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5326 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5327 elif mingw32 ; then
5328 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5329 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5330 else
5331 _inc_tmp="$($_sdlconfig --cflags)"
5332 _ld_tmp="$($_sdlconfig --libs)"
5334 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5335 _sdl=yes
5339 if test "$_sdl" = yes ; then
5340 def_sdl='#define CONFIG_SDL 1'
5341 extra_cflags="$extra_cflags $_inc_tmp"
5342 libs_mplayer="$libs_mplayer $_ld_tmp"
5343 vomodules="sdl $vomodules"
5344 aomodules="sdl $aomodules"
5345 else
5346 def_sdl='#undef CONFIG_SDL'
5347 novomodules="sdl $novomodules"
5348 noaomodules="sdl $noaomodules"
5350 echores "$_sdl"
5353 # make sure this stays below CoreVideo to avoid issues due to namespace
5354 # conflicts between -lGL and -framework OpenGL
5355 echocheck "OpenGL"
5356 #Note: this test is run even with --enable-gl since we autodetect linker flags
5357 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
5358 cat > $TMPC << EOF
5359 #ifdef GL_WIN32
5360 #include <windows.h>
5361 #include <GL/gl.h>
5362 #elif defined(GL_SDL)
5363 #include <GL/gl.h>
5364 #ifdef CONFIG_SDL_SDL_H
5365 #include <SDL/SDL.h>
5366 #else
5367 #include <SDL.h>
5368 #endif
5369 #ifndef __APPLE__
5370 // we allow SDL hacking our main() only on OSX
5371 #undef main
5372 #endif
5373 #else
5374 #include <GL/gl.h>
5375 #include <X11/Xlib.h>
5376 #include <GL/glx.h>
5377 #endif
5378 int main(void) {
5379 #ifdef GL_WIN32
5380 HDC dc;
5381 wglCreateContext(dc);
5382 #elif defined(GL_SDL)
5383 SDL_GL_SwapBuffers();
5384 #else
5385 glXCreateContext(NULL, NULL, NULL, True);
5386 #endif
5387 glFinish();
5388 return 0;
5391 _gl=no
5392 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5393 if cc_check $_ld_tmp $_ld_lm ; then
5394 _gl=yes
5395 _gl_x11=yes
5396 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5397 break
5399 done
5400 if cc_check -DGL_WIN32 -lopengl32 ; then
5401 _gl=yes
5402 _gl_win32=yes
5403 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5405 # last so it can reuse any linker etc. flags detected before
5406 if test "$_sdl" = yes ; then
5407 if cc_check -DGL_SDL ||
5408 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
5409 _gl=yes
5410 _gl_sdl=yes
5411 elif cc_check -DGL_SDL -lGL ||
5412 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
5413 _gl=yes
5414 _gl_sdl=yes
5415 libs_mplayer="$libs_mplayer -lGL"
5418 else
5419 _gl=no
5421 if test "$_gl" = yes ; then
5422 def_gl='#define CONFIG_GL 1'
5423 res_comment="backends:"
5424 if test "$_gl_win32" = yes ; then
5425 def_gl_win32='#define CONFIG_GL_WIN32 1'
5426 res_comment="$res_comment win32"
5428 if test "$_gl_x11" = yes ; then
5429 def_gl_x11='#define CONFIG_GL_X11 1'
5430 res_comment="$res_comment x11"
5432 if test "$_gl_sdl" = yes ; then
5433 def_gl_sdl='#define CONFIG_GL_SDL 1'
5434 res_comment="$res_comment sdl"
5436 vomodules="opengl $vomodules"
5437 else
5438 def_gl='#undef CONFIG_GL'
5439 def_gl_win32='#undef CONFIG_GL_WIN32'
5440 def_gl_x11='#undef CONFIG_GL_X11'
5441 def_gl_sdl='#undef CONFIG_GL_SDL'
5442 novomodules="opengl $novomodules"
5444 echores "$_gl"
5447 echocheck "MatrixView"
5448 if test "$_gl" = no ; then
5449 matrixview=no
5451 if test "$matrixview" = yes ; then
5452 vomodules="matrixview $vomodules"
5453 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5454 else
5455 novomodules="matrixview $novomodules"
5456 def_matrixview='#undef CONFIG_MATRIXVIEW'
5458 echores "$matrixview"
5461 if os2 ; then
5462 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5463 if test "$_kva" = auto; then
5464 cat > $TMPC << EOF
5465 #include <os2.h>
5466 #include <kva.h>
5467 int main( void ) { return 0; }
5469 _kva=no;
5470 cc_check -lkva && _kva=yes
5472 if test "$_kva" = yes ; then
5473 def_kva='#define CONFIG_KVA 1'
5474 libs_mplayer="$libs_mplayer -lkva"
5475 vomodules="kva $vomodules"
5476 else
5477 def_kva='#undef CONFIG_KVA'
5478 novomodules="kva $novomodules"
5480 echores "$_kva"
5481 fi #if os2
5484 if win32; then
5486 echocheck "Windows waveout"
5487 if test "$_win32waveout" = auto ; then
5488 cat > $TMPC << EOF
5489 #include <windows.h>
5490 #include <mmsystem.h>
5491 int main(void) { return 0; }
5493 _win32waveout=no
5494 cc_check -lwinmm && _win32waveout=yes
5496 if test "$_win32waveout" = yes ; then
5497 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5498 libs_mplayer="$libs_mplayer -lwinmm"
5499 aomodules="win32 $aomodules"
5500 else
5501 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5502 noaomodules="win32 $noaomodules"
5504 echores "$_win32waveout"
5506 echocheck "Direct3D"
5507 if test "$_direct3d" = auto ; then
5508 cat > $TMPC << EOF
5509 #include <windows.h>
5510 #include <d3d9.h>
5511 int main(void) { return 0; }
5513 _direct3d=no
5514 cc_check && _direct3d=yes
5516 if test "$_direct3d" = yes ; then
5517 def_direct3d='#define CONFIG_DIRECT3D 1'
5518 vomodules="direct3d $vomodules"
5519 else
5520 def_direct3d='#undef CONFIG_DIRECT3D'
5521 novomodules="direct3d $novomodules"
5523 echores "$_direct3d"
5525 echocheck "Directx"
5526 if test "$_directx" = auto ; then
5527 cat > $TMPC << EOF
5528 #include <windows.h>
5529 #include <ddraw.h>
5530 #include <dsound.h>
5531 int main(void) { return 0; }
5533 _directx=no
5534 cc_check -lgdi32 && _directx=yes
5536 if test "$_directx" = yes ; then
5537 def_directx='#define CONFIG_DIRECTX 1'
5538 libs_mplayer="$libs_mplayer -lgdi32"
5539 vomodules="directx $vomodules"
5540 aomodules="dsound $aomodules"
5541 else
5542 def_directx='#undef CONFIG_DIRECTX'
5543 novomodules="directx $novomodules"
5544 noaomodules="dsound $noaomodules"
5546 echores "$_directx"
5548 fi #if win32; then
5551 echocheck "DXR2"
5552 if test "$_dxr2" = auto; then
5553 _dxr2=no
5554 cat > $TMPC << EOF
5555 #include <dxr2ioctl.h>
5556 int main(void) { return 0; }
5558 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5559 cc_check $_inc_tmp && _dxr2=yes && \
5560 extra_cflags="$extra_cflags $_inc_tmp" && break
5561 done
5563 if test "$_dxr2" = yes; then
5564 def_dxr2='#define CONFIG_DXR2 1'
5565 aomodules="dxr2 $aomodules"
5566 vomodules="dxr2 $vomodules"
5567 else
5568 def_dxr2='#undef CONFIG_DXR2'
5569 noaomodules="dxr2 $noaomodules"
5570 novomodules="dxr2 $novomodules"
5572 echores "$_dxr2"
5574 echocheck "DXR3/H+"
5575 if test "$_dxr3" = auto ; then
5576 cat > $TMPC << EOF
5577 #include <linux/em8300.h>
5578 int main(void) { return 0; }
5580 _dxr3=no
5581 cc_check && _dxr3=yes
5583 if test "$_dxr3" = yes ; then
5584 def_dxr3='#define CONFIG_DXR3 1'
5585 vomodules="dxr3 $vomodules"
5586 else
5587 def_dxr3='#undef CONFIG_DXR3'
5588 novomodules="dxr3 $novomodules"
5590 echores "$_dxr3"
5593 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5594 if test "$_ivtv" = auto ; then
5595 cat > $TMPC << EOF
5596 #include <stdlib.h>
5597 #include <inttypes.h>
5598 #include <linux/types.h>
5599 #include <linux/videodev2.h>
5600 #include <linux/ivtv.h>
5601 #include <sys/ioctl.h>
5602 int main(void) {
5603 struct ivtv_cfg_stop_decode sd;
5604 struct ivtv_cfg_start_decode sd1;
5605 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5606 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5607 return 0; }
5609 _ivtv=no
5610 cc_check && _ivtv=yes
5612 if test "$_ivtv" = yes ; then
5613 def_ivtv='#define CONFIG_IVTV 1'
5614 vomodules="ivtv $vomodules"
5615 aomodules="ivtv $aomodules"
5616 else
5617 def_ivtv='#undef CONFIG_IVTV'
5618 novomodules="ivtv $novomodules"
5619 noaomodules="ivtv $noaomodules"
5621 echores "$_ivtv"
5624 echocheck "V4L2 MPEG Decoder"
5625 if test "$_v4l2" = auto ; then
5626 cat > $TMPC << EOF
5627 #include <stdlib.h>
5628 #include <inttypes.h>
5629 #include <linux/types.h>
5630 #include <linux/videodev2.h>
5631 #include <linux/version.h>
5632 int main(void) {
5633 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5634 #error kernel headers too old, need 2.6.22
5635 #endif
5636 struct v4l2_ext_controls ctrls;
5637 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5638 return 0;
5641 _v4l2=no
5642 cc_check && _v4l2=yes
5644 if test "$_v4l2" = yes ; then
5645 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5646 vomodules="v4l2 $vomodules"
5647 aomodules="v4l2 $aomodules"
5648 else
5649 def_v4l2='#undef CONFIG_V4L2_DECODER'
5650 novomodules="v4l2 $novomodules"
5651 noaomodules="v4l2 $noaomodules"
5653 echores "$_v4l2"
5657 #########
5658 # AUDIO #
5659 #########
5662 echocheck "OSS Audio"
5663 if test "$_ossaudio" = auto ; then
5664 cat > $TMPC << EOF
5665 #include <sys/ioctl.h>
5666 #include <$_soundcard_header>
5667 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5669 _ossaudio=no
5670 cc_check && _ossaudio=yes
5672 if test "$_ossaudio" = yes ; then
5673 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5674 aomodules="oss $aomodules"
5675 if test "$_linux_devfs" = yes; then
5676 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5677 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5678 else
5679 cat > $TMPC << EOF
5680 #include <sys/ioctl.h>
5681 #include <$_soundcard_header>
5682 #ifdef OPEN_SOUND_SYSTEM
5683 int main(void) { return 0; }
5684 #else
5685 #error Not the real thing
5686 #endif
5688 _real_ossaudio=no
5689 cc_check && _real_ossaudio=yes
5690 if test "$_real_ossaudio" = yes; then
5691 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5692 elif netbsd || openbsd ; then
5693 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5694 extra_ldflags="$extra_ldflags -lossaudio"
5695 else
5696 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5698 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5700 else
5701 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5702 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5703 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5704 noaomodules="oss $noaomodules"
5706 echores "$_ossaudio"
5709 echocheck "aRts"
5710 if test "$_arts" = auto ; then
5711 _arts=no
5712 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5714 cat > $TMPC << EOF
5715 #include <artsc.h>
5716 int main(void) { return 0; }
5718 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5723 if test "$_arts" = yes ; then
5724 def_arts='#define CONFIG_ARTS 1'
5725 aomodules="arts $aomodules"
5726 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5727 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5728 else
5729 noaomodules="arts $noaomodules"
5731 echores "$_arts"
5734 echocheck "EsounD"
5735 if test "$_esd" = auto ; then
5736 _esd=no
5737 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5739 cat > $TMPC << EOF
5740 #include <esd.h>
5741 int main(void) { int fd = esd_open_sound("test"); return fd; }
5743 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5747 echores "$_esd"
5749 if test "$_esd" = yes ; then
5750 def_esd='#define CONFIG_ESD 1'
5751 aomodules="esd $aomodules"
5752 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5753 extra_cflags="$extra_cflags $(esd-config --cflags)"
5755 echocheck "esd_get_latency()"
5756 cat > $TMPC << EOF
5757 #include <esd.h>
5758 int main(void) { return esd_get_latency(0); }
5760 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5761 echores "$_esd_latency"
5762 else
5763 def_esd='#undef CONFIG_ESD'
5764 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5765 noaomodules="esd $noaomodules"
5769 echocheck "NAS"
5770 if test "$_nas" = auto ; then
5771 cat > $TMPC << EOF
5772 #include <audio/audiolib.h>
5773 int main(void) { return 0; }
5775 _nas=no
5776 cc_check $_ld_lm -laudio -lXt && _nas=yes
5778 if test "$_nas" = yes ; then
5779 def_nas='#define CONFIG_NAS 1'
5780 libs_mplayer="$libs_mplayer -laudio -lXt"
5781 aomodules="nas $aomodules"
5782 else
5783 noaomodules="nas $noaomodules"
5784 def_nas='#undef CONFIG_NAS'
5786 echores "$_nas"
5789 echocheck "pulse"
5790 if test "$_pulse" = auto ; then
5791 _pulse=no
5792 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5794 cat > $TMPC << EOF
5795 #include <pulse/pulseaudio.h>
5796 int main(void) { return 0; }
5798 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5802 echores "$_pulse"
5804 if test "$_pulse" = yes ; then
5805 def_pulse='#define CONFIG_PULSE 1'
5806 aomodules="pulse $aomodules"
5807 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5808 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5809 else
5810 def_pulse='#undef CONFIG_PULSE'
5811 noaomodules="pulse $noaomodules"
5815 echocheck "JACK"
5816 if test "$_jack" = auto ; then
5817 _jack=yes
5819 cat > $TMPC << EOF
5820 #include <jack/jack.h>
5821 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5823 if cc_check -ljack ; then
5824 libs_mplayer="$libs_mplayer -ljack"
5825 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5826 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5827 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5828 else
5829 _jack=no
5833 if test "$_jack" = yes ; then
5834 def_jack='#define CONFIG_JACK 1'
5835 aomodules="jack $aomodules"
5836 else
5837 noaomodules="jack $noaomodules"
5839 echores "$_jack"
5841 echocheck "OpenAL"
5842 if test "$_openal" = auto ; then
5843 _openal=no
5844 cat > $TMPC << EOF
5845 #ifdef OPENAL_AL_H
5846 #include <OpenAL/al.h>
5847 #else
5848 #include <AL/al.h>
5849 #endif
5850 int main(void) {
5851 alSourceQueueBuffers(0, 0, 0);
5852 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5853 return 0;
5856 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5857 cc_check $I && _openal=yes && break
5858 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5859 done
5860 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5862 if test "$_openal" = yes ; then
5863 def_openal='#define CONFIG_OPENAL 1'
5864 aomodules="openal $aomodules"
5865 else
5866 noaomodules="openal $noaomodules"
5868 echores "$_openal"
5870 echocheck "ALSA audio"
5871 if test "$_alloca" != yes ; then
5872 _alsa=no
5873 res_comment="alloca missing"
5875 if test "$_alsa" != no ; then
5876 _alsa=no
5877 cat > $TMPC << EOF
5878 #include <sys/time.h>
5879 #include <sys/asoundlib.h>
5880 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5881 #error "alsa version != 0.5.x"
5882 #endif
5883 int main(void) { return 0; }
5885 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5887 cat > $TMPC << EOF
5888 #include <sys/time.h>
5889 #include <sys/asoundlib.h>
5890 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5891 #error "alsa version != 0.9.x"
5892 #endif
5893 int main(void) { return 0; }
5895 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5896 cat > $TMPC << EOF
5897 #include <sys/time.h>
5898 #include <alsa/asoundlib.h>
5899 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5900 #error "alsa version != 0.9.x"
5901 #endif
5902 int main(void) { return 0; }
5904 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5906 cat > $TMPC << EOF
5907 #include <sys/time.h>
5908 #include <sys/asoundlib.h>
5909 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5910 #error "alsa version != 1.0.x"
5911 #endif
5912 int main(void) { return 0; }
5914 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5915 cat > $TMPC << EOF
5916 #include <sys/time.h>
5917 #include <alsa/asoundlib.h>
5918 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5919 #error "alsa version != 1.0.x"
5920 #endif
5921 int main(void) { return 0; }
5923 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5925 def_alsa='#undef CONFIG_ALSA'
5926 def_alsa5='#undef CONFIG_ALSA5'
5927 def_alsa9='#undef CONFIG_ALSA9'
5928 def_alsa1x='#undef CONFIG_ALSA1X'
5929 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5930 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5931 if test "$_alsaver" ; then
5932 _alsa=yes
5933 if test "$_alsaver" = '0.5.x' ; then
5934 _alsa5=yes
5935 aomodules="alsa5 $aomodules"
5936 def_alsa5='#define CONFIG_ALSA5 1'
5937 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5938 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5939 elif test "$_alsaver" = '0.9.x-sys' ; then
5940 _alsa9=yes
5941 aomodules="alsa $aomodules"
5942 def_alsa='#define CONFIG_ALSA 1'
5943 def_alsa9='#define CONFIG_ALSA9 1'
5944 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5945 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5946 elif test "$_alsaver" = '0.9.x-alsa' ; then
5947 _alsa9=yes
5948 aomodules="alsa $aomodules"
5949 def_alsa='#define CONFIG_ALSA 1'
5950 def_alsa9='#define CONFIG_ALSA9 1'
5951 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5952 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5953 elif test "$_alsaver" = '1.0.x-sys' ; then
5954 _alsa1x=yes
5955 aomodules="alsa $aomodules"
5956 def_alsa='#define CONFIG_ALSA 1'
5957 def_alsa1x="#define CONFIG_ALSA1X 1"
5958 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5959 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5960 elif test "$_alsaver" = '1.0.x-alsa' ; then
5961 _alsa1x=yes
5962 aomodules="alsa $aomodules"
5963 def_alsa='#define CONFIG_ALSA 1'
5964 def_alsa1x="#define CONFIG_ALSA1X 1"
5965 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5966 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5967 else
5968 _alsa=no
5969 res_comment="unknown version"
5971 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5972 else
5973 noaomodules="alsa $noaomodules"
5975 echores "$_alsa"
5978 echocheck "Sun audio"
5979 if test "$_sunaudio" = auto ; then
5980 cat > $TMPC << EOF
5981 #include <sys/types.h>
5982 #include <sys/audioio.h>
5983 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5985 _sunaudio=no
5986 cc_check && _sunaudio=yes
5988 if test "$_sunaudio" = yes ; then
5989 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5990 aomodules="sun $aomodules"
5991 else
5992 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5993 noaomodules="sun $noaomodules"
5995 echores "$_sunaudio"
5998 def_mlib='#define CONFIG_MLIB 0'
5999 if sunos; then
6000 echocheck "Sun mediaLib"
6001 if test "$_mlib" = auto ; then
6002 _mlib=no
6003 cat > $TMPC << EOF
6004 #include <mlib.h>
6005 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
6007 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
6009 echores "$_mlib"
6010 fi #if sunos
6013 if darwin; then
6014 echocheck "CoreAudio"
6015 if test "$_coreaudio" = auto ; then
6016 cat > $TMPC <<EOF
6017 #include <CoreAudio/CoreAudio.h>
6018 #include <AudioToolbox/AudioToolbox.h>
6019 #include <AudioUnit/AudioUnit.h>
6020 int main(void) { return 0; }
6022 _coreaudio=no
6023 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6025 if test "$_coreaudio" = yes ; then
6026 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6027 def_coreaudio='#define CONFIG_COREAUDIO 1'
6028 aomodules="coreaudio $aomodules"
6029 else
6030 def_coreaudio='#undef CONFIG_COREAUDIO'
6031 noaomodules="coreaudio $noaomodules"
6033 echores $_coreaudio
6034 fi #if darwin
6037 if irix; then
6038 echocheck "SGI audio"
6039 if test "$_sgiaudio" = auto ; then
6040 # check for SGI audio
6041 cat > $TMPC << EOF
6042 #include <dmedia/audio.h>
6043 int main(void) { return 0; }
6045 _sgiaudio=no
6046 cc_check && _sgiaudio=yes
6048 if test "$_sgiaudio" = "yes" ; then
6049 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6050 libs_mplayer="$libs_mplayer -laudio"
6051 aomodules="sgi $aomodules"
6052 else
6053 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6054 noaomodules="sgi $noaomodules"
6056 echores "$_sgiaudio"
6057 fi #if irix
6060 if os2 ; then
6061 echocheck "KAI (UNIAUD/DART)"
6062 if test "$_kai" = auto; then
6063 cat > $TMPC << EOF
6064 #include <os2.h>
6065 #include <kai.h>
6066 int main(void) { return 0; }
6068 _kai=no;
6069 cc_check -lkai && _kai=yes
6071 if test "$_kai" = yes ; then
6072 def_kai='#define CONFIG_KAI 1'
6073 libs_mplayer="$libs_mplayer -lkai"
6074 aomodules="kai $aomodules"
6075 else
6076 def_kai='#undef CONFIG_KAI'
6077 noaomodules="kai $noaomodules"
6079 echores "$_kai"
6081 echocheck "DART"
6082 if test "$_dart" = auto; then
6083 cat > $TMPC << EOF
6084 #include <os2.h>
6085 #include <dart.h>
6086 int main( void ) { return 0; }
6088 _dart=no;
6089 cc_check -ldart && _dart=yes
6091 if test "$_dart" = yes ; then
6092 def_dart='#define CONFIG_DART 1'
6093 libs_mplayer="$libs_mplayer -ldart"
6094 aomodules="dart $aomodules"
6095 else
6096 def_dart='#undef CONFIG_DART'
6097 noaomodules="dart $noaomodules"
6099 echores "$_dart"
6100 fi #if os2
6103 # set default CD/DVD devices
6104 if win32 || os2 ; then
6105 default_cdrom_device="D:"
6106 elif darwin ; then
6107 default_cdrom_device="/dev/disk1"
6108 elif dragonfly ; then
6109 default_cdrom_device="/dev/cd0"
6110 elif freebsd ; then
6111 default_cdrom_device="/dev/acd0"
6112 elif openbsd ; then
6113 default_cdrom_device="/dev/rcd0a"
6114 elif sunos ; then
6115 default_cdrom_device="/vol/dev/aliases/cdrom0"
6116 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6117 # file system and the volfs service.
6118 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6119 elif amigaos ; then
6120 default_cdrom_device="a1ide.device:2"
6121 else
6122 default_cdrom_device="/dev/cdrom"
6125 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6126 default_dvd_device=$default_cdrom_device
6127 elif darwin ; then
6128 default_dvd_device="/dev/rdiskN"
6129 else
6130 default_dvd_device="/dev/dvd"
6134 echocheck "VCD support"
6135 if test "$_vcd" = auto; then
6136 _vcd=no
6137 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
6138 _vcd=yes
6139 elif mingw32; then
6140 cat > $TMPC << EOF
6141 #include <ddk/ntddcdrm.h>
6142 int main(void) { return 0; }
6144 cc_check && _vcd=yes
6147 if test "$_vcd" = yes; then
6148 inputmodules="vcd $inputmodules"
6149 def_vcd='#define CONFIG_VCD 1'
6150 else
6151 def_vcd='#undef CONFIG_VCD'
6152 noinputmodules="vcd $noinputmodules"
6153 res_comment="not supported on this OS"
6155 echores "$_vcd"
6159 echocheck "dvdread"
6160 if test "$_dvdread_internal" = auto ; then
6161 _dvdread_internal=no
6162 _dvdread=no
6163 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6164 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6165 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6166 || darwin || win32 || os2; then
6167 _dvdread_internal=yes
6168 _dvdread=yes
6169 extra_cflags="-Ilibdvdread4 $extra_cflags"
6171 elif test "$_dvdread" = auto ; then
6172 _dvdread=no
6173 if test "$_dl" = yes; then
6174 cat > $TMPC << EOF
6175 #include <inttypes.h>
6176 #include <dvdread/dvd_reader.h>
6177 #include <dvdread/ifo_types.h>
6178 #include <dvdread/ifo_read.h>
6179 #include <dvdread/nav_read.h>
6180 int main(void) { return 0; }
6182 _dvdreadcflags=$($_dvdreadconfig --cflags)
6183 _dvdreadlibs=$($_dvdreadconfig --libs)
6184 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6185 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6186 _dvdread=yes
6187 extra_cflags="$extra_cflags $_dvdreadcflags"
6188 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6189 res_comment="external"
6194 if test "$_dvdread_internal" = yes; then
6195 def_dvdread='#define CONFIG_DVDREAD 1'
6196 inputmodules="dvdread(internal) $inputmodules"
6197 _largefiles=yes
6198 res_comment="internal"
6199 elif test "$_dvdread" = yes; then
6200 def_dvdread='#define CONFIG_DVDREAD 1'
6201 _largefiles=yes
6202 extra_ldflags="$extra_ldflags -ldvdread"
6203 inputmodules="dvdread(external) $inputmodules"
6204 res_comment="external"
6205 else
6206 def_dvdread='#undef CONFIG_DVDREAD'
6207 noinputmodules="dvdread $noinputmodules"
6209 echores "$_dvdread"
6212 echocheck "internal libdvdcss"
6213 if test "$_libdvdcss_internal" = auto ; then
6214 _libdvdcss_internal=no
6215 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6216 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6218 if test "$_libdvdcss_internal" = yes ; then
6219 if linux || netbsd || openbsd || bsdos ; then
6220 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6221 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6222 elif freebsd || dragonfly ; then
6223 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6224 elif darwin ; then
6225 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6226 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6227 elif cygwin ; then
6228 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6229 elif beos ; then
6230 cflags_libdvdcss="-DSYS_BEOS"
6231 elif os2 ; then
6232 cflags_libdvdcss="-DSYS_OS2"
6234 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6235 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6236 inputmodules="libdvdcss(internal) $inputmodules"
6237 _largefiles=yes
6238 else
6239 noinputmodules="libdvdcss(internal) $noinputmodules"
6241 echores "$_libdvdcss_internal"
6244 echocheck "cdparanoia"
6245 if test "$_cdparanoia" = auto ; then
6246 cat > $TMPC <<EOF
6247 #include <cdda_interface.h>
6248 #include <cdda_paranoia.h>
6249 // This need a better test. How ?
6250 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6252 _cdparanoia=no
6253 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6254 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6255 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6256 done
6258 if test "$_cdparanoia" = yes ; then
6259 _cdda='yes'
6260 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6261 openbsd && extra_ldflags="$extra_ldflags -lutil"
6263 echores "$_cdparanoia"
6266 echocheck "libcdio"
6267 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6268 cat > $TMPC << EOF
6269 #include <stdio.h>
6270 #include <cdio/version.h>
6271 #include <cdio/cdda.h>
6272 #include <cdio/paranoia.h>
6273 int main(void) {
6274 void *test = cdda_verbose_set;
6275 printf("%s\n", CDIO_VERSION);
6276 return test == (void *)1;
6279 _libcdio=no
6280 for _ld_tmp in "" "-lwinmm" ; do
6281 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6282 cc_check $_ld_tmp $_ld_lm \
6283 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6284 done
6285 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6286 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6287 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6288 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6289 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6292 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6293 _cdda='yes'
6294 def_libcdio='#define CONFIG_LIBCDIO 1'
6295 def_havelibcdio='yes'
6296 else
6297 if test "$_cdparanoia" = yes ; then
6298 res_comment="using cdparanoia"
6300 def_libcdio='#undef CONFIG_LIBCDIO'
6301 def_havelibcdio='no'
6303 echores "$_libcdio"
6305 if test "$_cdda" = yes ; then
6306 test $_cddb = auto && test $_network = yes && _cddb=yes
6307 def_cdparanoia='#define CONFIG_CDDA 1'
6308 inputmodules="cdda $inputmodules"
6309 else
6310 def_cdparanoia='#undef CONFIG_CDDA'
6311 noinputmodules="cdda $noinputmodules"
6314 if test "$_cddb" = yes ; then
6315 def_cddb='#define CONFIG_CDDB 1'
6316 inputmodules="cddb $inputmodules"
6317 else
6318 _cddb=no
6319 def_cddb='#undef CONFIG_CDDB'
6320 noinputmodules="cddb $noinputmodules"
6323 echocheck "bitmap font support"
6324 if test "$_bitmap_font" = yes ; then
6325 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6326 else
6327 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6329 echores "$_bitmap_font"
6332 echocheck "freetype >= 2.0.9"
6334 # freetype depends on iconv
6335 if test "$_iconv" = no ; then
6336 _freetype=no
6337 res_comment="iconv support needed"
6340 if test "$_freetype" = auto ; then
6341 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6342 cat > $TMPC << EOF
6343 #include <stdio.h>
6344 #include <ft2build.h>
6345 #include FT_FREETYPE_H
6346 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6347 #error "Need FreeType 2.0.9 or newer"
6348 #endif
6349 int main(void) {
6350 FT_Library library;
6351 FT_Int major=-1,minor=-1,patch=-1;
6352 int err=FT_Init_FreeType(&library);
6353 return 0;
6356 _freetype=no
6357 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6358 else
6359 _freetype=no
6362 if test "$_freetype" = yes ; then
6363 def_freetype='#define CONFIG_FREETYPE 1'
6364 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6365 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6366 else
6367 def_freetype='#undef CONFIG_FREETYPE'
6369 echores "$_freetype"
6371 if test "$_freetype" = no ; then
6372 _fontconfig=no
6373 res_comment="FreeType support needed"
6375 echocheck "fontconfig"
6376 if test "$_fontconfig" = auto ; then
6377 cat > $TMPC << EOF
6378 #include <stdio.h>
6379 #include <stdlib.h>
6380 #include <fontconfig/fontconfig.h>
6381 #if FC_VERSION < 20402
6382 #error At least version 2.4.2 of fontconfig required
6383 #endif
6384 int main(void) {
6385 int err = FcInit();
6386 if (err == FcFalse) {
6387 printf("Couldn't initialize fontconfig lib\n");
6388 exit(err);
6390 return 0;
6393 _fontconfig=no
6394 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6395 _ld_tmp="-lfontconfig $_ld_tmp"
6396 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6397 done
6398 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6399 _inc_tmp=$($_pkg_config --cflags fontconfig)
6400 _ld_tmp=$($_pkg_config --libs fontconfig)
6401 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6402 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6405 if test "$_fontconfig" = yes ; then
6406 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6407 else
6408 def_fontconfig='#undef CONFIG_FONTCONFIG'
6410 echores "$_fontconfig"
6413 echocheck "SSA/ASS support"
6414 # libass depends on FreeType
6415 if test "$_freetype" = no ; then
6416 _ass=no
6417 ass_internal=no
6418 res_comment="FreeType support needed"
6421 if test "$_ass" = auto ; then
6422 cat > $TMPC << EOF
6423 #include <ft2build.h>
6424 #include FT_FREETYPE_H
6425 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6426 #error "Need FreeType 2.2.1 or newer"
6427 #endif
6428 int main(void) { return 0; }
6430 _ass=no
6431 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6432 if test "$_ass" = no ; then
6433 ass_internal=no
6434 res_comment="FreeType >= 2.2.1 needed"
6435 elif test "$ass_internal" = no ; then
6436 cat > $TMPC << EOF
6437 #include <ass/ass.h>
6438 int main(void) {
6439 #if defined(LIBASS_VERSION) && LIBASS_VERSION >= 0x00907010
6440 ass_process_force_style(0);
6441 #else
6442 process_force_style(0);
6443 #endif
6444 return 0;
6447 if cc_check -lass ; then
6448 res_comment="external"
6449 extra_ldflags="$extra_ldflags -lass"
6450 else
6451 _ass=no
6455 if test "$_ass" = yes ; then
6456 def_ass='#define CONFIG_ASS 1'
6457 else
6458 def_ass='#undef CONFIG_ASS'
6460 if test "$ass_internal" = yes ; then
6461 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6462 else
6463 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6465 echores "$_ass"
6468 echocheck "fribidi with charsets"
6469 _inc_tmp=""
6470 _ld_tmp=""
6471 if test "$_fribidi" = auto ; then
6472 cat > $TMPC << EOF
6473 #include <stdio.h>
6474 #include <stdlib.h>
6475 /* workaround for fribidi 0.10.4 and below */
6476 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6477 #include <fribidi/fribidi.h>
6478 int main(void) {
6479 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6480 printf("Fribidi headers are not consistents with the library!\n");
6481 exit(1);
6483 return 0;
6486 _fribidi=no
6487 _inc_tmp=""
6488 _ld_tmp="-lfribidi"
6489 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6490 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
6491 test "$_fribidi" = no ; then
6492 _inc_tmp="$($_pkg_config --cflags)"
6493 _ld_tmp="$($_pkg_config --libs)"
6494 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6497 if test "$_fribidi" = yes ; then
6498 def_fribidi='#define CONFIG_FRIBIDI 1'
6499 extra_cflags="$extra_cflags $_inc_tmp"
6500 extra_ldflags="$extra_ldflags $_ld_tmp"
6501 else
6502 def_fribidi='#undef CONFIG_FRIBIDI'
6504 echores "$_fribidi"
6507 echocheck "ENCA"
6508 if test "$_enca" = auto ; then
6509 cat > $TMPC << EOF
6510 #include <sys/types.h>
6511 #include <enca.h>
6512 int main(void) {
6513 const char **langs;
6514 size_t langcnt;
6515 langs = enca_get_languages(&langcnt);
6516 return 0;
6519 _enca=no
6520 cc_check -lenca $_ld_lm && _enca=yes
6522 if test "$_enca" = yes ; then
6523 def_enca='#define CONFIG_ENCA 1'
6524 extra_ldflags="$extra_ldflags -lenca"
6525 else
6526 def_enca='#undef CONFIG_ENCA'
6528 echores "$_enca"
6531 echocheck "zlib"
6532 cat > $TMPC << EOF
6533 #include <zlib.h>
6534 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6536 _zlib=no
6537 cc_check -lz && _zlib=yes
6538 if test "$_zlib" = yes ; then
6539 def_zlib='#define CONFIG_ZLIB 1'
6540 extra_ldflags="$extra_ldflags -lz"
6541 else
6542 def_zlib='#define CONFIG_ZLIB 0'
6543 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6544 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6546 echores "$_zlib"
6549 echocheck "bzlib"
6550 bzlib=no
6551 def_bzlib='#define CONFIG_BZLIB 0'
6552 cat > $TMPC << EOF
6553 #include <bzlib.h>
6554 int main(void) { BZ2_bzlibVersion(); return 0; }
6556 cc_check -lbz2 && bzlib=yes
6557 if test "$bzlib" = yes ; then
6558 def_bzlib='#define CONFIG_BZLIB 1'
6559 extra_ldflags="$extra_ldflags -lbz2"
6561 echores "$bzlib"
6564 echocheck "RTC"
6565 if test "$_rtc" = auto ; then
6566 cat > $TMPC << EOF
6567 #include <sys/ioctl.h>
6568 #ifdef __linux__
6569 #include <linux/rtc.h>
6570 #else
6571 #include <rtc.h>
6572 #define RTC_PIE_ON RTCIO_PIE_ON
6573 #endif
6574 int main(void) { return RTC_PIE_ON; }
6576 _rtc=no
6577 cc_check && _rtc=yes
6578 ppc && _rtc=no
6580 if test "$_rtc" = yes ; then
6581 def_rtc='#define HAVE_RTC 1'
6582 else
6583 def_rtc='#undef HAVE_RTC'
6585 echores "$_rtc"
6588 echocheck "liblzo2 support"
6589 if test "$_liblzo" = auto ; then
6590 _liblzo=no
6591 cat > $TMPC << EOF
6592 #include <lzo/lzo1x.h>
6593 int main(void) { lzo_init();return 0; }
6595 cc_check -llzo2 && _liblzo=yes
6597 if test "$_liblzo" = yes ; then
6598 def_liblzo='#define CONFIG_LIBLZO 1'
6599 extra_ldflags="$extra_ldflags -llzo2"
6600 codecmodules="liblzo $codecmodules"
6601 else
6602 def_liblzo='#undef CONFIG_LIBLZO'
6603 nocodecmodules="liblzo $nocodecmodules"
6605 echores "$_liblzo"
6608 echocheck "mad support"
6609 if test "$_mad" = auto ; then
6610 _mad=no
6611 cat > $TMPC << EOF
6612 #include <mad.h>
6613 int main(void) { return 0; }
6615 cc_check -lmad && _mad=yes
6617 if test "$_mad" = yes ; then
6618 def_mad='#define CONFIG_LIBMAD 1'
6619 extra_ldflags="$extra_ldflags -lmad"
6620 codecmodules="libmad $codecmodules"
6621 else
6622 def_mad='#undef CONFIG_LIBMAD'
6623 nocodecmodules="libmad $nocodecmodules"
6625 echores "$_mad"
6627 echocheck "Twolame"
6628 if test "$_twolame" = auto ; then
6629 cat > $TMPC <<EOF
6630 #include <twolame.h>
6631 int main(void) { twolame_init(); return 0; }
6633 _twolame=no
6634 cc_check -ltwolame $_ld_lm && _twolame=yes
6636 if test "$_twolame" = yes ; then
6637 def_twolame='#define CONFIG_TWOLAME 1'
6638 libs_mencoder="$libs_mencoder -ltwolame"
6639 codecmodules="twolame $codecmodules"
6640 else
6641 def_twolame='#undef CONFIG_TWOLAME'
6642 nocodecmodules="twolame $nocodecmodules"
6644 echores "$_twolame"
6646 echocheck "Toolame"
6647 if test "$_toolame" = auto ; then
6648 _toolame=no
6649 if test "$_twolame" = yes ; then
6650 res_comment="disabled by twolame"
6651 else
6652 cat > $TMPC <<EOF
6653 #include <toolame.h>
6654 int main(void) { toolame_init(); return 0; }
6656 cc_check -ltoolame $_ld_lm && _toolame=yes
6659 if test "$_toolame" = yes ; then
6660 def_toolame='#define CONFIG_TOOLAME 1'
6661 libs_mencoder="$libs_mencoder -ltoolame"
6662 codecmodules="toolame $codecmodules"
6663 else
6664 def_toolame='#undef CONFIG_TOOLAME'
6665 nocodecmodules="toolame $nocodecmodules"
6667 if test "$_toolamedir" ; then
6668 res_comment="using $_toolamedir"
6670 echores "$_toolame"
6672 echocheck "OggVorbis support"
6673 if test "$_tremor_internal" = yes; then
6674 _libvorbis=no
6675 elif test "$_tremor" = auto; then
6676 _tremor=no
6677 cat > $TMPC << EOF
6678 #include <tremor/ivorbiscodec.h>
6679 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6681 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6683 if test "$_libvorbis" = auto; then
6684 _libvorbis=no
6685 cat > $TMPC << EOF
6686 #include <vorbis/codec.h>
6687 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6689 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6691 if test "$_tremor_internal" = yes ; then
6692 _vorbis=yes
6693 def_vorbis='#define CONFIG_OGGVORBIS 1'
6694 def_tremor='#define CONFIG_TREMOR 1'
6695 codecmodules="tremor(internal) $codecmodules"
6696 res_comment="internal Tremor"
6697 if test "$_tremor_low" = yes ; then
6698 cflags_tremor_low="-D_LOW_ACCURACY_"
6699 res_comment="internal low accuracy Tremor"
6701 elif test "$_tremor" = yes ; then
6702 _vorbis=yes
6703 def_vorbis='#define CONFIG_OGGVORBIS 1'
6704 def_tremor='#define CONFIG_TREMOR 1'
6705 codecmodules="tremor(external) $codecmodules"
6706 res_comment="external Tremor"
6707 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6708 elif test "$_libvorbis" = yes ; then
6709 _vorbis=yes
6710 def_vorbis='#define CONFIG_OGGVORBIS 1'
6711 codecmodules="libvorbis $codecmodules"
6712 res_comment="libvorbis"
6713 extra_ldflags="$extra_ldflags -lvorbis -logg"
6714 else
6715 _vorbis=no
6716 nocodecmodules="libvorbis $nocodecmodules"
6718 echores "$_vorbis"
6720 echocheck "libspeex (version >= 1.1 required)"
6721 if test "$_speex" = auto ; then
6722 _speex=no
6723 cat > $TMPC << EOF
6724 #include <speex/speex.h>
6725 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6727 cc_check -lspeex $_ld_lm && _speex=yes
6729 if test "$_speex" = yes ; then
6730 def_speex='#define CONFIG_SPEEX 1'
6731 extra_ldflags="$extra_ldflags -lspeex"
6732 codecmodules="speex $codecmodules"
6733 else
6734 def_speex='#undef CONFIG_SPEEX'
6735 nocodecmodules="speex $nocodecmodules"
6737 echores "$_speex"
6739 echocheck "OggTheora support"
6740 if test "$_theora" = auto ; then
6741 _theora=no
6742 cat > $TMPC << EOF
6743 #include <theora/theora.h>
6744 #include <string.h>
6745 int main(void) {
6746 /* Theora is in flux, make sure that all interface routines and datatypes
6747 * exist and work the way we expect it, so we don't break MPlayer. */
6748 ogg_packet op;
6749 theora_comment tc;
6750 theora_info inf;
6751 theora_state st;
6752 yuv_buffer yuv;
6753 int r;
6754 double t;
6756 theora_info_init(&inf);
6757 theora_comment_init(&tc);
6759 return 0;
6761 /* we don't want to execute this kind of nonsense; just for making sure
6762 * that compilation works... */
6763 memset(&op, 0, sizeof(op));
6764 r = theora_decode_header(&inf, &tc, &op);
6765 r = theora_decode_init(&st, &inf);
6766 t = theora_granule_time(&st, op.granulepos);
6767 r = theora_decode_packetin(&st, &op);
6768 r = theora_decode_YUVout(&st, &yuv);
6769 theora_clear(&st);
6771 return 0;
6774 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6775 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6776 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6777 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6778 if test _theora = no; then
6779 _ld_theora="-ltheora -logg"
6780 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6782 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6783 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6784 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6785 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6786 extra_ldflags="$extra_ldflags $_ld_theora" &&
6787 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6788 if test _theora = no; then
6789 _ld_theora="-ltheora -logg"
6790 cc_check tremor/bitwise.c $_ld_theora &&
6791 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6795 if test "$_theora" = yes ; then
6796 def_theora='#define CONFIG_OGGTHEORA 1'
6797 codecmodules="libtheora $codecmodules"
6798 # when --enable-theora is forced, we'd better provide a probably sane
6799 # $_ld_theora than nothing
6800 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6801 else
6802 def_theora='#undef CONFIG_OGGTHEORA'
6803 nocodecmodules="libtheora $nocodecmodules"
6805 echores "$_theora"
6807 echocheck "mp3lib support"
6808 if test "$_mp3lib" = auto ; then
6809 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6811 if test "$_mp3lib" = yes ; then
6812 def_mp3lib='#define CONFIG_MP3LIB 1'
6813 codecmodules="mp3lib(internal) $codecmodules"
6814 else
6815 def_mp3lib='#undef CONFIG_MP3LIB'
6816 nocodecmodules="mp3lib(internal) $nocodecmodules"
6818 echores "$_mp3lib"
6820 echocheck "liba52 support"
6821 def_liba52='#undef CONFIG_LIBA52'
6822 if test "$_liba52" = auto ; then
6823 _liba52=no
6824 cat > $TMPC << EOF
6825 #include <inttypes.h>
6826 #include <a52dec/a52.h>
6827 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6829 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6831 if test "$_liba52" = yes ; then
6832 def_liba52='#define CONFIG_LIBA52 1'
6833 codecmodules="liba52 $codecmodules"
6834 else
6835 nocodecmodules="liba52 $nocodecmodules"
6837 echores "$_liba52"
6839 echocheck "internal libmpeg2 support"
6840 if test "$_libmpeg2" = auto ; then
6841 _libmpeg2=yes
6842 if alpha && test cc_vendor=gnu; then
6843 case $cc_version in
6844 2*|3.0*|3.1*) # cannot compile MVI instructions
6845 _libmpeg2=no
6846 res_comment="broken gcc"
6848 esac
6851 if test "$_libmpeg2" = yes ; then
6852 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6853 codecmodules="libmpeg2(internal) $codecmodules"
6854 else
6855 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6856 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6858 echores "$_libmpeg2"
6860 echocheck "libdca support"
6861 if test "$_libdca" = auto ; then
6862 _libdca=no
6863 cat > $TMPC << EOF
6864 #include <inttypes.h>
6865 #include <dts.h>
6866 int main(void) { dts_init(0); return 0; }
6868 for _ld_dca in -ldca -ldts ; do
6869 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6870 && _libdca=yes && break
6871 done
6873 if test "$_libdca" = yes ; then
6874 def_libdca='#define CONFIG_LIBDCA 1'
6875 codecmodules="libdca $codecmodules"
6876 else
6877 def_libdca='#undef CONFIG_LIBDCA'
6878 nocodecmodules="libdca $nocodecmodules"
6880 echores "$_libdca"
6882 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6883 if test "$_musepack" = auto ; then
6884 _musepack=no
6885 cat > $TMPC << EOF
6886 #include <stddef.h>
6887 #include <mpcdec/mpcdec.h>
6888 int main(void) {
6889 mpc_streaminfo info;
6890 mpc_decoder decoder;
6891 mpc_decoder_set_streaminfo(&decoder, &info);
6892 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6893 return 0;
6896 cc_check -lmpcdec $_ld_lm && _musepack=yes
6898 if test "$_musepack" = yes ; then
6899 def_musepack='#define CONFIG_MUSEPACK 1'
6900 extra_ldflags="$extra_ldflags -lmpcdec"
6901 codecmodules="musepack $codecmodules"
6902 else
6903 def_musepack='#undef CONFIG_MUSEPACK'
6904 nocodecmodules="musepack $nocodecmodules"
6906 echores "$_musepack"
6909 echocheck "FAAC support"
6910 if test "$_faac" = auto ; then
6911 cat > $TMPC <<EOF
6912 #include <inttypes.h>
6913 #include <faac.h>
6914 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6916 _faac=no
6917 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6918 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6919 done
6921 if test "$_faac" = yes ; then
6922 def_faac="#define CONFIG_FAAC 1"
6923 test "$_faac_lavc" = auto && _faac_lavc=yes
6924 if test "$_faac_lavc" = yes ; then
6925 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6926 libs_mplayer="$libs_mplayer $_ld_faac"
6927 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6929 codecmodules="faac $codecmodules"
6930 else
6931 _faac_lavc=no
6932 def_faac="#undef CONFIG_FAAC"
6933 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6934 nocodecmodules="faac $nocodecmodules"
6936 res_comment="in libavcodec: $_faac_lavc"
6937 echores "$_faac"
6940 echocheck "FAAD2 support"
6941 if test "$_faad_internal" = auto ; then
6942 if x86_32 && test cc_vendor=gnu; then
6943 case $cc_version in
6944 3.1*|3.2) # ICE/insn with these versions
6945 _faad_internal=no
6946 res_comment="broken gcc"
6949 _faad=yes
6950 _faad_internal=yes
6952 esac
6953 else
6954 _faad=yes
6955 _faad_internal=yes
6958 if test "$_faad" = auto ; then
6959 cat > $TMPC << EOF
6960 #include <faad.h>
6961 #ifndef FAAD_MIN_STREAMSIZE
6962 #error Too old version
6963 #endif
6964 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6965 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6967 cc_check -lfaad $_ld_lm && _faad=yes
6970 def_faad='#undef CONFIG_FAAD'
6971 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6972 if test "$_faad_internal" = yes ; then
6973 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6974 res_comment="internal floating-point"
6975 if test "$_faad_fixed" = yes ; then
6976 # The FIXED_POINT implementation of FAAD2 improves performance
6977 # on some platforms, especially for SBR files.
6978 cflags_faad_fixed="-DFIXED_POINT"
6979 res_comment="internal fixed-point"
6981 elif test "$_faad" = yes ; then
6982 extra_ldflags="$extra_ldflags -lfaad"
6985 if test "$_faad" = yes ; then
6986 def_faad='#define CONFIG_FAAD 1'
6987 if test "$_faad_internal" = yes ; then
6988 codecmodules="faad2(internal) $codecmodules"
6989 else
6990 codecmodules="faad2 $codecmodules"
6992 else
6993 _faad=no
6994 nocodecmodules="faad2 $nocodecmodules"
6996 echores "$_faad"
6999 echocheck "LADSPA plugin support"
7000 if test "$_ladspa" = auto ; then
7001 cat > $TMPC <<EOF
7002 #include <stdio.h>
7003 #include <ladspa.h>
7004 int main(void) {
7005 const LADSPA_Descriptor *ld = NULL;
7006 return 0;
7009 _ladspa=no
7010 cc_check && _ladspa=yes
7012 if test "$_ladspa" = yes; then
7013 def_ladspa="#define CONFIG_LADSPA 1"
7014 else
7015 def_ladspa="#undef CONFIG_LADSPA"
7017 echores "$_ladspa"
7020 echocheck "libbs2b audio filter support"
7021 if test "$_libbs2b" = auto ; then
7022 cat > $TMPC <<EOF
7023 #include <bs2b.h>
7024 #if BS2B_VERSION_MAJOR < 3
7025 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7026 #endif
7027 int main(void) {
7028 t_bs2bdp filter;
7029 filter=bs2b_open();
7030 bs2b_close(filter);
7031 return 0;
7034 _libbs2b=no
7035 if $_pkg_config --exists libbs2b ; then
7036 _inc_tmp=$($_pkg_config --cflags libbs2b)
7037 _ld_tmp=$($_pkg_config --libs libbs2b)
7038 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7039 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7040 else
7041 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7042 -I/usr/local/include/bs2b ; do
7043 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7044 extra_ldflags="$extra_ldflags -lbs2b"
7045 extra_cflags="$extra_cflags $_inc_tmp"
7046 _libbs2b=yes
7047 break
7049 done
7052 def_libbs2b="#undef CONFIG_LIBBS2B"
7053 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7054 echores "$_libbs2b"
7057 if test -z "$_codecsdir" ; then
7058 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7059 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7060 if test -d "$dir" ; then
7061 _codecsdir="$dir"
7062 break;
7064 done
7066 # Fall back on default directory.
7067 if test -z "$_codecsdir" ; then
7068 _codecsdir="$_libdir/codecs"
7069 mingw32 || os2 && _codecsdir="codecs"
7073 echocheck "Win32 codecs"
7074 if test "$_win32dll" = auto ; then
7075 _win32dll=no
7076 if x86_32 && ! qnx; then
7077 _win32dll=yes
7080 if test "$_win32dll" = yes ; then
7081 def_win32dll='#define CONFIG_WIN32DLL 1'
7082 if ! win32 ; then
7083 def_win32_loader='#define WIN32_LOADER 1'
7084 _win32_emulation=yes
7085 else
7086 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7087 res_comment="using native windows"
7089 codecmodules="win32 $codecmodules"
7090 else
7091 def_win32dll='#undef CONFIG_WIN32DLL'
7092 def_win32_loader='#undef WIN32_LOADER'
7093 nocodecmodules="win32 $nocodecmodules"
7095 echores "$_win32dll"
7098 echocheck "XAnim codecs"
7099 if test "$_xanim" = auto ; then
7100 _xanim=no
7101 res_comment="dynamic loader support needed"
7102 if test "$_dl" = yes ; then
7103 _xanim=yes
7106 if test "$_xanim" = yes ; then
7107 def_xanim='#define CONFIG_XANIM 1'
7108 codecmodules="xanim $codecmodules"
7109 else
7110 def_xanim='#undef CONFIG_XANIM'
7111 nocodecmodules="xanim $nocodecmodules"
7113 echores "$_xanim"
7116 echocheck "RealPlayer codecs"
7117 if test "$_real" = auto ; then
7118 _real=no
7119 res_comment="dynamic loader support needed"
7120 if test "$_dl" = yes || test "$_win32dll" = yes &&
7121 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7122 _real=yes
7125 if test "$_real" = yes ; then
7126 def_real='#define CONFIG_REALCODECS 1'
7127 codecmodules="real $codecmodules"
7128 else
7129 def_real='#undef CONFIG_REALCODECS'
7130 nocodecmodules="real $nocodecmodules"
7132 echores "$_real"
7135 echocheck "QuickTime codecs"
7136 _qtx_emulation=no
7137 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7138 if test "$_qtx" = auto ; then
7139 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7141 if test "$_qtx" = yes ; then
7142 def_qtx='#define CONFIG_QTX_CODECS 1'
7143 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7144 codecmodules="qtx $codecmodules"
7145 darwin || win32 || _qtx_emulation=yes
7146 else
7147 def_qtx='#undef CONFIG_QTX_CODECS'
7148 nocodecmodules="qtx $nocodecmodules"
7150 echores "$_qtx"
7152 echocheck "Nemesi Streaming Media libraries"
7153 if test "$_nemesi" = auto && test "$_network" = yes ; then
7154 _nemesi=no
7155 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7156 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7157 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7158 _nemesi=yes
7161 if test "$_nemesi" = yes; then
7162 _native_rtsp=no
7163 def_nemesi='#define CONFIG_LIBNEMESI 1'
7164 inputmodules="nemesi $inputmodules"
7165 else
7166 _native_rtsp="$_network"
7167 _nemesi=no
7168 def_nemesi='#undef CONFIG_LIBNEMESI'
7169 noinputmodules="nemesi $noinputmodules"
7171 echores "$_nemesi"
7173 echocheck "LIVE555 Streaming Media libraries"
7174 if test "$_live" = auto && test "$_network" = yes ; then
7175 cat > $TMPCPP << EOF
7176 #include <liveMedia.hh>
7177 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7178 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7179 #endif
7180 int main(void) { return 0; }
7183 _live=no
7184 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
7185 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7186 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7187 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7188 $_livelibdir/groupsock/libgroupsock.a \
7189 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7190 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7191 $extra_ldflags -lstdc++" \
7192 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7193 -I$_livelibdir/UsageEnvironment/include \
7194 -I$_livelibdir/BasicUsageEnvironment/include \
7195 -I$_livelibdir/groupsock/include" && \
7196 _live=yes && break
7197 done
7198 if test "$_live" != yes ; then
7199 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7200 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7201 _live_dist=yes
7205 if test "$_live" = yes && test "$_network" = yes; then
7206 test $_livelibdir && res_comment="using $_livelibdir"
7207 def_live='#define CONFIG_LIVE555 1'
7208 inputmodules="live555 $inputmodules"
7209 elif test "$_live_dist" = yes && test "$_network" = yes; then
7210 res_comment="using distribution version"
7211 _live="yes"
7212 def_live='#define CONFIG_LIVE555 1'
7213 extra_ldflags="$extra_ldflags $ld_tmp"
7214 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7215 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7216 inputmodules="live555 $inputmodules"
7217 else
7218 _live=no
7219 def_live='#undef CONFIG_LIVE555'
7220 noinputmodules="live555 $noinputmodules"
7222 echores "$_live"
7224 echocheck "RTMPDump Streaming Media library"
7225 if test "$_librtmp" = auto && test "$_network" = yes ; then
7226 cat > $TMPC << EOF
7227 #include <librtmp/rtmp.h>
7228 int main(void) { RTMP r; RTMP_Init(&r); return 0; }
7230 cc_check -lrtmp && _librtmp=yes && extra_ldflags="$extra_ldflags -lrtmp"
7231 if test "$_librtmp" != yes && $_pkg_config --exists librtmp ; then
7232 _inc_tmp=$($_pkg_config --cflags librtmp)
7233 _ld_tmp=$($_pkg_config --libs librtmp)
7234 cc_check $_inc_tmp $_ld_tmp && _librtmp=yes && \
7235 extra_ldflags="$extra_ldflags $_ld_tmp" && \
7236 extra_cflags="$extra_cflags $_inc_tmp"
7239 if test "$_librtmp" = yes && test "$_network" = yes; then
7240 nolibrtmp=no
7241 def_librtmp='#define CONFIG_LIBRTMP 1'
7242 inputmodules="librtmp $inputmodules"
7243 else
7244 nolibrtmp=yes
7245 _librtmp=no
7246 def_librtmp='#undef CONFIG_LIBRTMP'
7247 noinputmodules="librtmp $noinputmodules"
7249 echores "$_librtmp"
7251 echocheck "FFmpeg libavutil"
7252 if test "$_libavutil_a" = auto ; then
7253 if test -d libavutil ; then
7254 _libavutil_a=yes
7255 res_comment="static"
7256 else
7257 die "MPlayer will not compile without libavutil in the source tree."
7259 elif test "$_libavutil_so" = auto ; then
7260 _libavutil_so=no
7261 cat > $TMPC << EOF
7262 #include <libavutil/common.h>
7263 int main(void) { av_clip(1, 1, 1); return 0; }
7265 if $_pkg_config --exists libavutil ; then
7266 _inc_libavutil=$($_pkg_config --cflags libavutil)
7267 _ld_tmp=$($_pkg_config --libs libavutil)
7268 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7269 && _libavutil_so=yes
7270 elif cc_check -lavutil $_ld_lm ; then
7271 extra_ldflags="$extra_ldflags -lavutil"
7272 _libavutil_so=yes
7273 res_comment="using libavutil.so, but static libavutil is recommended"
7276 _libavutil=no
7277 def_libavutil='#undef CONFIG_LIBAVUTIL'
7278 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7279 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7280 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7281 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7282 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7283 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7284 # neither static nor shared libavutil is available, but it is mandatory ...
7285 if test "$_libavutil" = no ; then
7286 die "You need static or shared libavutil, MPlayer will not compile without!"
7288 echores "$_libavutil"
7290 echocheck "FFmpeg libavcodec"
7291 if test "$_libavcodec_a" = auto ; then
7292 _libavcodec_a=no
7293 if test -d libavcodec && test -f libavcodec/utils.c ; then
7294 _libavcodec_a="yes"
7295 res_comment="static"
7297 elif test "$_libavcodec_so" = auto ; then
7298 _libavcodec_so=no
7299 res_comment="libavcodec.so is discouraged over static libavcodec"
7300 cat > $TMPC << EOF
7301 #include <libavcodec/avcodec.h>
7302 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7304 if $_pkg_config --exists libavcodec ; then
7305 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7306 _ld_tmp=$($_pkg_config --libs libavcodec)
7307 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7308 && _libavcodec_so=yes
7309 elif cc_check -lavcodec $_ld_lm ; then
7310 extra_ldflags="$extra_ldflags -lavcodec"
7311 _libavcodec_so=yes
7312 res_comment="using libavcodec.so, but static libavcodec is recommended"
7315 _libavcodec=no
7316 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7317 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7318 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7319 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7320 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7321 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7322 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7323 test "$_libavcodec_mpegaudio_hp" = yes \
7324 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7325 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7326 if test "$_libavcodec_a" = yes ; then
7327 codecmodules="libavcodec(internal) $codecmodules"
7328 elif test "$_libavcodec_so" = yes ; then
7329 codecmodules="libavcodec.so $codecmodules"
7330 else
7331 nocodecmodules="libavcodec $nocodecmodules"
7333 echores "$_libavcodec"
7335 echocheck "FFmpeg libavformat"
7336 if test "$_libavformat_a" = auto ; then
7337 _libavformat_a=no
7338 if test -d libavformat && test -f libavformat/utils.c ; then
7339 _libavformat_a=yes
7340 res_comment="static"
7342 elif test "$_libavformat_so" = auto ; then
7343 _libavformat_so=no
7344 cat > $TMPC <<EOF
7345 #include <libavformat/avformat.h>
7346 #include <libavcodec/opt.h>
7347 int main(void) { av_alloc_format_context(); return 0; }
7349 if $_pkg_config --exists libavformat ; then
7350 _inc_libavformat=$($_pkg_config --cflags libavformat)
7351 _ld_tmp=$($_pkg_config --libs libavformat)
7352 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7353 && _libavformat_so=yes
7354 elif cc_check $_ld_lm -lavformat ; then
7355 extra_ldflags="$extra_ldflags -lavformat"
7356 _libavformat_so=yes
7357 res_comment="using libavformat.so, but static libavformat is recommended"
7360 _libavformat=no
7361 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7362 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7363 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7364 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7365 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7366 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7367 test "$_libavformat_so" = yes \
7368 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7369 echores "$_libavformat"
7371 echocheck "FFmpeg libpostproc"
7372 if test "$_libpostproc_a" = auto ; then
7373 _libpostproc_a=no
7374 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7375 _libpostproc_a='yes'
7376 res_comment="static"
7378 elif test "$_libpostproc_so" = auto ; then
7379 _libpostproc_so=no
7380 cat > $TMPC << EOF
7381 #include <inttypes.h>
7382 #include <libpostproc/postprocess.h>
7383 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7385 if cc_check -lpostproc $_ld_lm ; then
7386 extra_ldflags="$extra_ldflags -lpostproc"
7387 _libpostproc_so=yes
7388 res_comment="using libpostproc.so, but static libpostproc is recommended"
7391 _libpostproc=no
7392 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7393 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7394 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7395 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7396 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7397 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7398 test "$_libpostproc_so" = yes \
7399 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7400 echores "$_libpostproc"
7402 echocheck "FFmpeg libswscale"
7403 if test "$_libswscale_a" = auto ; then
7404 _libswscale_a=no
7405 if test -d libswscale && test -f libswscale/swscale.h ; then
7406 _libswscale_a='yes'
7407 res_comment="static"
7409 elif test "$_libswscale_so" = auto ; then
7410 _libswscale_so=no
7411 res_comment="using libswscale.so, but static libswscale is recommended"
7412 cat > $TMPC << EOF
7413 #include <libswscale/swscale.h>
7414 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7416 if $_pkg_config --exists libswscale ; then
7417 _inc_libswscale=$($_pkg_config --cflags libswscale)
7418 _ld_tmp=$($_pkg_config --libs libswscale)
7419 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7420 && _libswscale_so=yes
7421 elif cc_check -lswscale ; then
7422 extra_ldflags="$extra_ldflags -lswscale"
7423 _libswscale_so=yes
7426 _libswscale=no
7427 def_libswscale='#undef CONFIG_LIBSWSCALE'
7428 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7429 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7430 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7431 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7432 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7433 test "$_libswscale_so" = yes \
7434 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7435 echores "$_libswscale"
7437 echocheck "libopencore_amr narrowband"
7438 if test "$_libopencore_amrnb" = auto ; then
7439 _libopencore_amrnb=no
7440 cat > $TMPC << EOF
7441 #include <opencore-amrnb/interf_dec.h>
7442 int main(void) { Decoder_Interface_init(); return 0; }
7444 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7445 if test "$_libavcodec_a" != yes ; then
7446 _libopencore_amrnb=no
7447 res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7450 if test "$_libopencore_amrnb" = yes ; then
7451 _libopencore_amr=yes
7452 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7453 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7454 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7455 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7456 codecmodules="libopencore_amrnb $codecmodules"
7457 else
7458 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7459 nocodecmodules="libopencore_amrnb $nocodecmodules"
7461 echores "$_libopencore_amrnb"
7464 echocheck "libopencore_amr wideband"
7465 if test "$_libopencore_amrwb" = auto ; then
7466 _libopencore_amrwb=no
7467 cat > $TMPC << EOF
7468 #include <opencore-amrwb/dec_if.h>
7469 int main(void) { D_IF_init(); return 0; }
7471 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7472 if test "$_libavcodec_a" != yes ; then
7473 _libopencore_amrwb=no
7474 res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7477 if test "$_libopencore_amrwb" = yes ; then
7478 _libopencore_amr=yes
7479 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7480 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7481 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7482 codecmodules="libopencore_amrwb $codecmodules"
7483 else
7484 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7485 nocodecmodules="libopencore_amrwb $nocodecmodules"
7487 echores "$_libopencore_amrwb"
7489 echocheck "libdv-0.9.5+"
7490 if test "$_libdv" = auto ; then
7491 _libdv=no
7492 cat > $TMPC <<EOF
7493 #include <libdv/dv.h>
7494 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7496 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7498 if test "$_libdv" = yes ; then
7499 def_libdv='#define CONFIG_LIBDV095 1'
7500 extra_ldflags="$extra_ldflags -ldv"
7501 codecmodules="libdv $codecmodules"
7502 else
7503 def_libdv='#undef CONFIG_LIBDV095'
7504 nocodecmodules="libdv $nocodecmodules"
7506 echores "$_libdv"
7509 echocheck "Xvid"
7510 if test "$_xvid" = auto ; then
7511 _xvid=no
7512 cat > $TMPC << EOF
7513 #include <xvid.h>
7514 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7516 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7517 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7518 done
7521 if test "$_xvid" = yes ; then
7522 def_xvid='#define CONFIG_XVID4 1'
7523 codecmodules="xvid $codecmodules"
7524 else
7525 def_xvid='#undef CONFIG_XVID4'
7526 nocodecmodules="xvid $nocodecmodules"
7528 echores "$_xvid"
7530 echocheck "Xvid two pass plugin"
7531 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7532 cat > $TMPC << EOF
7533 #include <xvid.h>
7534 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7536 cc_check && _xvid_lavc=yes
7538 if test "$_xvid_lavc" = yes ; then
7539 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7540 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7541 else
7542 _xvid_lavc=no
7543 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7545 echores "$_xvid_lavc"
7548 echocheck "x264"
7549 if test "$_x264" = auto ; then
7550 cat > $TMPC << EOF
7551 #include <inttypes.h>
7552 #include <x264.h>
7553 #if X264_BUILD < 98
7554 #error We do not support old versions of x264. Get the latest from git.
7555 #endif
7556 int main(void) { x264_encoder_open((void*)0); return 0; }
7558 _x264=no
7559 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7560 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7561 done
7564 if test "$_x264" = yes ; then
7565 def_x264='#define CONFIG_X264 1'
7566 codecmodules="x264 $codecmodules"
7567 test "$_x264_lavc" = auto && _x264_lavc=yes
7568 if test "$_x264_lavc" = yes ; then
7569 def_x264_lavc='#define CONFIG_LIBX264 1'
7570 libs_mplayer="$libs_mplayer $_ld_x264"
7571 _libavencoders="$_libavencoders LIBX264_ENCODER"
7573 else
7574 _x264_lavc=no
7575 def_x264='#undef CONFIG_X264'
7576 def_x264_lavc='#define CONFIG_LIBX264 0'
7577 nocodecmodules="x264 $nocodecmodules"
7579 res_comment="in libavcodec: $_x264_lavc"
7580 echores "$_x264"
7583 echocheck "libdirac"
7584 if test "$_libdirac_lavc" = auto; then
7585 _libdirac_lavc=no
7586 if test "$_libavcodec_a" != yes; then
7587 res_comment="libavcodec (static) is required by libdirac, sorry"
7588 else
7589 cat > $TMPC << EOF
7590 #include <libdirac_encoder/dirac_encoder.h>
7591 #include <libdirac_decoder/dirac_parser.h>
7592 int main(void)
7594 dirac_encoder_context_t enc_ctx;
7595 dirac_decoder_t *dec_handle;
7596 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7597 dec_handle = dirac_decoder_init(0);
7598 if (dec_handle)
7599 dirac_decoder_close(dec_handle);
7600 return 0;
7603 if $_pkg_config --exists dirac ; then
7604 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7605 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7606 cc_check $_inc_dirac $_ld_dirac &&
7607 _libdirac_lavc=yes &&
7608 extra_cflags="$extra_cflags $_inc_dirac" &&
7609 extra_ldflags="$extra_ldflags $_ld_dirac"
7613 if test "$_libdirac_lavc" = yes ; then
7614 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7615 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7616 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7617 codecmodules="libdirac $codecmodules"
7618 else
7619 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7620 nocodecmodules="libdirac $nocodecmodules"
7622 echores "$_libdirac_lavc"
7625 echocheck "libschroedinger"
7626 if test "$_libschroedinger_lavc" = auto ; then
7627 _libschroedinger_lavc=no
7628 if test "$_libavcodec_a" != yes; then
7629 res_comment="libavcodec (static) is required by libschroedinger, sorry"
7630 else
7631 cat > $TMPC << EOF
7632 #include <schroedinger/schro.h>
7633 int main(void) { schro_init(); return SCHRO_ENCODER_RATE_CONTROL_CONSTANT_QUALITY; }
7635 if $_pkg_config --exists schroedinger-1.0 ; then
7636 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7637 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7638 cc_check $_inc_schroedinger $_ld_schroedinger &&
7639 _libschroedinger_lavc=yes &&
7640 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7641 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7645 if test "$_libschroedinger_lavc" = yes ; then
7646 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7647 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7648 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7649 codecmodules="libschroedinger $codecmodules"
7650 else
7651 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7652 nocodecmodules="libschroedinger $nocodecmodules"
7654 echores "$_libschroedinger_lavc"
7656 echocheck "libvpx"
7657 if test "$_libvpx_lavc" = auto; then
7658 _libvpx_lavc=no
7659 if test "$_libavcodec_a" != yes; then
7660 res_comment="libavcodec (static) is required by libvpx, sorry"
7661 else
7662 cat > $TMPC << EOF
7663 #include <vpx/vpx_decoder.h>
7664 #include <vpx/vp8dx.h>
7665 int main(void) { vpx_codec_dec_init(NULL, &vpx_codec_vp8_dx_algo, NULL, 0); return 0; }
7667 cc_check -lvpx && _libvpx_lavc=yes && extra_ldflags="$extra_ldflags -lvpx"
7670 if test "$_libvpx_lavc" = yes ; then
7671 def_libvpx_lavc='#define CONFIG_LIBVPX 1'
7672 _libavdecoders="$_libavdecoders LIBVPX_DECODER"
7673 codecmodules="libvpx $codecmodules"
7674 else
7675 def_libvpx_lavc='#define CONFIG_LIBVPX 0'
7676 nocodecmodules="libvpx $nocodecmodules"
7678 echores "$_libvpx_lavc"
7680 echocheck "libnut"
7681 if test "$_libnut" = auto ; then
7682 cat > $TMPC << EOF
7683 #include <stdio.h>
7684 #include <stdlib.h>
7685 #include <inttypes.h>
7686 #include <libnut.h>
7687 nut_context_tt * nut;
7688 int main(void) { (void)nut_error(0); return 0; }
7690 _libnut=no
7691 cc_check -lnut && _libnut=yes
7694 if test "$_libnut" = yes ; then
7695 def_libnut='#define CONFIG_LIBNUT 1'
7696 extra_ldflags="$extra_ldflags -lnut"
7697 else
7698 def_libnut='#undef CONFIG_LIBNUT'
7700 echores "$_libnut"
7702 #check must be done after libavcodec one
7703 echocheck "zr"
7704 if test "$_zr" = auto ; then
7705 #36067's seem to identify themselves as 36057PQC's, so the line
7706 #below should work for 36067's and 36057's.
7707 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7708 _zr=yes
7709 else
7710 _zr=no
7713 if test "$_zr" = yes ; then
7714 if test "$_libavcodec_a" = yes ; then
7715 def_zr='#define CONFIG_ZR 1'
7716 vomodules="zr zr2 $vomodules"
7717 else
7718 res_comment="libavcodec (static) is required by zr, sorry"
7719 novomodules="zr $novomodules"
7720 def_zr='#undef CONFIG_ZR'
7722 else
7723 def_zr='#undef CONFIG_ZR'
7724 novomodules="zr zr2 $novomodules"
7726 echores "$_zr"
7728 # mencoder requires (optional) those libs: libmp3lame
7729 if test "$_mencoder" != no ; then
7731 echocheck "libmp3lame"
7732 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7733 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7734 if test "$_mp3lame" = auto ; then
7735 _mp3lame=no
7736 cat > $TMPC <<EOF
7737 #include <lame/lame.h>
7738 int main(void) { lame_version_t lv; (void) lame_init();
7739 get_lame_version_numerical(&lv);
7740 return 0; }
7742 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7744 if test "$_mp3lame" = yes ; then
7745 def_mp3lame="#define CONFIG_MP3LAME 1"
7746 _ld_mp3lame=-lmp3lame
7747 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7748 cat > $TMPC << EOF
7749 #include <lame/lame.h>
7750 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7752 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7753 cat > $TMPC << EOF
7754 #include <lame/lame.h>
7755 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7757 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7758 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7759 if test "$_mp3lame_lavc" = yes ; then
7760 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7761 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7762 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7764 else
7765 _mp3lame_lavc=no
7766 def_mp3lame='#undef CONFIG_MP3LAME'
7767 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7769 res_comment="in libavcodec: $_mp3lame_lavc"
7770 echores "$_mp3lame"
7772 fi # test "$_mencoder" != no
7774 echocheck "mencoder"
7775 if test "$_mencoder" = yes ; then
7776 def_muxers='#define CONFIG_MUXERS 1'
7777 else
7778 # mpeg1video for vf_lavc, snow for vf_uspp / vf_mcdeint,
7779 # png for vf_screenshot, mjpeg for zr
7780 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7781 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7782 test "$_zr" = yes && _libavencoders="$_libavencoders MJPEG_ENCODER"
7783 _libavmuxers=""
7784 def_muxers='#define CONFIG_MUXERS 0'
7786 echores "$_mencoder"
7789 echocheck "UnRAR executable"
7790 if test "$_unrar_exec" = auto ; then
7791 _unrar_exec="yes"
7792 mingw32 && _unrar_exec="no"
7794 if test "$_unrar_exec" = yes ; then
7795 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7796 else
7797 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7799 echores "$_unrar_exec"
7801 echocheck "TV interface"
7802 if test "$_tv" = yes ; then
7803 def_tv='#define CONFIG_TV 1'
7804 inputmodules="tv $inputmodules"
7805 else
7806 noinputmodules="tv $noinputmodules"
7807 def_tv='#undef CONFIG_TV'
7809 echores "$_tv"
7812 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7813 echocheck "*BSD BT848 bt8xx header"
7814 _ioctl_bt848_h=no
7815 for file in "machine/ioctl_bt848.h" \
7816 "dev/bktr/ioctl_bt848.h" \
7817 "dev/video/bktr/ioctl_bt848.h" \
7818 "dev/ic/bt8xx.h" ; do
7819 cat > $TMPC <<EOF
7820 #include <sys/types.h>
7821 #include <sys/ioctl.h>
7822 #include <$file>
7823 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7825 if cc_check ; then
7826 _ioctl_bt848_h=yes
7827 _ioctl_bt848_h_name="$file"
7828 break;
7830 done
7831 if test "$_ioctl_bt848_h" = yes ; then
7832 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7833 res_comment="using $_ioctl_bt848_h_name"
7834 else
7835 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7837 echores "$_ioctl_bt848_h"
7839 echocheck "*BSD ioctl_meteor.h"
7840 _ioctl_meteor_h=no
7841 for file in "machine/ioctl_meteor.h" \
7842 "dev/bktr/ioctl_meteor.h" \
7843 "dev/video/bktr/ioctl_meteor.h" ; do
7844 cat > $TMPC <<EOF
7845 #include <sys/types.h>
7846 #include <$file>
7847 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7849 if cc_check ; then
7850 _ioctl_meteor_h=yes
7851 _ioctl_meteor_h_name="$file"
7852 break;
7854 done
7855 if test "$_ioctl_meteor_h" = yes ; then
7856 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7857 res_comment="using $_ioctl_meteor_h_name"
7858 else
7859 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7861 echores "$_ioctl_meteor_h"
7863 echocheck "*BSD BrookTree 848 TV interface"
7864 if test "$_tv_bsdbt848" = auto ; then
7865 _tv_bsdbt848=no
7866 if test "$_tv" = yes ; then
7867 cat > $TMPC <<EOF
7868 #include <sys/types.h>
7869 $def_ioctl_meteor_h_name
7870 $def_ioctl_bt848_h_name
7871 #ifdef IOCTL_METEOR_H_NAME
7872 #include IOCTL_METEOR_H_NAME
7873 #endif
7874 #ifdef IOCTL_BT848_H_NAME
7875 #include IOCTL_BT848_H_NAME
7876 #endif
7877 int main(void) {
7878 ioctl(0, METEORSINPUT, 0);
7879 ioctl(0, TVTUNER_GETFREQ, 0);
7880 return 0;
7883 cc_check && _tv_bsdbt848=yes
7886 if test "$_tv_bsdbt848" = yes ; then
7887 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7888 inputmodules="tv-bsdbt848 $inputmodules"
7889 else
7890 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7891 noinputmodules="tv-bsdbt848 $noinputmodules"
7893 echores "$_tv_bsdbt848"
7894 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7897 echocheck "DirectShow TV interface"
7898 if test "$_tv_dshow" = auto ; then
7899 _tv_dshow=no
7900 if test "$_tv" = yes && win32 ; then
7901 cat > $TMPC <<EOF
7902 #include <ole2.h>
7903 int main(void) {
7904 void* p;
7905 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7906 return 0;
7909 cc_check -lole32 -luuid && _tv_dshow=yes
7912 if test "$_tv_dshow" = yes ; then
7913 inputmodules="tv-dshow $inputmodules"
7914 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7915 extra_ldflags="$extra_ldflags -lole32 -luuid"
7916 else
7917 noinputmodules="tv-dshow $noinputmodules"
7918 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7920 echores "$_tv_dshow"
7923 echocheck "Video 4 Linux TV interface"
7924 if test "$_tv_v4l1" = auto ; then
7925 _tv_v4l1=no
7926 if test "$_tv" = yes && linux ; then
7927 cat > $TMPC <<EOF
7928 #include <stdlib.h>
7929 #include <linux/videodev.h>
7930 int main(void) { return 0; }
7932 cc_check && _tv_v4l1=yes
7935 if test "$_tv_v4l1" = yes ; then
7936 _audio_input=yes
7937 _tv_v4l=yes
7938 def_tv_v4l='#define CONFIG_TV_V4L 1'
7939 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7940 inputmodules="tv-v4l $inputmodules"
7941 else
7942 noinputmodules="tv-v4l1 $noinputmodules"
7943 def_tv_v4l='#undef CONFIG_TV_V4L'
7945 echores "$_tv_v4l1"
7948 echocheck "Video 4 Linux 2 TV interface"
7949 if test "$_tv_v4l2" = auto ; then
7950 _tv_v4l2=no
7951 if test "$_tv" = yes && linux ; then
7952 cat > $TMPC <<EOF
7953 #include <stdlib.h>
7954 #include <linux/types.h>
7955 #include <linux/videodev2.h>
7956 int main(void) { return 0; }
7958 cc_check && _tv_v4l2=yes
7961 if test "$_tv_v4l2" = yes ; then
7962 _audio_input=yes
7963 _tv_v4l=yes
7964 def_tv_v4l='#define CONFIG_TV_V4L 1'
7965 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7966 inputmodules="tv-v4l2 $inputmodules"
7967 else
7968 noinputmodules="tv-v4l2 $noinputmodules"
7969 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7971 echores "$_tv_v4l2"
7974 echocheck "Radio interface"
7975 if test "$_radio" = yes ; then
7976 def_radio='#define CONFIG_RADIO 1'
7977 inputmodules="radio $inputmodules"
7978 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7979 _radio_capture=no
7981 if test "$_radio_capture" = yes ; then
7982 _audio_input=yes
7983 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7984 else
7985 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7987 else
7988 noinputmodules="radio $noinputmodules"
7989 def_radio='#undef CONFIG_RADIO'
7990 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7991 _radio_capture=no
7993 echores "$_radio"
7994 echocheck "Capture for Radio interface"
7995 echores "$_radio_capture"
7997 echocheck "Video 4 Linux 2 Radio interface"
7998 if test "$_radio_v4l2" = auto ; then
7999 _radio_v4l2=no
8000 if test "$_radio" = yes && linux ; then
8001 cat > $TMPC <<EOF
8002 #include <stdlib.h>
8003 #include <linux/types.h>
8004 #include <linux/videodev2.h>
8005 int main(void) { return 0; }
8007 cc_check && _radio_v4l2=yes
8010 if test "$_radio_v4l2" = yes ; then
8011 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
8012 else
8013 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
8015 echores "$_radio_v4l2"
8017 echocheck "Video 4 Linux Radio interface"
8018 if test "$_radio_v4l" = auto ; then
8019 _radio_v4l=no
8020 if test "$_radio" = yes && linux ; then
8021 cat > $TMPC <<EOF
8022 #include <stdlib.h>
8023 #include <linux/videodev.h>
8024 int main(void) { return 0; }
8026 cc_check && _radio_v4l=yes
8029 if test "$_radio_v4l" = yes ; then
8030 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
8031 else
8032 def_radio_v4l='#undef CONFIG_RADIO_V4L'
8034 echores "$_radio_v4l"
8036 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8037 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8038 echocheck "*BSD BrookTree 848 Radio interface"
8039 _radio_bsdbt848=no
8040 cat > $TMPC <<EOF
8041 #include <sys/types.h>
8042 $def_ioctl_bt848_h_name
8043 #ifdef IOCTL_BT848_H_NAME
8044 #include IOCTL_BT848_H_NAME
8045 #endif
8046 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8048 cc_check && _radio_bsdbt848=yes
8049 echores "$_radio_bsdbt848"
8050 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8052 if test "$_radio_bsdbt848" = yes ; then
8053 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8054 else
8055 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8058 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8059 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8060 die "Radio driver requires BSD BT848, V4L or V4L2!"
8063 echocheck "Video 4 Linux 2 MPEG PVR interface"
8064 if test "$_pvr" = auto ; then
8065 _pvr=no
8066 if test "$_tv_v4l2" = yes && linux ; then
8067 cat > $TMPC <<EOF
8068 #include <stdlib.h>
8069 #include <inttypes.h>
8070 #include <linux/types.h>
8071 #include <linux/videodev2.h>
8072 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8074 cc_check && _pvr=yes
8077 if test "$_pvr" = yes ; then
8078 def_pvr='#define CONFIG_PVR 1'
8079 inputmodules="pvr $inputmodules"
8080 else
8081 noinputmodules="pvr $noinputmodules"
8082 def_pvr='#undef CONFIG_PVR'
8084 echores "$_pvr"
8087 echocheck "ftp"
8088 if ! beos && test "$_ftp" = yes ; then
8089 def_ftp='#define CONFIG_FTP 1'
8090 inputmodules="ftp $inputmodules"
8091 else
8092 noinputmodules="ftp $noinputmodules"
8093 def_ftp='#undef CONFIG_FTP'
8095 echores "$_ftp"
8097 echocheck "vstream client"
8098 if test "$_vstream" = auto ; then
8099 _vstream=no
8100 cat > $TMPC <<EOF
8101 #include <vstream-client.h>
8102 void vstream_error(const char *format, ... ) {}
8103 int main(void) { vstream_start(); return 0; }
8105 cc_check -lvstream-client && _vstream=yes
8107 if test "$_vstream" = yes ; then
8108 def_vstream='#define CONFIG_VSTREAM 1'
8109 inputmodules="vstream $inputmodules"
8110 extra_ldflags="$extra_ldflags -lvstream-client"
8111 else
8112 noinputmodules="vstream $noinputmodules"
8113 def_vstream='#undef CONFIG_VSTREAM'
8115 echores "$_vstream"
8118 echocheck "OSD menu"
8119 if test "$_menu" = yes ; then
8120 def_menu='#define CONFIG_MENU 1'
8121 test $_dvbin = "yes" && _menu_dvbin=yes
8122 else
8123 def_menu='#undef CONFIG_MENU'
8124 _menu_dvbin=no
8126 echores "$_menu"
8129 echocheck "Subtitles sorting"
8130 if test "$_sortsub" = yes ; then
8131 def_sortsub='#define CONFIG_SORTSUB 1'
8132 else
8133 def_sortsub='#undef CONFIG_SORTSUB'
8135 echores "$_sortsub"
8138 echocheck "XMMS inputplugin support"
8139 if test "$_xmms" = yes ; then
8140 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8141 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8142 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8143 else
8144 _xmmsplugindir=/usr/lib/xmms/Input
8145 _xmmslibdir=/usr/lib
8148 def_xmms='#define CONFIG_XMMS 1'
8149 if darwin ; then
8150 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8151 else
8152 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8154 else
8155 def_xmms='#undef CONFIG_XMMS'
8157 echores "$_xmms"
8160 # --------------- GUI specific tests begin -------------------
8161 echocheck "GUI"
8162 echo "$_gui"
8163 if test "$_gui" = yes ; then
8165 # Required libraries
8166 if test "$_libavcodec" != yes ||
8167 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8168 die "The GUI requires libavcodec with PNG support (needs zlib)."
8170 test "$_freetype" = no && test "$_bitmap_font" = no && \
8171 die "The GUI requires either FreeType or bitmap font support."
8172 if ! win32 ; then
8173 _gui_gtk=yes
8174 test "$_x11" != yes && die "X11 support required for GUI compilation."
8176 echocheck "XShape extension"
8177 if test "$_xshape" = auto ; then
8178 _xshape=no
8179 cat > $TMPC << EOF
8180 #include <X11/Xlib.h>
8181 #include <X11/Xproto.h>
8182 #include <X11/Xutil.h>
8183 #include <X11/extensions/shape.h>
8184 #include <stdlib.h>
8185 int main(void) {
8186 char *name = ":0.0";
8187 Display *wsDisplay;
8188 int exitvar = 0;
8189 int eventbase, errorbase;
8190 if (getenv("DISPLAY"))
8191 name=getenv("DISPLAY");
8192 wsDisplay=XOpenDisplay(name);
8193 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8194 exitvar=1;
8195 XCloseDisplay(wsDisplay);
8196 return exitvar;
8199 cc_check -lXext && _xshape=yes
8201 if test "$_xshape" = yes ; then
8202 def_xshape='#define CONFIG_XSHAPE 1'
8203 else
8204 die "The GUI requires the X11 extension XShape (which was not found)."
8206 echores "$_xshape"
8208 #Check for GTK
8209 if test "$_gtk1" = no ; then
8210 #Check for GTK2 :
8211 echocheck "GTK+ version"
8213 if $_pkg_config gtk+-2.0 --exists ; then
8214 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8215 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8216 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8217 echores "$_gtk"
8219 # Check for GLIB2
8220 if $_pkg_config glib-2.0 --exists ; then
8221 echocheck "glib version"
8222 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8223 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8224 echores "$_glib"
8226 def_gui='#define CONFIG_GUI 1'
8227 def_gtk2='#define CONFIG_GTK2 1'
8228 else
8229 _gtk1=yes
8230 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8232 else
8233 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8234 _gtk1=yes
8238 if test "$_gtk1" = yes ; then
8239 # Check for old GTK (1.2.x)
8240 echocheck "GTK version"
8241 if test -z "$_gtkconfig" ; then
8242 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8243 _gtkconfig="gtk-config"
8244 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8245 _gtkconfig="gtk12-config"
8246 else
8247 die "The GUI requires GTK devel packages (which were not found)."
8250 _gtk=$($_gtkconfig --version 2>&1)
8251 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8252 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8253 echores "$_gtk (using $_gtkconfig)"
8255 # Check for GLIB
8256 echocheck "glib version"
8257 if test -z "$_glibconfig" ; then
8258 if ( glib-config --version ) >/dev/null 2>&1 ; then
8259 _glibconfig="glib-config"
8260 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8261 _glibconfig="glib12-config"
8262 else
8263 die "The GUI requires GLIB devel packages (which were not found)"
8266 _glib=$($_glibconfig --version 2>&1)
8267 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8268 echores "$_glib (using $_glibconfig)"
8270 def_gui='#define CONFIG_GUI 1'
8271 def_gtk2='#undef CONFIG_GTK2'
8274 else #if ! win32
8275 _gui_win32=yes
8276 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8277 def_gui='#define CONFIG_GUI 1'
8278 def_gtk2='#undef CONFIG_GTK2'
8279 fi #if ! win32
8281 else #if test "$_gui"
8282 def_gui='#undef CONFIG_GUI'
8283 def_gtk2='#undef CONFIG_GTK2'
8284 fi #if test "$_gui"
8285 # --------------- GUI specific tests end -------------------
8288 if test "$_charset" != "noconv" ; then
8289 def_charset="#define MSG_CHARSET \"$_charset\""
8290 else
8291 def_charset="#undef MSG_CHARSET"
8292 _charset="UTF-8"
8295 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8296 echocheck "iconv program"
8297 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8298 if test "$?" -ne 0 ; then
8299 echores "no"
8300 echo "No working iconv program found, use "
8301 echo "--charset=UTF-8 to continue anyway."
8302 echo "If you also have problems with iconv library functions use --charset=noconv."
8303 echo "Messages in the GTK-2 interface will be broken then."
8304 exit 1
8305 else
8306 echores "yes"
8310 #############################################################################
8312 echocheck "automatic gdb attach"
8313 if test "$_crash_debug" = yes ; then
8314 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8315 else
8316 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8317 _crash_debug=no
8319 echores "$_crash_debug"
8321 echocheck "compiler support for noexecstack"
8322 cat > $TMPC <<EOF
8323 int main(void) { return 0; }
8325 if cc_check -Wl,-z,noexecstack ; then
8326 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8327 echores "yes"
8328 else
8329 echores "no"
8332 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8333 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8334 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8335 echores "yes"
8336 else
8337 echores "no"
8341 # Dynamic linking flags
8342 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8343 _ld_dl_dynamic=''
8344 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8345 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8346 _ld_dl_dynamic='-rdynamic'
8349 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8350 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8351 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8353 def_debug='#undef MP_DEBUG'
8354 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8357 echocheck "joystick"
8358 def_joystick='#undef CONFIG_JOYSTICK'
8359 if test "$_joystick" = yes ; then
8360 if linux ; then
8361 # TODO add some check
8362 def_joystick='#define CONFIG_JOYSTICK 1'
8363 else
8364 _joystick="no"
8365 res_comment="unsupported under $system_name"
8368 echores "$_joystick"
8370 echocheck "lirc"
8371 if test "$_lirc" = auto ; then
8372 _lirc=no
8373 cat > $TMPC <<EOF
8374 #include <lirc/lirc_client.h>
8375 int main(void) { return 0; }
8377 cc_check -llirc_client && _lirc=yes
8379 if test "$_lirc" = yes ; then
8380 def_lirc='#define CONFIG_LIRC 1'
8381 libs_mplayer="$libs_mplayer -llirc_client"
8382 else
8383 def_lirc='#undef CONFIG_LIRC'
8385 echores "$_lirc"
8387 echocheck "lircc"
8388 if test "$_lircc" = auto ; then
8389 _lircc=no
8390 cat > $TMPC <<EOF
8391 #include <lirc/lircc.h>
8392 int main(void) { return 0; }
8394 cc_check -llircc && _lircc=yes
8396 if test "$_lircc" = yes ; then
8397 def_lircc='#define CONFIG_LIRCC 1'
8398 libs_mplayer="$libs_mplayer -llircc"
8399 else
8400 def_lircc='#undef CONFIG_LIRCC'
8402 echores "$_lircc"
8404 if arm; then
8405 # Detect maemo development platform libraries availability (http://www.maemo.org),
8406 # they are used when run on Nokia 770|8x0
8407 echocheck "maemo (Nokia 770|8x0)"
8408 if test "$_maemo" = auto ; then
8409 _maemo=no
8410 cat > $TMPC << EOF
8411 #include <libosso.h>
8412 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8414 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8416 if test "$_maemo" = yes ; then
8417 def_maemo='#define CONFIG_MAEMO 1'
8418 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8419 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8420 else
8421 def_maemo='#undef CONFIG_MAEMO'
8423 echores "$_maemo"
8426 #############################################################################
8428 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8429 # the OMF format needs to come after the 'extern symbol prefix' check, which
8430 # uses nm.
8431 if os2 ; then
8432 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8435 # linker paths should be the same for mencoder and mplayer
8436 _ld_tmp=""
8437 for I in $libs_mplayer ; do
8438 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8439 if test -z "$_tmp" ; then
8440 extra_ldflags="$extra_ldflags $I"
8441 else
8442 _ld_tmp="$_ld_tmp $I"
8444 done
8445 libs_mplayer=$_ld_tmp
8448 #############################################################################
8449 # 64 bit file offsets?
8450 if test "$_largefiles" = yes || freebsd ; then
8451 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8452 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8453 # dvdread support requires this (for off64_t)
8454 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8458 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
8460 # This must be the last test to be performed. Any other tests following it
8461 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8462 # against libdvdread (to permit MPlayer to use its own copy of the library).
8463 # So any compilation using the flags added here but not linking against
8464 # libdvdread can fail.
8465 echocheck "DVD support (libdvdnav)"
8466 dvdnav_internal=no
8467 if test "$_dvdnav" = auto ; then
8468 if test "$_dvdread_internal" = yes ; then
8469 _dvdnav=yes
8470 dvdnav_internal=yes
8471 res_comment="internal"
8472 else
8473 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8476 if test "$_dvdnav" = auto ; then
8477 cat > $TMPC <<EOF
8478 #include <inttypes.h>
8479 #include <dvdnav/dvdnav.h>
8480 int main(void) { dvdnav_t *dvd=0; return 0; }
8482 _dvdnav=no
8483 _dvdnavdir=$($_dvdnavconfig --cflags)
8484 _dvdnavlibs=$($_dvdnavconfig --libs)
8485 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8487 if test "$_dvdnav" = yes ; then
8488 _largefiles=yes
8489 def_dvdnav='#define CONFIG_DVDNAV 1'
8490 if test "$dvdnav_internal" = yes ; then
8491 cflags_libdvdnav="-Ilibdvdnav"
8492 inputmodules="dvdnav(internal) $inputmodules"
8493 else
8494 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8495 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8496 inputmodules="dvdnav $inputmodules"
8498 else
8499 def_dvdnav='#undef CONFIG_DVDNAV'
8500 noinputmodules="dvdnav $noinputmodules"
8502 echores "$_dvdnav"
8504 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8505 # Read dvdnav comment above.
8507 mak_enable () {
8508 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8509 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8510 nprefix=$3;
8511 for part in $list; do
8512 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8513 echo "${nprefix}_$part = yes"
8515 done
8518 #############################################################################
8519 echo "Creating config.mak"
8520 cat > config.mak << EOF
8521 # -------- Generated by configure -----------
8523 # Ensure that locale settings do not interfere with shell commands.
8524 export LC_ALL = C
8526 CONFIGURATION = $_configuration
8528 CHARSET = $_charset
8529 DOC_LANGS = $language_doc
8530 DOC_LANG_ALL = $doc_lang_all
8531 MAN_LANGS = $language_man
8532 MAN_LANG_ALL = $man_lang_all
8534 prefix = \$(DESTDIR)$_prefix
8535 BINDIR = \$(DESTDIR)$_bindir
8536 DATADIR = \$(DESTDIR)$_datadir
8537 LIBDIR = \$(DESTDIR)$_libdir
8538 MANDIR = \$(DESTDIR)$_mandir
8539 CONFDIR = \$(DESTDIR)$_confdir
8541 AR = $_ar
8542 AS = $_cc
8543 CC = $_cc
8544 CXX = $_cc
8545 HOST_CC = $_host_cc
8546 INSTALL = $_install
8547 INSTALLSTRIP = $_install_strip
8548 WINDRES = $_windres
8550 CFLAGS = $CFLAGS $extra_cflags
8551 ASFLAGS = \$(CFLAGS)
8552 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8554 CFLAGS_DHAHELPER = $cflags_dhahelper
8555 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8556 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8557 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8558 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8559 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8560 CFLAGS_STACKREALIGN = $cflags_stackrealign
8561 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8562 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8564 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8565 EXTRALIBS_MPLAYER = $libs_mplayer
8566 EXTRALIBS_MENCODER = $libs_mencoder
8568 GETCH = $_getch
8569 HELP_FILE = $_mp_help
8570 TIMER = $_timer
8572 EXESUF = $_exesuf
8573 EXESUFS_ALL = .exe
8575 ARCH = $arch
8576 $(mak_enable "$arch_all" "$arch" ARCH)
8577 $(mak_enable "$subarch_all" "$subarch" ARCH)
8578 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
8580 MENCODER = $_mencoder
8581 MPLAYER = $_mplayer
8583 NEED_GETTIMEOFDAY = $_need_gettimeofday
8584 NEED_GLOB = $_need_glob
8585 NEED_MMAP = $_need_mmap
8586 NEED_SETENV = $_need_setenv
8587 NEED_SHMEM = $_need_shmem
8588 NEED_STRSEP = $_need_strsep
8589 NEED_SWAB = $_need_swab
8590 NEED_VSSCANF = $_need_vsscanf
8592 # features
8593 3DFX = $_3dfx
8594 AA = $_aa
8595 ALSA1X = $_alsa1x
8596 ALSA9 = $_alsa9
8597 ALSA5 = $_alsa5
8598 APPLE_IR = $_apple_ir
8599 APPLE_REMOTE = $_apple_remote
8600 ARTS = $_arts
8601 AUDIO_INPUT = $_audio_input
8602 BITMAP_FONT = $_bitmap_font
8603 BL = $_bl
8604 CACA = $_caca
8605 CDDA = $_cdda
8606 CDDB = $_cddb
8607 COREAUDIO = $_coreaudio
8608 COREVIDEO = $_corevideo
8609 DART = $_dart
8610 DFBMGA = $_dfbmga
8611 DGA = $_dga
8612 DIRECT3D = $_direct3d
8613 DIRECTFB = $_directfb
8614 DIRECTX = $_directx
8615 DVBIN = $_dvbin
8616 DVDNAV = $_dvdnav
8617 DVDNAV_INTERNAL = $dvdnav_internal
8618 DVDREAD = $_dvdread
8619 DVDREAD_INTERNAL = $_dvdread_internal
8620 DXR2 = $_dxr2
8621 DXR3 = $_dxr3
8622 ESD = $_esd
8623 FAAC=$_faac
8624 FAAD = $_faad
8625 FAAD_INTERNAL = $_faad_internal
8626 FASTMEMCPY = $_fastmemcpy
8627 FBDEV = $_fbdev
8628 FREETYPE = $_freetype
8629 FTP = $_ftp
8630 GIF = $_gif
8631 GGI = $_ggi
8632 GL = $_gl
8633 GL_WIN32 = $_gl_win32
8634 GL_X11 = $_gl_x11
8635 GL_SDL = $_gl_sdl
8636 MATRIXVIEW = $matrixview
8637 GUI = $_gui
8638 GUI_GTK = $_gui_gtk
8639 GUI_WIN32 = $_gui_win32
8640 HAVE_POSIX_SELECT = $_posix_select
8641 HAVE_SYS_MMAN_H = $_mman
8642 IVTV = $_ivtv
8643 JACK = $_jack
8644 JOYSTICK = $_joystick
8645 JPEG = $_jpeg
8646 KAI = $_kai
8647 KVA = $_kva
8648 LADSPA = $_ladspa
8649 LIBA52 = $_liba52
8650 LIBASS = $_ass
8651 LIBASS_INTERNAL = $ass_internal
8652 LIBBS2B = $_libbs2b
8653 LIBDCA = $_libdca
8654 LIBDV = $_libdv
8655 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8656 LIBLZO = $_liblzo
8657 LIBMAD = $_mad
8658 LIBMENU = $_menu
8659 LIBMENU_DVBIN = $_menu_dvbin
8660 LIBMPEG2 = $_libmpeg2
8661 LIBNEMESI = $_nemesi
8662 LIBNUT = $_libnut
8663 LIBSMBCLIENT = $_smb
8664 LIBTHEORA = $_theora
8665 LIRC = $_lirc
8666 LIVE555 = $_live
8667 MACOSX_FINDER = $_macosx_finder
8668 MD5SUM = $_md5sum
8669 MGA = $_mga
8670 MNG = $_mng
8671 MP3LAME = $_mp3lame
8672 MP3LIB = $_mp3lib
8673 MUSEPACK = $_musepack
8674 NAS = $_nas
8675 NATIVE_RTSP = $_native_rtsp
8676 NETWORK = $_network
8677 OPENAL = $_openal
8678 OSS = $_ossaudio
8679 PE_EXECUTABLE = $_pe_executable
8680 PNG = $_png
8681 PNM = $_pnm
8682 PRIORITY = $_priority
8683 PULSE = $_pulse
8684 PVR = $_pvr
8685 QTX_CODECS = $_qtx
8686 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8687 QTX_EMULATION = $_qtx_emulation
8688 QUARTZ = $_quartz
8689 RADIO=$_radio
8690 RADIO_CAPTURE=$_radio_capture
8691 REAL_CODECS = $_real
8692 S3FB = $_s3fb
8693 SDL = $_sdl
8694 SPEEX = $_speex
8695 STREAM_CACHE = $_stream_cache
8696 SGIAUDIO = $_sgiaudio
8697 SUNAUDIO = $_sunaudio
8698 SVGA = $_svga
8699 TDFXFB = $_tdfxfb
8700 TDFXVID = $_tdfxvid
8701 TGA = $_tga
8702 TOOLAME=$_toolame
8703 TREMOR_INTERNAL = $_tremor_internal
8704 TV = $_tv
8705 TV_BSDBT848 = $_tv_bsdbt848
8706 TV_DSHOW = $_tv_dshow
8707 TV_V4L = $_tv_v4l
8708 TV_V4L1 = $_tv_v4l1
8709 TV_V4L2 = $_tv_v4l2
8710 TWOLAME=$_twolame
8711 UNRAR_EXEC = $_unrar_exec
8712 V4L2 = $_v4l2
8713 VCD = $_vcd
8714 VDPAU = $_vdpau
8715 VESA = $_vesa
8716 VIDIX = $_vidix
8717 VIDIX_PCIDB = $_vidix_pcidb_val
8718 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8719 VIDIX_IVTV=$_vidix_drv_ivtv
8720 VIDIX_MACH64=$_vidix_drv_mach64
8721 VIDIX_MGA=$_vidix_drv_mga
8722 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8723 VIDIX_NVIDIA=$_vidix_drv_nvidia
8724 VIDIX_PM2=$_vidix_drv_pm2
8725 VIDIX_PM3=$_vidix_drv_pm3
8726 VIDIX_RADEON=$_vidix_drv_radeon
8727 VIDIX_RAGE128=$_vidix_drv_rage128
8728 VIDIX_S3=$_vidix_drv_s3
8729 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8730 VIDIX_SIS=$_vidix_drv_sis
8731 VIDIX_UNICHROME=$_vidix_drv_unichrome
8732 VORBIS = $_vorbis
8733 VSTREAM = $_vstream
8734 WII = $_wii
8735 WIN32DLL = $_win32dll
8736 WIN32WAVEOUT = $_win32waveout
8737 WIN32_EMULATION = $_win32_emulation
8738 WINVIDIX = $winvidix
8739 X11 = $_x11
8740 X264 = $_x264
8741 XANIM_CODECS = $_xanim
8742 XMGA = $_xmga
8743 XMMS_PLUGINS = $_xmms
8744 XV = $_xv
8745 XVID4 = $_xvid
8746 XVIDIX = $xvidix
8747 XVMC = $_xvmc
8748 XVR100 = $_xvr100
8749 YUV4MPEG = $_yuv4mpeg
8750 ZR = $_zr
8752 # FFmpeg
8753 LIBAVUTIL = $_libavutil
8754 LIBAVUTIL_A = $_libavutil_a
8755 LIBAVUTIL_SO = $_libavutil_so
8756 LIBAVCODEC = $_libavcodec
8757 LIBAVCODEC_A = $_libavcodec_a
8758 LIBAVCODEC_SO = $_libavcodec_so
8759 LIBAVFORMAT = $_libavformat
8760 LIBAVFORMAT_A = $_libavformat_a
8761 LIBAVFORMAT_SO = $_libavformat_so
8762 LIBPOSTPROC = $_libpostproc
8763 LIBPOSTPROC_A = $_libpostproc_a
8764 LIBPOSTPROC_SO = $_libpostproc_so
8765 LIBSWSCALE = $_libswscale
8766 LIBSWSCALE_A = $_libswscale_a
8767 LIBSWSCALE_SO = $_libswscale_so
8769 HOSTCC = \$(HOST_CC)
8770 HOSTCFLAGS = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8771 HOSTLIBS = -lm
8772 CC_O = -o \$@
8773 LD = gcc
8774 RANLIB = $_ranlib
8775 YASM = $_yasm
8776 YASMFLAGS = $YASMFLAGS
8778 CONFIG_STATIC = yes
8779 SRC_PATH = ..
8780 BUILD_ROOT = ..
8781 LIBPREF = lib
8782 LIBSUF = .a
8783 LIBNAME = \$(LIBPREF)\$(NAME)\$(LIBSUF)
8784 FULLNAME = \$(NAME)\$(BUILDSUF)
8786 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8787 CONFIG_AANDCT = yes
8788 CONFIG_DCT = yes
8789 CONFIG_DWT = yes
8790 CONFIG_FFT = yes
8791 CONFIG_GOLOMB = yes
8792 CONFIG_H264DSP = yes
8793 CONFIG_LPC = yes
8794 CONFIG_LSP = yes
8795 CONFIG_MDCT = yes
8796 CONFIG_RDFT = yes
8798 $mak_hardcoded_tables
8799 $mak_libavcodec_mpegaudio_hp
8800 !CONFIG_LIBRTMP = $nolibrtmp
8801 CONFIG_LIBRTMP = $_librtmp
8803 CONFIG_BZLIB = $bzlib
8804 CONFIG_ENCODERS = yes
8805 CONFIG_GPL = yes
8806 CONFIG_LIBDIRAC_DECODER = $_libdirac_lavc
8807 CONFIG_LIBDIRAC_ENCODER = $_libdirac_lavc
8808 CONFIG_LIBFAAC_ENCODER = $_faac_lavc
8809 CONFIG_LIBMP3LAME_ENCODER = $_mp3lame_lavc
8810 CONFIG_LIBOPENCORE_AMRNB_DECODER = $_libopencore_amrnb
8811 CONFIG_LIBOPENCORE_AMRNB_ENCODER = $_libopencore_amrnb
8812 CONFIG_LIBOPENCORE_AMRWB_DECODER = $_libopencore_amrwb
8813 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8814 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8815 CONFIG_LIBSCHROEDINGER_DECODER = $_libschroedinger_lavc
8816 CONFIG_LIBSCHROEDINGER_ENCODER = $_libschroedinger_lavc
8817 CONFIG_LIBVORBIS_ENCODER = $_libvorbis
8818 CONFIG_LIBX264_ENCODER = $_x264_lavc
8819 CONFIG_LIBXVID_ENCODER = $_xvid_lavc
8820 CONFIG_MLIB = $_mlib
8821 CONFIG_MUXERS = $_mencoder
8822 CONFIG_POSTPROC = yes
8823 CONFIG_VDPAU = $_vdpau
8824 CONFIG_XVMC = $_xvmc
8825 CONFIG_ZLIB = $_zlib
8827 HAVE_PTHREADS = $_pthreads
8828 HAVE_SHM = $_shm
8829 HAVE_W32THREADS = $_w32threads
8830 HAVE_YASM = $have_yasm
8832 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8833 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8834 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8835 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8836 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8837 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8838 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8839 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8842 #############################################################################
8844 ff_config_enable () {
8845 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8846 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8847 _nprefix=$3;
8848 test -z "$_nprefix" && _nprefix='CONFIG'
8849 for part in $list; do
8850 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8851 echo "#define ${_nprefix}_$part 1"
8852 else
8853 echo "#define ${_nprefix}_$part 0"
8855 done
8858 echo "Creating config.h"
8859 cat > $TMPH << EOF
8860 /*----------------------------------------------------------------------------
8861 ** This file has been automatically generated by configure any changes in it
8862 ** will be lost when you run configure again.
8863 ** Instead of modifying definitions here, use the --enable/--disable options
8864 ** of the configure script! See ./configure --help for details.
8865 *---------------------------------------------------------------------------*/
8867 #ifndef MPLAYER_CONFIG_H
8868 #define MPLAYER_CONFIG_H
8870 /* Undefine this if you do not want to select mono audio (left or right)
8871 with a stereo MPEG layer 2/3 audio stream. The command line option
8872 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8873 right-only), with 0 being the default.
8875 #define CONFIG_FAKE_MONO 1
8877 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8878 #define MAX_OUTBURST 65536
8880 /* set up audio OUTBURST. Do not change this! */
8881 #define OUTBURST 512
8883 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8884 #undef FAST_OSD
8885 #undef FAST_OSD_TABLE
8887 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8888 #define MPEG12_POSTPROC 1
8889 #define ATTRIBUTE_ALIGNED_MAX 16
8893 #define CONFIGURATION "$_configuration"
8895 #define MPLAYER_DATADIR "$_datadir"
8896 #define MPLAYER_CONFDIR "$_confdir"
8897 #define MPLAYER_LIBDIR "$_libdir"
8899 /* definitions needed by included libraries */
8900 #define HAVE_INTTYPES_H 1
8901 /* libmpeg2 + FFmpeg */
8902 $def_fast_inttypes
8903 /* libdvdcss */
8904 #define HAVE_ERRNO_H 1
8905 /* libdvdcss + libdvdread */
8906 #define HAVE_LIMITS_H 1
8907 /* libdvdcss + libfaad2 */
8908 #define HAVE_UNISTD_H 1
8909 /* libfaad2 + libdvdread */
8910 #define STDC_HEADERS 1
8911 #define HAVE_MEMCPY 1
8912 /* libfaad2 */
8913 #define HAVE_STRING_H 1
8914 #define HAVE_STRINGS_H 1
8915 #define HAVE_SYS_STAT_H 1
8916 #define HAVE_SYS_TYPES_H 1
8917 /* libdvdnav */
8918 #define READ_CACHE_TRACE 0
8919 /* libdvdread */
8920 #define HAVE_DLFCN_H 1
8921 $def_dvdcss
8924 /* system headers */
8925 $def_alloca_h
8926 $def_alsa_asoundlib_h
8927 $def_altivec_h
8928 $def_malloc_h
8929 $def_mman_h
8930 $def_mman_has_map_failed
8931 $def_soundcard_h
8932 $def_sys_asoundlib_h
8933 $def_sys_soundcard_h
8934 $def_sys_sysinfo_h
8935 $def_termios_h
8936 $def_termios_sys_h
8937 $def_winsock2_h
8940 /* system functions */
8941 $def_gethostbyname2
8942 $def_gettimeofday
8943 $def_glob
8944 $def_langinfo
8945 $def_lrintf
8946 $def_map_memalign
8947 $def_memalign
8948 $def_nanosleep
8949 $def_posix_select
8950 $def_select
8951 $def_setenv
8952 $def_setmode
8953 $def_shm
8954 $def_strsep
8955 $def_swab
8956 $def_sysi86
8957 $def_sysi86_iv
8958 $def_termcap
8959 $def_termios
8960 $def_vsscanf
8963 /* system-specific features */
8964 $def_asmalign_pot
8965 $def_builtin_expect
8966 $def_dl
8967 $def_dos_paths
8968 $def_extern_asm
8969 $def_extern_prefix
8970 $def_iconv
8971 $def_kstat
8972 $def_macosx_bundle
8973 $def_macosx_finder
8974 $def_maemo
8975 $def_named_asm_args
8976 $def_priority
8977 $def_quicktime
8978 $def_restrict_keyword
8979 $def_rtc
8980 $def_unrar_exec
8983 /* configurable options */
8984 $def_charset
8985 $def_crash_debug
8986 $def_debug
8987 $def_dynamic_plugins
8988 $def_fastmemcpy
8989 $def_menu
8990 $def_runtime_cpudetection
8991 $def_sighandler
8992 $def_sortsub
8993 $def_stream_cache
8994 $def_pthread_cache
8997 /* CPU stuff */
8998 #define __CPU__ $iproc
8999 $def_words_endian
9000 $def_bigendian
9001 $(ff_config_enable "$arch_all" "$arch" "ARCH")
9002 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
9003 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
9006 /* DVD/VCD/CD */
9007 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
9008 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
9009 $def_bsdi_dvd
9010 $def_cddb
9011 $def_cdio
9012 $def_cdparanoia
9013 $def_cdrom
9014 $def_dvd
9015 $def_dvd_bsd
9016 $def_dvd_darwin
9017 $def_dvd_linux
9018 $def_dvd_openbsd
9019 $def_dvdio
9020 $def_dvdnav
9021 $def_dvdread
9022 $def_hpux_scsi_h
9023 $def_libcdio
9024 $def_sol_scsi_h
9025 $def_vcd
9028 /* codec libraries */
9029 $def_faac
9030 $def_faad
9031 $def_faad_internal
9032 $def_liba52
9033 $def_libdca
9034 $def_libdv
9035 $def_liblzo
9036 $def_libmpeg2
9037 $def_mad
9038 $def_mp3lame
9039 $def_mp3lame_preset
9040 $def_mp3lame_preset_medium
9041 $def_mp3lib
9042 $def_musepack
9043 $def_speex
9044 $def_theora
9045 $def_toolame
9046 $def_tremor
9047 $def_twolame
9048 $def_vorbis
9049 $def_x264
9050 $def_xvid
9051 $def_zlib
9053 $def_libnut
9056 /* binary codecs */
9057 $def_qtx
9058 $def_qtx_win32
9059 $def_real
9060 $def_win32_loader
9061 $def_win32dll
9062 $def_xanim
9063 $def_xmms
9064 #define BINARY_CODECS_PATH "$_codecsdir"
9065 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9068 /* GUI */
9069 $def_gtk2
9070 $def_gui
9071 $def_xshape
9074 /* Audio output drivers */
9075 $def_alsa
9076 $def_alsa1x
9077 $def_alsa5
9078 $def_alsa9
9079 $def_arts
9080 $def_coreaudio
9081 $def_dart
9082 $def_esd
9083 $def_esd_latency
9084 $def_jack
9085 $def_kai
9086 $def_nas
9087 $def_openal
9088 $def_openal_h
9089 $def_ossaudio
9090 $def_ossaudio_devdsp
9091 $def_ossaudio_devmixer
9092 $def_pulse
9093 $def_sgiaudio
9094 $def_sunaudio
9095 $def_win32waveout
9097 $def_ladspa
9098 $def_libbs2b
9101 /* input */
9102 $def_apple_ir
9103 $def_apple_remote
9104 $def_ioctl_bt848_h_name
9105 $def_ioctl_meteor_h_name
9106 $def_joystick
9107 $def_lirc
9108 $def_lircc
9109 $def_pvr
9110 $def_radio
9111 $def_radio_bsdbt848
9112 $def_radio_capture
9113 $def_radio_v4l
9114 $def_radio_v4l2
9115 $def_tv
9116 $def_tv_bsdbt848
9117 $def_tv_dshow
9118 $def_tv_v4l
9119 $def_tv_v4l1
9120 $def_tv_v4l2
9123 /* font stuff */
9124 $def_ass
9125 $def_ass_internal
9126 $def_bitmap_font
9127 $def_enca
9128 $def_fontconfig
9129 $def_freetype
9130 $def_fribidi
9133 /* networking */
9134 $def_closesocket
9135 $def_ftp
9136 $def_inet6
9137 $def_inet_aton
9138 $def_inet_pton
9139 $def_live
9140 $def_nemesi
9141 $def_network
9142 $def_smb
9143 $def_socklen_t
9144 $def_struct_ipv6_mreq
9145 $def_struct_sockaddr_in6
9146 $def_struct_sockaddr_sa_len
9147 $def_vstream
9148 $def_addrinfo
9149 $def_getaddrinfo
9150 $def_sockaddr_storage
9153 /* libvo options */
9154 $def_3dfx
9155 $def_aa
9156 $def_bl
9157 $def_caca
9158 $def_corevideo
9159 $def_dfbmga
9160 $def_dga
9161 $def_dga1
9162 $def_dga2
9163 $def_direct3d
9164 $def_directfb
9165 $def_directfb_version
9166 $def_directx
9167 $def_dvb
9168 $def_dvbin
9169 $def_dxr2
9170 $def_dxr3
9171 $def_fbdev
9172 $def_ggi
9173 $def_ggiwmh
9174 $def_gif
9175 $def_gif_4
9176 $def_gif_tvt_hack
9177 $def_gl
9178 $def_gl_win32
9179 $def_gl_x11
9180 $def_gl_sdl
9181 $def_matrixview
9182 $def_ivtv
9183 $def_jpeg
9184 $def_kva
9185 $def_md5sum
9186 $def_mga
9187 $def_mng
9188 $def_png
9189 $def_pnm
9190 $def_quartz
9191 $def_s3fb
9192 $def_sdl
9193 $def_sdl_sdl_h
9194 $def_svga
9195 $def_tdfxfb
9196 $def_tdfxvid
9197 $def_tga
9198 $def_v4l2
9199 $def_vdpau
9200 $def_vesa
9201 $def_vidix
9202 $def_vidix_drv_cyberblade
9203 $def_vidix_drv_ivtv
9204 $def_vidix_drv_mach64
9205 $def_vidix_drv_mga
9206 $def_vidix_drv_mga_crtc2
9207 $def_vidix_drv_nvidia
9208 $def_vidix_drv_pm3
9209 $def_vidix_drv_radeon
9210 $def_vidix_drv_rage128
9211 $def_vidix_drv_s3
9212 $def_vidix_drv_sh_veu
9213 $def_vidix_drv_sis
9214 $def_vidix_drv_unichrome
9215 $def_vidix_pfx
9216 $def_vm
9217 $def_wii
9218 $def_x11
9219 $def_xdpms
9220 $def_xf86keysym
9221 $def_xinerama
9222 $def_xmga
9223 $def_xss
9224 $def_xv
9225 $def_xvmc
9226 $def_xvr100
9227 $def_yuv4mpeg
9228 $def_zr
9231 /* FFmpeg */
9232 $def_libavcodec
9233 $def_libavcodec_a
9234 $def_libavcodec_so
9235 $def_libavformat
9236 $def_libavformat_a
9237 $def_libavformat_so
9238 $def_libavutil
9239 $def_libavutil_a
9240 $def_libavutil_so
9241 $def_libpostproc
9242 $def_libpostproc_a
9243 $def_libpostproc_so
9244 $def_libswscale
9245 $def_libswscale_a
9246 $def_libswscale_so
9248 #define CONFIG_DECODERS 1
9249 #define CONFIG_ENCODERS 1
9250 #define CONFIG_DEMUXERS 1
9251 $def_muxers
9253 $def_arpa_inet_h
9254 $def_bswap
9255 $def_bzlib
9256 $def_dcbzl
9257 $def_exp2
9258 $def_exp2f
9259 $def_fast_64bit
9260 $def_fast_unaligned
9261 $def_hardcoded_tables
9262 $def_libavcodec_mpegaudio_hp
9263 $def_llrint
9264 $def_llrintf
9265 $def_local_aligned_8
9266 $def_local_aligned_16
9267 $def_log2
9268 $def_log2f
9269 $def_lrint
9270 $def_memalign_hack
9271 $def_mlib
9272 $def_mkstemp
9273 $def_posix_memalign
9274 $def_pthreads
9275 $def_round
9276 $def_roundf
9277 $def_ten_operands
9278 $def_threads
9279 $def_truncf
9280 $def_xform_asm
9281 $def_yasm
9283 #define CONFIG_FASTDIV 0
9284 #define CONFIG_FFSERVER 0
9285 #define CONFIG_GPL 1
9286 #define CONFIG_GRAY 0
9287 #define CONFIG_LIBVORBIS 0
9288 #define CONFIG_POWERPC_PERF 0
9289 #define CONFIG_SMALL 0
9290 #define CONFIG_SWSCALE_ALPHA 1
9292 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9293 #define CONFIG_IPV6 1
9294 #else
9295 #define CONFIG_IPV6 0
9296 #endif
9298 #define HAVE_ATTRIBUTE_PACKED 1
9299 #define HAVE_GETHRTIME 0
9300 #define HAVE_INLINE_ASM 1
9301 #define HAVE_LDBRX 0
9302 #define HAVE_POLL_H 1
9303 #define HAVE_PPC4XX 0
9304 #define HAVE_STRERROR_R 0
9305 #define HAVE_SYS_SELECT_H 0
9306 #define HAVE_VFP_ARGS 1
9307 #define HAVE_VIRTUALALLOC 0
9309 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9310 #define CONFIG_AANDCT 1
9311 #define CONFIG_DCT 1
9312 #define CONFIG_DWT 1
9313 #define CONFIG_FFT 1
9314 #define CONFIG_GOLOMB 1
9315 #define CONFIG_H264DSP 1
9316 #define CONFIG_LPC 1
9317 #define CONFIG_MDCT 1
9318 #define CONFIG_RDFT 1
9320 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9321 $def_ebx_available
9322 #ifndef MP_DEBUG
9323 #define HAVE_EBP_AVAILABLE 1
9324 #else
9325 #define HAVE_EBP_AVAILABLE 0
9326 #endif
9328 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9329 #define FFMPEG_LICENSE "GPL version 2 or later"
9331 /* External libraries used through libavcodec. */
9332 $def_faac_lavc
9333 $def_libdirac_lavc
9334 $def_libopencore_amrnb
9335 $def_libopencore_amrwb
9336 $def_libopenjpeg
9337 $def_librtmp
9338 $def_libschroedinger_lavc
9339 $def_mp3lame_lavc
9340 $def_x264_lavc
9341 $def_xvid_lavc
9343 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9344 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9345 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9346 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9347 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9348 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9349 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9350 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9352 #endif /* MPLAYER_CONFIG_H */
9355 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9356 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9358 ############################################################################
9360 # Create avconfig.h for FFmpeg.
9361 cat > "$TMPH" << EOF
9362 /* Generated by mpconfigure */
9363 #ifndef AVUTIL_AVCONFIG_H
9364 #define AVUTIL_AVCONFIG_H
9365 $def_av_bigendian
9366 #endif /* AVUTIL_AVCONFIG_H */
9369 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9370 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9372 #############################################################################
9374 cat << EOF
9376 Config files successfully generated by ./configure $_configuration !
9378 Install prefix: $_prefix
9379 Data directory: $_datadir
9380 Config direct.: $_confdir
9382 Byte order: $_byte_order
9383 Optimizing for: $_optimizing
9385 Languages:
9386 Messages/GUI: $language_msg
9387 Manual pages: $language_man
9388 Documentation: $language_doc
9390 Enabled optional drivers:
9391 Input: $inputmodules
9392 Codecs: $codecmodules
9393 Audio output: $aomodules
9394 Video output: $vomodules
9396 Disabled optional drivers:
9397 Input: $noinputmodules
9398 Codecs: $nocodecmodules
9399 Audio output: $noaomodules
9400 Video output: $novomodules
9402 'config.h' and 'config.mak' contain your configuration options.
9403 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9404 compile *** DO NOT REPORT BUGS if you tweak these files ***
9406 'make' will now compile MPlayer and 'make install' will install it.
9407 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9412 if test "$_mtrr" = yes ; then
9413 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9414 echo
9417 if ! x86_32; then
9418 cat <<EOF
9419 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9420 operating system ($system_name). You may encounter a few files that cannot
9421 be played due to missing open source video/audio codec support.
9427 cat <<EOF
9428 Check $TMPLOG if you wonder why an autodetection failed (make sure
9429 development headers/packages are installed).
9431 NOTE: The --enable-* parameters unconditionally force options on, completely
9432 skipping autodetection. This behavior is unlike what you may be used to from
9433 autoconf-based configure scripts that can decide to override you. This greater
9434 level of control comes at a price. You may have to provide the correct compiler
9435 and linker flags yourself.
9436 If you used one of these options (except --enable-menu and similar ones that
9437 turn on internal features) and experience a compilation or linking failure,
9438 make sure you have passed the necessary compiler/linker flags to configure.
9440 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9444 if test "$_warn_CFLAGS" = yes; then
9445 cat <<EOF
9447 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9448 but:
9450 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9452 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9453 To do so, execute 'CFLAGS= ./configure <options>'
9458 # Last move:
9459 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"