sync with en/mplayer.1 r30075
[mplayer/glamo.git] / configure
blob79a3395021c1f0607ff7da881d7984fb5d9492c6
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi 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 [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --disable-liba52-internal disable builtin liba52 [autodetect]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
345 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
346 --disable-decoder=DECODER disable specified FFmpeg decoder
347 --enable-decoder=DECODER enable specified FFmpeg decoder
348 --disable-encoder=ENCODER disable specified FFmpeg encoder
349 --enable-encoder=ENCODER enable specified FFmpeg encoder
350 --disable-parser=PARSER disable specified FFmpeg parser
351 --enable-parser=PARSER enable specified FFmpeg parser
352 --disable-protocol=PROTO disable specified FFmpeg protocol
353 --enable-protocol=PROTO enable specified FFmpeg protocol
354 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
355 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
356 --disable-muxer=MUXER disable specified FFmpeg muxer
357 --enable-muxer=MUXER enable specified FFmpeg muxer
359 Video output:
360 --disable-vidix disable VIDIX [for x86 *nix]
361 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
362 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
363 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
364 --disable-vidix-pcidb disable VIDIX PCI device name database
365 --enable-dhahelper enable VIDIX dhahelper support
366 --enable-svgalib_helper enable VIDIX svgalib_helper support
367 --enable-gl enable OpenGL video output [autodetect]
368 --enable-dga2 enable DGA 2 support [autodetect]
369 --enable-dga1 enable DGA 1 support [autodetect]
370 --enable-vesa enable VESA video output [autodetect]
371 --enable-svga enable SVGAlib video output [autodetect]
372 --enable-sdl enable SDL video output [autodetect]
373 --enable-kva enable KVA video output [autodetect]
374 --enable-aa enable AAlib video output [autodetect]
375 --enable-caca enable CACA video output [autodetect]
376 --enable-ggi enable GGI video output [autodetect]
377 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
378 --enable-direct3d enable Direct3D video output [autodetect]
379 --enable-directx enable DirectX video output [autodetect]
380 --enable-dxr2 enable DXR2 video output [autodetect]
381 --enable-dxr3 enable DXR3/H+ video output [autodetect]
382 --enable-ivtv enable IVTV TV-Out video output [autodetect]
383 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
384 --enable-dvb enable DVB video output [autodetect]
385 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
386 --enable-mga enable mga_vid video output [autodetect]
387 --enable-xmga enable mga_vid X11 video output [autodetect]
388 --enable-xv enable Xv video output [autodetect]
389 --enable-xvmc enable XvMC acceleration [disable]
390 --enable-vdpau enable VDPAU acceleration [autodetect]
391 --enable-vm enable XF86VidMode support [autodetect]
392 --enable-xinerama enable Xinerama support [autodetect]
393 --enable-x11 enable X11 video output [autodetect]
394 --enable-xshape enable XShape support [autodetect]
395 --disable-xss disable screensaver support via xss [autodetect]
396 --enable-fbdev enable FBDev video output [autodetect]
397 --enable-mlib enable mediaLib video output (Solaris) [disable]
398 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
399 --enable-tdfxfb enable tdfxfb video output [disable]
400 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
401 --enable-wii enable Nintendo Wii/GameCube video output [disable]
402 --enable-directfb enable DirectFB video output [autodetect]
403 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
404 --enable-bl enable Blinkenlights video output [disable]
405 --enable-tdfxvid enable tdfx_vid video output [disable]
406 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
407 --disable-tga disable Targa video output [enable]
408 --disable-pnm disable PNM video output [enable]
409 --disable-md5sum disable md5sum video output [enable]
410 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
411 --disable-corevideo disable CoreVideo video output [autodetect]
412 --disable-quartz disable Quartz video output [autodetect]
414 Audio output:
415 --disable-alsa disable ALSA audio output [autodetect]
416 --disable-ossaudio disable OSS audio output [autodetect]
417 --disable-arts disable aRts audio output [autodetect]
418 --disable-esd disable esd audio output [autodetect]
419 --disable-pulse disable Pulseaudio audio output [autodetect]
420 --disable-jack disable JACK audio output [autodetect]
421 --disable-openal disable OpenAL audio output [autodetect]
422 --disable-nas disable NAS audio output [autodetect]
423 --disable-sgiaudio disable SGI audio output [autodetect]
424 --disable-sunaudio disable Sun audio output [autodetect]
425 --disable-dart disable DART audio output [autodetect]
426 --disable-win32waveout disable Windows waveout audio output [autodetect]
427 --disable-coreaudio disable CoreAudio audio output [autodetect]
428 --disable-select disable using select() on the audio device [enable]
430 Language options:
431 --charset=charset convert the console messages to this character set
432 --language-doc=lang language to use for the documentation [en]
433 --language-man=lang language to use for the man pages [en]
434 --language-msg=lang language to use for the messages and the GUI [en]
435 --language=lang default language to use [en]
436 Specific options override --language. You can pass a list of languages separated
437 by whitespace or commas instead of a single language. Nonexisting translations
438 will be dropped from each list. All documentation and man page translations
439 available in the list will be installed, for the messages the first available
440 translation will be used. The value "all" will activate all translations. The
441 LINGUAS environment variable is honored. In all cases the fallback is English.
442 Available values are: all $msg_lang_all
444 Miscellaneous options:
445 --enable-runtime-cpudetection enable runtime CPU detection [disable]
446 --enable-cross-compile enable cross-compilation [autodetect]
447 --cc=COMPILER C compiler to build MPlayer [gcc]
448 --host-cc=COMPILER C compiler for tools needed while building [gcc]
449 --as=ASSEMBLER assembler to build MPlayer [as]
450 --nm=NM nm tool to build MPlayer [nm]
451 --yasm=YASM Yasm assembler to build MPlayer [yasm]
452 --ar=AR librarian to build MPlayer [ar]
453 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
454 --windres=WINDRES windres to build MPlayer [windres]
455 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
456 --enable-static build a statically linked binary
457 --with-install=PATH path to a custom install program
459 Advanced options:
460 --enable-mmx enable MMX [autodetect]
461 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
462 --enable-3dnow enable 3DNow! [autodetect]
463 --enable-3dnowext enable extended 3DNow! [autodetect]
464 --enable-sse enable SSE [autodetect]
465 --enable-sse2 enable SSE2 [autodetect]
466 --enable-ssse3 enable SSSE3 [autodetect]
467 --enable-shm enable shm [autodetect]
468 --enable-altivec enable AltiVec (PowerPC) [autodetect]
469 --enable-armv5te enable DSP extensions (ARM) [autodetect]
470 --enable-armv6 enable ARMv6 (ARM) [autodetect]
471 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
472 --enable-armvfp enable ARM VFP (ARM) [autodetect]
473 --enable-neon enable NEON (ARM) [autodetect]
474 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
475 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
476 --enable-big-endian force byte order to big-endian [autodetect]
477 --enable-debug[=1-3] compile-in debugging information [disable]
478 --enable-profile compile-in profiling information [disable]
479 --disable-sighandler disable sighandler for crashes [enable]
480 --enable-crash-debug enable automatic gdb attach on crash [disable]
481 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
483 Use these options if autodetection fails:
484 --extra-cflags=FLAGS extra CFLAGS
485 --extra-ldflags=FLAGS extra LDFLAGS
486 --extra-libs=FLAGS extra linker flags
487 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
488 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
489 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
491 --with-freetype-config=PATH path to freetype-config
492 --with-fribidi-config=PATH path to fribidi-config
493 --with-glib-config=PATH path to glib*-config
494 --with-gtk-config=PATH path to gtk*-config
495 --with-sdl-config=PATH path to sdl*-config
496 --with-dvdnav-config=PATH path to dvdnav-config
497 --with-dvdread-config=PATH path to dvdread-config
499 This configure script is NOT autoconf-based, even though its output is similar.
500 It will try to autodetect all configuration options. If you --enable an option
501 it will be forcefully turned on, skipping autodetection. This can break
502 compilation, so you need to know what you are doing.
504 exit 0
505 } #show_help()
507 # GOTCHA: the variables below defines the default behavior for autodetection
508 # and have - unless stated otherwise - at least 2 states : yes no
509 # If autodetection is available then the third state is: auto
510 _mmx=auto
511 _3dnow=auto
512 _3dnowext=auto
513 _mmxext=auto
514 _sse=auto
515 _sse2=auto
516 _ssse3=auto
517 _cmov=auto
518 _fast_cmov=auto
519 _armv5te=auto
520 _armv6=auto
521 _armv6t2=auto
522 _armvfp=auto
523 neon=auto
524 _iwmmxt=auto
525 _mtrr=auto
526 _altivec=auto
527 _install=install
528 _ranlib=ranlib
529 _windres=windres
530 _cc=cc
531 _ar=ar
532 test "$CC" && _cc="$CC"
533 _as=auto
534 _nm=auto
535 _yasm=yasm
536 _runtime_cpudetection=no
537 _cross_compile=auto
538 _prefix="/usr/local"
539 _libavutil_a=auto
540 _libavutil_so=auto
541 _libavcodec_a=auto
542 _libopencore_amrnb=auto
543 _libopencore_amrwb=auto
544 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
545 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
546 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
548 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
549 _libavparsers=$_libavparsers_all
550 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
551 _libavbsfs=$_libavbsfs_all
552 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
553 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER//)
554 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
555 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
556 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
557 _libavprotocols=""
558 _libavcodec_so=auto
559 _libavformat_a=auto
560 _libavformat_so=auto
561 _libpostproc_a=auto
562 _libpostproc_so=auto
563 _libswscale_a=auto
564 _libswscale_so=auto
565 _libavcodec_mpegaudio_hp=yes
566 _mencoder=yes
567 _mplayer=yes
568 _x11=auto
569 _xshape=auto
570 _xss=auto
571 _dga1=auto
572 _dga2=auto
573 _xv=auto
574 _xvmc=no #auto when complete
575 _vdpau=auto
576 _sdl=auto
577 _kva=auto
578 _direct3d=auto
579 _directx=auto
580 _win32waveout=auto
581 _nas=auto
582 _png=auto
583 _mng=auto
584 _jpeg=auto
585 _pnm=yes
586 _md5sum=yes
587 _yuv4mpeg=yes
588 _gif=auto
589 _gl=auto
590 _ggi=auto
591 _ggiwmh=auto
592 _aa=auto
593 _caca=auto
594 _svga=auto
595 _vesa=auto
596 _fbdev=auto
597 _dvb=auto
598 _dvbhead=auto
599 _dxr2=auto
600 _dxr3=auto
601 _ivtv=auto
602 _v4l2=auto
603 _iconv=auto
604 _langinfo=auto
605 _rtc=auto
606 _ossaudio=auto
607 _arts=auto
608 _esd=auto
609 _pulse=auto
610 _jack=auto
611 _dart=auto
612 _openal=auto
613 _libcdio=auto
614 _liblzo=auto
615 _mad=auto
616 _mp3lame=auto
617 _mp3lame_lavc=auto
618 _toolame=auto
619 _twolame=auto
620 _tremor=auto
621 _tremor_internal=yes
622 _tremor_low=no
623 _libvorbis=auto
624 _speex=auto
625 _theora=auto
626 _mp3lib=auto
627 _liba52=auto
628 _liba52_internal=auto
629 _libdca=auto
630 _libmpeg2=auto
631 _faad=auto
632 _faad_internal=auto
633 _faad_fixed=no
634 _faac=auto
635 _faac_lavc=auto
636 _ladspa=auto
637 _libbs2b=auto
638 _xmms=no
639 _vcd=auto
640 _dvdnav=auto
641 _dvdnavconfig=dvdnav-config
642 _dvdreadconfig=dvdread-config
643 _dvdread=auto
644 _dvdread_internal=auto
645 _libdvdcss_internal=auto
646 _xanim=auto
647 _real=auto
648 _live=auto
649 _nemesi=auto
650 _native_rtsp=yes
651 _xinerama=auto
652 _mga=auto
653 _xmga=auto
654 _vm=auto
655 _xf86keysym=auto
656 _mlib=no #broken, thus disabled
657 _sgiaudio=auto
658 _sunaudio=auto
659 _alsa=auto
660 _fastmemcpy=yes
661 _unrar_exec=auto
662 _win32dll=auto
663 _select=yes
664 _radio=no
665 _radio_capture=no
666 _radio_v4l=auto
667 _radio_v4l2=auto
668 _radio_bsdbt848=auto
669 _tv=yes
670 _tv_v4l1=auto
671 _tv_v4l2=auto
672 _tv_bsdbt848=auto
673 _tv_dshow=auto
674 _pvr=auto
675 _network=yes
676 _winsock2_h=auto
677 _smb=auto
678 _vidix=auto
679 _vidix_pcidb=yes
680 _dhahelper=no
681 _svgalib_helper=no
682 _joystick=no
683 _xvid=auto
684 _xvid_lavc=auto
685 _x264=auto
686 _x264_lavc=auto
687 _libdirac_lavc=auto
688 _libschroedinger_lavc=auto
689 _libnut=auto
690 _lirc=auto
691 _lircc=auto
692 _apple_remote=auto
693 _apple_ir=auto
694 _gui=no
695 _gtk1=no
696 _termcap=auto
697 _termios=auto
698 _3dfx=no
699 _s3fb=no
700 _wii=no
701 _tdfxfb=no
702 _tdfxvid=no
703 _xvr100=auto
704 _tga=yes
705 _directfb=auto
706 _zr=auto
707 _bl=no
708 _largefiles=yes
709 #language=en
710 _shm=auto
711 _linux_devfs=no
712 _charset="UTF-8"
713 _dynamic_plugins=no
714 _crash_debug=no
715 _sighandler=yes
716 _libdv=auto
717 _cdparanoia=auto
718 _cddb=auto
719 _big_endian=auto
720 _bitmap_font=yes
721 _freetype=auto
722 _fontconfig=auto
723 _menu=no
724 _qtx=auto
725 _maemo=auto
726 _coreaudio=auto
727 _corevideo=auto
728 _quartz=auto
729 quicktime=auto
730 _macosx_finder=no
731 _macosx_bundle=auto
732 _sortsub=yes
733 _freetypeconfig='freetype-config'
734 _fribidi=auto
735 _fribidiconfig='fribidi-config'
736 _enca=auto
737 _inet6=auto
738 _gethostbyname2=auto
739 _ftp=yes
740 _musepack=auto
741 _vstream=auto
742 _pthreads=auto
743 _w32threads=auto
744 _ass=auto
745 ass_internal=yes
746 _rpath=no
747 _asmalign_pot=auto
748 _stream_cache=yes
749 _priority=no
750 def_dos_paths="#define HAVE_DOS_PATHS 0"
751 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
752 def_priority="#undef CONFIG_PRIORITY"
753 def_pthread_cache="#undef PTHREAD_CACHE"
754 _need_shmem=yes
755 for ac_option do
756 case "$ac_option" in
757 --help|-help|-h)
758 show_help
760 --prefix=*)
761 _prefix=$(echo $ac_option | cut -d '=' -f 2)
763 --bindir=*)
764 _bindir=$(echo $ac_option | cut -d '=' -f 2)
766 --datadir=*)
767 _datadir=$(echo $ac_option | cut -d '=' -f 2)
769 --mandir=*)
770 _mandir=$(echo $ac_option | cut -d '=' -f 2)
772 --confdir=*)
773 _confdir=$(echo $ac_option | cut -d '=' -f 2)
775 --libdir=*)
776 _libdir=$(echo $ac_option | cut -d '=' -f 2)
778 --codecsdir=*)
779 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
781 --win32codecsdir=*)
782 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
784 --xanimcodecsdir=*)
785 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
787 --realcodecsdir=*)
788 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
791 --with-install=*)
792 _install=$(echo $ac_option | cut -d '=' -f 2 )
794 --with-xvmclib=*)
795 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
798 --with-sdl-config=*)
799 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
801 --with-freetype-config=*)
802 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
804 --with-fribidi-config=*)
805 _fribidiconfig=$(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-pnm) _pnm=yes ;;
941 --disable-pnm) _pnm=no ;;
942 --enable-md5sum) _md5sum=yes ;;
943 --disable-md5sum) _md5sum=no ;;
944 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
945 --disable-yuv4mpeg) _yuv4mpeg=no ;;
946 --enable-gif) _gif=yes ;;
947 --disable-gif) _gif=no ;;
948 --enable-gl) _gl=yes ;;
949 --disable-gl) _gl=no ;;
950 --enable-ggi) _ggi=yes ;;
951 --disable-ggi) _ggi=no ;;
952 --enable-ggiwmh) _ggiwmh=yes ;;
953 --disable-ggiwmh) _ggiwmh=no ;;
954 --enable-aa) _aa=yes ;;
955 --disable-aa) _aa=no ;;
956 --enable-caca) _caca=yes ;;
957 --disable-caca) _caca=no ;;
958 --enable-svga) _svga=yes ;;
959 --disable-svga) _svga=no ;;
960 --enable-vesa) _vesa=yes ;;
961 --disable-vesa) _vesa=no ;;
962 --enable-fbdev) _fbdev=yes ;;
963 --disable-fbdev) _fbdev=no ;;
964 --enable-dvb) _dvb=yes ;;
965 --disable-dvb) _dvb=no ;;
966 --enable-dvbhead) _dvbhead=yes ;;
967 --disable-dvbhead) _dvbhead=no ;;
968 --enable-dxr2) _dxr2=yes ;;
969 --disable-dxr2) _dxr2=no ;;
970 --enable-dxr3) _dxr3=yes ;;
971 --disable-dxr3) _dxr3=no ;;
972 --enable-ivtv) _ivtv=yes ;;
973 --disable-ivtv) _ivtv=no ;;
974 --enable-v4l2) _v4l2=yes ;;
975 --disable-v4l2) _v4l2=no ;;
976 --enable-iconv) _iconv=yes ;;
977 --disable-iconv) _iconv=no ;;
978 --enable-langinfo) _langinfo=yes ;;
979 --disable-langinfo) _langinfo=no ;;
980 --enable-rtc) _rtc=yes ;;
981 --disable-rtc) _rtc=no ;;
982 --enable-libdv) _libdv=yes ;;
983 --disable-libdv) _libdv=no ;;
984 --enable-ossaudio) _ossaudio=yes ;;
985 --disable-ossaudio) _ossaudio=no ;;
986 --enable-arts) _arts=yes ;;
987 --disable-arts) _arts=no ;;
988 --enable-esd) _esd=yes ;;
989 --disable-esd) _esd=no ;;
990 --enable-pulse) _pulse=yes ;;
991 --disable-pulse) _pulse=no ;;
992 --enable-jack) _jack=yes ;;
993 --disable-jack) _jack=no ;;
994 --enable-openal) _openal=yes ;;
995 --disable-openal) _openal=no ;;
996 --enable-dart) _dart=yes ;;
997 --disable-dart) _dart=no ;;
998 --enable-mad) _mad=yes ;;
999 --disable-mad) _mad=no ;;
1000 --enable-mp3lame) _mp3lame=yes ;;
1001 --disable-mp3lame) _mp3lame=no ;;
1002 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1003 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1004 --enable-toolame) _toolame=yes ;;
1005 --disable-toolame) _toolame=no ;;
1006 --enable-twolame) _twolame=yes ;;
1007 --disable-twolame) _twolame=no ;;
1008 --enable-libcdio) _libcdio=yes ;;
1009 --disable-libcdio) _libcdio=no ;;
1010 --enable-liblzo) _liblzo=yes ;;
1011 --disable-liblzo) _liblzo=no ;;
1012 --enable-libvorbis) _libvorbis=yes ;;
1013 --disable-libvorbis) _libvorbis=no ;;
1014 --enable-speex) _speex=yes ;;
1015 --disable-speex) _speex=no ;;
1016 --enable-tremor) _tremor=yes ;;
1017 --disable-tremor) _tremor=no ;;
1018 --enable-tremor-internal) _tremor_internal=yes ;;
1019 --disable-tremor-internal) _tremor_internal=no ;;
1020 --enable-tremor-low) _tremor_low=yes ;;
1021 --disable-tremor-low) _tremor_low=no ;;
1022 --enable-theora) _theora=yes ;;
1023 --disable-theora) _theora=no ;;
1024 --enable-mp3lib) _mp3lib=yes ;;
1025 --disable-mp3lib) _mp3lib=no ;;
1026 --enable-liba52-internal) _liba52_internal=yes ;;
1027 --disable-liba52-internal) _liba52_internal=no ;;
1028 --enable-liba52) _liba52=yes ;;
1029 --disable-liba52) _liba52=no ;;
1030 --enable-libdca) _libdca=yes ;;
1031 --disable-libdca) _libdca=no ;;
1032 --enable-libmpeg2) _libmpeg2=yes ;;
1033 --disable-libmpeg2) _libmpeg2=no ;;
1034 --enable-musepack) _musepack=yes ;;
1035 --disable-musepack) _musepack=no ;;
1036 --enable-faad) _faad=yes ;;
1037 --disable-faad) _faad=no ;;
1038 --enable-faad-internal) _faad_internal=yes ;;
1039 --disable-faad-internal) _faad_internal=no ;;
1040 --enable-faad-fixed) _faad_fixed=yes ;;
1041 --disable-faad-fixed) _faad_fixed=no ;;
1042 --enable-faac) _faac=yes ;;
1043 --disable-faac) _faac=no ;;
1044 --enable-faac-lavc) _faac_lavc=yes ;;
1045 --disable-faac-lavc) _faac_lavc=no ;;
1046 --enable-ladspa) _ladspa=yes ;;
1047 --disable-ladspa) _ladspa=no ;;
1048 --enable-libbs2b) _libbs2b=yes ;;
1049 --disable-libbs2b) _libbs2b=no ;;
1050 --enable-xmms) _xmms=yes ;;
1051 --disable-xmms) _xmms=no ;;
1052 --enable-vcd) _vcd=yes ;;
1053 --disable-vcd) _vcd=no ;;
1054 --enable-dvdread) _dvdread=yes ;;
1055 --disable-dvdread) _dvdread=no ;;
1056 --enable-dvdread-internal) _dvdread_internal=yes ;;
1057 --disable-dvdread-internal) _dvdread_internal=no ;;
1058 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1059 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1060 --enable-dvdnav) _dvdnav=yes ;;
1061 --disable-dvdnav) _dvdnav=no ;;
1062 --enable-xanim) _xanim=yes ;;
1063 --disable-xanim) _xanim=no ;;
1064 --enable-real) _real=yes ;;
1065 --disable-real) _real=no ;;
1066 --enable-live) _live=yes ;;
1067 --disable-live) _live=no ;;
1068 --enable-nemesi) _nemesi=yes ;;
1069 --disable-nemesi) _nemesi=no ;;
1070 --enable-xinerama) _xinerama=yes ;;
1071 --disable-xinerama) _xinerama=no ;;
1072 --enable-mga) _mga=yes ;;
1073 --disable-mga) _mga=no ;;
1074 --enable-xmga) _xmga=yes ;;
1075 --disable-xmga) _xmga=no ;;
1076 --enable-vm) _vm=yes ;;
1077 --disable-vm) _vm=no ;;
1078 --enable-xf86keysym) _xf86keysym=yes ;;
1079 --disable-xf86keysym) _xf86keysym=no ;;
1080 --enable-mlib) _mlib=yes ;;
1081 --disable-mlib) _mlib=no ;;
1082 --enable-sunaudio) _sunaudio=yes ;;
1083 --disable-sunaudio) _sunaudio=no ;;
1084 --enable-sgiaudio) _sgiaudio=yes ;;
1085 --disable-sgiaudio) _sgiaudio=no ;;
1086 --enable-alsa) _alsa=yes ;;
1087 --disable-alsa) _alsa=no ;;
1088 --enable-tv) _tv=yes ;;
1089 --disable-tv) _tv=no ;;
1090 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1091 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1092 --enable-tv-v4l1) _tv_v4l1=yes ;;
1093 --disable-tv-v4l1) _tv_v4l1=no ;;
1094 --enable-tv-v4l2) _tv_v4l2=yes ;;
1095 --disable-tv-v4l2) _tv_v4l2=no ;;
1096 --enable-tv-dshow) _tv_dshow=yes ;;
1097 --disable-tv-dshow) _tv_dshow=no ;;
1098 --enable-radio) _radio=yes ;;
1099 --enable-radio-capture) _radio_capture=yes ;;
1100 --disable-radio-capture) _radio_capture=no ;;
1101 --disable-radio) _radio=no ;;
1102 --enable-radio-v4l) _radio_v4l=yes ;;
1103 --disable-radio-v4l) _radio_v4l=no ;;
1104 --enable-radio-v4l2) _radio_v4l2=yes ;;
1105 --disable-radio-v4l2) _radio_v4l2=no ;;
1106 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1107 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1108 --enable-pvr) _pvr=yes ;;
1109 --disable-pvr) _pvr=no ;;
1110 --enable-fastmemcpy) _fastmemcpy=yes ;;
1111 --disable-fastmemcpy) _fastmemcpy=no ;;
1112 --enable-network) _network=yes ;;
1113 --disable-network) _network=no ;;
1114 --enable-winsock2_h) _winsock2_h=yes ;;
1115 --disable-winsock2_h) _winsock2_h=no ;;
1116 --enable-smb) _smb=yes ;;
1117 --disable-smb) _smb=no ;;
1118 --enable-vidix) _vidix=yes ;;
1119 --disable-vidix) _vidix=no ;;
1120 --with-vidix-drivers=*)
1121 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1123 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1124 --enable-dhahelper) _dhahelper=yes ;;
1125 --disable-dhahelper) _dhahelper=no ;;
1126 --enable-svgalib_helper) _svgalib_helper=yes ;;
1127 --disable-svgalib_helper) _svgalib_helper=no ;;
1128 --enable-joystick) _joystick=yes ;;
1129 --disable-joystick) _joystick=no ;;
1130 --enable-xvid) _xvid=yes ;;
1131 --disable-xvid) _xvid=no ;;
1132 --enable-xvid-lavc) _xvid_lavc=yes ;;
1133 --disable-xvid-lavc) _xvid_lavc=no ;;
1134 --enable-x264) _x264=yes ;;
1135 --disable-x264) _x264=no ;;
1136 --enable-x264-lavc) _x264_lavc=yes ;;
1137 --disable-x264-lavc) _x264_lavc=no ;;
1138 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1139 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1140 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1141 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1142 --enable-libnut) _libnut=yes ;;
1143 --disable-libnut) _libnut=no ;;
1144 --enable-libavutil_a) _libavutil_a=yes ;;
1145 --disable-libavutil_a) _libavutil_a=no ;;
1146 --enable-libavutil_so) _libavutil_so=yes ;;
1147 --disable-libavutil_so) _libavutil_so=no ;;
1148 --enable-libavcodec_a) _libavcodec_a=yes ;;
1149 --disable-libavcodec_a) _libavcodec_a=no ;;
1150 --enable-libavcodec_so) _libavcodec_so=yes ;;
1151 --disable-libavcodec_so) _libavcodec_so=no ;;
1152 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1153 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1154 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1155 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1156 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1157 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1158 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1159 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1160 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1161 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1162 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1163 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1164 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1165 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1166 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1167 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1168 --enable-libavformat_a) _libavformat_a=yes ;;
1169 --disable-libavformat_a) _libavformat_a=no ;;
1170 --enable-libavformat_so) _libavformat_so=yes ;;
1171 --disable-libavformat_so) _libavformat_so=no ;;
1172 --enable-libpostproc_a) _libpostproc_a=yes ;;
1173 --disable-libpostproc_a) _libpostproc_a=no ;;
1174 --enable-libpostproc_so) _libpostproc_so=yes ;;
1175 --disable-libpostproc_so) _libpostproc_so=no ;;
1176 --enable-libswscale_a) _libswscale_a=yes ;;
1177 --disable-libswscale_a) _libswscale_a=no ;;
1178 --enable-libswscale_so) _libswscale_so=yes ;;
1179 --disable-libswscale_so) _libswscale_so=no ;;
1180 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1181 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1183 --enable-lirc) _lirc=yes ;;
1184 --disable-lirc) _lirc=no ;;
1185 --enable-lircc) _lircc=yes ;;
1186 --disable-lircc) _lircc=no ;;
1187 --enable-apple-remote) _apple_remote=yes ;;
1188 --disable-apple-remote) _apple_remote=no ;;
1189 --enable-apple-ir) _apple_ir=yes ;;
1190 --disable-apple-ir) _apple_ir=no ;;
1191 --enable-gui) _gui=yes ;;
1192 --disable-gui) _gui=no ;;
1193 --enable-gtk1) _gtk1=yes ;;
1194 --disable-gtk1) _gtk1=no ;;
1195 --enable-termcap) _termcap=yes ;;
1196 --disable-termcap) _termcap=no ;;
1197 --enable-termios) _termios=yes ;;
1198 --disable-termios) _termios=no ;;
1199 --enable-3dfx) _3dfx=yes ;;
1200 --disable-3dfx) _3dfx=no ;;
1201 --enable-s3fb) _s3fb=yes ;;
1202 --disable-s3fb) _s3fb=no ;;
1203 --enable-wii) _wii=yes ;;
1204 --disable-wii) _wii=no ;;
1205 --enable-tdfxfb) _tdfxfb=yes ;;
1206 --disable-tdfxfb) _tdfxfb=no ;;
1207 --disable-tdfxvid) _tdfxvid=no ;;
1208 --enable-tdfxvid) _tdfxvid=yes ;;
1209 --disable-xvr100) _xvr100=no ;;
1210 --enable-xvr100) _xvr100=yes ;;
1211 --disable-tga) _tga=no ;;
1212 --enable-tga) _tga=yes ;;
1213 --enable-directfb) _directfb=yes ;;
1214 --disable-directfb) _directfb=no ;;
1215 --enable-zr) _zr=yes ;;
1216 --disable-zr) _zr=no ;;
1217 --enable-bl) _bl=yes ;;
1218 --disable-bl) _bl=no ;;
1219 --enable-mtrr) _mtrr=yes ;;
1220 --disable-mtrr) _mtrr=no ;;
1221 --enable-largefiles) _largefiles=yes ;;
1222 --disable-largefiles) _largefiles=no ;;
1223 --enable-shm) _shm=yes ;;
1224 --disable-shm) _shm=no ;;
1225 --enable-select) _select=yes ;;
1226 --disable-select) _select=no ;;
1227 --enable-linux-devfs) _linux_devfs=yes ;;
1228 --disable-linux-devfs) _linux_devfs=no ;;
1229 --enable-cdparanoia) _cdparanoia=yes ;;
1230 --disable-cdparanoia) _cdparanoia=no ;;
1231 --enable-cddb) _cddb=yes ;;
1232 --disable-cddb) _cddb=no ;;
1233 --enable-big-endian) _big_endian=yes ;;
1234 --disable-big-endian) _big_endian=no ;;
1235 --enable-bitmap-font) _bitmap_font=yes ;;
1236 --disable-bitmap-font) _bitmap_font=no ;;
1237 --enable-freetype) _freetype=yes ;;
1238 --disable-freetype) _freetype=no ;;
1239 --enable-fontconfig) _fontconfig=yes ;;
1240 --disable-fontconfig) _fontconfig=no ;;
1241 --enable-unrarexec) _unrar_exec=yes ;;
1242 --disable-unrarexec) _unrar_exec=no ;;
1243 --enable-ftp) _ftp=yes ;;
1244 --disable-ftp) _ftp=no ;;
1245 --enable-vstream) _vstream=yes ;;
1246 --disable-vstream) _vstream=no ;;
1247 --enable-pthreads) _pthreads=yes ;;
1248 --disable-pthreads) _pthreads=no ;;
1249 --enable-w32threads) _w32threads=yes ;;
1250 --disable-w32threads) _w32threads=no ;;
1251 --enable-ass) _ass=yes ;;
1252 --disable-ass) _ass=no ;;
1253 --enable-ass-internal) ass_internal=yes ;;
1254 --disable-ass-internal) ass_internal=no ;;
1255 --enable-rpath) _rpath=yes ;;
1256 --disable-rpath) _rpath=no ;;
1258 --enable-fribidi) _fribidi=yes ;;
1259 --disable-fribidi) _fribidi=no ;;
1261 --enable-enca) _enca=yes ;;
1262 --disable-enca) _enca=no ;;
1264 --enable-inet6) _inet6=yes ;;
1265 --disable-inet6) _inet6=no ;;
1267 --enable-gethostbyname2) _gethostbyname2=yes ;;
1268 --disable-gethostbyname2) _gethostbyname2=no ;;
1270 --enable-dga1) _dga1=yes ;;
1271 --disable-dga1) _dga1=no ;;
1272 --enable-dga2) _dga2=yes ;;
1273 --disable-dga2) _dga2=no ;;
1275 --enable-menu) _menu=yes ;;
1276 --disable-menu) _menu=no ;;
1278 --enable-qtx) _qtx=yes ;;
1279 --disable-qtx) _qtx=no ;;
1281 --enable-coreaudio) _coreaudio=yes ;;
1282 --disable-coreaudio) _coreaudio=no ;;
1283 --enable-corevideo) _corevideo=yes ;;
1284 --disable-corevideo) _corevideo=no ;;
1285 --enable-quartz) _quartz=yes ;;
1286 --disable-quartz) _quartz=no ;;
1287 --enable-macosx-finder) _macosx_finder=yes ;;
1288 --disable-macosx-finder) _macosx_finder=no ;;
1289 --enable-macosx-bundle) _macosx_bundle=yes;;
1290 --disable-macosx-bundle) _macosx_bundle=no;;
1292 --enable-maemo) _maemo=yes ;;
1293 --disable-maemo) _maemo=no ;;
1295 --enable-sortsub) _sortsub=yes ;;
1296 --disable-sortsub) _sortsub=no ;;
1298 --enable-crash-debug) _crash_debug=yes ;;
1299 --disable-crash-debug) _crash_debug=no ;;
1300 --enable-sighandler) _sighandler=yes ;;
1301 --disable-sighandler) _sighandler=no ;;
1302 --enable-win32dll) _win32dll=yes ;;
1303 --disable-win32dll) _win32dll=no ;;
1305 --enable-sse) _sse=yes ;;
1306 --disable-sse) _sse=no ;;
1307 --enable-sse2) _sse2=yes ;;
1308 --disable-sse2) _sse2=no ;;
1309 --enable-ssse3) _ssse3=yes ;;
1310 --disable-ssse3) _ssse3=no ;;
1311 --enable-mmxext) _mmxext=yes ;;
1312 --disable-mmxext) _mmxext=no ;;
1313 --enable-3dnow) _3dnow=yes ;;
1314 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1315 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1316 --disable-3dnowext) _3dnowext=no ;;
1317 --enable-cmov) _cmov=yes ;;
1318 --disable-cmov) _cmov=no ;;
1319 --enable-fast-cmov) _fast_cmov=yes ;;
1320 --disable-fast-cmov) _fast_cmov=no ;;
1321 --enable-altivec) _altivec=yes ;;
1322 --disable-altivec) _altivec=no ;;
1323 --enable-armv5te) _armv5te=yes ;;
1324 --disable-armv5te) _armv5te=no ;;
1325 --enable-armv6) _armv6=yes ;;
1326 --disable-armv6) _armv6=no ;;
1327 --enable-armv6t2) _armv6t2=yes ;;
1328 --disable-armv6t2) _armv6t2=no ;;
1329 --enable-armvfp) _armvfp=yes ;;
1330 --disable-armvfp) _armvfp=no ;;
1331 --enable-neon) neon=yes ;;
1332 --disable-neon) neon=no ;;
1333 --enable-iwmmxt) _iwmmxt=yes ;;
1334 --disable-iwmmxt) _iwmmxt=no ;;
1335 --enable-mmx) _mmx=yes ;;
1336 --disable-mmx) # 3Dnow! and MMX2 require MMX
1337 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1340 echo "Unknown parameter: $ac_option"
1341 exit 1
1344 esac
1345 done
1347 # Atmos: moved this here, to be correct, if --prefix is specified
1348 test -z "$_bindir" && _bindir="$_prefix/bin"
1349 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1350 test -z "$_mandir" && _mandir="$_prefix/share/man"
1351 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1352 test -z "$_libdir" && _libdir="$_prefix/lib"
1354 # Determine our OS name and CPU architecture
1355 if test -z "$_target" ; then
1356 # OS name
1357 system_name=$(uname -s 2>&1)
1358 case "$system_name" in
1359 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1361 Haiku)
1362 system_name=BeOS
1364 IRIX*)
1365 system_name=IRIX
1367 GNU/kFreeBSD)
1368 system_name=FreeBSD
1370 HP-UX*)
1371 system_name=HP-UX
1373 [cC][yY][gG][wW][iI][nN]*)
1374 system_name=CYGWIN
1376 MINGW32*)
1377 system_name=MINGW32
1379 OS/2*)
1380 system_name=OS/2
1383 system_name="$system_name-UNKNOWN"
1385 esac
1388 # host's CPU/instruction set
1389 host_arch=$(uname -p 2>&1)
1390 case "$host_arch" in
1391 i386|sparc|ppc|alpha|arm|mips|vax)
1393 powerpc) # Darwin returns 'powerpc'
1394 host_arch=ppc
1396 *) # uname -p on Linux returns 'unknown' for the processor type,
1397 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1399 # Maybe uname -m (machine hardware name) returns something we
1400 # recognize.
1402 # x86/x86pc is used by QNX
1403 case "$(uname -m 2>&1)" in
1404 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 ;;
1405 ia64) host_arch=ia64 ;;
1406 macppc|ppc) host_arch=ppc ;;
1407 ppc64) host_arch=ppc64 ;;
1408 alpha) host_arch=alpha ;;
1409 sparc) host_arch=sparc ;;
1410 sparc64) host_arch=sparc64 ;;
1411 parisc*|hppa*|9000*) host_arch=hppa ;;
1412 arm*|zaurus|cats) host_arch=arm ;;
1413 sh3|sh4|sh4a) host_arch=sh ;;
1414 s390) host_arch=s390 ;;
1415 s390x) host_arch=s390x ;;
1416 *mips*) host_arch=mips ;;
1417 vax) host_arch=vax ;;
1418 xtensa*) host_arch=xtensa ;;
1419 *) host_arch=UNKNOWN ;;
1420 esac
1422 esac
1423 else # if test -z "$_target"
1424 system_name=$(echo $_target | cut -d '-' -f 2)
1425 case "$(echo $system_name | tr A-Z a-z)" in
1426 linux) system_name=Linux ;;
1427 freebsd) system_name=FreeBSD ;;
1428 gnu/kfreebsd) system_name=FreeBSD ;;
1429 netbsd) system_name=NetBSD ;;
1430 bsd/os) system_name=BSD/OS ;;
1431 openbsd) system_name=OpenBSD ;;
1432 dragonfly) system_name=DragonFly ;;
1433 sunos) system_name=SunOS ;;
1434 qnx) system_name=QNX ;;
1435 morphos) system_name=MorphOS ;;
1436 amigaos) system_name=AmigaOS ;;
1437 mingw32*) system_name=MINGW32 ;;
1438 esac
1439 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1440 host_arch=$(echo $_target | cut -d '-' -f 1)
1441 if test $(echo $host_arch) != "x86_64" ; then
1442 host_arch=$(echo $host_arch | tr '_' '-')
1446 extra_cflags="-I. $extra_cflags"
1447 _timer=timer-linux.c
1448 _getch=getch2.c
1449 if freebsd ; then
1450 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1451 extra_cflags="$extra_cflags -I/usr/local/include"
1454 if netbsd || dragonfly ; then
1455 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1456 extra_cflags="$extra_cflags -I/usr/pkg/include"
1459 if darwin; then
1460 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1461 _timer=timer-darwin.c
1464 if aix ; then
1465 extra_ldflags="$extra_ldflags -lC"
1468 if irix ; then
1469 _ranlib='ar -r'
1470 elif linux ; then
1471 _ranlib='true'
1474 if win32 ; then
1475 _exesuf=".exe"
1476 # -lwinmm is always needed for osdep/timer-win2.c
1477 extra_ldflags="$extra_ldflags -lwinmm"
1478 _pe_executable=yes
1479 _timer=timer-win2.c
1480 _priority=yes
1481 def_dos_paths="#define HAVE_DOS_PATHS 1"
1482 def_priority="#define CONFIG_PRIORITY 1"
1485 if mingw32 ; then
1486 _getch=getch2-win.c
1487 _need_shmem=no
1490 if amigaos ; then
1491 _select=no
1492 _sighandler=no
1493 _stream_cache=no
1494 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1495 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1498 if qnx ; then
1499 extra_ldflags="$extra_ldflags -lph"
1502 if os2 ; then
1503 _exesuf=".exe"
1504 _getch=getch2-os2.c
1505 _need_shmem=no
1506 _priority=yes
1507 def_dos_paths="#define HAVE_DOS_PATHS 1"
1508 def_priority="#define CONFIG_PRIORITY 1"
1511 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1512 test "$I" && break
1513 done
1516 TMPLOG="configure.log"
1517 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1518 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1519 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1520 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1521 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1523 rm -f "$TMPLOG"
1524 echo configuration: $_configuration > "$TMPLOG"
1525 echo >> "$TMPLOG"
1528 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1529 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1533 # Checking CC version...
1534 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1535 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1536 echocheck "$_cc version"
1537 cc_vendor=intel
1538 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1539 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1540 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1541 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1542 # TODO verify older icc/ecc compatibility
1543 case $cc_version in
1545 cc_version="v. ?.??, bad"
1546 cc_fail=yes
1548 10.1|11.0|11.1)
1549 cc_version="$cc_version, ok"
1552 cc_version="$cc_version, bad"
1553 cc_fail=yes
1555 esac
1556 echores "$cc_version"
1557 else
1558 for _cc in "$_cc" cc gcc ; do
1559 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1560 if test "$cc_name_tmp" = "gcc"; then
1561 cc_name=$cc_name_tmp
1562 echocheck "$_cc version"
1563 cc_vendor=gnu
1564 cc_version=$($_cc -dumpversion 2>&1)
1565 case $cc_version in
1566 2.96*)
1567 cc_fail=yes
1570 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1571 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1572 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1574 esac
1575 echores "$cc_version"
1576 break
1578 done
1579 fi # icc
1580 test "$cc_fail" = yes && die "unsupported compiler version"
1582 if test -z "$_target" && x86 ; then
1583 cat > $TMPC << EOF
1584 int main(void) {
1585 int test[(int)sizeof(char *)-7];
1586 return 0;
1589 cc_check && host_arch=x86_64 || host_arch=i386
1592 echo "Detected operating system: $system_name"
1593 echo "Detected host architecture: $host_arch"
1595 echocheck "host cc"
1596 test "$_host_cc" || _host_cc=$_cc
1597 echores $_host_cc
1599 echocheck "cross compilation"
1600 if test $_cross_compile = auto ; then
1601 cat > $TMPC << EOF
1602 int main(void) { return 0; }
1604 _cross_compile=yes
1605 cc_check && "$TMPEXE" && _cross_compile=no
1607 echores $_cross_compile
1609 if test $_cross_compile = yes; then
1610 tmp_run() {
1611 return 0
1615 # ---
1617 # now that we know what compiler should be used for compilation, try to find
1618 # out which assembler is used by the $_cc compiler
1619 if test "$_as" = auto ; then
1620 _as=$($_cc -print-prog-name=as)
1621 test -z "$_as" && _as=as
1624 if test "$_nm" = auto ; then
1625 _nm=$($_cc -print-prog-name=nm)
1626 test -z "$_nm" && _nm=nm
1629 # XXX: this should be ok..
1630 _cpuinfo="echo"
1632 if test "$_runtime_cpudetection" = no ; then
1634 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1635 # FIXME: Remove the cygwin check once AMD CPUs are supported
1636 if test -r /proc/cpuinfo && ! cygwin; then
1637 # Linux with /proc mounted, extract CPU information from it
1638 _cpuinfo="cat /proc/cpuinfo"
1639 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1640 # FreeBSD with Linux emulation /proc mounted,
1641 # extract CPU information from it
1642 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1643 elif darwin && ! x86 ; then
1644 # use hostinfo on Darwin
1645 _cpuinfo="hostinfo"
1646 elif aix; then
1647 # use 'lsattr' on AIX
1648 _cpuinfo="lsattr -E -l proc0 -a type"
1649 elif x86; then
1650 # all other OSes try to extract CPU information from a small helper
1651 # program cpuinfo instead
1652 $_cc -o cpuinfo$_exesuf cpuinfo.c
1653 _cpuinfo="./cpuinfo$_exesuf"
1656 if x86 ; then
1657 # gather more CPU information
1658 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1659 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1660 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1661 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1662 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1664 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1666 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1667 -e s/xmm/sse/ -e s/kni/sse/)
1669 for ext in $pparam ; do
1670 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1671 done
1673 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1674 test $_sse = kernel_check && _mmxext=kernel_check
1676 echocheck "CPU vendor"
1677 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1679 echocheck "CPU type"
1680 echores "$pname"
1683 fi # test "$_runtime_cpudetection" = no
1685 if x86 && test "$_runtime_cpudetection" = no ; then
1686 extcheck() {
1687 if test "$1" = kernel_check ; then
1688 echocheck "kernel support of $2"
1689 cat > $TMPC <<EOF
1690 #include <stdlib.h>
1691 #include <signal.h>
1692 void catch() { exit(1); }
1693 int main(void) {
1694 signal(SIGILL, catch);
1695 __asm__ volatile ("$3":::"memory"); return 0;
1699 if cc_check && tmp_run ; then
1700 eval _$2=yes
1701 echores "yes"
1702 _optimizing="$_optimizing $2"
1703 return 0
1704 else
1705 eval _$2=no
1706 echores "failed"
1707 echo "It seems that your kernel does not correctly support $2."
1708 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1709 return 1
1712 return 0
1715 extcheck $_mmx "mmx" "emms"
1716 extcheck $_mmxext "mmxext" "sfence"
1717 extcheck $_3dnow "3dnow" "femms"
1718 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1719 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1720 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1721 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1722 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1724 echocheck "mtrr support"
1725 if test "$_mtrr" = kernel_check ; then
1726 _mtrr="yes"
1727 _optimizing="$_optimizing mtrr"
1729 echores "$_mtrr"
1731 if test "$_gcc3_ext" != ""; then
1732 # if we had to disable sse/sse2 because the active kernel does not
1733 # support this instruction set extension, we also have to tell
1734 # gcc3 to not generate sse/sse2 instructions for normal C code
1735 cat > $TMPC << EOF
1736 int main(void) { return 0; }
1738 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1744 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1745 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1746 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1747 case "$host_arch" in
1748 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1749 _arch='X86 X86_32'
1750 _target_arch="ARCH_X86 = yes"
1751 _target_subarch="ARCH_X86_32 = yes"
1752 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1753 iproc=486
1754 proc=i486
1757 if test "$_runtime_cpudetection" = no ; then
1758 case "$pvendor" in
1759 AuthenticAMD)
1760 case "$pfamily" in
1761 3) proc=i386 iproc=386 ;;
1762 4) proc=i486 iproc=486 ;;
1763 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1764 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1765 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1766 proc=k6-3
1767 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1768 proc=geode
1769 elif test "$pmodel" -ge 8; then
1770 proc=k6-2
1771 elif test "$pmodel" -ge 6; then
1772 proc=k6
1773 else
1774 proc=i586
1777 6) iproc=686
1778 # It's a bit difficult to determine the correct type of Family 6
1779 # AMD CPUs just from their signature. Instead, we check directly
1780 # whether it supports SSE.
1781 if test "$_sse" = yes; then
1782 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1783 proc=athlon-xp
1784 else
1785 # Again, gcc treats athlon and athlon-tbird similarly.
1786 proc=athlon
1789 15) iproc=686
1790 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1791 # caught and remedied in the optimization tests below.
1792 proc=k8
1795 *) proc=k8 iproc=686 ;;
1796 esac
1798 GenuineIntel)
1799 case "$pfamily" in
1800 3) proc=i386 iproc=386 ;;
1801 4) proc=i486 iproc=486 ;;
1802 5) iproc=586
1803 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1804 proc=pentium-mmx # 4 is desktop, 8 is mobile
1805 else
1806 proc=i586
1809 6) iproc=686
1810 if test "$pmodel" -ge 15; then
1811 proc=core2
1812 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1813 proc=pentium-m
1814 elif test "$pmodel" -ge 7; then
1815 proc=pentium3
1816 elif test "$pmodel" -ge 3; then
1817 proc=pentium2
1818 else
1819 proc=i686
1822 15) iproc=686
1823 # A nocona in 32-bit mode has no more capabilities than a prescott.
1824 if test "$pmodel" -ge 3; then
1825 proc=prescott
1826 else
1827 proc=pentium4
1829 test $_fast_cmov = "auto" && _fast_cmov=no
1831 *) proc=prescott iproc=686 ;;
1832 esac
1834 CentaurHauls)
1835 case "$pfamily" in
1836 5) iproc=586
1837 if test "$pmodel" -ge 8; then
1838 proc=winchip2
1839 elif test "$pmodel" -ge 4; then
1840 proc=winchip-c6
1841 else
1842 proc=i586
1845 6) iproc=686
1846 if test "$pmodel" -ge 9; then
1847 proc=c3-2
1848 else
1849 proc=c3
1850 iproc=586
1853 *) proc=i686 iproc=i686 ;;
1854 esac
1856 unknown)
1857 case "$pfamily" in
1858 3) proc=i386 iproc=386 ;;
1859 4) proc=i486 iproc=486 ;;
1860 *) proc=i586 iproc=586 ;;
1861 esac
1864 proc=i586 iproc=586 ;;
1865 esac
1866 fi # test "$_runtime_cpudetection" = no
1869 # check that gcc supports our CPU, if not, fall back to earlier ones
1870 # LGB: check -mcpu and -march swithing step by step with enabling
1871 # to fall back till 386.
1873 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1875 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1876 cpuopt=-mtune
1877 else
1878 cpuopt=-mcpu
1881 echocheck "GCC & CPU optimization abilities"
1882 cat > $TMPC << EOF
1883 int main(void) { return 0; }
1885 if test "$_runtime_cpudetection" = no ; then
1886 cc_check -march=native && proc=native
1887 if test "$proc" = "k8"; then
1888 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1890 if test "$proc" = "athlon-xp"; then
1891 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1893 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1894 cc_check -march=$proc $cpuopt=$proc || proc=k6
1896 if test "$proc" = "k6" || test "$proc" = "c3"; then
1897 if ! cc_check -march=$proc $cpuopt=$proc; then
1898 if cc_check -march=i586 $cpuopt=i686; then
1899 proc=i586-i686
1900 else
1901 proc=i586
1905 if test "$proc" = "prescott" ; then
1906 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1908 if test "$proc" = "core2" ; then
1909 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1911 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
1912 cc_check -march=$proc $cpuopt=$proc || proc=i686
1914 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1915 cc_check -march=$proc $cpuopt=$proc || proc=i586
1917 if test "$proc" = "i586"; then
1918 cc_check -march=$proc $cpuopt=$proc || proc=i486
1920 if test "$proc" = "i486" ; then
1921 cc_check -march=$proc $cpuopt=$proc || proc=i386
1923 if test "$proc" = "i386" ; then
1924 cc_check -march=$proc $cpuopt=$proc || proc=error
1926 if test "$proc" = "error" ; then
1927 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1928 _mcpu=""
1929 _march=""
1930 _optimizing=""
1931 elif test "$proc" = "i586-i686"; then
1932 _march="-march=i586"
1933 _mcpu="$cpuopt=i686"
1934 _optimizing="$proc"
1935 else
1936 _march="-march=$proc"
1937 _mcpu="$cpuopt=$proc"
1938 _optimizing="$proc"
1940 else # if test "$_runtime_cpudetection" = no
1941 _mcpu="$cpuopt=generic"
1942 # at least i486 required, for bswap instruction
1943 _march="-march=i486"
1944 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1945 cc_check $_mcpu || _mcpu=""
1946 cc_check $_march $_mcpu || _march=""
1949 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1950 ## autodetected mcpu/march parameters
1951 if test "$_target" ; then
1952 # TODO: it may be a good idea to check GCC and fall back in all cases
1953 if test "$host_arch" = "i586-i686"; then
1954 _march="-march=i586"
1955 _mcpu="$cpuopt=i686"
1956 else
1957 _march="-march=$host_arch"
1958 _mcpu="$cpuopt=$host_arch"
1961 proc="$host_arch"
1963 case "$proc" in
1964 i386) iproc=386 ;;
1965 i486) iproc=486 ;;
1966 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1967 i686|athlon*|pentium*) iproc=686 ;;
1968 *) iproc=586 ;;
1969 esac
1972 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1973 _fast_cmov="yes"
1974 else
1975 _fast_cmov="no"
1978 echores "$proc"
1981 ia64)
1982 _arch='IA64'
1983 _target_arch='ARCH_IA64 = yes'
1984 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1985 iproc='ia64'
1988 x86_64|amd64)
1989 _arch='X86 X86_64'
1990 _target_subarch='ARCH_X86_64 = yes'
1991 _target_arch="ARCH_X86 = yes"
1992 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1993 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1994 iproc='x86_64'
1996 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1997 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1998 cpuopt=-mtune
1999 else
2000 cpuopt=-mcpu
2002 test $_fast_cmov = "auto" && _fast_cmov=yes
2003 if test "$_runtime_cpudetection" = no ; then
2004 case "$pvendor" in
2005 AuthenticAMD)
2006 proc=k8;;
2007 GenuineIntel)
2008 case "$pfamily" in
2009 6) proc=core2;;
2011 # 64-bit prescotts exist, but as far as GCC is concerned they
2012 # have the same capabilities as a nocona.
2013 proc=nocona
2015 esac
2018 proc=error;;
2019 esac
2020 fi # test "$_runtime_cpudetection" = no
2022 echocheck "GCC & CPU optimization abilities"
2023 cat > $TMPC << EOF
2024 int main(void) { return 0; }
2026 # This is a stripped-down version of the i386 fallback.
2027 if test "$_runtime_cpudetection" = no ; then
2028 cc_check -march=native && proc=native
2029 # --- AMD processors ---
2030 if test "$proc" = "k8"; then
2031 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2033 # This will fail if gcc version < 3.3, which is ok because earlier
2034 # versions don't really support 64-bit on amd64.
2035 # Is this a valid assumption? -Corey
2036 if test "$proc" = "athlon-xp"; then
2037 cc_check -march=$proc $cpuopt=$proc || proc=error
2039 # --- Intel processors ---
2040 if test "$proc" = "core2"; then
2041 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2043 if test "$proc" = "nocona"; then
2044 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2046 if test "$proc" = "pentium4"; then
2047 cc_check -march=$proc $cpuopt=$proc || proc=error
2050 _march="-march=$proc"
2051 _mcpu="$cpuopt=$proc"
2052 if test "$proc" = "error" ; then
2053 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2054 _mcpu=""
2055 _march=""
2057 else # if test "$_runtime_cpudetection" = no
2058 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2059 _march="-march=x86-64"
2060 _mcpu="$cpuopt=generic"
2061 cc_check $_mcpu || _mcpu="x86-64"
2062 cc_check $_mcpu || _mcpu=""
2063 cc_check $_march $_mcpu || _march=""
2066 _optimizing=""
2068 echores "$proc"
2071 sparc|sparc64)
2072 _arch='SPARC'
2073 _target_arch='ARCH_SPARC = yes'
2074 iproc='sparc'
2075 if test "$host_arch" = "sparc64" ; then
2076 _vis='yes'
2077 proc='ultrasparc'
2078 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2079 elif sunos ; then
2080 echocheck "CPU type"
2081 karch=$(uname -m)
2082 case "$(echo $karch)" in
2083 sun4) proc=v7 ;;
2084 sun4c) proc=v7 ;;
2085 sun4d) proc=v8 ;;
2086 sun4m) proc=v8 ;;
2087 sun4u) proc=ultrasparc _vis='yes' ;;
2088 sun4v) proc=v9 ;;
2089 *) proc=v8 ;;
2090 esac
2091 echores "$proc"
2092 else
2093 proc=v8
2095 _mcpu="-mcpu=$proc"
2096 _optimizing="$proc"
2099 arm|armv4l|armv5tel)
2100 _arch='ARM'
2101 _target_arch='ARCH_ARM = yes'
2102 iproc='arm'
2105 avr32)
2106 _arch='AVR32'
2107 _target_arch='ARCH_AVR32 = yes'
2108 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2109 iproc='avr32'
2112 sh|sh4)
2113 _arch='SH4'
2114 _target_arch='ARCH_SH4 = yes'
2115 iproc='sh4'
2118 ppc|ppc64|powerpc|powerpc64)
2119 _arch='PPC'
2120 def_dcbzl='#define HAVE_DCBZL 0'
2121 _target_arch='ARCH_PPC = yes'
2122 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2123 iproc='ppc'
2125 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2126 _arch='PPC PPC64'
2127 _target_subarch='ARCH_PPC64 = yes'
2128 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2130 echocheck "CPU type"
2131 case $system_name in
2132 Linux)
2133 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2134 if test -n "$($_cpuinfo | grep altivec)"; then
2135 test $_altivec = auto && _altivec=yes
2138 Darwin)
2139 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2140 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2141 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2142 test $_altivec = auto && _altivec=yes
2145 NetBSD)
2146 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2147 case $cc_version in
2148 2*|3.0*|3.1*|3.2*|3.3*)
2151 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2152 test $_altivec = auto && _altivec=yes
2155 esac
2157 AIX)
2158 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2160 esac
2161 if test "$_altivec" = yes; then
2162 echores "$proc altivec"
2163 else
2164 _altivec=no
2165 echores "$proc"
2168 echocheck "GCC & CPU optimization abilities"
2170 if test -n "$proc"; then
2171 case "$proc" in
2172 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2173 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2174 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2175 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2176 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2177 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2178 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2179 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2180 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2181 *) ;;
2182 esac
2183 # gcc 3.1(.1) and up supports 7400 and 7450
2184 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2185 case "$proc" in
2186 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2187 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2188 *) ;;
2189 esac
2191 # gcc 3.2 and up supports 970
2192 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2193 case "$proc" in
2194 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2195 def_dcbzl='#define HAVE_DCBZL 1' ;;
2196 *) ;;
2197 esac
2199 # gcc 3.3 and up supports POWER4
2200 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2201 case "$proc" in
2202 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2203 *) ;;
2204 esac
2206 # gcc 3.4 and up supports 440*
2207 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2208 case "$proc" in
2209 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2210 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2211 *) ;;
2212 esac
2214 # gcc 4.0 and up supports POWER5
2215 if test "$_cc_major" -ge "4"; then
2216 case "$proc" in
2217 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2218 *) ;;
2219 esac
2223 if test -n "$_mcpu"; then
2224 _optimizing=$(echo $_mcpu | cut -c 8-)
2225 echores "$_optimizing"
2226 else
2227 echores "none"
2232 alpha*)
2233 _arch='ALPHA'
2234 _target_arch='ARCH_ALPHA = yes'
2235 iproc='alpha'
2237 echocheck "CPU type"
2238 cat > $TMPC << EOF
2239 int main(void) {
2240 unsigned long ver, mask;
2241 __asm__ ("implver %0" : "=r" (ver));
2242 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2243 printf("%ld-%x\n", ver, ~mask);
2244 return 0;
2247 $_cc -o "$TMPEXE" "$TMPC"
2248 case $("$TMPEXE") in
2250 0-0) proc="ev4"; _mvi="0";;
2251 1-0) proc="ev5"; _mvi="0";;
2252 1-1) proc="ev56"; _mvi="0";;
2253 1-101) proc="pca56"; _mvi="1";;
2254 2-303) proc="ev6"; _mvi="1";;
2255 2-307) proc="ev67"; _mvi="1";;
2256 2-1307) proc="ev68"; _mvi="1";;
2257 esac
2258 echores "$proc"
2260 echocheck "GCC & CPU optimization abilities"
2261 if test "$proc" = "ev68" ; then
2262 cc_check -mcpu=$proc || proc=ev67
2264 if test "$proc" = "ev67" ; then
2265 cc_check -mcpu=$proc || proc=ev6
2267 _mcpu="-mcpu=$proc"
2268 echores "$proc"
2270 _optimizing="$proc"
2273 mips)
2274 _arch='SGI_MIPS'
2275 _target_arch='ARCH_SGI_MIPS = yes'
2276 iproc='sgi-mips'
2278 if irix ; then
2279 echocheck "CPU type"
2280 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2281 case "$(echo $proc)" in
2282 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2283 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2284 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2285 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2286 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2287 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2288 esac
2289 # gcc < 3.x does not support -mtune.
2290 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2291 _mcpu=''
2293 echores "$proc"
2298 hppa)
2299 _arch='PA_RISC'
2300 _target_arch='ARCH_PA_RISC = yes'
2301 iproc='PA-RISC'
2304 s390)
2305 _arch='S390'
2306 _target_arch='ARCH_S390 = yes'
2307 iproc='390'
2310 s390x)
2311 _arch='S390X'
2312 _target_arch='ARCH_S390X = yes'
2313 iproc='390x'
2316 vax)
2317 _arch='VAX'
2318 _target_arch='ARCH_VAX = yes'
2319 iproc='vax'
2322 xtensa)
2323 _arch='XTENSA'
2324 _target_arch='ARCH_XTENSA = yes'
2325 iproc='xtensa'
2328 generic)
2329 _arch='GENERIC'
2330 _target_arch='ARCH_GENERIC = yes'
2334 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2335 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2336 die "unsupported architecture $host_arch"
2338 esac # case "$host_arch" in
2340 if test "$_runtime_cpudetection" = yes ; then
2341 if x86 ; then
2342 test "$_cmov" != no && _cmov=yes
2343 x86_32 && _cmov=no
2344 test "$_mmx" != no && _mmx=yes
2345 test "$_3dnow" != no && _3dnow=yes
2346 test "$_3dnowext" != no && _3dnowext=yes
2347 test "$_mmxext" != no && _mmxext=yes
2348 test "$_sse" != no && _sse=yes
2349 test "$_sse2" != no && _sse2=yes
2350 test "$_ssse3" != no && _ssse3=yes
2351 test "$_mtrr" != no && _mtrr=yes
2353 if ppc; then
2354 _altivec=yes
2359 # endian testing
2360 echocheck "byte order"
2361 if test "$_big_endian" = auto ; then
2362 cat > $TMPC <<EOF
2363 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2364 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2365 int main(void) { return (int)ascii_name; }
2367 if cc_check ; then
2368 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2369 _big_endian=yes
2370 else
2371 _big_endian=no
2373 else
2374 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2377 if test "$_big_endian" = yes ; then
2378 _byte_order='big-endian'
2379 def_words_endian='#define WORDS_BIGENDIAN 1'
2380 def_bigendian='#define HAVE_BIGENDIAN 1'
2381 else
2382 _byte_order='little-endian'
2383 def_words_endian='#undef WORDS_BIGENDIAN'
2384 def_bigendian='#define HAVE_BIGENDIAN 0'
2386 echores "$_byte_order"
2389 echocheck "extern symbol prefix"
2390 cat > $TMPC << EOF
2391 int ff_extern;
2393 cc_check -c || die "Symbol mangling check failed."
2394 sym=$($_nm -P -g $TMPEXE)
2395 extern_prefix=${sym%%ff_extern*}
2396 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2397 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2398 echores $extern_prefix
2401 echocheck "assembler support of -pipe option"
2402 cat > $TMPC << EOF
2403 int main(void) { return 0; }
2405 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2408 echocheck "compiler support of named assembler arguments"
2409 _named_asm_args=yes
2410 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2411 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2412 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2413 _named_asm_args=no
2414 def_named_asm_args="#undef NAMED_ASM_ARGS"
2416 echores $_named_asm_args
2419 if darwin && test "$cc_vendor" = "gnu" ; then
2420 echocheck "GCC support of -mstackrealign"
2421 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2422 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2423 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2424 # wrong code with this flag, but this can be worked around by adding
2425 # -fno-unit-at-a-time as described in the blog post at
2426 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2427 cat > $TMPC << EOF
2428 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2429 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2431 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2432 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2433 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2434 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2435 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2438 # Checking for CFLAGS
2439 _install_strip="-s"
2440 if test "$_profile" != "" || test "$_debug" != "" ; then
2441 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2442 _install_strip=
2443 elif test -z "$CFLAGS" ; then
2444 if test "$cc_vendor" = "intel" ; then
2445 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2446 elif test "$cc_vendor" != "gnu" ; then
2447 CFLAGS="-O2 $_march $_mcpu $_pipe"
2448 else
2449 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2450 extra_ldflags="$extra_ldflags -ffast-math"
2452 else
2453 _warn_CFLAGS=yes
2456 cat > $TMPC << EOF
2457 int main(void) { return 0; }
2459 if test "$cc_vendor" = "gnu" ; then
2460 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2461 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2462 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2463 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2464 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2465 else
2466 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2469 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2472 if test -n "$LDFLAGS" ; then
2473 extra_ldflags="$extra_ldflags $LDFLAGS"
2474 _warn_CFLAGS=yes
2475 elif test "$cc_vendor" = "intel" ; then
2476 extra_ldflags="$extra_ldflags -i-static"
2478 if test -n "$CPPFLAGS" ; then
2479 extra_cflags="$extra_cflags $CPPFLAGS"
2480 _warn_CFLAGS=yes
2485 if x86_32 ; then
2486 # Checking assembler (_as) compatibility...
2487 # Added workaround for older as that reads from stdin by default - atmos
2488 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2489 echocheck "assembler ($_as $as_version)"
2491 _pref_as_version='2.9.1'
2492 echo 'nop' > $TMPS
2493 if test "$_mmx" = yes ; then
2494 echo 'emms' >> $TMPS
2496 if test "$_3dnow" = yes ; then
2497 _pref_as_version='2.10.1'
2498 echo 'femms' >> $TMPS
2500 if test "$_3dnowext" = yes ; then
2501 _pref_as_version='2.10.1'
2502 echo 'pswapd %mm0, %mm0' >> $TMPS
2504 if test "$_mmxext" = yes ; then
2505 _pref_as_version='2.10.1'
2506 echo 'movntq %mm0, (%eax)' >> $TMPS
2508 if test "$_sse" = yes ; then
2509 _pref_as_version='2.10.1'
2510 echo 'xorps %xmm0, %xmm0' >> $TMPS
2512 #if test "$_sse2" = yes ; then
2513 # _pref_as_version='2.11'
2514 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2516 if test "$_cmov" = yes ; then
2517 _pref_as_version='2.10.1'
2518 echo 'cmovb %eax, %ebx' >> $TMPS
2520 if test "$_ssse3" = yes ; then
2521 _pref_as_version='2.16.92'
2522 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2524 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2526 if test "$as_verc_fail" != yes ; then
2527 echores "ok"
2528 else
2529 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2530 echores "failed"
2531 die "obsolete binutils version"
2534 fi #if x86_32
2536 echocheck ".align is a power of two"
2537 if test "$_asmalign_pot" = auto ; then
2538 _asmalign_pot=no
2539 cat > $TMPC << EOF
2540 int main(void) { __asm__ (".align 3"); return 0; }
2542 cc_check && _asmalign_pot=yes
2544 if test "$_asmalign_pot" = "yes" ; then
2545 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2546 else
2547 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2549 echores $_asmalign_pot
2551 if x86 ; then
2552 echocheck "10 assembler operands"
2553 ten_operands=no
2554 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2555 cat > $TMPC << EOF
2556 int main(void) {
2557 int x=0;
2558 __asm__ volatile(
2560 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2562 return 0;
2565 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2566 echores $ten_operands
2568 echocheck "ebx availability"
2569 ebx_available=no
2570 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2571 cat > $TMPC << EOF
2572 int main(void) {
2573 int x;
2574 __asm__ volatile(
2575 "xor %0, %0"
2576 :"=b"(x)
2577 // just adding ebx to clobber list seems unreliable with some
2578 // compilers, e.g. Haiku's gcc 2.95
2580 // and the above check does not work for OSX 64 bit...
2581 __asm__ volatile("":::"%ebx");
2582 return 0;
2585 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2586 echores $ebx_available
2588 echocheck "PIC"
2589 pic=no
2590 cat > $TMPC << EOF
2591 int main(void) {
2592 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2593 #error PIC not enabled
2594 #endif
2595 return 0;
2598 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2599 echores $pic
2601 echocheck "yasm"
2602 if test -z "$YASMFLAGS" ; then
2603 if darwin ; then
2604 x86_64 && objformat="macho64" || objformat="macho"
2605 elif win32 ; then
2606 objformat="win32"
2607 else
2608 objformat="elf"
2610 # currently tested for Linux x86, x86_64
2611 YASMFLAGS="-f $objformat"
2612 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2613 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2614 case "$objformat" in
2615 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2616 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2617 esac
2618 else
2619 _warn_CFLAGS=yes
2622 echo "pabsw xmm0, xmm0" > $TMPS
2623 yasm_check || _yasm=""
2624 if test $_yasm ; then
2625 test "$_mmx" = "yes" && fft_mmx="yes"
2626 def_yasm='#define HAVE_YASM 1'
2627 _have_yasm="yes"
2628 echores "$_yasm"
2629 else
2630 def_yasm='#define HAVE_YASM 0'
2631 fft_mmx="no"
2632 _have_yasm="no"
2633 echores "no"
2636 echocheck "bswap"
2637 def_bswap='#define HAVE_BSWAP 0'
2638 echo 'bswap %eax' > $TMPS
2639 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2640 echores "$bswap"
2641 fi #if x86
2644 #FIXME: This should happen before the check for CFLAGS..
2645 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2646 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2648 # check if AltiVec is supported by the compiler, and how to enable it
2649 echocheck "GCC AltiVec flags"
2650 cat > $TMPC << EOF
2651 int main(void) { return 0; }
2653 if $(cc_check -maltivec -mabi=altivec) ; then
2654 _altivec_gcc_flags="-maltivec -mabi=altivec"
2655 # check if <altivec.h> should be included
2656 cat > $TMPC << EOF
2657 #include <altivec.h>
2658 int main(void) { return 0; }
2660 if $(cc_check $_altivec_gcc_flags) ; then
2661 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2662 inc_altivec_h='#include <altivec.h>'
2663 else
2664 cat > $TMPC << EOF
2665 int main(void) { return 0; }
2667 if $(cc_check -faltivec) ; then
2668 _altivec_gcc_flags="-faltivec"
2669 else
2670 _altivec=no
2671 _altivec_gcc_flags="none, AltiVec disabled"
2675 echores "$_altivec_gcc_flags"
2677 # check if the compiler supports braces for vector declarations
2678 cat > $TMPC << EOF
2679 $inc_altivec_h
2680 int main(void) { (vector int) {1}; return 0; }
2682 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2684 # Disable runtime cpudetection if we cannot generate AltiVec code or
2685 # AltiVec is disabled by the user.
2686 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2687 && _runtime_cpudetection=no
2689 # Show that we are optimizing for AltiVec (if enabled and supported).
2690 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2691 && _optimizing="$_optimizing altivec"
2693 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2694 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2697 if ppc ; then
2698 def_xform_asm='#define HAVE_XFORM_ASM 0'
2699 xform_asm=no
2700 echocheck "XFORM ASM support"
2701 cat > $TMPC << EOF
2702 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2704 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2705 echores "$xform_asm"
2708 if arm ; then
2709 echocheck "ARM pld instruction"
2710 cat > $TMPC << EOF
2711 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2713 pld=no
2714 cc_check && pld=yes
2715 echores "$pld"
2717 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2718 if test $_armv5te = "auto" ; then
2719 cat > $TMPC << EOF
2720 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2722 _armv5te=no
2723 cc_check && _armv5te=yes
2725 echores "$_armv5te"
2727 echocheck "ARMv6 (SIMD instructions)"
2728 if test $_armv6 = "auto" ; then
2729 cat > $TMPC << EOF
2730 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2732 _armv6=no
2733 cc_check && _armv6=yes
2735 echores "$_armv6"
2737 echocheck "ARMv6t2 (SIMD instructions)"
2738 if test $_armv6t2 = "auto" ; then
2739 cat > $TMPC << EOF
2740 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2742 _armv6t2=no
2743 cc_check && _armv6t2=yes
2745 echores "$_armv6"
2747 echocheck "ARM VFP"
2748 if test $_armvfp = "auto" ; then
2749 cat > $TMPC << EOF
2750 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2752 _armvfp=no
2753 cc_check && _armvfp=yes
2755 echores "$_armvfp"
2757 echocheck "ARM NEON"
2758 if test $neon = "auto" ; then
2759 cat > $TMPC << EOF
2760 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2762 neon=no
2763 cc_check && neon=yes
2765 echores "$neon"
2767 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2768 if test $_iwmmxt = "auto" ; then
2769 cat > $TMPC << EOF
2770 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2772 _iwmmxt=no
2773 cc_check && _iwmmxt=yes
2775 echores "$_iwmmxt"
2778 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2779 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2780 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2781 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2782 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2783 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2784 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2785 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2786 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2787 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2788 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2789 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2790 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2791 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2792 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2793 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2794 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2795 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2796 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2797 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2799 # Checking kernel version...
2800 if x86_32 && linux ; then
2801 _k_verc_problem=no
2802 kernel_version=$(uname -r 2>&1)
2803 echocheck "$system_name kernel version"
2804 case "$kernel_version" in
2805 '') kernel_version="?.??"; _k_verc_fail=yes;;
2806 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2807 _k_verc_problem=yes;;
2808 esac
2809 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2810 _k_verc_fail=yes
2812 if test "$_k_verc_fail" ; then
2813 echores "$kernel_version, fail"
2814 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2815 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2816 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2817 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2818 echo "2.2.x you must upgrade it to get SSE support!"
2819 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2820 else
2821 echores "$kernel_version, ok"
2825 ######################
2826 # MAIN TESTS GO HERE #
2827 ######################
2830 echocheck "-lposix"
2831 cat > $TMPC <<EOF
2832 int main(void) { return 0; }
2834 if cc_check -lposix ; then
2835 extra_ldflags="$extra_ldflags -lposix"
2836 echores "yes"
2837 else
2838 echores "no"
2841 echocheck "-lm"
2842 cat > $TMPC <<EOF
2843 int main(void) { return 0; }
2845 if cc_check -lm ; then
2846 _ld_lm="-lm"
2847 echores "yes"
2848 else
2849 _ld_lm=""
2850 echores "no"
2854 echocheck "langinfo"
2855 if test "$_langinfo" = auto ; then
2856 cat > $TMPC <<EOF
2857 #include <langinfo.h>
2858 int main(void) { nl_langinfo(CODESET); return 0; }
2860 _langinfo=no
2861 cc_check && _langinfo=yes
2863 if test "$_langinfo" = yes ; then
2864 def_langinfo='#define HAVE_LANGINFO 1'
2865 else
2866 def_langinfo='#undef HAVE_LANGINFO'
2868 echores "$_langinfo"
2871 echocheck "language"
2872 # Set preferred languages, "all" uses English as main language.
2873 test -z "$language" && language=$LINGUAS
2874 test -z "$language_doc" && language_doc=$language
2875 test -z "$language_man" && language_man=$language
2876 test -z "$language_msg" && language_msg=$language
2877 language_doc=$(echo $language_doc | tr , " ")
2878 language_man=$(echo $language_man | tr , " ")
2879 language_msg=$(echo $language_msg | tr , " ")
2881 test "$language_doc" = "all" && language_doc=$doc_lang_all
2882 test "$language_man" = "all" && language_man=$man_lang_all
2883 test "$language_msg" = "all" && language_msg=en
2885 # Prune non-existing translations from language lists.
2886 # Set message translation to the first available language.
2887 # Fall back on English.
2888 for lang in $language_doc ; do
2889 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2890 done
2891 language_doc=$tmp_language_doc
2892 test -z "$language_doc" && language_doc=en
2894 for lang in $language_man ; do
2895 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2896 done
2897 language_man=$tmp_language_man
2898 test -z "$language_man" && language_man=en
2900 for lang in $language_msg ; do
2901 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2902 done
2903 language_msg=$tmp_language_msg
2904 test -z "$language_msg" && language_msg=en
2905 _mp_help="help/help_mp-${language_msg}.h"
2906 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2909 echocheck "enable sighandler"
2910 if test "$_sighandler" = yes ; then
2911 def_sighandler='#define CONFIG_SIGHANDLER 1'
2912 else
2913 def_sighandler='#undef CONFIG_SIGHANDLER'
2915 echores "$_sighandler"
2917 echocheck "runtime cpudetection"
2918 if test "$_runtime_cpudetection" = yes ; then
2919 _optimizing="Runtime CPU-Detection enabled"
2920 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2921 else
2922 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2924 echores "$_runtime_cpudetection"
2927 echocheck "restrict keyword"
2928 for restrict_keyword in restrict __restrict __restrict__ ; do
2929 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2930 if cc_check; then
2931 def_restrict_keyword=$restrict_keyword
2932 break;
2934 done
2935 if [ -n "$def_restrict_keyword" ]; then
2936 echores "$def_restrict_keyword"
2937 else
2938 echores "none"
2940 # Avoid infinite recursion loop ("#define restrict restrict")
2941 if [ "$def_restrict_keyword" != "restrict" ]; then
2942 def_restrict_keyword="#define restrict $def_restrict_keyword"
2943 else
2944 def_restrict_keyword=""
2948 echocheck "__builtin_expect"
2949 # GCC branch prediction hint
2950 cat > $TMPC << EOF
2951 int foo(int a) {
2952 a = __builtin_expect(a, 10);
2953 return a == 10 ? 0 : 1;
2955 int main(void) { return foo(10) && foo(0); }
2957 _builtin_expect=no
2958 cc_check && _builtin_expect=yes
2959 if test "$_builtin_expect" = yes ; then
2960 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2961 else
2962 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2964 echores "$_builtin_expect"
2967 echocheck "kstat"
2968 cat > $TMPC << EOF
2969 #include <kstat.h>
2970 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2972 _kstat=no
2973 cc_check -lkstat && _kstat=yes
2974 if test "$_kstat" = yes ; then
2975 def_kstat="#define HAVE_LIBKSTAT 1"
2976 extra_ldflags="$extra_ldflags -lkstat"
2977 else
2978 def_kstat="#undef HAVE_LIBKSTAT"
2980 echores "$_kstat"
2983 echocheck "posix4"
2984 # required for nanosleep on some systems
2985 cat > $TMPC << EOF
2986 #include <time.h>
2987 int main(void) { (void) nanosleep(0, 0); return 0; }
2989 _posix4=no
2990 cc_check -lposix4 && _posix4=yes
2991 if test "$_posix4" = yes ; then
2992 extra_ldflags="$extra_ldflags -lposix4"
2994 echores "$_posix4"
2996 for func in llrint log2 lrint lrintf round roundf truncf; do
2997 echocheck $func
2998 cat > $TMPC << EOF
2999 #include <math.h>
3000 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3002 eval _$func=no
3003 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3004 if eval test "x\$_$func" = "xyes"; then
3005 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3006 echores yes
3007 else
3008 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3009 echores no
3011 done
3014 echocheck "mkstemp"
3015 cat > $TMPC << EOF
3016 #include <stdlib.h>
3017 int main(void) { char a; mkstemp(&a); return 0; }
3019 _mkstemp=no
3020 cc_check && _mkstemp=yes
3021 if test "$_mkstemp" = yes ; then
3022 def_mkstemp='#define HAVE_MKSTEMP 1'
3023 else
3024 def_mkstemp='#undef HAVE_MKSTEMP'
3026 echores "$_mkstemp"
3029 echocheck "nanosleep"
3030 # also check for nanosleep
3031 cat > $TMPC << EOF
3032 #include <time.h>
3033 int main(void) { (void) nanosleep(0, 0); return 0; }
3035 _nanosleep=no
3036 cc_check && _nanosleep=yes
3037 if test "$_nanosleep" = yes ; then
3038 def_nanosleep='#define HAVE_NANOSLEEP 1'
3039 else
3040 def_nanosleep='#undef HAVE_NANOSLEEP'
3042 echores "$_nanosleep"
3045 echocheck "socklib"
3046 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3047 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3048 cat > $TMPC << EOF
3049 #include <netdb.h>
3050 #include <sys/socket.h>
3051 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3053 _socklib=no
3054 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3055 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3056 done
3057 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3058 if test $_winsock2_h = auto ; then
3059 _winsock2_h=no
3060 cat > $TMPC << EOF
3061 #include <winsock2.h>
3062 int main(void) { (void) gethostbyname(0); return 0; }
3064 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3066 test "$_ld_sock" && _res_comment="using $_ld_sock"
3067 echores "$_socklib"
3070 if test $_winsock2_h = yes ; then
3071 _ld_sock="-lws2_32"
3072 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3073 else
3074 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3078 echocheck "arpa/inet.h"
3079 arpa_inet_h=no
3080 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3081 cat > $TMPC << EOF
3082 #include <arpa/inet.h>
3083 int main(void) { return 0; }
3085 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3086 echores "$arpa_inet_h"
3089 echocheck "inet_pton()"
3090 def_inet_pton='#define HAVE_INET_PTON 0'
3091 inet_pton=no
3092 cat > $TMPC << EOF
3093 #include <sys/types.h>
3094 #include <sys/socket.h>
3095 #include <arpa/inet.h>
3096 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3098 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3099 cc_check $_ld_tmp && inet_pton=yes && break
3100 done
3101 if test $inet_pton = yes ; then
3102 test $_ld_tmp && _res_comment="using $_ld_tmp"
3103 def_inet_pton='#define HAVE_INET_PTON 1'
3105 echores "$inet_pton"
3108 echocheck "inet_aton()"
3109 def_inet_aton='#define HAVE_INET_ATON 0'
3110 inet_aton=no
3111 cat > $TMPC << EOF
3112 #include <sys/types.h>
3113 #include <sys/socket.h>
3114 #include <arpa/inet.h>
3115 int main(void) { (void) inet_aton(0, 0); return 0; }
3117 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3118 cc_check $_ld_tmp && inet_aton=yes && break
3119 done
3120 if test $inet_aton = yes ; then
3121 test $_ld_tmp && _res_comment="using $_ld_tmp"
3122 def_inet_aton='#define HAVE_INET_ATON 1'
3124 echores "$inet_aton"
3127 echocheck "socklen_t"
3128 _socklen_t=no
3129 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3130 cat > $TMPC << EOF
3131 #include <$header>
3132 int main(void) { socklen_t v = 0; return v; }
3134 cc_check && _socklen_t=yes && break
3135 done
3136 if test "$_socklen_t" = yes ; then
3137 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3138 else
3139 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3141 echores "$_socklen_t"
3144 echocheck "closesocket()"
3145 _closesocket=no
3146 cat > $TMPC << EOF
3147 #include <winsock2.h>
3148 int main(void) { closesocket(~0); return 0; }
3150 cc_check $_ld_sock && _closesocket=yes
3151 if test "$_closesocket" = yes ; then
3152 def_closesocket='#define HAVE_CLOSESOCKET 1'
3153 else
3154 def_closesocket='#define HAVE_CLOSESOCKET 0'
3156 echores "$_closesocket"
3159 echocheck "network"
3160 test $_winsock2_h = no && test $inet_pton = no &&
3161 test $inet_aton = no && _network=no
3162 if test "$_network" = yes ; then
3163 def_network='#define CONFIG_NETWORK 1'
3164 extra_ldflags="$extra_ldflags $_ld_sock"
3165 _inputmodules="network $_inputmodules"
3166 else
3167 _noinputmodules="network $_noinputmodules"
3168 def_network='#undef CONFIG_NETWORK'
3169 _ftp=no
3171 echores "$_network"
3174 echocheck "inet6"
3175 if test "$_inet6" = auto ; then
3176 cat > $TMPC << EOF
3177 #include <sys/types.h>
3178 #if !defined(_WIN32) || defined(__CYGWIN__)
3179 #include <sys/socket.h>
3180 #include <netinet/in.h>
3181 #else
3182 #include <ws2tcpip.h>
3183 #endif
3184 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3186 _inet6=no
3187 if cc_check $_ld_sock ; then
3188 _inet6=yes
3191 if test "$_inet6" = yes ; then
3192 def_inet6='#define HAVE_AF_INET6 1'
3193 else
3194 def_inet6='#undef HAVE_AF_INET6'
3196 echores "$_inet6"
3199 echocheck "gethostbyname2"
3200 if test "$_gethostbyname2" = auto ; then
3201 cat > $TMPC << EOF
3202 #include <sys/types.h>
3203 #include <sys/socket.h>
3204 #include <netdb.h>
3205 int main(void) { gethostbyname2("", AF_INET); return 0; }
3207 _gethostbyname2=no
3208 if cc_check ; then
3209 _gethostbyname2=yes
3212 if test "$_gethostbyname2" = yes ; then
3213 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3214 else
3215 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3217 echores "$_gethostbyname2"
3220 echocheck "inttypes.h (required)"
3221 cat > $TMPC << EOF
3222 #include <inttypes.h>
3223 int main(void) { return 0; }
3225 _inttypes=no
3226 cc_check && _inttypes=yes
3227 echores "$_inttypes"
3229 if test "$_inttypes" = no ; then
3230 echocheck "bitypes.h (inttypes.h predecessor)"
3231 cat > $TMPC << EOF
3232 #include <sys/bitypes.h>
3233 int main(void) { return 0; }
3235 cc_check && _inttypes=yes
3236 if test "$_inttypes" = yes ; then
3237 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."
3238 else
3239 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3244 echocheck "int_fastXY_t in inttypes.h"
3245 cat > $TMPC << EOF
3246 #include <inttypes.h>
3247 int main(void) {
3248 volatile int_fast16_t v= 0;
3249 return v; }
3251 _fast_inttypes=no
3252 cc_check && _fast_inttypes=yes
3253 if test "$_fast_inttypes" = no ; then
3254 def_fast_inttypes='
3255 typedef signed char int_fast8_t;
3256 typedef signed int int_fast16_t;
3257 typedef signed int int_fast32_t;
3258 typedef signed long long int_fast64_t;
3259 typedef unsigned char uint_fast8_t;
3260 typedef unsigned int uint_fast16_t;
3261 typedef unsigned int uint_fast32_t;
3262 typedef unsigned long long uint_fast64_t;'
3264 echores "$_fast_inttypes"
3267 echocheck "malloc.h"
3268 cat > $TMPC << EOF
3269 #include <malloc.h>
3270 int main(void) { (void) malloc(0); return 0; }
3272 _malloc=no
3273 cc_check && _malloc=yes
3274 if test "$_malloc" = yes ; then
3275 def_malloc_h='#define HAVE_MALLOC_H 1'
3276 else
3277 def_malloc_h='#define HAVE_MALLOC_H 0'
3279 # malloc.h emits a warning in FreeBSD and OpenBSD
3280 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3281 echores "$_malloc"
3284 echocheck "memalign()"
3285 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3286 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3287 cat > $TMPC << EOF
3288 #include <malloc.h>
3289 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3291 _memalign=no
3292 cc_check && _memalign=yes
3293 if test "$_memalign" = yes ; then
3294 def_memalign='#define HAVE_MEMALIGN 1'
3295 else
3296 def_memalign='#define HAVE_MEMALIGN 0'
3297 def_map_memalign='#define memalign(a,b) malloc(b)'
3298 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3300 echores "$_memalign"
3303 echocheck "posix_memalign()"
3304 posix_memalign=no
3305 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3306 cat > $TMPC << EOF
3307 #define _XOPEN_SOURCE 600
3308 #include <stdlib.h>
3309 int main(void) { posix_memalign(NULL, 0, 0); }
3311 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3312 echores "$posix_memalign"
3315 echocheck "alloca.h"
3316 cat > $TMPC << EOF
3317 #include <alloca.h>
3318 int main(void) { (void) alloca(0); return 0; }
3320 _alloca=no
3321 cc_check && _alloca=yes
3322 if cc_check ; then
3323 def_alloca_h='#define HAVE_ALLOCA_H 1'
3324 else
3325 def_alloca_h='#undef HAVE_ALLOCA_H'
3327 echores "$_alloca"
3330 echocheck "fastmemcpy"
3331 if test "$_fastmemcpy" = yes ; then
3332 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3333 else
3334 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3336 echores "$_fastmemcpy"
3339 echocheck "mman.h"
3340 cat > $TMPC << EOF
3341 #include <sys/types.h>
3342 #include <sys/mman.h>
3343 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3345 _mman=no
3346 cc_check && _mman=yes
3347 if test "$_mman" = yes ; then
3348 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3349 else
3350 def_mman_h='#undef HAVE_SYS_MMAN_H'
3351 os2 && _need_mmap=yes
3353 echores "$_mman"
3355 cat > $TMPC << EOF
3356 #include <sys/types.h>
3357 #include <sys/mman.h>
3358 int main(void) { void *p = MAP_FAILED; return 0; }
3360 _mman_has_map_failed=no
3361 cc_check && _mman_has_map_failed=yes
3362 if test "$_mman_has_map_failed" = yes ; then
3363 def_mman_has_map_failed=''
3364 else
3365 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3368 echocheck "dynamic loader"
3369 cat > $TMPC << EOF
3370 #include <stddef.h>
3371 #include <dlfcn.h>
3372 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3374 _dl=no
3375 for _ld_tmp in "" "-ldl" ; do
3376 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3377 done
3378 if test "$_dl" = yes ; then
3379 def_dl='#define HAVE_LIBDL 1'
3380 else
3381 def_dl='#undef HAVE_LIBDL'
3383 echores "$_dl"
3386 echocheck "dynamic a/v plugins support"
3387 if test "$_dl" = no ; then
3388 _dynamic_plugins=no
3390 if test "$_dynamic_plugins" = yes ; then
3391 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3392 else
3393 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3395 echores "$_dynamic_plugins"
3398 def_threads='#define HAVE_THREADS 0'
3400 echocheck "pthread"
3401 if linux ; then
3402 THREAD_CFLAGS=-D_REENTRANT
3403 elif freebsd || netbsd || openbsd || bsdos ; then
3404 THREAD_CFLAGS=-D_THREAD_SAFE
3406 if test "$_pthreads" = auto ; then
3407 cat > $TMPC << EOF
3408 #include <pthread.h>
3409 void* func(void *arg) { return arg; }
3410 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3412 _pthreads=no
3413 if ! hpux ; then
3414 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3415 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3416 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3417 done
3420 if test "$_pthreads" = yes ; then
3421 test $_ld_pthread && _res_comment="using $_ld_pthread"
3422 def_pthreads='#define HAVE_PTHREADS 1'
3423 def_threads='#define HAVE_THREADS 1'
3424 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3425 else
3426 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3427 def_pthreads='#undef HAVE_PTHREADS'
3428 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3429 mingw32 || _win32dll=no
3431 echores "$_pthreads"
3433 if cygwin ; then
3434 if test "$_pthreads" = yes ; then
3435 def_pthread_cache="#define PTHREAD_CACHE 1"
3436 else
3437 _stream_cache=no
3438 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3442 echocheck "w32threads"
3443 if test "$_pthreads" = yes ; then
3444 _res_comment="using pthread instead"
3445 _w32threads=no
3447 if test "$_w32threads" = auto ; then
3448 _w32threads=no
3449 mingw32 && _w32threads=yes
3451 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3452 echores "$_w32threads"
3454 echocheck "rpath"
3455 netbsd &&_rpath=yes
3456 if test "$_rpath" = yes ; then
3457 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3458 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3459 done
3460 extra_ldflags=$tmp
3462 echores "$_rpath"
3464 echocheck "iconv"
3465 if test "$_iconv" = auto ; then
3466 cat > $TMPC << EOF
3467 #include <stdio.h>
3468 #include <unistd.h>
3469 #include <iconv.h>
3470 #define INBUFSIZE 1024
3471 #define OUTBUFSIZE 4096
3473 char inbuffer[INBUFSIZE];
3474 char outbuffer[OUTBUFSIZE];
3476 int main(void) {
3477 size_t numread;
3478 iconv_t icdsc;
3479 char *tocode="UTF-8";
3480 char *fromcode="cp1250";
3481 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3482 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3483 char *iptr=inbuffer;
3484 char *optr=outbuffer;
3485 size_t inleft=numread;
3486 size_t outleft=OUTBUFSIZE;
3487 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3488 != (size_t)(-1)) {
3489 write(1, outbuffer, OUTBUFSIZE - outleft);
3492 if (iconv_close(icdsc) == -1)
3495 return 0;
3498 _iconv=no
3499 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3500 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3501 _iconv=yes && break
3502 done
3504 if test "$_iconv" = yes ; then
3505 def_iconv='#define CONFIG_ICONV 1'
3506 else
3507 def_iconv='#undef CONFIG_ICONV'
3509 echores "$_iconv"
3512 echocheck "soundcard.h"
3513 _soundcard_h=no
3514 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3515 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3516 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3517 cat > $TMPC << EOF
3518 #include <$_soundcard_header>
3519 int main(void) { return 0; }
3521 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3522 done
3524 if test "$_soundcard_h" = yes ; then
3525 if test $_soundcard_header = "sys/soundcard.h"; then
3526 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3527 else
3528 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3531 echores "$_soundcard_h"
3534 echocheck "sys/dvdio.h"
3535 cat > $TMPC << EOF
3536 #include <unistd.h>
3537 #include <sys/dvdio.h>
3538 int main(void) { return 0; }
3540 _dvdio=no
3541 cc_check && _dvdio=yes
3542 if test "$_dvdio" = yes ; then
3543 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3544 else
3545 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3547 echores "$_dvdio"
3550 echocheck "sys/cdio.h"
3551 cat > $TMPC << EOF
3552 #include <unistd.h>
3553 #include <sys/cdio.h>
3554 int main(void) { return 0; }
3556 _cdio=no
3557 cc_check && _cdio=yes
3558 if test "$_cdio" = yes ; then
3559 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3560 else
3561 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3563 echores "$_cdio"
3566 echocheck "linux/cdrom.h"
3567 cat > $TMPC << EOF
3568 #include <sys/types.h>
3569 #include <linux/cdrom.h>
3570 int main(void) { return 0; }
3572 _cdrom=no
3573 cc_check && _cdrom=yes
3574 if test "$_cdrom" = yes ; then
3575 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3576 else
3577 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3579 echores "$_cdrom"
3582 echocheck "dvd.h"
3583 cat > $TMPC << EOF
3584 #include <dvd.h>
3585 int main(void) { return 0; }
3587 _dvd=no
3588 cc_check && _dvd=yes
3589 if test "$_dvd" = yes ; then
3590 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3591 else
3592 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3594 echores "$_dvd"
3597 if bsdos; then
3598 echocheck "BSDI dvd.h"
3599 cat > $TMPC << EOF
3600 #include <dvd.h>
3601 int main(void) { return 0; }
3603 _bsdi_dvd=no
3604 cc_check && _bsdi_dvd=yes
3605 if test "$_bsdi_dvd" = yes ; then
3606 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3607 else
3608 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3610 echores "$_bsdi_dvd"
3611 fi #if bsdos
3614 if hpux; then
3615 # also used by AIX, but AIX does not support VCD and/or libdvdread
3616 echocheck "HP-UX SCSI header"
3617 cat > $TMPC << EOF
3618 #include <sys/scsi.h>
3619 int main(void) { return 0; }
3621 _hpux_scsi_h=no
3622 cc_check && _hpux_scsi_h=yes
3623 if test "$_hpux_scsi_h" = yes ; then
3624 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3625 else
3626 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3628 echores "$_hpux_scsi_h"
3629 fi #if hpux
3632 if sunos; then
3633 echocheck "userspace SCSI headers (Solaris)"
3634 cat > $TMPC << EOF
3635 #include <unistd.h>
3636 #include <stropts.h>
3637 #include <sys/scsi/scsi_types.h>
3638 #include <sys/scsi/impl/uscsi.h>
3639 int main(void) { return 0; }
3641 _sol_scsi_h=no
3642 cc_check && _sol_scsi_h=yes
3643 if test "$_sol_scsi_h" = yes ; then
3644 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3645 else
3646 def_sol_scsi_h='#undef SOLARIS_USCSI'
3648 echores "$_sol_scsi_h"
3649 fi #if sunos
3652 echocheck "termcap"
3653 if test "$_termcap" = auto ; then
3654 cat > $TMPC <<EOF
3655 #include <stddef.h>
3656 #include <term.h>
3657 int main(void) { tgetent(NULL, NULL); return 0; }
3659 _termcap=no
3660 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3661 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3662 && _termcap=yes && break
3663 done
3665 if test "$_termcap" = yes ; then
3666 def_termcap='#define HAVE_TERMCAP 1'
3667 test $_ld_tmp && _res_comment="using $_ld_tmp"
3668 else
3669 def_termcap='#undef HAVE_TERMCAP'
3671 echores "$_termcap"
3674 echocheck "termios"
3675 def_termios='#undef HAVE_TERMIOS'
3676 def_termios_h='#undef HAVE_TERMIOS_H'
3677 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3678 if test "$_termios" = auto ; then
3679 _termios=no
3680 for _termios_header in "sys/termios.h" "termios.h"; do
3681 cat > $TMPC <<EOF
3682 #include <$_termios_header>
3683 int main(void) { return 0; }
3685 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3686 done
3689 if test "$_termios" = yes ; then
3690 def_termios='#define HAVE_TERMIOS 1'
3691 if test "$_termios_header" = "termios.h" ; then
3692 def_termios_h='#define HAVE_TERMIOS_H 1'
3693 else
3694 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3697 echores "$_termios"
3700 echocheck "shm"
3701 if test "$_shm" = auto ; then
3702 cat > $TMPC << EOF
3703 #include <sys/types.h>
3704 #include <sys/shm.h>
3705 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3707 _shm=no
3708 cc_check && _shm=yes
3710 if test "$_shm" = yes ; then
3711 def_shm='#define HAVE_SHM 1'
3712 else
3713 def_shm='#undef HAVE_SHM'
3715 echores "$_shm"
3718 echocheck "strsep()"
3719 cat > $TMPC << EOF
3720 #include <string.h>
3721 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3723 _strsep=no
3724 cc_check && _strsep=yes
3725 if test "$_strsep" = yes ; then
3726 def_strsep='#define HAVE_STRSEP 1'
3727 _need_strsep=no
3728 else
3729 def_strsep='#undef HAVE_STRSEP'
3730 _need_strsep=yes
3732 echores "$_strsep"
3735 echocheck "vsscanf()"
3736 cat > $TMPC << EOF
3737 #define _ISOC99_SOURCE
3738 #include <stdarg.h>
3739 #include <stdio.h>
3740 int main(void) { vsscanf(0, 0, 0); return 0; }
3742 _vsscanf=no
3743 cc_check && _vsscanf=yes
3744 if test "$_vsscanf" = yes ; then
3745 def_vsscanf='#define HAVE_VSSCANF 1'
3746 _need_vsscanf=no
3747 else
3748 def_vsscanf='#undef HAVE_VSSCANF'
3749 _need_vsscanf=yes
3751 echores "$_vsscanf"
3754 echocheck "swab()"
3755 cat > $TMPC << EOF
3756 #define _XOPEN_SOURCE 600
3757 #include <unistd.h>
3758 int main(void) { swab(0, 0, 0); return 0; }
3760 _swab=no
3761 cc_check && _swab=yes
3762 if test "$_swab" = yes ; then
3763 def_swab='#define HAVE_SWAB 1'
3764 _need_swab=no
3765 else
3766 def_swab='#undef HAVE_SWAB'
3767 _need_swab=yes
3769 echores "$_swab"
3771 echocheck "POSIX select()"
3772 cat > $TMPC << EOF
3773 #include <stdio.h>
3774 #include <stdlib.h>
3775 #include <sys/types.h>
3776 #include <string.h>
3777 #include <sys/time.h>
3778 #include <unistd.h>
3779 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3781 _posix_select=no
3782 def_posix_select='#undef HAVE_POSIX_SELECT'
3783 #select() of kLIBC (OS/2) supports socket only
3784 ! os2 && cc_check && _posix_select=yes \
3785 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3786 echores "$_posix_select"
3789 echocheck "audio select()"
3790 if test "$_select" = no ; then
3791 def_select='#undef HAVE_AUDIO_SELECT'
3792 elif test "$_select" = yes ; then
3793 def_select='#define HAVE_AUDIO_SELECT 1'
3795 echores "$_select"
3798 echocheck "gettimeofday()"
3799 cat > $TMPC << EOF
3800 #include <stdio.h>
3801 #include <sys/time.h>
3802 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3804 _gettimeofday=no
3805 cc_check && _gettimeofday=yes
3806 if test "$_gettimeofday" = yes ; then
3807 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3808 _need_gettimeofday=no
3809 else
3810 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3811 _need_gettimeofday=yes
3813 echores "$_gettimeofday"
3816 echocheck "glob()"
3817 cat > $TMPC << EOF
3818 #include <stdio.h>
3819 #include <glob.h>
3820 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3822 _glob=no
3823 cc_check && _glob=yes
3824 if test "$_glob" = yes ; then
3825 def_glob='#define HAVE_GLOB 1'
3826 _need_glob=no
3827 else
3828 def_glob='#undef HAVE_GLOB'
3829 _need_glob=yes
3831 echores "$_glob"
3834 echocheck "setenv()"
3835 cat > $TMPC << EOF
3836 #include <stdlib.h>
3837 int main(void) { setenv("","",0); return 0; }
3839 _setenv=no
3840 cc_check && _setenv=yes
3841 if test "$_setenv" = yes ; then
3842 def_setenv='#define HAVE_SETENV 1'
3843 _need_setenv=no
3844 else
3845 def_setenv='#undef HAVE_SETENV'
3846 _need_setenv=yes
3848 echores "$_setenv"
3851 if sunos; then
3852 echocheck "sysi86()"
3853 cat > $TMPC << EOF
3854 #include <sys/sysi86.h>
3855 int main(void) { sysi86(0); return 0; }
3857 _sysi86=no
3858 cc_check && _sysi86=yes
3859 if test "$_sysi86" = yes ; then
3860 def_sysi86='#define HAVE_SYSI86 1'
3861 cat > $TMPC << EOF
3862 #include <sys/sysi86.h>
3863 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3865 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3866 else
3867 def_sysi86='#undef HAVE_SYSI86'
3869 echores "$_sysi86"
3870 fi #if sunos
3873 echocheck "sys/sysinfo.h"
3874 cat > $TMPC << EOF
3875 #include <sys/sysinfo.h>
3876 int main(void) {
3877 struct sysinfo s_info;
3878 sysinfo(&s_info);
3879 return 0;
3882 _sys_sysinfo=no
3883 cc_check && _sys_sysinfo=yes
3884 if test "$_sys_sysinfo" = yes ; then
3885 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3886 else
3887 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3889 echores "$_sys_sysinfo"
3892 if darwin; then
3894 echocheck "Mac OS X Finder Support"
3895 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3896 if test "$_macosx_finder" = yes ; then
3897 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3898 extra_ldflags="$extra_ldflags -framework Carbon"
3900 echores "$_macosx_finder"
3902 echocheck "Mac OS X Bundle file locations"
3903 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3904 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3905 if test "$_macosx_bundle" = yes ; then
3906 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3907 extra_ldflags="$extra_ldflags -framework Carbon"
3909 echores "$_macosx_bundle"
3911 echocheck "Apple Remote"
3912 if test "$_apple_remote" = auto ; then
3913 _apple_remote=no
3914 cat > $TMPC <<EOF
3915 #include <stdio.h>
3916 #include <IOKit/IOCFPlugIn.h>
3917 int main(void) {
3918 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3919 CFMutableDictionaryRef hidMatchDictionary;
3920 IOReturn ioReturnValue;
3922 // Set up a matching dictionary to search the I/O Registry by class.
3923 // name for all HID class devices
3924 hidMatchDictionary = IOServiceMatching("AppleIRController");
3926 // Now search I/O Registry for matching devices.
3927 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3928 hidMatchDictionary, &hidObjectIterator);
3930 // If search is unsuccessful, return nonzero.
3931 if (ioReturnValue != kIOReturnSuccess ||
3932 !IOIteratorIsValid(hidObjectIterator)) {
3933 return 1;
3935 return 0;
3938 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3940 if test "$_apple_remote" = yes ; then
3941 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3942 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3943 else
3944 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3946 echores "$_apple_remote"
3948 fi #if darwin
3950 if linux; then
3952 echocheck "Apple IR"
3953 if test "$_apple_ir" = auto ; then
3954 _apple_ir=no
3955 cat > $TMPC <<EOF
3956 #include <linux/types.h>
3957 #include <linux/input.h>
3958 int main(void) {
3959 struct input_event ev;
3960 struct input_id id;
3961 return 0;
3964 cc_check && _apple_ir=yes
3966 if test "$_apple_ir" = yes ; then
3967 def_apple_ir='#define CONFIG_APPLE_IR 1'
3968 else
3969 def_apple_ir='#undef CONFIG_APPLE_IR'
3971 echores "$_apple_ir"
3972 fi #if linux
3974 echocheck "pkg-config"
3975 _pkg_config=pkg-config
3976 if $($_pkg_config --version > /dev/null 2>&1); then
3977 if test "$_ld_static"; then
3978 _pkg_config="$_pkg_config --static"
3980 echores "yes"
3981 else
3982 _pkg_config=false
3983 echores "no"
3987 echocheck "Samba support (libsmbclient)"
3988 if test "$_smb" = yes; then
3989 extra_ldflags="$extra_ldflags -lsmbclient"
3991 if test "$_smb" = auto; then
3992 _smb=no
3993 cat > $TMPC << EOF
3994 #include <libsmbclient.h>
3995 int main(void) { smbc_opendir("smb://"); return 0; }
3997 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3998 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3999 _smb=yes && break
4000 done
4003 if test "$_smb" = yes; then
4004 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4005 _inputmodules="smb $_inputmodules"
4006 else
4007 def_smb="#undef CONFIG_LIBSMBCLIENT"
4008 _noinputmodules="smb $_noinputmodules"
4010 echores "$_smb"
4013 #########
4014 # VIDEO #
4015 #########
4018 echocheck "tdfxfb"
4019 if test "$_tdfxfb" = yes ; then
4020 def_tdfxfb='#define CONFIG_TDFXFB 1'
4021 _vomodules="tdfxfb $_vomodules"
4022 else
4023 def_tdfxfb='#undef CONFIG_TDFXFB'
4024 _novomodules="tdfxfb $_novomodules"
4026 echores "$_tdfxfb"
4028 echocheck "s3fb"
4029 if test "$_s3fb" = yes ; then
4030 def_s3fb='#define CONFIG_S3FB 1'
4031 _vomodules="s3fb $_vomodules"
4032 else
4033 def_s3fb='#undef CONFIG_S3FB'
4034 _novomodules="s3fb $_novomodules"
4036 echores "$_s3fb"
4038 echocheck "wii"
4039 if test "$_wii" = yes ; then
4040 def_wii='#define CONFIG_WII 1'
4041 _vomodules="wii $_vomodules"
4042 else
4043 def_wii='#undef CONFIG_WII'
4044 _novomodules="wii $_novomodules"
4046 echores "$_wii"
4048 echocheck "tdfxvid"
4049 if test "$_tdfxvid" = yes ; then
4050 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4051 _vomodules="tdfx_vid $_vomodules"
4052 else
4053 def_tdfxvid='#undef CONFIG_TDFX_VID'
4054 _novomodules="tdfx_vid $_novomodules"
4056 echores "$_tdfxvid"
4058 echocheck "xvr100"
4059 if test "$_xvr100" = auto ; then
4060 cat > $TMPC << EOF
4061 #include <unistd.h>
4062 #include <sys/fbio.h>
4063 #include <sys/visual_io.h>
4064 int main(void) {
4065 struct vis_identifier ident;
4066 struct fbgattr attr;
4067 ioctl(0, VIS_GETIDENTIFIER, &ident);
4068 ioctl(0, FBIOGATTR, &attr);
4069 return 0;
4072 _xvr100=no
4073 cc_check && _xvr100=yes
4075 if test "$_xvr100" = yes ; then
4076 def_xvr100='#define CONFIG_XVR100 1'
4077 _vomodules="xvr100 $_vomodules"
4078 else
4079 def_tdfxvid='#undef CONFIG_XVR100'
4080 _novomodules="xvr100 $_novomodules"
4082 echores "$_xvr100"
4084 echocheck "tga"
4085 if test "$_tga" = yes ; then
4086 def_tga='#define CONFIG_TGA 1'
4087 _vomodules="tga $_vomodules"
4088 else
4089 def_tga='#undef CONFIG_TGA'
4090 _novomodules="tga $_novomodules"
4092 echores "$_tga"
4095 echocheck "md5sum support"
4096 if test "$_md5sum" = yes; then
4097 def_md5sum="#define CONFIG_MD5SUM 1"
4098 _vomodules="md5sum $_vomodules"
4099 else
4100 def_md5sum="#undef CONFIG_MD5SUM"
4101 _novomodules="md5sum $_novomodules"
4103 echores "$_md5sum"
4106 echocheck "yuv4mpeg support"
4107 if test "$_yuv4mpeg" = yes; then
4108 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4109 _vomodules="yuv4mpeg $_vomodules"
4110 else
4111 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4112 _novomodules="yuv4mpeg $_novomodules"
4114 echores "$_yuv4mpeg"
4117 echocheck "bl"
4118 if test "$_bl" = yes ; then
4119 def_bl='#define CONFIG_BL 1'
4120 _vomodules="bl $_vomodules"
4121 else
4122 def_bl='#undef CONFIG_BL'
4123 _novomodules="bl $_novomodules"
4125 echores "$_bl"
4128 echocheck "DirectFB"
4129 if test "$_directfb" = auto ; then
4130 _directfb=no
4131 cat > $TMPC <<EOF
4132 #include <directfb.h>
4133 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4135 for _inc_tmp in "" -I/usr/local/include/directfb \
4136 -I/usr/include/directfb -I/usr/local/include; do
4137 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4138 extra_cflags="$extra_cflags $_inc_tmp" && break
4139 done
4142 dfb_version() {
4143 expr $1 \* 65536 + $2 \* 256 + $3
4146 if test "$_directfb" = yes; then
4147 cat > $TMPC << EOF
4148 #include <directfb_version.h>
4150 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4153 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4154 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4155 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4156 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4157 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4158 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4159 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4160 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4161 _res_comment="$_directfb_version"
4162 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4163 else
4164 def_directfb_version='#undef DIRECTFBVERSION'
4165 _directfb=no
4166 _res_comment="version >=0.9.13 required"
4168 else
4169 _directfb=no
4170 _res_comment="failed to get version"
4173 echores "$_directfb"
4175 if test "$_directfb" = yes ; then
4176 def_directfb='#define CONFIG_DIRECTFB 1'
4177 _vomodules="directfb $_vomodules"
4178 libs_mplayer="$libs_mplayer -ldirectfb"
4179 else
4180 def_directfb='#undef CONFIG_DIRECTFB'
4181 _novomodules="directfb $_novomodules"
4183 if test "$_dfbmga" = yes; then
4184 _vomodules="dfbmga $_vomodules"
4185 def_dfbmga='#define CONFIG_DFBMGA 1'
4186 else
4187 _novomodules="dfbmga $_novomodules"
4188 def_dfbmga='#undef CONFIG_DFBMGA'
4192 echocheck "X11 headers presence"
4193 _x11_headers="no"
4194 _res_comment="check if the dev(el) packages are installed"
4195 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4196 if test -f "$I/X11/Xlib.h" ; then
4197 _x11_headers="yes"
4198 _res_comment=""
4199 break
4201 done
4202 if test $_cross_compile = no; then
4203 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4204 /usr/include/X11R6 /usr/openwin/include ; do
4205 if test -f "$I/X11/Xlib.h" ; then
4206 extra_cflags="$extra_cflags -I$I"
4207 _x11_headers="yes"
4208 _res_comment="using $I"
4209 break
4211 done
4213 echores "$_x11_headers"
4216 echocheck "X11"
4217 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4218 cat > $TMPC <<EOF
4219 #include <X11/Xlib.h>
4220 #include <X11/Xutil.h>
4221 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4223 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4224 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4225 -L/usr/lib ; do
4226 if netbsd; then
4227 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4228 else
4229 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4231 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4232 && _x11=yes && break
4233 done
4235 if test "$_x11" = yes ; then
4236 def_x11='#define CONFIG_X11 1'
4237 _vomodules="x11 xover $_vomodules"
4238 else
4239 _x11=no
4240 def_x11='#undef CONFIG_X11'
4241 _novomodules="x11 $_novomodules"
4242 _res_comment="check if the dev(el) packages are installed"
4243 # disable stuff that depends on X
4244 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4246 echores "$_x11"
4248 echocheck "Xss screensaver extensions"
4249 if test "$_xss" = auto ; then
4250 cat > $TMPC << EOF
4251 #include <X11/Xlib.h>
4252 #include <X11/extensions/scrnsaver.h>
4253 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4255 _xss=no
4256 cc_check -lXss && _xss=yes
4258 if test "$_xss" = yes ; then
4259 def_xss='#define CONFIG_XSS 1'
4260 libs_mplayer="$libs_mplayer -lXss"
4261 else
4262 def_xss='#undef CONFIG_XSS'
4264 echores "$_xss"
4266 echocheck "DPMS"
4267 _xdpms3=no
4268 _xdpms4=no
4269 if test "$_x11" = yes ; then
4270 cat > $TMPC <<EOF
4271 #include <X11/Xmd.h>
4272 #include <X11/Xlib.h>
4273 #include <X11/Xutil.h>
4274 #include <X11/Xatom.h>
4275 #include <X11/extensions/dpms.h>
4276 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4278 cc_check -lXdpms && _xdpms3=yes
4279 cat > $TMPC <<EOF
4280 #include <X11/Xlib.h>
4281 #include <X11/extensions/dpms.h>
4282 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4284 cc_check -lXext && _xdpms4=yes
4286 if test "$_xdpms4" = yes ; then
4287 def_xdpms='#define CONFIG_XDPMS 1'
4288 _res_comment="using Xdpms 4"
4289 echores "yes"
4290 elif test "$_xdpms3" = yes ; then
4291 def_xdpms='#define CONFIG_XDPMS 1'
4292 libs_mplayer="$libs_mplayer -lXdpms"
4293 _res_comment="using Xdpms 3"
4294 echores "yes"
4295 else
4296 def_xdpms='#undef CONFIG_XDPMS'
4297 echores "no"
4301 echocheck "Xv"
4302 if test "$_xv" = auto ; then
4303 cat > $TMPC <<EOF
4304 #include <X11/Xlib.h>
4305 #include <X11/extensions/Xvlib.h>
4306 int main(void) {
4307 (void) XvGetPortAttribute(0, 0, 0, 0);
4308 (void) XvQueryPortAttributes(0, 0, 0);
4309 return 0; }
4311 _xv=no
4312 cc_check -lXv && _xv=yes
4315 if test "$_xv" = yes ; then
4316 def_xv='#define CONFIG_XV 1'
4317 libs_mplayer="$libs_mplayer -lXv"
4318 _vomodules="xv $_vomodules"
4319 else
4320 def_xv='#undef CONFIG_XV'
4321 _novomodules="xv $_novomodules"
4323 echores "$_xv"
4326 echocheck "XvMC"
4327 if test "$_xv" = yes && test "$_xvmc" != no ; then
4328 _xvmc=no
4329 cat > $TMPC <<EOF
4330 #include <X11/Xlib.h>
4331 #include <X11/extensions/Xvlib.h>
4332 #include <X11/extensions/XvMClib.h>
4333 int main(void) {
4334 (void) XvMCQueryExtension(0,0,0);
4335 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4336 return 0; }
4338 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4339 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4340 done
4342 if test "$_xvmc" = yes ; then
4343 def_xvmc='#define CONFIG_XVMC 1'
4344 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4345 _vomodules="xvmc $_vomodules"
4346 _res_comment="using $_xvmclib"
4347 else
4348 def_xvmc='#define CONFIG_XVMC 0'
4349 _novomodules="xvmc $_novomodules"
4350 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4352 echores "$_xvmc"
4355 echocheck "VDPAU"
4356 if test "$_vdpau" = auto ; then
4357 _vdpau=no
4358 if test "$_dl" = yes ; then
4359 cat > $TMPC <<EOF
4360 #include <vdpau/vdpau_x11.h>
4361 int main(void) {
4362 (void) vdp_device_create_x11(0, 0, 0, 0);
4363 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4365 cc_check -lvdpau && _vdpau=yes
4368 if test "$_vdpau" = yes ; then
4369 def_vdpau='#define CONFIG_VDPAU 1'
4370 libs_mplayer="$libs_mplayer -lvdpau"
4371 _vomodules="vdpau $_vomodules"
4372 else
4373 def_vdpau='#define CONFIG_VDPAU 0'
4374 _novomodules="vdpau $_novomodules"
4375 _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//)
4377 echores "$_vdpau"
4380 echocheck "Xinerama"
4381 if test "$_xinerama" = auto ; then
4382 cat > $TMPC <<EOF
4383 #include <X11/Xlib.h>
4384 #include <X11/extensions/Xinerama.h>
4385 int main(void) { (void) XineramaIsActive(0); return 0; }
4387 _xinerama=no
4388 cc_check -lXinerama && _xinerama=yes
4391 if test "$_xinerama" = yes ; then
4392 def_xinerama='#define CONFIG_XINERAMA 1'
4393 libs_mplayer="$libs_mplayer -lXinerama"
4394 else
4395 def_xinerama='#undef CONFIG_XINERAMA'
4397 echores "$_xinerama"
4400 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4401 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4402 # named 'X extensions' or something similar.
4403 # This check may be useful for future mplayer versions (to change resolution)
4404 # If you run into problems, remove '-lXxf86vm'.
4405 echocheck "Xxf86vm"
4406 if test "$_vm" = auto ; then
4407 cat > $TMPC <<EOF
4408 #include <X11/Xlib.h>
4409 #include <X11/extensions/xf86vmode.h>
4410 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4412 _vm=no
4413 cc_check -lXxf86vm && _vm=yes
4415 if test "$_vm" = yes ; then
4416 def_vm='#define CONFIG_XF86VM 1'
4417 libs_mplayer="$libs_mplayer -lXxf86vm"
4418 else
4419 def_vm='#undef CONFIG_XF86VM'
4421 echores "$_vm"
4423 # Check for the presence of special keycodes, like audio control buttons
4424 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4425 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4426 # have these new keycodes.
4427 echocheck "XF86keysym"
4428 if test "$_xf86keysym" = auto; then
4429 _xf86keysym=no
4430 cat > $TMPC <<EOF
4431 #include <X11/Xlib.h>
4432 #include <X11/XF86keysym.h>
4433 int main(void) { return XF86XK_AudioPause; }
4435 cc_check && _xf86keysym=yes
4437 if test "$_xf86keysym" = yes ; then
4438 def_xf86keysym='#define CONFIG_XF86XK 1'
4439 else
4440 def_xf86keysym='#undef CONFIG_XF86XK'
4442 echores "$_xf86keysym"
4444 echocheck "DGA"
4445 if test "$_dga2" = auto && test "$_x11" = yes ; then
4446 cat > $TMPC << EOF
4447 #include <X11/Xlib.h>
4448 #include <X11/extensions/xf86dga.h>
4449 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4451 _dga2=no
4452 cc_check -lXxf86dga && _dga2=yes
4454 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4455 cat > $TMPC << EOF
4456 #include <X11/Xlib.h>
4457 #include <X11/extensions/xf86dga.h>
4458 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4460 _dga1=no
4461 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4464 _dga=no
4465 def_dga='#undef CONFIG_DGA'
4466 def_dga1='#undef CONFIG_DGA1'
4467 def_dga2='#undef CONFIG_DGA2'
4468 if test "$_dga1" = yes ; then
4469 _dga=yes
4470 def_dga1='#define CONFIG_DGA1 1'
4471 _res_comment="using DGA 1.0"
4472 elif test "$_dga2" = yes ; then
4473 _dga=yes
4474 def_dga2='#define CONFIG_DGA2 1'
4475 _res_comment="using DGA 2.0"
4477 if test "$_dga" = yes ; then
4478 def_dga='#define CONFIG_DGA 1'
4479 libs_mplayer="$libs_mplayer -lXxf86dga"
4480 _vomodules="dga $_vomodules"
4481 else
4482 _novomodules="dga $_novomodules"
4484 echores "$_dga"
4487 echocheck "3dfx"
4488 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4489 def_3dfx='#define CONFIG_3DFX 1'
4490 _vomodules="3dfx $_vomodules"
4491 else
4492 def_3dfx='#undef CONFIG_3DFX'
4493 _novomodules="3dfx $_novomodules"
4495 echores "$_3dfx"
4498 echocheck "VIDIX"
4499 def_vidix='#undef CONFIG_VIDIX'
4500 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4501 _vidix_drv_cyberblade=no
4502 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4503 _vidix_drv_ivtv=no
4504 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4505 _vidix_drv_mach64=no
4506 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4507 _vidix_drv_mga=no
4508 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4509 _vidix_drv_mga_crtc2=no
4510 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4511 _vidix_drv_nvidia=no
4512 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4513 _vidix_drv_pm2=no
4514 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4515 _vidix_drv_pm3=no
4516 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4517 _vidix_drv_radeon=no
4518 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4519 _vidix_drv_rage128=no
4520 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4521 _vidix_drv_s3=no
4522 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4523 _vidix_drv_sh_veu=no
4524 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4525 _vidix_drv_sis=no
4526 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4527 _vidix_drv_unichrome=no
4528 if test "$_vidix" = auto ; then
4529 _vidix=no
4530 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4531 && _vidix=yes
4532 (ppc || alpha) && linux && _vidix=yes
4534 echores "$_vidix"
4536 if test "$_vidix" = yes ; then
4537 def_vidix='#define CONFIG_VIDIX 1'
4538 _vomodules="cvidix $_vomodules"
4539 # FIXME: ivtv driver temporarily disabled until we have a proper test
4540 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4541 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4543 # some vidix drivers are architecture and os specific, discard them elsewhere
4544 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4545 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4547 for driver in $_vidix_drivers ; do
4548 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4549 eval _vidix_drv_${driver}=yes
4550 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4551 done
4553 echocheck "VIDIX PCI device name database"
4554 echores "$_vidix_pcidb"
4555 if test "$_vidix_pcidb" = yes ; then
4556 _vidix_pcidb_val=1
4557 else
4558 _vidix_pcidb_val=0
4561 echocheck "VIDIX dhahelper support"
4562 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4563 echores "$_dhahelper"
4565 echocheck "VIDIX svgalib_helper support"
4566 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4567 echores "$_svgalib_helper"
4569 else
4570 _novomodules="cvidix $_novomodules"
4573 if test "$_vidix" = yes && win32; then
4574 winvidix=yes
4575 _vomodules="winvidix $_vomodules"
4576 libs_mplayer="$libs_mplayer -lgdi32"
4577 else
4578 _novomodules="winvidix $_novomodules"
4580 if test "$_vidix" = yes && test "$_x11" = yes; then
4581 xvidix=yes
4582 _vomodules="xvidix $_vomodules"
4583 else
4584 _novomodules="xvidix $_novomodules"
4587 echocheck "/dev/mga_vid"
4588 if test "$_mga" = auto ; then
4589 _mga=no
4590 test -c /dev/mga_vid && _mga=yes
4592 if test "$_mga" = yes ; then
4593 def_mga='#define CONFIG_MGA 1'
4594 _vomodules="mga $_vomodules"
4595 else
4596 def_mga='#undef CONFIG_MGA'
4597 _novomodules="mga $_novomodules"
4599 echores "$_mga"
4602 echocheck "xmga"
4603 if test "$_xmga" = auto ; then
4604 _xmga=no
4605 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4607 if test "$_xmga" = yes ; then
4608 def_xmga='#define CONFIG_XMGA 1'
4609 _vomodules="xmga $_vomodules"
4610 else
4611 def_xmga='#undef CONFIG_XMGA'
4612 _novomodules="xmga $_novomodules"
4614 echores "$_xmga"
4617 echocheck "GGI"
4618 if test "$_ggi" = auto ; then
4619 cat > $TMPC << EOF
4620 #include <ggi/ggi.h>
4621 int main(void) { ggiInit(); return 0; }
4623 _ggi=no
4624 cc_check -lggi && _ggi=yes
4626 if test "$_ggi" = yes ; then
4627 def_ggi='#define CONFIG_GGI 1'
4628 libs_mplayer="$libs_mplayer -lggi"
4629 _vomodules="ggi $_vomodules"
4630 else
4631 def_ggi='#undef CONFIG_GGI'
4632 _novomodules="ggi $_novomodules"
4634 echores "$_ggi"
4636 echocheck "GGI extension: libggiwmh"
4637 if test "$_ggiwmh" = auto ; then
4638 _ggiwmh=no
4639 cat > $TMPC << EOF
4640 #include <ggi/ggi.h>
4641 #include <ggi/wmh.h>
4642 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4644 cc_check -lggi -lggiwmh && _ggiwmh=yes
4646 # needed to get right output on obscure combination
4647 # like --disable-ggi --enable-ggiwmh
4648 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4649 def_ggiwmh='#define CONFIG_GGIWMH 1'
4650 libs_mplayer="$libs_mplayer -lggiwmh"
4651 else
4652 _ggiwmh=no
4653 def_ggiwmh='#undef CONFIG_GGIWMH'
4655 echores "$_ggiwmh"
4658 echocheck "AA"
4659 if test "$_aa" = auto ; then
4660 cat > $TMPC << EOF
4661 #include <aalib.h>
4662 extern struct aa_hardware_params aa_defparams;
4663 extern struct aa_renderparams aa_defrenderparams;
4664 int main(void) {
4665 aa_context *c;
4666 aa_renderparams *p;
4667 (void) aa_init(0, 0, 0);
4668 c = aa_autoinit(&aa_defparams);
4669 p = aa_getrenderparams();
4670 aa_autoinitkbd(c,0);
4671 return 0; }
4673 _aa=no
4674 for _ld_tmp in "-laa" ; do
4675 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4676 done
4678 if test "$_aa" = yes ; then
4679 def_aa='#define CONFIG_AA 1'
4680 if cygwin ; then
4681 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4683 _vomodules="aa $_vomodules"
4684 else
4685 def_aa='#undef CONFIG_AA'
4686 _novomodules="aa $_novomodules"
4688 echores "$_aa"
4691 echocheck "CACA"
4692 if test "$_caca" = auto ; then
4693 _caca=no
4694 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4695 cat > $TMPC << EOF
4696 #include <caca.h>
4697 #ifdef CACA_API_VERSION_1
4698 #include <caca0.h>
4699 #endif
4700 int main(void) { (void) caca_init(); return 0; }
4702 cc_check $(caca-config --libs) && _caca=yes
4705 if test "$_caca" = yes ; then
4706 def_caca='#define CONFIG_CACA 1'
4707 extra_cflags="$extra_cflags $(caca-config --cflags)"
4708 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4709 _vomodules="caca $_vomodules"
4710 else
4711 def_caca='#undef CONFIG_CACA'
4712 _novomodules="caca $_novomodules"
4714 echores "$_caca"
4717 echocheck "SVGAlib"
4718 if test "$_svga" = auto ; then
4719 cat > $TMPC << EOF
4720 #include <vga.h>
4721 int main(void) { return 0; }
4723 _svga=no
4724 cc_check -lvga $_ld_lm && _svga=yes
4726 if test "$_svga" = yes ; then
4727 def_svga='#define CONFIG_SVGALIB 1'
4728 libs_mplayer="$libs_mplayer -lvga"
4729 _vomodules="svga $_vomodules"
4730 else
4731 def_svga='#undef CONFIG_SVGALIB'
4732 _novomodules="svga $_novomodules"
4734 echores "$_svga"
4737 echocheck "FBDev"
4738 if test "$_fbdev" = auto ; then
4739 _fbdev=no
4740 linux && _fbdev=yes
4742 if test "$_fbdev" = yes ; then
4743 def_fbdev='#define CONFIG_FBDEV 1'
4744 _vomodules="fbdev $_vomodules"
4745 else
4746 def_fbdev='#undef CONFIG_FBDEV'
4747 _novomodules="fbdev $_novomodules"
4749 echores "$_fbdev"
4753 echocheck "DVB"
4754 if test "$_dvb" = auto ; then
4755 _dvb=no
4756 cat >$TMPC << EOF
4757 #include <poll.h>
4758 #include <sys/ioctl.h>
4759 #include <stdio.h>
4760 #include <time.h>
4761 #include <unistd.h>
4762 #include <ost/dmx.h>
4763 #include <ost/frontend.h>
4764 #include <ost/sec.h>
4765 #include <ost/video.h>
4766 #include <ost/audio.h>
4767 int main(void) {return 0;}
4769 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4770 cc_check $_inc_tmp && _dvb=yes && \
4771 extra_cflags="$extra_cflags $_inc_tmp" && break
4772 done
4774 echores "$_dvb"
4775 if test "$_dvb" = yes ; then
4776 def_dvb='#define CONFIG_DVB 1'
4777 def_dvbin='#define CONFIG_DVBIN 1'
4778 _aomodules="mpegpes(dvb) $_aomodules"
4779 _vomodules="mpegpes(dvb) $_vomodules"
4782 echocheck "DVB HEAD"
4783 if test "$_dvbhead" = auto ; then
4784 _dvbhead=no
4786 cat >$TMPC << EOF
4787 #include <poll.h>
4788 #include <sys/ioctl.h>
4789 #include <stdio.h>
4790 #include <time.h>
4791 #include <unistd.h>
4792 #include <linux/dvb/dmx.h>
4793 #include <linux/dvb/frontend.h>
4794 #include <linux/dvb/video.h>
4795 #include <linux/dvb/audio.h>
4796 int main(void) {return 0;}
4798 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4799 cc_check $_inc_tmp && _dvbhead=yes && \
4800 extra_cflags="$extra_cflags $_inc_tmp" && break
4801 done
4803 echores "$_dvbhead"
4804 if test "$_dvbhead" = yes ; then
4805 def_dvb='#define CONFIG_DVB 1'
4806 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4807 def_dvbin='#define CONFIG_DVBIN 1'
4808 _aomodules="mpegpes(dvb) $_aomodules"
4809 _vomodules="mpegpes(dvb) $_vomodules"
4812 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4813 def_dvb='#undef CONFIG_DVB'
4814 def_dvb_head='#undef CONFIG_DVB_HEAD'
4815 def_dvbin='#undef CONFIG_DVBIN '
4816 _aomodules="mpegpes(file) $_aomodules"
4817 _vomodules="mpegpes(file) $_vomodules"
4820 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4821 _dvbin=yes
4822 _inputmodules="dvb $_inputmodules"
4823 else
4824 _dvbin=no
4825 _noinputmodules="dvb $_noinputmodules"
4829 if darwin; then
4831 echocheck "QuickTime"
4832 if test "$quicktime" = auto ; then
4833 cat > $TMPC <<EOF
4834 #include <QuickTime/QuickTime.h>
4835 int main(void) {
4836 ImageDescription *desc;
4837 EnterMovies();
4838 ExitMovies();
4839 return 0;
4842 quicktime=no
4843 cc_check -framework QuickTime && quicktime=yes
4845 if test "$quicktime" = yes ; then
4846 extra_ldflags="$extra_ldflags -framework QuickTime"
4847 def_quicktime='#define CONFIG_QUICKTIME 1'
4848 else
4849 def_quicktime='#undef CONFIG_QUICKTIME'
4850 _quartz=no
4852 echores $quicktime
4854 echocheck "Quartz"
4855 if test "$_quartz" = auto ; then
4856 cat > $TMPC <<EOF
4857 #include <Carbon/Carbon.h>
4858 int main(void) {
4859 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4860 return 0;
4863 _quartz=no
4864 cc_check -framework Carbon && _quartz=yes
4866 if test "$_quartz" = yes ; then
4867 libs_mplayer="$libs_mplayer -framework Carbon"
4868 def_quartz='#define CONFIG_QUARTZ 1'
4869 _vomodules="quartz $_vomodules"
4870 else
4871 def_quartz='#undef CONFIG_QUARTZ'
4872 _novomodules="quartz $_novomodules"
4874 echores $_quartz
4876 echocheck "CoreVideo"
4877 if test "$_corevideo" = auto ; then
4878 cat > $TMPC <<EOF
4879 #include <Carbon/Carbon.h>
4880 #include <CoreServices/CoreServices.h>
4881 #include <OpenGL/OpenGL.h>
4882 #include <QuartzCore/CoreVideo.h>
4883 int main(void) { return 0; }
4885 _corevideo=no
4886 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4888 if test "$_corevideo" = yes ; then
4889 _vomodules="corevideo $_vomodules"
4890 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4891 def_corevideo='#define CONFIG_COREVIDEO 1'
4892 else
4893 _novomodules="corevideo $_novomodules"
4894 def_corevideo='#undef CONFIG_COREVIDEO'
4896 echores "$_corevideo"
4898 fi #if darwin
4901 # make sure this stays below CoreVideo to avoid issues due to namespace
4902 # conflicts between -lGL and -framework OpenGL
4903 echocheck "OpenGL"
4904 #Note: this test is run even with --enable-gl since we autodetect linker flags
4905 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4906 cat > $TMPC << EOF
4907 #ifdef GL_WIN32
4908 #include <windows.h>
4909 #include <GL/gl.h>
4910 #else
4911 #include <GL/gl.h>
4912 #include <X11/Xlib.h>
4913 #include <GL/glx.h>
4914 #endif
4915 int main(void) {
4916 #ifdef GL_WIN32
4917 HDC dc;
4918 wglCreateContext(dc);
4919 #else
4920 glXCreateContext(NULL, NULL, NULL, True);
4921 #endif
4922 glFinish();
4923 return 0;
4926 _gl=no
4927 if cc_check -lGL $_ld_lm ; then
4928 _gl=yes
4929 _gl_x11=yes
4930 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4931 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4932 _gl=yes
4933 _gl_x11=yes
4934 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4936 if cc_check -DGL_WIN32 -lopengl32 ; then
4937 _gl=yes
4938 _gl_win32=yes
4939 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4941 else
4942 _gl=no
4944 if test "$_gl" = yes ; then
4945 def_gl='#define CONFIG_GL 1'
4946 _res_comment="backends:"
4947 if test "$_gl_win32" = yes ; then
4948 def_gl_win32='#define CONFIG_GL_WIN32 1'
4949 _res_comment="$_res_comment win32"
4951 if test "$_gl_x11" = yes ; then
4952 def_gl_x11='#define CONFIG_GL_X11 1'
4953 _res_comment="$_res_comment x11"
4955 _vomodules="opengl $_vomodules"
4956 else
4957 def_gl='#undef CONFIG_GL'
4958 def_gl_win32='#undef CONFIG_GL_WIN32'
4959 def_gl_x11='#undef CONFIG_GL_X11'
4960 _novomodules="opengl $_novomodules"
4962 echores "$_gl"
4965 echocheck "PNG support"
4966 if test "$_png" = auto ; then
4967 _png=no
4968 if irix ; then
4969 # Don't check for -lpng on irix since it has its own libpng
4970 # incompatible with the GNU libpng
4971 _res_comment="disabled on irix (not GNU libpng)"
4972 else
4973 cat > $TMPC << EOF
4974 #include <png.h>
4975 #include <string.h>
4976 int main(void) {
4977 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4978 printf("libpng: %s\n", png_libpng_ver);
4979 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4982 cc_check -lpng -lz $_ld_lm && _png=yes
4985 echores "$_png"
4986 if test "$_png" = yes ; then
4987 def_png='#define CONFIG_PNG 1'
4988 extra_ldflags="$extra_ldflags -lpng -lz"
4989 _vomodules="png $_vomodules"
4990 else
4991 def_png='#undef CONFIG_PNG'
4992 _novomodules="png $_novomodules"
4995 echocheck "MNG support"
4996 if test "$_mng" = auto ; then
4997 _mng=no
4998 cat > $TMPC << EOF
4999 #include <libmng.h>
5000 int main(void) {
5001 const char * p_ver = mng_version_text();
5002 return !p_ver || p_ver[0] == 0;
5005 if cc_check -lmng -lz $_ld_lm ; then
5006 _mng=yes
5009 echores "$_mng"
5010 if test "$_mng" = yes ; then
5011 def_mng='#define CONFIG_MNG 1'
5012 extra_ldflags="$extra_ldflags -lmng -lz"
5013 else
5014 def_mng='#undef CONFIG_MNG'
5017 echocheck "JPEG support"
5018 if test "$_jpeg" = auto ; then
5019 _jpeg=no
5020 cat > $TMPC << EOF
5021 #include <stdio.h>
5022 #include <stdlib.h>
5023 #include <setjmp.h>
5024 #include <string.h>
5025 #include <jpeglib.h>
5026 int main(void) { return 0; }
5028 cc_check -ljpeg $_ld_lm && _jpeg=yes
5030 echores "$_jpeg"
5032 if test "$_jpeg" = yes ; then
5033 def_jpeg='#define CONFIG_JPEG 1'
5034 _vomodules="jpeg $_vomodules"
5035 extra_ldflags="$extra_ldflags -ljpeg"
5036 else
5037 def_jpeg='#undef CONFIG_JPEG'
5038 _novomodules="jpeg $_novomodules"
5043 echocheck "PNM support"
5044 if test "$_pnm" = yes; then
5045 def_pnm="#define CONFIG_PNM 1"
5046 _vomodules="pnm $_vomodules"
5047 else
5048 def_pnm="#undef CONFIG_PNM"
5049 _novomodules="pnm $_novomodules"
5051 echores "$_pnm"
5055 echocheck "GIF support"
5056 # This is to appease people who want to force gif support.
5057 # If it is forced to yes, then we still do checks to determine
5058 # which gif library to use.
5059 if test "$_gif" = yes ; then
5060 _force_gif=yes
5061 _gif=auto
5064 if test "$_gif" = auto ; then
5065 _gif=no
5066 cat > $TMPC << EOF
5067 #include <gif_lib.h>
5068 int main(void) { return 0; }
5070 for _ld_gif in "-lungif" "-lgif" ; do
5071 cc_check $_ld_gif && _gif=yes && break
5072 done
5075 # If no library was found, and the user wants support forced,
5076 # then we force it on with libgif, as this is the safest
5077 # assumption IMHO. (libungif & libregif both create symbolic
5078 # links to libgif. We also assume that no x11 support is needed,
5079 # because if you are forcing this, then you _should_ know what
5080 # you are doing. [ Besides, package maintainers should never
5081 # have compiled x11 deps into libungif in the first place. ] )
5082 # </rant>
5083 # --Joey
5084 if test "$_force_gif" = yes && test "$_gif" = no ; then
5085 _gif=yes
5086 _ld_gif="-lgif"
5089 if test "$_gif" = yes ; then
5090 def_gif='#define CONFIG_GIF 1'
5091 _codecmodules="gif $_codecmodules"
5092 _vomodules="gif89a $_vomodules"
5093 _res_comment="old version, some encoding functions disabled"
5094 def_gif_4='#undef CONFIG_GIF_4'
5095 extra_ldflags="$extra_ldflags $_ld_gif"
5097 cat > $TMPC << EOF
5098 #include <signal.h>
5099 #include <gif_lib.h>
5100 void catch() { exit(1); }
5101 int main(void) {
5102 signal(SIGSEGV, catch); // catch segfault
5103 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5104 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5105 return 0;
5108 if cc_check "$_ld_gif" ; then
5109 def_gif_4='#define CONFIG_GIF_4 1'
5110 _res_comment=""
5112 else
5113 def_gif='#undef CONFIG_GIF'
5114 def_gif_4='#undef CONFIG_GIF_4'
5115 _novomodules="gif89a $_novomodules"
5116 _nocodecmodules="gif $_nocodecmodules"
5118 echores "$_gif"
5121 case "$_gif" in yes*)
5122 echocheck "broken giflib workaround"
5123 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5125 cat > $TMPC << EOF
5126 #include <gif_lib.h>
5127 int main(void) {
5128 GifFileType gif;
5129 printf("UserData is at address %p\n", gif.UserData);
5130 return 0;
5133 if cc_check "$_ld_gif" ; then
5134 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5135 echores "disabled"
5136 else
5137 echores "enabled"
5140 esac
5143 echocheck "VESA support"
5144 if test "$_vesa" = auto ; then
5145 cat > $TMPC << EOF
5146 #include <vbe.h>
5147 int main(void) { vbeVersion(); return 0; }
5149 _vesa=no
5150 cc_check -lvbe -llrmi && _vesa=yes
5152 if test "$_vesa" = yes ; then
5153 def_vesa='#define CONFIG_VESA 1'
5154 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5155 _vomodules="vesa $_vomodules"
5156 else
5157 def_vesa='#undef CONFIG_VESA'
5158 _novomodules="vesa $_novomodules"
5160 echores "$_vesa"
5162 #################
5163 # VIDEO + AUDIO #
5164 #################
5167 echocheck "SDL"
5168 if test -z "$_sdlconfig" ; then
5169 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5170 _sdlconfig="sdl-config"
5171 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5172 _sdlconfig="sdl11-config"
5173 else
5174 _sdlconfig=false
5177 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5178 cat > $TMPC << EOF
5179 #include <SDL.h>
5180 int main(int argc, char *argv[]) {
5181 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5182 return 0;
5185 _sdl=no
5186 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5187 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5188 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5189 if test "$_sdlversion" -gt 116 ; then
5190 if test "$_sdlversion" -lt 121 ; then
5191 def_sdlbuggy='#define BUGGY_SDL'
5192 else
5193 def_sdlbuggy='#undef BUGGY_SDL'
5195 _sdl=yes
5200 if test "$_sdl" = yes ; then
5201 def_sdl='#define CONFIG_SDL 1'
5202 if cygwin ; then
5203 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5204 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5205 elif mingw32 ; then
5206 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5207 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5208 else
5209 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5210 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5212 _vomodules="sdl $_vomodules"
5213 _aomodules="sdl $_aomodules"
5214 _res_comment="using $_sdlconfig"
5215 else
5216 def_sdl='#undef CONFIG_SDL'
5217 _novomodules="sdl $_novomodules"
5218 _noaomodules="sdl $_noaomodules"
5220 echores "$_sdl"
5223 if os2 ; then
5224 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5225 if test "$_kva" = auto; then
5226 cat > $TMPC << EOF
5227 #include <os2.h>
5228 #include <kva.h>
5229 int main( void ) { return 0; }
5231 _kva=no;
5232 cc_check -lkva && _kva=yes
5234 if test "$_kva" = yes ; then
5235 def_kva='#define CONFIG_KVA 1'
5236 libs_mplayer="$libs_mplayer -lkva"
5237 _vomodules="kva $_vomodules"
5238 else
5239 def_kva='#undef CONFIG_KVA'
5240 _novomodules="kva $_novomodules"
5242 echores "$_kva"
5243 fi #if os2
5246 if win32; then
5248 echocheck "Windows waveout"
5249 if test "$_win32waveout" = auto ; then
5250 cat > $TMPC << EOF
5251 #include <windows.h>
5252 #include <mmsystem.h>
5253 int main(void) { return 0; }
5255 _win32waveout=no
5256 cc_check -lwinmm && _win32waveout=yes
5258 if test "$_win32waveout" = yes ; then
5259 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5260 libs_mplayer="$libs_mplayer -lwinmm"
5261 _aomodules="win32 $_aomodules"
5262 else
5263 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5264 _noaomodules="win32 $_noaomodules"
5266 echores "$_win32waveout"
5268 echocheck "Direct3D"
5269 if test "$_direct3d" = auto ; then
5270 cat > $TMPC << EOF
5271 #include <windows.h>
5272 #include <d3d9.h>
5273 int main(void) { return 0; }
5275 _direct3d=no
5276 cc_check -ld3d9 && _direct3d=yes
5278 if test "$_direct3d" = yes ; then
5279 def_direct3d='#define CONFIG_DIRECT3D 1'
5280 libs_mplayer="$libs_mplayer -ld3d9"
5281 _vomodules="direct3d $_vomodules"
5282 else
5283 def_direct3d='#undef CONFIG_DIRECT3D'
5284 _novomodules="direct3d $_novomodules"
5286 echores "$_direct3d"
5288 echocheck "Directx"
5289 if test "$_directx" = auto ; then
5290 cat > $TMPC << EOF
5291 #include <windows.h>
5292 #include <ddraw.h>
5293 #include <dsound.h>
5294 int main(void) { return 0; }
5296 _directx=no
5297 cc_check -lgdi32 && _directx=yes
5299 if test "$_directx" = yes ; then
5300 def_directx='#define CONFIG_DIRECTX 1'
5301 libs_mplayer="$libs_mplayer -lgdi32"
5302 _vomodules="directx $_vomodules"
5303 _aomodules="dsound $_aomodules"
5304 else
5305 def_directx='#undef CONFIG_DIRECTX'
5306 _novomodules="directx $_novomodules"
5307 _noaomodules="dsound $_noaomodules"
5309 echores "$_directx"
5311 fi #if win32; then
5314 echocheck "DXR2"
5315 if test "$_dxr2" = auto; then
5316 _dxr2=no
5317 cat > $TMPC << EOF
5318 #include <dxr2ioctl.h>
5319 int main(void) { return 0; }
5321 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5322 cc_check $_inc_tmp && _dxr2=yes && \
5323 extra_cflags="$extra_cflags $_inc_tmp" && break
5324 done
5326 if test "$_dxr2" = yes; then
5327 def_dxr2='#define CONFIG_DXR2 1'
5328 _aomodules="dxr2 $_aomodules"
5329 _vomodules="dxr2 $_vomodules"
5330 else
5331 def_dxr2='#undef CONFIG_DXR2'
5332 _noaomodules="dxr2 $_noaomodules"
5333 _novomodules="dxr2 $_novomodules"
5335 echores "$_dxr2"
5337 echocheck "DXR3/H+"
5338 if test "$_dxr3" = auto ; then
5339 cat > $TMPC << EOF
5340 #include <linux/em8300.h>
5341 int main(void) { return 0; }
5343 _dxr3=no
5344 cc_check && _dxr3=yes
5346 if test "$_dxr3" = yes ; then
5347 def_dxr3='#define CONFIG_DXR3 1'
5348 _vomodules="dxr3 $_vomodules"
5349 else
5350 def_dxr3='#undef CONFIG_DXR3'
5351 _novomodules="dxr3 $_novomodules"
5353 echores "$_dxr3"
5356 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5357 if test "$_ivtv" = auto ; then
5358 cat > $TMPC << EOF
5359 #include <stdlib.h>
5360 #include <inttypes.h>
5361 #include <linux/types.h>
5362 #include <linux/videodev2.h>
5363 #include <linux/ivtv.h>
5364 #include <sys/ioctl.h>
5365 int main(void) {
5366 struct ivtv_cfg_stop_decode sd;
5367 struct ivtv_cfg_start_decode sd1;
5368 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5369 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5370 return 0; }
5372 _ivtv=no
5373 cc_check && _ivtv=yes
5375 if test "$_ivtv" = yes ; then
5376 def_ivtv='#define CONFIG_IVTV 1'
5377 _vomodules="ivtv $_vomodules"
5378 _aomodules="ivtv $_aomodules"
5379 else
5380 def_ivtv='#undef CONFIG_IVTV'
5381 _novomodules="ivtv $_novomodules"
5382 _noaomodules="ivtv $_noaomodules"
5384 echores "$_ivtv"
5387 echocheck "V4L2 MPEG Decoder"
5388 if test "$_v4l2" = auto ; then
5389 cat > $TMPC << EOF
5390 #include <stdlib.h>
5391 #include <inttypes.h>
5392 #include <linux/types.h>
5393 #include <linux/videodev2.h>
5394 #include <linux/version.h>
5395 int main(void) {
5396 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5397 #error kernel headers too old, need 2.6.22
5398 #endif
5399 struct v4l2_ext_controls ctrls;
5400 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5401 return 0;
5404 _v4l2=no
5405 cc_check && _v4l2=yes
5407 if test "$_v4l2" = yes ; then
5408 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5409 _vomodules="v4l2 $_vomodules"
5410 _aomodules="v4l2 $_aomodules"
5411 else
5412 def_v4l2='#undef CONFIG_V4L2_DECODER'
5413 _novomodules="v4l2 $_novomodules"
5414 _noaomodules="v4l2 $_noaomodules"
5416 echores "$_v4l2"
5420 #########
5421 # AUDIO #
5422 #########
5425 echocheck "OSS Audio"
5426 if test "$_ossaudio" = auto ; then
5427 cat > $TMPC << EOF
5428 #include <sys/ioctl.h>
5429 #include <$_soundcard_header>
5430 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5432 _ossaudio=no
5433 cc_check && _ossaudio=yes
5435 if test "$_ossaudio" = yes ; then
5436 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5437 _aomodules="oss $_aomodules"
5438 if test "$_linux_devfs" = yes; then
5439 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5440 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5441 else
5442 cat > $TMPC << EOF
5443 #include <sys/ioctl.h>
5444 #include <$_soundcard_header>
5445 #ifdef OPEN_SOUND_SYSTEM
5446 int main(void) { return 0; }
5447 #else
5448 #error Not the real thing
5449 #endif
5451 _real_ossaudio=no
5452 cc_check && _real_ossaudio=yes
5453 if test "$_real_ossaudio" = yes; then
5454 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5455 elif netbsd || openbsd ; then
5456 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5457 extra_ldflags="$extra_ldflags -lossaudio"
5458 else
5459 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5461 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5463 else
5464 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5465 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5466 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5467 _noaomodules="oss $_noaomodules"
5469 echores "$_ossaudio"
5472 echocheck "aRts"
5473 if test "$_arts" = auto ; then
5474 _arts=no
5475 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5477 cat > $TMPC << EOF
5478 #include <artsc.h>
5479 int main(void) { return 0; }
5481 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5486 if test "$_arts" = yes ; then
5487 def_arts='#define CONFIG_ARTS 1'
5488 _aomodules="arts $_aomodules"
5489 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5490 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5491 else
5492 _noaomodules="arts $_noaomodules"
5494 echores "$_arts"
5497 echocheck "EsounD"
5498 if test "$_esd" = auto ; then
5499 _esd=no
5500 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5502 cat > $TMPC << EOF
5503 #include <esd.h>
5504 int main(void) { int fd = esd_open_sound("test"); return fd; }
5506 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5510 echores "$_esd"
5512 if test "$_esd" = yes ; then
5513 def_esd='#define CONFIG_ESD 1'
5514 _aomodules="esd $_aomodules"
5515 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5516 extra_cflags="$extra_cflags $(esd-config --cflags)"
5518 echocheck "esd_get_latency()"
5519 cat > $TMPC << EOF
5520 #include <esd.h>
5521 int main(void) { return esd_get_latency(0); }
5523 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5524 echores "$_esd_latency"
5525 else
5526 def_esd='#undef CONFIG_ESD'
5527 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5528 _noaomodules="esd $_noaomodules"
5532 echocheck "NAS"
5533 if test "$_nas" = auto ; then
5534 cat > $TMPC << EOF
5535 #include <audio/audiolib.h>
5536 int main(void) { return 0; }
5538 _nas=no
5539 cc_check $_ld_lm -laudio -lXt && _nas=yes
5541 if test "$_nas" = yes ; then
5542 def_nas='#define CONFIG_NAS 1'
5543 libs_mplayer="$libs_mplayer -laudio -lXt"
5544 _aomodules="nas $_aomodules"
5545 else
5546 _noaomodules="nas $_noaomodules"
5547 def_nas='#undef CONFIG_NAS'
5549 echores "$_nas"
5552 echocheck "pulse"
5553 if test "$_pulse" = auto ; then
5554 _pulse=no
5555 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5557 cat > $TMPC << EOF
5558 #include <pulse/pulseaudio.h>
5559 int main(void) { return 0; }
5561 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5565 echores "$_pulse"
5567 if test "$_pulse" = yes ; then
5568 def_pulse='#define CONFIG_PULSE 1'
5569 _aomodules="pulse $_aomodules"
5570 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5571 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5572 else
5573 def_pulse='#undef CONFIG_PULSE'
5574 _noaomodules="pulse $_noaomodules"
5578 echocheck "JACK"
5579 if test "$_jack" = auto ; then
5580 _jack=yes
5582 cat > $TMPC << EOF
5583 #include <jack/jack.h>
5584 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5586 if cc_check -ljack ; then
5587 libs_mplayer="$libs_mplayer -ljack"
5588 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5589 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5590 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5591 else
5592 _jack=no
5596 if test "$_jack" = yes ; then
5597 def_jack='#define CONFIG_JACK 1'
5598 _aomodules="jack $_aomodules"
5599 else
5600 _noaomodules="jack $_noaomodules"
5602 echores "$_jack"
5604 echocheck "OpenAL"
5605 if test "$_openal" = auto ; then
5606 _openal=no
5607 cat > $TMPC << EOF
5608 #ifdef OPENAL_AL_H
5609 #include <OpenAL/al.h>
5610 #else
5611 #include <AL/al.h>
5612 #endif
5613 int main(void) {
5614 alSourceQueueBuffers(0, 0, 0);
5615 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5616 return 0;
5619 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5620 cc_check $I && _openal=yes && break
5621 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5622 done
5623 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5625 if test "$_openal" = yes ; then
5626 def_openal='#define CONFIG_OPENAL 1'
5627 _aomodules="openal $_aomodules"
5628 else
5629 _noaomodules="openal $_noaomodules"
5631 echores "$_openal"
5633 echocheck "ALSA audio"
5634 if test "$_alloca" != yes ; then
5635 _alsa=no
5636 _res_comment="alloca missing"
5638 if test "$_alsa" != no ; then
5639 _alsa=no
5640 cat > $TMPC << EOF
5641 #include <sys/time.h>
5642 #include <sys/asoundlib.h>
5643 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5644 #error "alsa version != 0.5.x"
5645 #endif
5646 int main(void) { return 0; }
5648 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5650 cat > $TMPC << EOF
5651 #include <sys/time.h>
5652 #include <sys/asoundlib.h>
5653 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5654 #error "alsa version != 0.9.x"
5655 #endif
5656 int main(void) { return 0; }
5658 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5659 cat > $TMPC << EOF
5660 #include <sys/time.h>
5661 #include <alsa/asoundlib.h>
5662 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5663 #error "alsa version != 0.9.x"
5664 #endif
5665 int main(void) { return 0; }
5667 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5669 cat > $TMPC << EOF
5670 #include <sys/time.h>
5671 #include <sys/asoundlib.h>
5672 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5673 #error "alsa version != 1.0.x"
5674 #endif
5675 int main(void) { return 0; }
5677 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5678 cat > $TMPC << EOF
5679 #include <sys/time.h>
5680 #include <alsa/asoundlib.h>
5681 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5682 #error "alsa version != 1.0.x"
5683 #endif
5684 int main(void) { return 0; }
5686 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5688 def_alsa='#undef CONFIG_ALSA'
5689 def_alsa5='#undef CONFIG_ALSA5'
5690 def_alsa9='#undef CONFIG_ALSA9'
5691 def_alsa1x='#undef CONFIG_ALSA1X'
5692 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5693 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5694 if test "$_alsaver" ; then
5695 _alsa=yes
5696 if test "$_alsaver" = '0.5.x' ; then
5697 _alsa5=yes
5698 _aomodules="alsa5 $_aomodules"
5699 def_alsa5='#define CONFIG_ALSA5 1'
5700 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5701 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5702 elif test "$_alsaver" = '0.9.x-sys' ; then
5703 _alsa9=yes
5704 _aomodules="alsa $_aomodules"
5705 def_alsa='#define CONFIG_ALSA 1'
5706 def_alsa9='#define CONFIG_ALSA9 1'
5707 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5708 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5709 elif test "$_alsaver" = '0.9.x-alsa' ; then
5710 _alsa9=yes
5711 _aomodules="alsa $_aomodules"
5712 def_alsa='#define CONFIG_ALSA 1'
5713 def_alsa9='#define CONFIG_ALSA9 1'
5714 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5715 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5716 elif test "$_alsaver" = '1.0.x-sys' ; then
5717 _alsa1x=yes
5718 _aomodules="alsa $_aomodules"
5719 def_alsa='#define CONFIG_ALSA 1'
5720 def_alsa1x="#define CONFIG_ALSA1X 1"
5721 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5722 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5723 elif test "$_alsaver" = '1.0.x-alsa' ; then
5724 _alsa1x=yes
5725 _aomodules="alsa $_aomodules"
5726 def_alsa='#define CONFIG_ALSA 1'
5727 def_alsa1x="#define CONFIG_ALSA1X 1"
5728 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5729 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5730 else
5731 _alsa=no
5732 _res_comment="unknown version"
5734 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5735 else
5736 _noaomodules="alsa $_noaomodules"
5738 echores "$_alsa"
5741 echocheck "Sun audio"
5742 if test "$_sunaudio" = auto ; then
5743 cat > $TMPC << EOF
5744 #include <sys/types.h>
5745 #include <sys/audioio.h>
5746 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5748 _sunaudio=no
5749 cc_check && _sunaudio=yes
5751 if test "$_sunaudio" = yes ; then
5752 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5753 _aomodules="sun $_aomodules"
5754 else
5755 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5756 _noaomodules="sun $_noaomodules"
5758 echores "$_sunaudio"
5761 def_mlib='#define CONFIG_MLIB 0'
5762 if sunos; then
5763 echocheck "Sun mediaLib"
5764 if test "$_mlib" = auto ; then
5765 _mlib=no
5766 cat > $TMPC << EOF
5767 #include <mlib.h>
5768 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5770 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5772 echores "$_mlib"
5773 fi #if sunos
5776 if darwin; then
5777 echocheck "CoreAudio"
5778 if test "$_coreaudio" = auto ; then
5779 cat > $TMPC <<EOF
5780 #include <CoreAudio/CoreAudio.h>
5781 #include <AudioToolbox/AudioToolbox.h>
5782 #include <AudioUnit/AudioUnit.h>
5783 int main(void) { return 0; }
5785 _coreaudio=no
5786 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5788 if test "$_coreaudio" = yes ; then
5789 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5790 def_coreaudio='#define CONFIG_COREAUDIO 1'
5791 _aomodules="coreaudio $_aomodules"
5792 else
5793 def_coreaudio='#undef CONFIG_COREAUDIO'
5794 _noaomodules="coreaudio $_noaomodules"
5796 echores $_coreaudio
5797 fi #if darwin
5800 if irix; then
5801 echocheck "SGI audio"
5802 if test "$_sgiaudio" = auto ; then
5803 # check for SGI audio
5804 cat > $TMPC << EOF
5805 #include <dmedia/audio.h>
5806 int main(void) { return 0; }
5808 _sgiaudio=no
5809 cc_check && _sgiaudio=yes
5811 if test "$_sgiaudio" = "yes" ; then
5812 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5813 libs_mplayer="$libs_mplayer -laudio"
5814 _aomodules="sgi $_aomodules"
5815 else
5816 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5817 _noaomodules="sgi $_noaomodules"
5819 echores "$_sgiaudio"
5820 fi #if irix
5823 if os2 ; then
5824 echocheck "DART"
5825 if test "$_dart" = auto; then
5826 cat > $TMPC << EOF
5827 #include <os2.h>
5828 #include <dart.h>
5829 int main( void ) { return 0; }
5831 _dart=no;
5832 cc_check -ldart && _dart=yes
5834 if test "$_dart" = yes ; then
5835 def_dart='#define CONFIG_DART 1'
5836 libs_mplayer="$libs_mplayer -ldart"
5837 _aomodules="dart $_aomodules"
5838 else
5839 def_dart='#undef CONFIG_DART'
5840 _noaomodules="dart $_noaomodules"
5842 echores "$_dart"
5843 fi #if os2
5846 # set default CD/DVD devices
5847 if win32 || os2 ; then
5848 default_cdrom_device="D:"
5849 elif darwin ; then
5850 default_cdrom_device="/dev/disk1"
5851 elif dragonfly ; then
5852 default_cdrom_device="/dev/cd0"
5853 elif freebsd ; then
5854 default_cdrom_device="/dev/acd0"
5855 elif openbsd ; then
5856 default_cdrom_device="/dev/rcd0a"
5857 elif sunos ; then
5858 default_cdrom_device="/vol/dev/aliases/cdrom0"
5859 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5860 # file system and the volfs service.
5861 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5862 elif amigaos ; then
5863 default_cdrom_device="a1ide.device:2"
5864 else
5865 default_cdrom_device="/dev/cdrom"
5868 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5869 default_dvd_device=$default_cdrom_device
5870 elif darwin ; then
5871 default_dvd_device="/dev/rdiskN"
5872 else
5873 default_dvd_device="/dev/dvd"
5877 echocheck "VCD support"
5878 if test "$_vcd" = auto; then
5879 _vcd=no
5880 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5881 _vcd=yes
5882 elif mingw32; then
5883 cat > $TMPC << EOF
5884 #include <ddk/ntddcdrm.h>
5885 int main(void) { return 0; }
5887 cc_check && _vcd=yes
5890 if test "$_vcd" = yes; then
5891 _inputmodules="vcd $_inputmodules"
5892 def_vcd='#define CONFIG_VCD 1'
5893 else
5894 def_vcd='#undef CONFIG_VCD'
5895 _noinputmodules="vcd $_noinputmodules"
5896 _res_comment="not supported on this OS"
5898 echores "$_vcd"
5902 echocheck "dvdread"
5903 if test "$_dvdread_internal" = auto ; then
5904 _dvdread_internal=no
5905 _dvdread=no
5906 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5907 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5908 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5909 || darwin || win32 || os2; then
5910 _dvdread_internal=yes
5911 _dvdread=yes
5912 extra_cflags="-Ilibdvdread4 $extra_cflags"
5914 elif test "$_dvdread" = auto ; then
5915 _dvdread=no
5916 if test "$_dl" = yes; then
5917 cat > $TMPC << EOF
5918 #include <inttypes.h>
5919 #include <dvdread/dvd_reader.h>
5920 #include <dvdread/ifo_types.h>
5921 #include <dvdread/ifo_read.h>
5922 #include <dvdread/nav_read.h>
5923 int main(void) { return 0; }
5925 _dvdreadcflags=$($_dvdreadconfig --cflags)
5926 _dvdreadlibs=$($_dvdreadconfig --libs)
5927 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5928 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5929 _dvdread=yes
5930 extra_cflags="$extra_cflags $_dvdreadcflags"
5931 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5932 _res_comment="external"
5937 if test "$_dvdread_internal" = yes; then
5938 def_dvdread='#define CONFIG_DVDREAD 1'
5939 _inputmodules="dvdread(internal) $_inputmodules"
5940 _largefiles=yes
5941 _res_comment="internal"
5942 elif test "$_dvdread" = yes; then
5943 def_dvdread='#define CONFIG_DVDREAD 1'
5944 _largefiles=yes
5945 extra_ldflags="$extra_ldflags -ldvdread"
5946 _inputmodules="dvdread(external) $_inputmodules"
5947 _res_comment="external"
5948 else
5949 def_dvdread='#undef CONFIG_DVDREAD'
5950 _noinputmodules="dvdread $_noinputmodules"
5952 echores "$_dvdread"
5955 echocheck "internal libdvdcss"
5956 if test "$_libdvdcss_internal" = auto ; then
5957 _libdvdcss_internal=no
5958 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5959 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5961 if test "$_libdvdcss_internal" = yes ; then
5962 if linux || netbsd || openbsd || bsdos ; then
5963 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5964 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5965 elif freebsd || dragonfly ; then
5966 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5967 elif darwin ; then
5968 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5969 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5970 elif cygwin ; then
5971 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5972 elif beos ; then
5973 cflags_libdvdcss="-DSYS_BEOS"
5974 elif os2 ; then
5975 cflags_libdvdcss="-DSYS_OS2"
5977 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5978 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5979 _inputmodules="libdvdcss(internal) $_inputmodules"
5980 _largefiles=yes
5981 else
5982 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5984 echores "$_libdvdcss_internal"
5987 echocheck "cdparanoia"
5988 if test "$_cdparanoia" = auto ; then
5989 cat > $TMPC <<EOF
5990 #include <cdda_interface.h>
5991 #include <cdda_paranoia.h>
5992 // This need a better test. How ?
5993 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5995 _cdparanoia=no
5996 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5997 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5998 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5999 done
6001 if test "$_cdparanoia" = yes ; then
6002 _cdda='yes'
6003 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6004 openbsd && extra_ldflags="$extra_ldflags -lutil"
6006 echores "$_cdparanoia"
6009 echocheck "libcdio"
6010 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6011 cat > $TMPC << EOF
6012 #include <stdio.h>
6013 #include <cdio/version.h>
6014 #include <cdio/cdda.h>
6015 #include <cdio/paranoia.h>
6016 int main(void) {
6017 void *test = cdda_verbose_set;
6018 printf("%s\n", CDIO_VERSION);
6019 return test == (void *)1;
6022 _libcdio=no
6023 for _ld_tmp in "" "-lwinmm" ; do
6024 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6025 cc_check $_ld_tmp $_ld_lm \
6026 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6027 done
6028 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6029 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6030 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6031 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6032 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6035 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6036 _cdda='yes'
6037 def_libcdio='#define CONFIG_LIBCDIO 1'
6038 def_havelibcdio='yes'
6039 else
6040 if test "$_cdparanoia" = yes ; then
6041 _res_comment="using cdparanoia"
6043 def_libcdio='#undef CONFIG_LIBCDIO'
6044 def_havelibcdio='no'
6046 echores "$_libcdio"
6048 if test "$_cdda" = yes ; then
6049 test $_cddb = auto && test $_network = yes && _cddb=yes
6050 def_cdparanoia='#define CONFIG_CDDA 1'
6051 _inputmodules="cdda $_inputmodules"
6052 else
6053 def_cdparanoia='#undef CONFIG_CDDA'
6054 _noinputmodules="cdda $_noinputmodules"
6057 if test "$_cddb" = yes ; then
6058 def_cddb='#define CONFIG_CDDB 1'
6059 _inputmodules="cddb $_inputmodules"
6060 else
6061 _cddb=no
6062 def_cddb='#undef CONFIG_CDDB'
6063 _noinputmodules="cddb $_noinputmodules"
6066 echocheck "bitmap font support"
6067 if test "$_bitmap_font" = yes ; then
6068 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6069 else
6070 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6072 echores "$_bitmap_font"
6075 echocheck "freetype >= 2.0.9"
6077 # freetype depends on iconv
6078 if test "$_iconv" = no ; then
6079 _freetype=no
6080 _res_comment="iconv support needed"
6083 if test "$_freetype" = auto ; then
6084 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6085 cat > $TMPC << EOF
6086 #include <stdio.h>
6087 #include <ft2build.h>
6088 #include FT_FREETYPE_H
6089 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6090 #error "Need FreeType 2.0.9 or newer"
6091 #endif
6092 int main(void) {
6093 FT_Library library;
6094 FT_Int major=-1,minor=-1,patch=-1;
6095 int err=FT_Init_FreeType(&library);
6096 return 0;
6099 _freetype=no
6100 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6101 else
6102 _freetype=no
6105 if test "$_freetype" = yes ; then
6106 def_freetype='#define CONFIG_FREETYPE 1'
6107 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6108 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6109 else
6110 def_freetype='#undef CONFIG_FREETYPE'
6112 echores "$_freetype"
6114 if test "$_freetype" = no ; then
6115 _fontconfig=no
6116 _res_comment="FreeType support needed"
6118 echocheck "fontconfig"
6119 if test "$_fontconfig" = auto ; then
6120 cat > $TMPC << EOF
6121 #include <stdio.h>
6122 #include <stdlib.h>
6123 #include <fontconfig/fontconfig.h>
6124 int main(void) {
6125 int err = FcInit();
6126 if (err == FcFalse) {
6127 printf("Couldn't initialize fontconfig lib\n");
6128 exit(err);
6130 return 0;
6133 _fontconfig=no
6134 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6135 _ld_tmp="-lfontconfig $_ld_tmp"
6136 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6137 done
6138 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6139 _inc_tmp=$($_pkg_config --cflags fontconfig)
6140 _ld_tmp=$($_pkg_config --libs fontconfig)
6141 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6142 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6145 if test "$_fontconfig" = yes ; then
6146 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6147 else
6148 def_fontconfig='#undef CONFIG_FONTCONFIG'
6150 echores "$_fontconfig"
6153 echocheck "SSA/ASS support"
6154 # libass depends on FreeType
6155 if test "$_freetype" = no ; then
6156 _ass=no
6157 _res_comment="FreeType support needed"
6160 if test "$_ass" = auto ; then
6161 cat > $TMPC << EOF
6162 #include <ft2build.h>
6163 #include FT_FREETYPE_H
6164 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6165 #error "Need FreeType 2.1.8 or newer"
6166 #endif
6167 int main(void) { return 0; }
6169 _ass=no
6170 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6171 if test "$_ass" = no ; then
6172 _res_comment="FreeType >= 2.1.8 needed"
6173 elif test "$ass_internal" = no ; then
6174 _res_comment="external"
6175 extra_ldflags="$extra_ldflags -lass"
6178 if test "$_ass" = yes ; then
6179 def_ass='#define CONFIG_ASS 1'
6180 else
6181 def_ass='#undef CONFIG_ASS'
6183 if test "$ass_internal" = yes ; then
6184 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6185 else
6186 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6188 echores "$_ass"
6191 echocheck "fribidi with charsets"
6192 if test "$_fribidi" = auto ; then
6193 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6194 cat > $TMPC << EOF
6195 #include <stdio.h>
6196 /* workaround for fribidi 0.10.4 and below */
6197 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6198 #include <fribidi/fribidi.h>
6199 int main(void) {
6200 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6201 printf("Fribidi headers are not consistents with the library!\n");
6202 exit(1);
6204 return 0;
6207 _fribidi=no
6208 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && _fribidi=yes
6209 else
6210 _fribidi=no
6213 if test "$_fribidi" = yes ; then
6214 def_fribidi='#define CONFIG_FRIBIDI 1'
6215 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6216 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6217 else
6218 def_fribidi='#undef CONFIG_FRIBIDI'
6220 echores "$_fribidi"
6223 echocheck "ENCA"
6224 if test "$_enca" = auto ; then
6225 cat > $TMPC << EOF
6226 #include <sys/types.h>
6227 #include <enca.h>
6228 int main(void) {
6229 const char **langs;
6230 size_t langcnt;
6231 langs = enca_get_languages(&langcnt);
6232 return 0;
6235 _enca=no
6236 cc_check -lenca $_ld_lm && _enca=yes
6238 if test "$_enca" = yes ; then
6239 def_enca='#define CONFIG_ENCA 1'
6240 extra_ldflags="$extra_ldflags -lenca"
6241 else
6242 def_enca='#undef CONFIG_ENCA'
6244 echores "$_enca"
6247 echocheck "zlib"
6248 cat > $TMPC << EOF
6249 #include <zlib.h>
6250 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6252 _zlib=no
6253 cc_check -lz && _zlib=yes
6254 if test "$_zlib" = yes ; then
6255 def_zlib='#define CONFIG_ZLIB 1'
6256 extra_ldflags="$extra_ldflags -lz"
6257 else
6258 def_zlib='#define CONFIG_ZLIB 0'
6259 _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//)
6260 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6262 echores "$_zlib"
6265 echocheck "bzlib"
6266 bzlib=no
6267 def_bzlib='#define CONFIG_BZLIB 0'
6268 cat > $TMPC << EOF
6269 #include <bzlib.h>
6270 int main(void) { BZ2_bzlibVersion(); return 0; }
6272 cc_check -lbz2 && bzlib=yes
6273 if test "$bzlib" = yes ; then
6274 def_bzlib='#define CONFIG_BZLIB 1'
6275 extra_ldflags="$extra_ldflags -lbz2"
6277 echores "$bzlib"
6280 echocheck "RTC"
6281 if test "$_rtc" = auto ; then
6282 cat > $TMPC << EOF
6283 #include <sys/ioctl.h>
6284 #ifdef __linux__
6285 #include <linux/rtc.h>
6286 #else
6287 #include <rtc.h>
6288 #define RTC_PIE_ON RTCIO_PIE_ON
6289 #endif
6290 int main(void) { return RTC_PIE_ON; }
6292 _rtc=no
6293 cc_check && _rtc=yes
6294 ppc && _rtc=no
6296 if test "$_rtc" = yes ; then
6297 def_rtc='#define HAVE_RTC 1'
6298 else
6299 def_rtc='#undef HAVE_RTC'
6301 echores "$_rtc"
6304 echocheck "liblzo2 support"
6305 if test "$_liblzo" = auto ; then
6306 _liblzo=no
6307 cat > $TMPC << EOF
6308 #include <lzo/lzo1x.h>
6309 int main(void) { lzo_init();return 0; }
6311 cc_check -llzo2 && _liblzo=yes
6313 if test "$_liblzo" = yes ; then
6314 def_liblzo='#define CONFIG_LIBLZO 1'
6315 extra_ldflags="$extra_ldflags -llzo2"
6316 _codecmodules="liblzo $_codecmodules"
6317 else
6318 def_liblzo='#undef CONFIG_LIBLZO'
6319 _nocodecmodules="liblzo $_nocodecmodules"
6321 echores "$_liblzo"
6324 echocheck "mad support"
6325 if test "$_mad" = auto ; then
6326 _mad=no
6327 cat > $TMPC << EOF
6328 #include <mad.h>
6329 int main(void) { return 0; }
6331 cc_check -lmad && _mad=yes
6333 if test "$_mad" = yes ; then
6334 def_mad='#define CONFIG_LIBMAD 1'
6335 extra_ldflags="$extra_ldflags -lmad"
6336 _codecmodules="libmad $_codecmodules"
6337 else
6338 def_mad='#undef CONFIG_LIBMAD'
6339 _nocodecmodules="libmad $_nocodecmodules"
6341 echores "$_mad"
6343 echocheck "Twolame"
6344 if test "$_twolame" = auto ; then
6345 cat > $TMPC <<EOF
6346 #include <twolame.h>
6347 int main(void) { twolame_init(); return 0; }
6349 _twolame=no
6350 cc_check -ltwolame $_ld_lm && _twolame=yes
6352 if test "$_twolame" = yes ; then
6353 def_twolame='#define CONFIG_TWOLAME 1'
6354 libs_mencoder="$libs_mencoder -ltwolame"
6355 _codecmodules="twolame $_codecmodules"
6356 else
6357 def_twolame='#undef CONFIG_TWOLAME'
6358 _nocodecmodules="twolame $_nocodecmodules"
6360 echores "$_twolame"
6362 echocheck "Toolame"
6363 if test "$_toolame" = auto ; then
6364 _toolame=no
6365 if test "$_twolame" = yes ; then
6366 _res_comment="disabled by twolame"
6367 else
6368 cat > $TMPC <<EOF
6369 #include <toolame.h>
6370 int main(void) { toolame_init(); return 0; }
6372 cc_check -ltoolame $_ld_lm && _toolame=yes
6375 if test "$_toolame" = yes ; then
6376 def_toolame='#define CONFIG_TOOLAME 1'
6377 libs_mencoder="$libs_mencoder -ltoolame"
6378 _codecmodules="toolame $_codecmodules"
6379 else
6380 def_toolame='#undef CONFIG_TOOLAME'
6381 _nocodecmodules="toolame $_nocodecmodules"
6383 if test "$_toolamedir" ; then
6384 _res_comment="using $_toolamedir"
6386 echores "$_toolame"
6388 echocheck "OggVorbis support"
6389 if test "$_tremor_internal" = yes; then
6390 _libvorbis=no
6391 elif test "$_tremor" = auto; then
6392 _tremor=no
6393 cat > $TMPC << EOF
6394 #include <tremor/ivorbiscodec.h>
6395 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6397 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6399 if test "$_libvorbis" = auto; then
6400 _libvorbis=no
6401 cat > $TMPC << EOF
6402 #include <vorbis/codec.h>
6403 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6405 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6407 if test "$_tremor_internal" = yes ; then
6408 _vorbis=yes
6409 def_vorbis='#define CONFIG_OGGVORBIS 1'
6410 def_tremor='#define CONFIG_TREMOR 1'
6411 _codecmodules="tremor(internal) $_codecmodules"
6412 _res_comment="internal Tremor"
6413 if test "$_tremor_low" = yes ; then
6414 cflags_tremor_low="-D_LOW_ACCURACY_"
6415 _res_comment="internal low accuracy Tremor"
6417 elif test "$_tremor" = yes ; then
6418 _vorbis=yes
6419 def_vorbis='#define CONFIG_OGGVORBIS 1'
6420 def_tremor='#define CONFIG_TREMOR 1'
6421 _codecmodules="tremor(external) $_codecmodules"
6422 _res_comment="external Tremor"
6423 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6424 elif test "$_libvorbis" = yes ; then
6425 _vorbis=yes
6426 def_vorbis='#define CONFIG_OGGVORBIS 1'
6427 _codecmodules="libvorbis $_codecmodules"
6428 _res_comment="libvorbis"
6429 extra_ldflags="$extra_ldflags -lvorbis -logg"
6430 else
6431 _vorbis=no
6432 _nocodecmodules="libvorbis $_nocodecmodules"
6434 echores "$_vorbis"
6436 echocheck "libspeex (version >= 1.1 required)"
6437 if test "$_speex" = auto ; then
6438 _speex=no
6439 cat > $TMPC << EOF
6440 #include <speex/speex.h>
6441 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6443 cc_check -lspeex $_ld_lm && _speex=yes
6445 if test "$_speex" = yes ; then
6446 def_speex='#define CONFIG_SPEEX 1'
6447 extra_ldflags="$extra_ldflags -lspeex"
6448 _codecmodules="speex $_codecmodules"
6449 else
6450 def_speex='#undef CONFIG_SPEEX'
6451 _nocodecmodules="speex $_nocodecmodules"
6453 echores "$_speex"
6455 echocheck "OggTheora support"
6456 if test "$_theora" = auto ; then
6457 _theora=no
6458 cat > $TMPC << EOF
6459 #include <theora/theora.h>
6460 #include <string.h>
6461 int main(void) {
6462 /* Theora is in flux, make sure that all interface routines and datatypes
6463 * exist and work the way we expect it, so we don't break MPlayer. */
6464 ogg_packet op;
6465 theora_comment tc;
6466 theora_info inf;
6467 theora_state st;
6468 yuv_buffer yuv;
6469 int r;
6470 double t;
6472 theora_info_init(&inf);
6473 theora_comment_init(&tc);
6475 return 0;
6477 /* we don't want to execute this kind of nonsense; just for making sure
6478 * that compilation works... */
6479 memset(&op, 0, sizeof(op));
6480 r = theora_decode_header(&inf, &tc, &op);
6481 r = theora_decode_init(&st, &inf);
6482 t = theora_granule_time(&st, op.granulepos);
6483 r = theora_decode_packetin(&st, &op);
6484 r = theora_decode_YUVout(&st, &yuv);
6485 theora_clear(&st);
6487 return 0;
6490 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6491 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6492 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6493 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6494 if test _theora = no; then
6495 _ld_theora="-ltheora -logg"
6496 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6498 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6499 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6500 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6501 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6502 extra_ldflags="$extra_ldflags $_ld_theora" &&
6503 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6504 if test _theora = no; then
6505 _ld_theora="-ltheora -logg"
6506 cc_check tremor/bitwise.c $_ld_theora &&
6507 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6511 if test "$_theora" = yes ; then
6512 def_theora='#define CONFIG_OGGTHEORA 1'
6513 _codecmodules="libtheora $_codecmodules"
6514 # when --enable-theora is forced, we'd better provide a probably sane
6515 # $_ld_theora than nothing
6516 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6517 else
6518 def_theora='#undef CONFIG_OGGTHEORA'
6519 _nocodecmodules="libtheora $_nocodecmodules"
6521 echores "$_theora"
6523 echocheck "internal mp3lib support"
6524 if test "$_mp3lib" = auto ; then
6525 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6527 if test "$_mp3lib" = yes ; then
6528 def_mp3lib='#define CONFIG_MP3LIB 1'
6529 _codecmodules="mp3lib(internal) $_codecmodules"
6530 else
6531 def_mp3lib='#undef CONFIG_MP3LIB'
6532 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6534 echores "$_mp3lib"
6536 echocheck "liba52 support"
6537 if test "$_liba52_internal" = auto ; then
6538 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6540 def_liba52='#undef CONFIG_LIBA52'
6541 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6542 if test "$_liba52_internal" = yes ; then
6543 _liba52=yes
6544 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6545 _res_comment="internal"
6546 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6547 _liba52=no
6548 cat > $TMPC << EOF
6549 #include <inttypes.h>
6550 #include <a52dec/a52.h>
6551 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6553 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6555 if test "$_liba52" = yes ; then
6556 def_liba52='#define CONFIG_LIBA52 1'
6557 _codecmodules="liba52($_res_comment) $_codecmodules"
6558 else
6559 _nocodecmodules="liba52 $_nocodecmodules"
6561 echores "$_liba52"
6563 echocheck "internal libmpeg2 support"
6564 if test "$_libmpeg2" = auto ; then
6565 _libmpeg2=yes
6566 if alpha && test cc_vendor=gnu; then
6567 case $cc_version in
6568 2*|3.0*|3.1*) # cannot compile MVI instructions
6569 _libmpeg2=no
6570 _res_comment="broken gcc"
6572 esac
6575 if test "$_libmpeg2" = yes ; then
6576 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6577 _codecmodules="libmpeg2(internal) $_codecmodules"
6578 else
6579 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6580 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6582 echores "$_libmpeg2"
6584 echocheck "libdca support"
6585 if test "$_libdca" = auto ; then
6586 _libdca=no
6587 cat > $TMPC << EOF
6588 #include <inttypes.h>
6589 #include <dts.h>
6590 int main(void) { dts_init(0); return 0; }
6592 for _ld_dca in -ldts -ldca ; do
6593 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6594 && _libdca=yes && break
6595 done
6597 if test "$_libdca" = yes ; then
6598 def_libdca='#define CONFIG_LIBDCA 1'
6599 _codecmodules="libdca $_codecmodules"
6600 else
6601 def_libdca='#undef CONFIG_LIBDCA'
6602 _nocodecmodules="libdca $_nocodecmodules"
6604 echores "$_libdca"
6606 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6607 if test "$_musepack" = auto ; then
6608 _musepack=no
6609 cat > $TMPC << EOF
6610 #include <stddef.h>
6611 #include <mpcdec/mpcdec.h>
6612 int main(void) {
6613 mpc_streaminfo info;
6614 mpc_decoder decoder;
6615 mpc_decoder_set_streaminfo(&decoder, &info);
6616 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6617 return 0;
6620 cc_check -lmpcdec $_ld_lm && _musepack=yes
6622 if test "$_musepack" = yes ; then
6623 def_musepack='#define CONFIG_MUSEPACK 1'
6624 extra_ldflags="$extra_ldflags -lmpcdec"
6625 _codecmodules="musepack $_codecmodules"
6626 else
6627 def_musepack='#undef CONFIG_MUSEPACK'
6628 _nocodecmodules="musepack $_nocodecmodules"
6630 echores "$_musepack"
6633 echocheck "FAAC support"
6634 if test "$_faac" = auto ; then
6635 cat > $TMPC <<EOF
6636 #include <inttypes.h>
6637 #include <faac.h>
6638 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6640 _faac=no
6641 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6642 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6643 done
6645 if test "$_faac" = yes ; then
6646 def_faac="#define CONFIG_FAAC 1"
6647 test "$_faac_lavc" = auto && _faac_lavc=yes
6648 if test "$_faac_lavc" = yes ; then
6649 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6650 libs_mplayer="$libs_mplayer $_ld_faac"
6651 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6653 _codecmodules="faac $_codecmodules"
6654 else
6655 _faac_lavc=no
6656 def_faac="#undef CONFIG_FAAC"
6657 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6658 _nocodecmodules="faac $_nocodecmodules"
6660 _res_comment="in libavcodec: $_faac_lavc"
6661 echores "$_faac"
6664 echocheck "FAAD2 support"
6665 if test "$_faad_internal" = auto ; then
6666 if x86_32 && test cc_vendor=gnu; then
6667 case $cc_version in
6668 3.1*|3.2) # ICE/insn with these versions
6669 _faad_internal=no
6670 _res_comment="broken gcc"
6673 _faad=yes
6674 _faad_internal=yes
6676 esac
6677 else
6678 _faad=yes
6679 _faad_internal=yes
6682 if test "$_faad" = auto ; then
6683 cat > $TMPC << EOF
6684 #include <faad.h>
6685 #ifndef FAAD_MIN_STREAMSIZE
6686 #error Too old version
6687 #endif
6688 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6689 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6691 cc_check -lfaad $_ld_lm && _faad=yes
6694 def_faad='#undef CONFIG_FAAD'
6695 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6696 if test "$_faad_internal" = yes ; then
6697 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6698 _res_comment="internal floating-point"
6699 if test "$_faad_fixed" = yes ; then
6700 # The FIXED_POINT implementation of FAAD2 improves performance
6701 # on some platforms, especially for SBR files.
6702 cflags_faad_fixed="-DFIXED_POINT"
6703 _res_comment="internal fixed-point"
6705 elif test "$_faad" = yes ; then
6706 extra_ldflags="$extra_ldflags -lfaad"
6709 if test "$_faad" = yes ; then
6710 def_faad='#define CONFIG_FAAD 1'
6711 if test "$_faad_internal" = yes ; then
6712 _codecmodules="faad2(internal) $_codecmodules"
6713 else
6714 _codecmodules="faad2 $_codecmodules"
6716 else
6717 _faad=no
6718 _nocodecmodules="faad2 $_nocodecmodules"
6720 echores "$_faad"
6723 echocheck "LADSPA plugin support"
6724 if test "$_ladspa" = auto ; then
6725 cat > $TMPC <<EOF
6726 #include <stdio.h>
6727 #include <ladspa.h>
6728 int main(void) {
6729 const LADSPA_Descriptor *ld = NULL;
6730 return 0;
6733 _ladspa=no
6734 cc_check && _ladspa=yes
6736 if test "$_ladspa" = yes; then
6737 def_ladspa="#define CONFIG_LADSPA 1"
6738 else
6739 def_ladspa="#undef CONFIG_LADSPA"
6741 echores "$_ladspa"
6744 echocheck "libbs2b audio filter support"
6745 if test "$_libbs2b" = auto ; then
6746 cat > $TMPC <<EOF
6747 #include <bs2b.h>
6748 #if BS2B_VERSION_MAJOR < 3
6749 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6750 #endif
6751 int main(void) {
6752 t_bs2bdp filter;
6753 filter=bs2b_open();
6754 bs2b_close(filter);
6755 return 0;
6758 _libbs2b=no
6759 if $_pkg_config --exists libbs2b ; then
6760 _inc_tmp=$($_pkg_config --cflags libbs2b)
6761 _ld_tmp=$($_pkg_config --libs libbs2b)
6762 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6763 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6764 else
6765 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6766 -I/usr/local/include/bs2b ; do
6767 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6768 extra_ldflags="$extra_ldflags -lbs2b"
6769 extra_cflags="$extra_cflags $_inc_tmp"
6770 _libbs2b=yes
6771 break
6773 done
6776 def_libbs2b="#undef CONFIG_LIBBS2B"
6777 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6778 echores "$_libbs2b"
6781 if test -z "$_codecsdir" ; then
6782 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6783 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6784 if test -d "$dir" ; then
6785 _codecsdir="$dir"
6786 break;
6788 done
6790 # Fall back on default directory.
6791 if test -z "$_codecsdir" ; then
6792 _codecsdir="$_libdir/codecs"
6793 mingw32 && _codecsdir="codecs"
6794 os2 && _codecsdir="codecs"
6798 echocheck "Win32 codecs"
6799 if test "$_win32dll" = auto ; then
6800 _win32dll=no
6801 if x86_32 && ! qnx; then
6802 _win32dll=yes
6805 if test "$_win32dll" = yes ; then
6806 def_win32dll='#define CONFIG_WIN32DLL 1'
6807 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6808 _res_comment="using $_win32codecsdir"
6809 if ! win32 ; then
6810 def_win32_loader='#define WIN32_LOADER 1'
6811 _win32_emulation=yes
6812 else
6813 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6814 _res_comment="using native windows"
6816 _codecmodules="win32 $_codecmodules"
6817 else
6818 def_win32dll='#undef CONFIG_WIN32DLL'
6819 def_win32_loader='#undef WIN32_LOADER'
6820 _nocodecmodules="win32 $_nocodecmodules"
6822 echores "$_win32dll"
6825 echocheck "XAnim codecs"
6826 if test "$_xanim" = auto ; then
6827 _xanim=no
6828 _res_comment="dynamic loader support needed"
6829 if test "$_dl" = yes ; then
6830 _xanim=yes
6833 if test "$_xanim" = yes ; then
6834 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6835 def_xanim='#define CONFIG_XANIM 1'
6836 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6837 _codecmodules="xanim $_codecmodules"
6838 _res_comment="using $_xanimcodecsdir"
6839 else
6840 def_xanim='#undef CONFIG_XANIM'
6841 def_xanim_path='#undef XACODEC_PATH'
6842 _nocodecmodules="xanim $_nocodecmodules"
6844 echores "$_xanim"
6847 echocheck "RealPlayer codecs"
6848 if test "$_real" = auto ; then
6849 _real=no
6850 _res_comment="dynamic loader support needed"
6851 if test "$_dl" = yes || test "$_win32dll" = yes &&
6852 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6853 _real=yes
6856 if test "$_real" = yes ; then
6857 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6858 def_real='#define CONFIG_REALCODECS 1'
6859 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6860 _codecmodules="real $_codecmodules"
6861 _res_comment="using $_realcodecsdir"
6862 else
6863 def_real='#undef CONFIG_REALCODECS'
6864 def_real_path="#undef REALCODEC_PATH"
6865 _nocodecmodules="real $_nocodecmodules"
6867 echores "$_real"
6870 echocheck "QuickTime codecs"
6871 _qtx_emulation=no
6872 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6873 if test "$_qtx" = auto ; then
6874 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6876 if test "$_qtx" = yes ; then
6877 def_qtx='#define CONFIG_QTX_CODECS 1'
6878 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6879 _codecmodules="qtx $_codecmodules"
6880 darwin || win32 || _qtx_emulation=yes
6881 else
6882 def_qtx='#undef CONFIG_QTX_CODECS'
6883 _nocodecmodules="qtx $_nocodecmodules"
6885 echores "$_qtx"
6887 echocheck "Nemesi Streaming Media libraries"
6888 if test "$_nemesi" = auto && test "$_network" = yes ; then
6889 _nemesi=no
6890 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6891 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6892 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6893 _nemesi=yes
6896 if test "$_nemesi" = yes; then
6897 _native_rtsp=no
6898 def_nemesi='#define CONFIG_LIBNEMESI 1'
6899 _inputmodules="nemesi $_inputmodules"
6900 else
6901 _native_rtsp="$_network"
6902 _nemesi=no
6903 def_nemesi='#undef CONFIG_LIBNEMESI'
6904 _noinputmodules="nemesi $_noinputmodules"
6906 echores "$_nemesi"
6908 echocheck "LIVE555 Streaming Media libraries"
6909 if test "$_live" = auto && test "$_network" = yes ; then
6910 cat > $TMPCPP << EOF
6911 #include <liveMedia.hh>
6912 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6913 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6914 #endif
6915 int main(void) { return 0; }
6918 _live=no
6919 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
6920 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6921 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6922 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6923 $_livelibdir/groupsock/libgroupsock.a \
6924 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6925 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6926 $extra_ldflags -lstdc++" \
6927 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6928 -I$_livelibdir/UsageEnvironment/include \
6929 -I$_livelibdir/BasicUsageEnvironment/include \
6930 -I$_livelibdir/groupsock/include" && \
6931 _live=yes && break
6932 done
6933 if test "$_live" != yes ; then
6934 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6935 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6936 _live_dist=yes
6940 if test "$_live" = yes && test "$_network" = yes; then
6941 test $_livelibdir && _res_comment="using $_livelibdir"
6942 def_live='#define CONFIG_LIVE555 1'
6943 _inputmodules="live555 $_inputmodules"
6944 elif test "$_live_dist" = yes && test "$_network" = yes; then
6945 _res_comment="using distribution version"
6946 _live="yes"
6947 def_live='#define CONFIG_LIVE555 1'
6948 extra_ldflags="$extra_ldflags $ld_tmp"
6949 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6950 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6951 _inputmodules="live555 $_inputmodules"
6952 else
6953 _live=no
6954 def_live='#undef CONFIG_LIVE555'
6955 _noinputmodules="live555 $_noinputmodules"
6957 echores "$_live"
6960 echocheck "FFmpeg libavutil"
6961 if test "$_libavutil_a" = auto ; then
6962 if test -d libavutil ; then
6963 _libavutil_a=yes
6964 _res_comment="static"
6965 else
6966 die "MPlayer will not compile without libavutil in the source tree."
6968 elif test "$_libavutil_so" = auto ; then
6969 _libavutil_so=no
6970 cat > $TMPC << EOF
6971 #include <libavutil/common.h>
6972 int main(void) { av_gcd(1,1); return 0; }
6974 if $_pkg_config --exists libavutil ; then
6975 _inc_libavutil=$($_pkg_config --cflags libavutil)
6976 _ld_tmp=$($_pkg_config --libs libavutil)
6977 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6978 && _libavutil_so=yes
6979 elif cc_check -lavutil $_ld_lm ; then
6980 extra_ldflags="$extra_ldflags -lavutil"
6981 _libavutil_so=yes
6982 _res_comment="using libavutil.so, but static libavutil is recommended"
6985 _libavutil=no
6986 def_libavutil='#undef CONFIG_LIBAVUTIL'
6987 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6988 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6989 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6990 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6991 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6992 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6993 # neither static nor shared libavutil is available, but it is mandatory ...
6994 if test "$_libavutil" = no ; then
6995 die "You need static or shared libavutil, MPlayer will not compile without!"
6997 echores "$_libavutil"
6999 echocheck "FFmpeg libavcodec"
7000 if test "$_libavcodec_a" = auto ; then
7001 _libavcodec_a=no
7002 if test -d libavcodec && test -f libavcodec/utils.c ; then
7003 _libavcodec_a="yes"
7004 _res_comment="static"
7006 elif test "$_libavcodec_so" = auto ; then
7007 _libavcodec_so=no
7008 _res_comment="libavcodec.so is discouraged over static libavcodec"
7009 cat > $TMPC << EOF
7010 #include <libavcodec/avcodec.h>
7011 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7013 if $_pkg_config --exists libavcodec ; then
7014 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7015 _ld_tmp=$($_pkg_config --libs libavcodec)
7016 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7017 && _libavcodec_so=yes
7018 elif cc_check -lavcodec $_ld_lm ; then
7019 extra_ldflags="$extra_ldflags -lavcodec"
7020 _libavcodec_so=yes
7021 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7024 _libavcodec=no
7025 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7026 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7027 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7028 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7029 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7030 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7031 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7032 test "$_libavcodec_mpegaudio_hp" = yes \
7033 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
7034 if test "$_libavcodec_a" = yes ; then
7035 _codecmodules="libavcodec(internal) $_codecmodules"
7036 elif test "$_libavcodec_so" = yes ; then
7037 _codecmodules="libavcodec.so $_codecmodules"
7038 else
7039 _nocodecmodules="libavcodec $_nocodecmodules"
7041 echores "$_libavcodec"
7043 echocheck "FFmpeg libavformat"
7044 if test "$_libavformat_a" = auto ; then
7045 _libavformat_a=no
7046 if test -d libavformat && test -f libavformat/utils.c ; then
7047 _libavformat_a=yes
7048 _res_comment="static"
7050 elif test "$_libavformat_so" = auto ; then
7051 _libavformat_so=no
7052 cat > $TMPC <<EOF
7053 #include <libavformat/avformat.h>
7054 #include <libavcodec/opt.h>
7055 int main(void) { av_alloc_format_context(); return 0; }
7057 if $_pkg_config --exists libavformat ; then
7058 _inc_libavformat=$($_pkg_config --cflags libavformat)
7059 _ld_tmp=$($_pkg_config --libs libavformat)
7060 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7061 && _libavformat_so=yes
7062 elif cc_check $_ld_lm -lavformat ; then
7063 extra_ldflags="$extra_ldflags -lavformat"
7064 _libavformat_so=yes
7065 _res_comment="using libavformat.so, but static libavformat is recommended"
7068 _libavformat=no
7069 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7070 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7071 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7072 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7073 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7074 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7075 test "$_libavformat_so" = yes \
7076 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7077 echores "$_libavformat"
7079 echocheck "FFmpeg libpostproc"
7080 if test "$_libpostproc_a" = auto ; then
7081 _libpostproc_a=no
7082 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7083 _libpostproc_a='yes'
7084 _res_comment="static"
7086 elif test "$_libpostproc_so" = auto ; then
7087 _libpostproc_so=no
7088 cat > $TMPC << EOF
7089 #include <inttypes.h>
7090 #include <libpostproc/postprocess.h>
7091 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7093 if cc_check -lpostproc $_ld_lm ; then
7094 extra_ldflags="$extra_ldflags -lpostproc"
7095 _libpostproc_so=yes
7096 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7099 _libpostproc=no
7100 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7101 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7102 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7103 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7104 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7105 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7106 test "$_libpostproc_so" = yes \
7107 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7108 echores "$_libpostproc"
7110 echocheck "FFmpeg libswscale"
7111 if test "$_libswscale_a" = auto ; then
7112 _libswscale_a=no
7113 if test -d libswscale && test -f libswscale/swscale.h ; then
7114 _libswscale_a='yes'
7115 _res_comment="static"
7117 elif test "$_libswscale_so" = auto ; then
7118 _libswscale_so=no
7119 _res_comment="using libswscale.so, but static libswscale is recommended"
7120 cat > $TMPC << EOF
7121 #include <libswscale/swscale.h>
7122 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7124 if $_pkg_config --exists libswscale ; then
7125 _inc_libswscale=$($_pkg_config --cflags libswscale)
7126 _ld_tmp=$($_pkg_config --libs libswscale)
7127 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7128 && _libswscale_so=yes
7129 elif cc_check -lswscale ; then
7130 extra_ldflags="$extra_ldflags -lswscale"
7131 _libswscale_so=yes
7134 _libswscale=no
7135 def_libswscale='#undef CONFIG_LIBSWSCALE'
7136 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7137 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7138 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7139 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7140 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7141 test "$_libswscale_so" = yes \
7142 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7143 echores "$_libswscale"
7145 echocheck "libopencore_amr narrowband"
7146 if test "$_libopencore_amrnb" = auto ; then
7147 _libopencore_amrnb=no
7148 cat > $TMPC << EOF
7149 #include <opencore-amrnb/interf_dec.h>
7150 int main(void) { Decoder_Interface_init(); return 0; }
7152 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7153 if test "$_libavcodec_a" != yes ; then
7154 _libopencore_amrnb=no
7155 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7158 if test "$_libopencore_amrnb" = yes ; then
7159 _libopencore_amr=yes
7160 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7161 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7162 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7163 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7164 _codecmodules="libopencore_amrnb $_codecmodules"
7165 else
7166 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7167 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7169 echores "$_libopencore_amrnb"
7172 echocheck "libopencore_amr wideband"
7173 if test "$_libopencore_amrwb" = auto ; then
7174 _libopencore_amrwb=no
7175 cat > $TMPC << EOF
7176 #include <opencore-amrwb/dec_if.h>
7177 int main(void) { D_IF_init(); return 0; }
7179 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7180 if test "$_libavcodec_a" != yes ; then
7181 _libopencore_amrwb=no
7182 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7185 if test "$_libopencore_amrwb" = yes ; then
7186 _libopencore_amr=yes
7187 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7188 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7189 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7190 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7191 _codecmodules="libopencore_amrwb $_codecmodules"
7192 else
7193 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7194 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7196 echores "$_libopencore_amrwb"
7198 echocheck "libdv-0.9.5+"
7199 if test "$_libdv" = auto ; then
7200 _libdv=no
7201 cat > $TMPC <<EOF
7202 #include <libdv/dv.h>
7203 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7205 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7207 if test "$_libdv" = yes ; then
7208 def_libdv='#define CONFIG_LIBDV095 1'
7209 extra_ldflags="$extra_ldflags -ldv"
7210 _codecmodules="libdv $_codecmodules"
7211 else
7212 def_libdv='#undef CONFIG_LIBDV095'
7213 _nocodecmodules="libdv $_nocodecmodules"
7215 echores "$_libdv"
7218 echocheck "Xvid"
7219 if test "$_xvid" = auto ; then
7220 _xvid=no
7221 cat > $TMPC << EOF
7222 #include <xvid.h>
7223 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7225 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7226 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7227 done
7230 if test "$_xvid" = yes ; then
7231 def_xvid='#define CONFIG_XVID4 1'
7232 _codecmodules="xvid $_codecmodules"
7233 else
7234 def_xvid='#undef CONFIG_XVID4'
7235 _nocodecmodules="xvid $_nocodecmodules"
7237 echores "$_xvid"
7239 echocheck "Xvid two pass plugin"
7240 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7241 cat > $TMPC << EOF
7242 #include <xvid.h>
7243 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7245 cc_check && _xvid_lavc=yes
7247 if test "$_xvid_lavc" = yes ; then
7248 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7249 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7250 else
7251 _xvid_lavc=no
7252 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7254 echores "$_xvid_lavc"
7257 echocheck "x264"
7258 if test "$_x264" = auto ; then
7259 cat > $TMPC << EOF
7260 #include <inttypes.h>
7261 #include <x264.h>
7262 #if X264_BUILD < 79
7263 #error We do not support old versions of x264. Get the latest from git.
7264 #endif
7265 int main(void) { x264_encoder_open((void*)0); return 0; }
7267 _x264=no
7268 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7269 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7270 done
7273 if test "$_x264" = yes ; then
7274 def_x264='#define CONFIG_X264 1'
7275 _codecmodules="x264 $_codecmodules"
7276 test "$_x264_lavc" = auto && _x264_lavc=yes
7277 if test "$_x264_lavc" = yes ; then
7278 def_x264_lavc='#define CONFIG_LIBX264 1'
7279 libs_mplayer="$libs_mplayer $_ld_x264"
7280 _libavencoders="$_libavencoders LIBX264_ENCODER"
7282 else
7283 _x264_lavc=no
7284 def_x264='#undef CONFIG_X264'
7285 def_x264_lavc='#define CONFIG_LIBX264 0'
7286 _nocodecmodules="x264 $_nocodecmodules"
7288 _res_comment="in libavcodec: $_x264_lavc"
7289 echores "$_x264"
7292 echocheck "libdirac"
7293 if test "$_libdirac_lavc" = auto; then
7294 _libdirac_lavc=no
7295 if test "$_libavcodec_a" != yes; then
7296 _res_comment="libavcodec (static) is required by libdirac, sorry"
7297 else
7298 cat > $TMPC << EOF
7299 #include <libdirac_encoder/dirac_encoder.h>
7300 #include <libdirac_decoder/dirac_parser.h>
7301 int main(void)
7303 dirac_encoder_context_t enc_ctx;
7304 dirac_decoder_t *dec_handle;
7305 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7306 dec_handle = dirac_decoder_init(0);
7307 if (dec_handle)
7308 dirac_decoder_close(dec_handle);
7309 return 0;
7312 if $_pkg_config --exists dirac ; then
7313 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7314 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7315 cc_check $_inc_dirac $_ld_dirac &&
7316 _libdirac_lavc=yes &&
7317 extra_cflags="$extra_cflags $_inc_dirac" &&
7318 extra_ldflags="$extra_ldflags $_ld_dirac"
7322 if test "$_libdirac_lavc" = yes ; then
7323 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7324 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7325 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7326 _codecmodules="libdirac $_codecmodules"
7327 else
7328 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7329 _nocodecmodules="libdirac $_nocodecmodules"
7331 echores "$_libdirac_lavc"
7334 echocheck "libschroedinger"
7335 if test "$_libschroedinger_lavc" = auto ; then
7336 _libschroedinger_lavc=no
7337 if test "$_libavcodec_a" != yes; then
7338 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7339 else
7340 cat > $TMPC << EOF
7341 #include <schroedinger/schro.h>
7342 int main(void) { schro_init(); return 0; }
7344 if $_pkg_config --exists schroedinger-1.0 ; then
7345 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7346 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7347 cc_check $_inc_schroedinger $_ld_schroedinger &&
7348 _libschroedinger_lavc=yes &&
7349 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7350 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7354 if test "$_libschroedinger_lavc" = yes ; then
7355 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7356 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7357 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7358 _codecmodules="libschroedinger $_codecmodules"
7359 else
7360 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7361 _nocodecmodules="libschroedinger $_nocodecmodules"
7363 echores "$_libschroedinger_lavc"
7365 echocheck "libnut"
7366 if test "$_libnut" = auto ; then
7367 cat > $TMPC << EOF
7368 #include <stdio.h>
7369 #include <stdlib.h>
7370 #include <inttypes.h>
7371 #include <libnut.h>
7372 nut_context_tt * nut;
7373 int main(void) { (void)nut_error(0); return 0; }
7375 _libnut=no
7376 cc_check -lnut && _libnut=yes
7379 if test "$_libnut" = yes ; then
7380 def_libnut='#define CONFIG_LIBNUT 1'
7381 extra_ldflags="$extra_ldflags -lnut"
7382 else
7383 def_libnut='#undef CONFIG_LIBNUT'
7385 echores "$_libnut"
7387 #check must be done after libavcodec one
7388 echocheck "zr"
7389 if test "$_zr" = auto ; then
7390 #36067's seem to identify themselves as 36057PQC's, so the line
7391 #below should work for 36067's and 36057's.
7392 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7393 _zr=yes
7394 else
7395 _zr=no
7398 if test "$_zr" = yes ; then
7399 if test "$_libavcodec_a" = yes ; then
7400 def_zr='#define CONFIG_ZR 1'
7401 _vomodules="zr zr2 $_vomodules"
7402 else
7403 _res_comment="libavcodec (static) is required by zr, sorry"
7404 _novomodules="zr $_novomodules"
7405 def_zr='#undef CONFIG_ZR'
7407 else
7408 def_zr='#undef CONFIG_ZR'
7409 _novomodules="zr zr2 $_novomodules"
7411 echores "$_zr"
7413 # mencoder requires (optional) those libs: libmp3lame
7414 if test "$_mencoder" != no ; then
7416 echocheck "libmp3lame"
7417 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7418 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7419 if test "$_mp3lame" = auto ; then
7420 _mp3lame=no
7421 cat > $TMPC <<EOF
7422 #include <lame/lame.h>
7423 int main(void) { lame_version_t lv; (void) lame_init();
7424 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7425 return 0; }
7427 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7429 if test "$_mp3lame" = yes ; then
7430 def_mp3lame="#define CONFIG_MP3LAME 1"
7431 _ld_mp3lame=-lmp3lame
7432 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7433 cat > $TMPC << EOF
7434 #include <lame/lame.h>
7435 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7437 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7438 cat > $TMPC << EOF
7439 #include <lame/lame.h>
7440 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7442 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7443 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7444 if test "$_mp3lame_lavc" = yes ; then
7445 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7446 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7447 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7449 else
7450 _mp3lame_lavc=no
7451 def_mp3lame='#undef CONFIG_MP3LAME'
7452 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7454 _res_comment="in libavcodec: $_mp3lame_lavc"
7455 echores "$_mp3lame"
7457 fi # test "$_mencoder" != no
7459 echocheck "mencoder"
7460 if test "$_mencoder" = yes ; then
7461 def_muxers='#define CONFIG_MUXERS 1'
7462 else
7463 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7464 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7465 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7466 _libavmuxers=""
7467 def_muxers='#define CONFIG_MUXERS 0'
7469 echores "$_mencoder"
7472 echocheck "UnRAR executable"
7473 if test "$_unrar_exec" = auto ; then
7474 _unrar_exec="yes"
7475 mingw32 && _unrar_exec="no"
7477 if test "$_unrar_exec" = yes ; then
7478 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7479 else
7480 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7482 echores "$_unrar_exec"
7484 echocheck "TV interface"
7485 if test "$_tv" = yes ; then
7486 def_tv='#define CONFIG_TV 1'
7487 _inputmodules="tv $_inputmodules"
7488 else
7489 _noinputmodules="tv $_noinputmodules"
7490 def_tv='#undef CONFIG_TV'
7492 echores "$_tv"
7495 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7496 echocheck "*BSD BT848 bt8xx header"
7497 _ioctl_bt848_h=no
7498 for file in "machine/ioctl_bt848.h" \
7499 "dev/bktr/ioctl_bt848.h" \
7500 "dev/video/bktr/ioctl_bt848.h" \
7501 "dev/ic/bt8xx.h" ; do
7502 cat > $TMPC <<EOF
7503 #include <sys/types.h>
7504 #include <sys/ioctl.h>
7505 #include <$file>
7506 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7508 if cc_check ; then
7509 _ioctl_bt848_h=yes
7510 _ioctl_bt848_h_name="$file"
7511 break;
7513 done
7514 if test "$_ioctl_bt848_h" = yes ; then
7515 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7516 _res_comment="using $_ioctl_bt848_h_name"
7517 else
7518 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7520 echores "$_ioctl_bt848_h"
7522 echocheck "*BSD ioctl_meteor.h"
7523 _ioctl_meteor_h=no
7524 for file in "machine/ioctl_meteor.h" \
7525 "dev/bktr/ioctl_meteor.h" \
7526 "dev/video/bktr/ioctl_meteor.h" ; do
7527 cat > $TMPC <<EOF
7528 #include <sys/types.h>
7529 #include <$file>
7530 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7532 if cc_check ; then
7533 _ioctl_meteor_h=yes
7534 _ioctl_meteor_h_name="$file"
7535 break;
7537 done
7538 if test "$_ioctl_meteor_h" = yes ; then
7539 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7540 _res_comment="using $_ioctl_meteor_h_name"
7541 else
7542 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7544 echores "$_ioctl_meteor_h"
7546 echocheck "*BSD BrookTree 848 TV interface"
7547 if test "$_tv_bsdbt848" = auto ; then
7548 _tv_bsdbt848=no
7549 if test "$_tv" = yes ; then
7550 cat > $TMPC <<EOF
7551 #include <sys/types.h>
7552 $def_ioctl_meteor_h_name
7553 $def_ioctl_bt848_h_name
7554 #ifdef IOCTL_METEOR_H_NAME
7555 #include IOCTL_METEOR_H_NAME
7556 #endif
7557 #ifdef IOCTL_BT848_H_NAME
7558 #include IOCTL_BT848_H_NAME
7559 #endif
7560 int main(void) {
7561 ioctl(0, METEORSINPUT, 0);
7562 ioctl(0, TVTUNER_GETFREQ, 0);
7563 return 0;
7566 cc_check && _tv_bsdbt848=yes
7569 if test "$_tv_bsdbt848" = yes ; then
7570 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7571 _inputmodules="tv-bsdbt848 $_inputmodules"
7572 else
7573 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7574 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7576 echores "$_tv_bsdbt848"
7577 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7580 echocheck "DirectShow TV interface"
7581 if test "$_tv_dshow" = auto ; then
7582 _tv_dshow=no
7583 if test "$_tv" = yes && win32 ; then
7584 cat > $TMPC <<EOF
7585 #include <ole2.h>
7586 int main(void) {
7587 void* p;
7588 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7589 return 0;
7592 cc_check -lole32 -luuid && _tv_dshow=yes
7595 if test "$_tv_dshow" = yes ; then
7596 _inputmodules="tv-dshow $_inputmodules"
7597 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7598 extra_ldflags="$extra_ldflags -lole32 -luuid"
7599 else
7600 _noinputmodules="tv-dshow $_noinputmodules"
7601 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7603 echores "$_tv_dshow"
7606 echocheck "Video 4 Linux TV interface"
7607 if test "$_tv_v4l1" = auto ; then
7608 _tv_v4l1=no
7609 if test "$_tv" = yes && linux ; then
7610 cat > $TMPC <<EOF
7611 #include <stdlib.h>
7612 #include <linux/videodev.h>
7613 int main(void) { return 0; }
7615 cc_check && _tv_v4l1=yes
7618 if test "$_tv_v4l1" = yes ; then
7619 _audio_input=yes
7620 _tv_v4l=yes
7621 def_tv_v4l='#define CONFIG_TV_V4L 1'
7622 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7623 _inputmodules="tv-v4l $_inputmodules"
7624 else
7625 _noinputmodules="tv-v4l1 $_noinputmodules"
7626 def_tv_v4l='#undef CONFIG_TV_V4L'
7628 echores "$_tv_v4l1"
7631 echocheck "Video 4 Linux 2 TV interface"
7632 if test "$_tv_v4l2" = auto ; then
7633 _tv_v4l2=no
7634 if test "$_tv" = yes && linux ; then
7635 cat > $TMPC <<EOF
7636 #include <stdlib.h>
7637 #include <linux/types.h>
7638 #include <linux/videodev2.h>
7639 int main(void) { return 0; }
7641 cc_check && _tv_v4l2=yes
7644 if test "$_tv_v4l2" = yes ; then
7645 _audio_input=yes
7646 _tv_v4l=yes
7647 def_tv_v4l='#define CONFIG_TV_V4L 1'
7648 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7649 _inputmodules="tv-v4l2 $_inputmodules"
7650 else
7651 _noinputmodules="tv-v4l2 $_noinputmodules"
7652 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7654 echores "$_tv_v4l2"
7657 echocheck "Radio interface"
7658 if test "$_radio" = yes ; then
7659 def_radio='#define CONFIG_RADIO 1'
7660 _inputmodules="radio $_inputmodules"
7661 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7662 _radio_capture=no
7664 if test "$_radio_capture" = yes ; then
7665 _audio_input=yes
7666 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7667 else
7668 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7670 else
7671 _noinputmodules="radio $_noinputmodules"
7672 def_radio='#undef CONFIG_RADIO'
7673 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7674 _radio_capture=no
7676 echores "$_radio"
7677 echocheck "Capture for Radio interface"
7678 echores "$_radio_capture"
7680 echocheck "Video 4 Linux 2 Radio interface"
7681 if test "$_radio_v4l2" = auto ; then
7682 _radio_v4l2=no
7683 if test "$_radio" = yes && linux ; then
7684 cat > $TMPC <<EOF
7685 #include <stdlib.h>
7686 #include <linux/types.h>
7687 #include <linux/videodev2.h>
7688 int main(void) { return 0; }
7690 cc_check && _radio_v4l2=yes
7693 if test "$_radio_v4l2" = yes ; then
7694 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7695 else
7696 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7698 echores "$_radio_v4l2"
7700 echocheck "Video 4 Linux Radio interface"
7701 if test "$_radio_v4l" = auto ; then
7702 _radio_v4l=no
7703 if test "$_radio" = yes && linux ; then
7704 cat > $TMPC <<EOF
7705 #include <stdlib.h>
7706 #include <linux/videodev.h>
7707 int main(void) { return 0; }
7709 cc_check && _radio_v4l=yes
7712 if test "$_radio_v4l" = yes ; then
7713 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7714 else
7715 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7717 echores "$_radio_v4l"
7719 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7720 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7721 echocheck "*BSD BrookTree 848 Radio interface"
7722 _radio_bsdbt848=no
7723 cat > $TMPC <<EOF
7724 #include <sys/types.h>
7725 $def_ioctl_bt848_h_name
7726 #ifdef IOCTL_BT848_H_NAME
7727 #include IOCTL_BT848_H_NAME
7728 #endif
7729 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7731 cc_check && _radio_bsdbt848=yes
7732 echores "$_radio_bsdbt848"
7733 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7735 if test "$_radio_bsdbt848" = yes ; then
7736 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7737 else
7738 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7741 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7742 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7743 die "Radio driver requires BSD BT848, V4L or V4L2!"
7746 echocheck "Video 4 Linux 2 MPEG PVR interface"
7747 if test "$_pvr" = auto ; then
7748 _pvr=no
7749 if test "$_tv_v4l2" = yes && linux ; then
7750 cat > $TMPC <<EOF
7751 #include <stdlib.h>
7752 #include <inttypes.h>
7753 #include <linux/types.h>
7754 #include <linux/videodev2.h>
7755 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7757 cc_check && _pvr=yes
7760 if test "$_pvr" = yes ; then
7761 def_pvr='#define CONFIG_PVR 1'
7762 _inputmodules="pvr $_inputmodules"
7763 else
7764 _noinputmodules="pvr $_noinputmodules"
7765 def_pvr='#undef CONFIG_PVR'
7767 echores "$_pvr"
7770 echocheck "ftp"
7771 if ! beos && test "$_ftp" = yes ; then
7772 def_ftp='#define CONFIG_FTP 1'
7773 _inputmodules="ftp $_inputmodules"
7774 else
7775 _noinputmodules="ftp $_noinputmodules"
7776 def_ftp='#undef CONFIG_FTP'
7778 echores "$_ftp"
7780 echocheck "vstream client"
7781 if test "$_vstream" = auto ; then
7782 _vstream=no
7783 cat > $TMPC <<EOF
7784 #include <vstream-client.h>
7785 void vstream_error(const char *format, ... ) {}
7786 int main(void) { vstream_start(); return 0; }
7788 cc_check -lvstream-client && _vstream=yes
7790 if test "$_vstream" = yes ; then
7791 def_vstream='#define CONFIG_VSTREAM 1'
7792 _inputmodules="vstream $_inputmodules"
7793 extra_ldflags="$extra_ldflags -lvstream-client"
7794 else
7795 _noinputmodules="vstream $_noinputmodules"
7796 def_vstream='#undef CONFIG_VSTREAM'
7798 echores "$_vstream"
7801 echocheck "OSD menu"
7802 if test "$_menu" = yes ; then
7803 def_menu='#define CONFIG_MENU 1'
7804 test $_dvbin = "yes" && _menu_dvbin=yes
7805 else
7806 def_menu='#undef CONFIG_MENU'
7807 _menu_dvbin=no
7809 echores "$_menu"
7812 echocheck "Subtitles sorting"
7813 if test "$_sortsub" = yes ; then
7814 def_sortsub='#define CONFIG_SORTSUB 1'
7815 else
7816 def_sortsub='#undef CONFIG_SORTSUB'
7818 echores "$_sortsub"
7821 echocheck "XMMS inputplugin support"
7822 if test "$_xmms" = yes ; then
7823 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7824 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7825 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7826 else
7827 _xmmsplugindir=/usr/lib/xmms/Input
7828 _xmmslibdir=/usr/lib
7831 def_xmms='#define CONFIG_XMMS 1'
7832 if darwin ; then
7833 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7834 else
7835 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7837 else
7838 def_xmms='#undef CONFIG_XMMS'
7840 echores "$_xmms"
7843 # --------------- GUI specific tests begin -------------------
7844 echocheck "GUI"
7845 echo "$_gui"
7846 if test "$_gui" = yes ; then
7848 # Required libraries
7849 if test "$_libavcodec" != yes ||
7850 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7851 die "The GUI requires libavcodec with PNG support (needs zlib)."
7853 test "$_freetype" = no && test "$_bitmap_font" = no && \
7854 die "The GUI requires either FreeType or bitmap font support."
7855 if ! win32 ; then
7856 _gui_gtk=yes
7857 test "$_x11" != yes && die "X11 support required for GUI compilation."
7859 echocheck "XShape extension"
7860 if test "$_xshape" = auto ; then
7861 _xshape=no
7862 cat > $TMPC << EOF
7863 #include <X11/Xlib.h>
7864 #include <X11/Xproto.h>
7865 #include <X11/Xutil.h>
7866 #include <X11/extensions/shape.h>
7867 #include <stdlib.h>
7868 int main(void) {
7869 char *name = ":0.0";
7870 Display *wsDisplay;
7871 int exitvar = 0;
7872 int eventbase, errorbase;
7873 if (getenv("DISPLAY"))
7874 name=getenv("DISPLAY");
7875 wsDisplay=XOpenDisplay(name);
7876 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7877 exitvar=1;
7878 XCloseDisplay(wsDisplay);
7879 return exitvar;
7882 cc_check -lXext && _xshape=yes
7884 if test "$_xshape" = yes ; then
7885 def_xshape='#define CONFIG_XSHAPE 1'
7886 else
7887 die "The GUI requires the X11 extension XShape (which was not found)."
7889 echores "$_xshape"
7891 #Check for GTK
7892 if test "$_gtk1" = no ; then
7893 #Check for GTK2 :
7894 echocheck "GTK+ version"
7896 if $_pkg_config gtk+-2.0 --exists ; then
7897 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7898 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7899 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7900 echores "$_gtk"
7902 # Check for GLIB2
7903 if $_pkg_config glib-2.0 --exists ; then
7904 echocheck "glib version"
7905 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7906 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7907 echores "$_glib"
7909 def_gui='#define CONFIG_GUI 1'
7910 def_gtk2='#define CONFIG_GTK2 1'
7911 else
7912 _gtk1=yes
7913 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7915 else
7916 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7917 _gtk1=yes
7921 if test "$_gtk1" = yes ; then
7922 # Check for old GTK (1.2.x)
7923 echocheck "GTK version"
7924 if test -z "$_gtkconfig" ; then
7925 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7926 _gtkconfig="gtk-config"
7927 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7928 _gtkconfig="gtk12-config"
7929 else
7930 die "The GUI requires GTK devel packages (which were not found)."
7933 _gtk=$($_gtkconfig --version 2>&1)
7934 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7935 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7936 echores "$_gtk (using $_gtkconfig)"
7938 # Check for GLIB
7939 echocheck "glib version"
7940 if test -z "$_glibconfig" ; then
7941 if ( glib-config --version ) >/dev/null 2>&1 ; then
7942 _glibconfig="glib-config"
7943 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7944 _glibconfig="glib12-config"
7945 else
7946 die "The GUI requires GLIB devel packages (which were not found)"
7949 _glib=$($_glibconfig --version 2>&1)
7950 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7951 echores "$_glib (using $_glibconfig)"
7953 def_gui='#define CONFIG_GUI 1'
7954 def_gtk2='#undef CONFIG_GTK2'
7957 else #if ! win32
7958 _gui_win32=yes
7959 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7960 def_gui='#define CONFIG_GUI 1'
7961 def_gtk2='#undef CONFIG_GTK2'
7962 fi #if ! win32
7964 else #if test "$_gui"
7965 def_gui='#undef CONFIG_GUI'
7966 def_gtk2='#undef CONFIG_GTK2'
7967 fi #if test "$_gui"
7968 # --------------- GUI specific tests end -------------------
7971 if test "$_charset" != "noconv" ; then
7972 def_charset="#define MSG_CHARSET \"$_charset\""
7973 else
7974 def_charset="#undef MSG_CHARSET"
7975 _charset="UTF-8"
7978 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7979 echocheck "iconv program"
7980 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7981 if test "$?" -ne 0 ; then
7982 echores "no"
7983 echo "No working iconv program found, use "
7984 echo "--charset=UTF-8 to continue anyway."
7985 echo "If you also have problems with iconv library functions use --charset=noconv."
7986 echo "Messages in the GTK-2 interface will be broken then."
7987 exit 1
7988 else
7989 echores "yes"
7993 #############################################################################
7995 echocheck "automatic gdb attach"
7996 if test "$_crash_debug" = yes ; then
7997 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7998 else
7999 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8000 _crash_debug=no
8002 echores "$_crash_debug"
8004 echocheck "compiler support for noexecstack"
8005 cat > $TMPC <<EOF
8006 int main(void) { return 0; }
8008 if cc_check -Wl,-z,noexecstack ; then
8009 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8010 echores "yes"
8011 else
8012 echores "no"
8016 # Dynamic linking flags
8017 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8018 _ld_dl_dynamic=''
8019 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8020 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8021 _ld_dl_dynamic='-rdynamic'
8024 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8025 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8026 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8028 def_debug='#undef MP_DEBUG'
8029 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8032 echocheck "joystick"
8033 def_joystick='#undef CONFIG_JOYSTICK'
8034 if test "$_joystick" = yes ; then
8035 if linux ; then
8036 # TODO add some check
8037 def_joystick='#define CONFIG_JOYSTICK 1'
8038 else
8039 _joystick="no"
8040 _res_comment="unsupported under $system_name"
8043 echores "$_joystick"
8045 echocheck "lirc"
8046 if test "$_lirc" = auto ; then
8047 _lirc=no
8048 cat > $TMPC <<EOF
8049 #include <lirc/lirc_client.h>
8050 int main(void) { return 0; }
8052 cc_check -llirc_client && _lirc=yes
8054 if test "$_lirc" = yes ; then
8055 def_lirc='#define CONFIG_LIRC 1'
8056 libs_mplayer="$libs_mplayer -llirc_client"
8057 else
8058 def_lirc='#undef CONFIG_LIRC'
8060 echores "$_lirc"
8062 echocheck "lircc"
8063 if test "$_lircc" = auto ; then
8064 _lircc=no
8065 cat > $TMPC <<EOF
8066 #include <lirc/lircc.h>
8067 int main(void) { return 0; }
8069 cc_check -llircc && _lircc=yes
8071 if test "$_lircc" = yes ; then
8072 def_lircc='#define CONFIG_LIRCC 1'
8073 libs_mplayer="$libs_mplayer -llircc"
8074 else
8075 def_lircc='#undef CONFIG_LIRCC'
8077 echores "$_lircc"
8079 if arm; then
8080 # Detect maemo development platform libraries availability (http://www.maemo.org),
8081 # they are used when run on Nokia 770|8x0
8082 echocheck "maemo (Nokia 770|8x0)"
8083 if test "$_maemo" = auto ; then
8084 _maemo=no
8085 cat > $TMPC << EOF
8086 #include <libosso.h>
8087 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8089 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8091 if test "$_maemo" = yes ; then
8092 def_maemo='#define CONFIG_MAEMO 1'
8093 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8094 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8095 else
8096 def_maemo='#undef CONFIG_MAEMO'
8098 echores "$_maemo"
8101 #############################################################################
8103 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8104 # the OMF format needs to come after the 'extern symbol prefix' check, which
8105 # uses nm.
8106 if os2 ; then
8107 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8110 # linker paths should be the same for mencoder and mplayer
8111 _ld_tmp=""
8112 for I in $libs_mplayer ; do
8113 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8114 if test -z "$_tmp" ; then
8115 extra_ldflags="$extra_ldflags $I"
8116 else
8117 _ld_tmp="$_ld_tmp $I"
8119 done
8120 libs_mplayer=$_ld_tmp
8123 #############################################################################
8124 # 64 bit file offsets?
8125 if test "$_largefiles" = yes || freebsd ; then
8126 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8127 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8128 # dvdread support requires this (for off64_t)
8129 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8133 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8135 # This must be the last test to be performed. Any other tests following it
8136 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8137 # against libdvdread (to permit MPlayer to use its own copy of the library).
8138 # So any compilation using the flags added here but not linking against
8139 # libdvdread can fail.
8140 echocheck "DVD support (libdvdnav)"
8141 dvdnav_internal=no
8142 if test "$_dvdnav" = auto ; then
8143 if test "$_dvdread_internal" = yes ; then
8144 _dvdnav=yes
8145 dvdnav_internal=yes
8146 _res_comment="internal"
8147 else
8148 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8151 if test "$_dvdnav" = auto ; then
8152 cat > $TMPC <<EOF
8153 #include <inttypes.h>
8154 #include <dvdnav/dvdnav.h>
8155 int main(void) { dvdnav_t *dvd=0; return 0; }
8157 _dvdnav=no
8158 _dvdnavdir=$($_dvdnavconfig --cflags)
8159 _dvdnavlibs=$($_dvdnavconfig --libs)
8160 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8162 if test "$_dvdnav" = yes ; then
8163 _largefiles=yes
8164 def_dvdnav='#define CONFIG_DVDNAV 1'
8165 if test "$dvdnav_internal" = yes ; then
8166 cflags_libdvdnav="-Ilibdvdnav"
8167 _inputmodules="dvdnav(internal) $_inputmodules"
8168 else
8169 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8170 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8171 _inputmodules="dvdnav $_inputmodules"
8173 else
8174 def_dvdnav='#undef CONFIG_DVDNAV'
8175 _noinputmodules="dvdnav $_noinputmodules"
8177 echores "$_dvdnav"
8179 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8180 # Read dvdnav comment above.
8182 #############################################################################
8183 echo "Creating config.mak"
8184 cat > config.mak << EOF
8185 # -------- Generated by configure -----------
8187 # Ensure that locale settings do not interfere with shell commands.
8188 export LC_ALL = C
8190 CONFIGURATION = $_configuration
8192 CHARSET = $_charset
8193 DOC_LANGS = $language_doc
8194 DOC_LANG_ALL = $doc_lang_all
8195 MAN_LANGS = $language_man
8196 MAN_LANG_ALL = $man_lang_all
8198 prefix = \$(DESTDIR)$_prefix
8199 BINDIR = \$(DESTDIR)$_bindir
8200 DATADIR = \$(DESTDIR)$_datadir
8201 LIBDIR = \$(DESTDIR)$_libdir
8202 MANDIR = \$(DESTDIR)$_mandir
8203 CONFDIR = \$(DESTDIR)$_confdir
8205 AR = $_ar
8206 AS = $_cc
8207 CC = $_cc
8208 CXX = $_cc
8209 HOST_CC = $_host_cc
8210 YASM = $_yasm
8211 INSTALL = $_install
8212 INSTALLSTRIP = $_install_strip
8213 RANLIB = $_ranlib
8214 WINDRES = $_windres
8216 CFLAGS = $CFLAGS $extra_cflags
8217 OPTFLAGS = $CFLAGS $extra_cflags
8218 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8219 CFLAGS_DHAHELPER = $cflags_dhahelper
8220 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8221 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8222 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8223 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8224 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8225 CFLAGS_STACKREALIGN = $cflags_stackrealign
8226 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8227 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8228 YASMFLAGS = $YASMFLAGS
8230 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8231 EXTRALIBS_MPLAYER = $libs_mplayer
8232 EXTRALIBS_MENCODER = $libs_mencoder
8234 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8236 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8237 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8239 GETCH = $_getch
8240 HELP_FILE = $_mp_help
8241 TIMER = $_timer
8243 EXESUF = $_exesuf
8244 EXESUFS_ALL = .exe
8246 $_target_arch
8247 $_target_subarch
8248 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8250 MENCODER = $_mencoder
8251 MPLAYER = $_mplayer
8253 NEED_GETTIMEOFDAY = $_need_gettimeofday
8254 NEED_GLOB = $_need_glob
8255 NEED_MMAP = $_need_mmap
8256 NEED_SETENV = $_need_setenv
8257 NEED_SHMEM = $_need_shmem
8258 NEED_STRSEP = $_need_strsep
8259 NEED_SWAB = $_need_swab
8260 NEED_VSSCANF = $_need_vsscanf
8262 # features
8263 3DFX = $_3dfx
8264 AA = $_aa
8265 ALSA1X = $_alsa1x
8266 ALSA9 = $_alsa9
8267 ALSA5 = $_alsa5
8268 APPLE_IR = $_apple_ir
8269 APPLE_REMOTE = $_apple_remote
8270 ARTS = $_arts
8271 AUDIO_INPUT = $_audio_input
8272 BITMAP_FONT = $_bitmap_font
8273 BL = $_bl
8274 CACA = $_caca
8275 CDDA = $_cdda
8276 CDDB = $_cddb
8277 COREAUDIO = $_coreaudio
8278 COREVIDEO = $_corevideo
8279 DART = $_dart
8280 DFBMGA = $_dfbmga
8281 DGA = $_dga
8282 DIRECT3D = $_direct3d
8283 DIRECTFB = $_directfb
8284 DIRECTX = $_directx
8285 DVBIN = $_dvbin
8286 DVDNAV = $_dvdnav
8287 DVDNAV_INTERNAL = $dvdnav_internal
8288 DVDREAD = $_dvdread
8289 DVDREAD_INTERNAL = $_dvdread_internal
8290 DXR2 = $_dxr2
8291 DXR3 = $_dxr3
8292 ESD = $_esd
8293 FAAC=$_faac
8294 FAAD = $_faad
8295 FAAD_INTERNAL = $_faad_internal
8296 FASTMEMCPY = $_fastmemcpy
8297 FBDEV = $_fbdev
8298 FREETYPE = $_freetype
8299 FTP = $_ftp
8300 GIF = $_gif
8301 GGI = $_ggi
8302 GL = $_gl
8303 GL_WIN32 = $_gl_win32
8304 GL_X11 = $_gl_x11
8305 GUI = $_gui
8306 GUI_GTK = $_gui_gtk
8307 GUI_WIN32 = $_gui_win32
8308 HAVE_POSIX_SELECT = $_posix_select
8309 HAVE_SYS_MMAN_H = $_mman
8310 IVTV = $_ivtv
8311 JACK = $_jack
8312 JOYSTICK = $_joystick
8313 JPEG = $_jpeg
8314 KVA = $_kva
8315 LADSPA = $_ladspa
8316 LIBA52 = $_liba52
8317 LIBA52_INTERNAL = $_liba52_internal
8318 LIBASS = $_ass
8319 LIBASS_INTERNAL = $ass_internal
8320 LIBBS2B = $_libbs2b
8321 LIBDCA = $_libdca
8322 LIBDV = $_libdv
8323 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8324 LIBLZO = $_liblzo
8325 LIBMAD = $_mad
8326 LIBMENU = $_menu
8327 LIBMENU_DVBIN = $_menu_dvbin
8328 LIBMPEG2 = $_libmpeg2
8329 LIBNEMESI = $_nemesi
8330 LIBNUT = $_libnut
8331 LIBSMBCLIENT = $_smb
8332 LIBTHEORA = $_theora
8333 LIRC = $_lirc
8334 LIVE555 = $_live
8335 MACOSX_BUNDLE = $_macosx_bundle
8336 MACOSX_FINDER = $_macosx_finder
8337 MD5SUM = $_md5sum
8338 MGA = $_mga
8339 MNG = $_mng
8340 MP3LAME = $_mp3lame
8341 MP3LIB = $_mp3lib
8342 MUSEPACK = $_musepack
8343 NAS = $_nas
8344 NATIVE_RTSP = $_native_rtsp
8345 NETWORK = $_network
8346 OPENAL = $_openal
8347 OSS = $_ossaudio
8348 PE_EXECUTABLE = $_pe_executable
8349 PNG = $_png
8350 PNM = $_pnm
8351 PRIORITY = $_priority
8352 PULSE = $_pulse
8353 PVR = $_pvr
8354 QTX_CODECS = $_qtx
8355 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8356 QTX_EMULATION = $_qtx_emulation
8357 QUARTZ = $_quartz
8358 RADIO=$_radio
8359 RADIO_CAPTURE=$_radio_capture
8360 REAL_CODECS = $_real
8361 S3FB = $_s3fb
8362 SDL = $_sdl
8363 SPEEX = $_speex
8364 STREAM_CACHE = $_stream_cache
8365 SGIAUDIO = $_sgiaudio
8366 SUNAUDIO = $_sunaudio
8367 SVGA = $_svga
8368 TDFXFB = $_tdfxfb
8369 TDFXVID = $_tdfxvid
8370 TGA = $_tga
8371 TOOLAME=$_toolame
8372 TREMOR_INTERNAL = $_tremor_internal
8373 TV = $_tv
8374 TV_BSDBT848 = $_tv_bsdbt848
8375 TV_DSHOW = $_tv_dshow
8376 TV_V4L = $_tv_v4l
8377 TV_V4L1 = $_tv_v4l1
8378 TV_V4L2 = $_tv_v4l2
8379 TWOLAME=$_twolame
8380 UNRAR_EXEC = $_unrar_exec
8381 V4L2 = $_v4l2
8382 VCD = $_vcd
8383 VDPAU = $_vdpau
8384 VESA = $_vesa
8385 VIDIX = $_vidix
8386 VIDIX_PCIDB = $_vidix_pcidb_val
8387 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8388 VIDIX_IVTV=$_vidix_drv_ivtv
8389 VIDIX_MACH64=$_vidix_drv_mach64
8390 VIDIX_MGA=$_vidix_drv_mga
8391 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8392 VIDIX_NVIDIA=$_vidix_drv_nvidia
8393 VIDIX_PM2=$_vidix_drv_pm2
8394 VIDIX_PM3=$_vidix_drv_pm3
8395 VIDIX_RADEON=$_vidix_drv_radeon
8396 VIDIX_RAGE128=$_vidix_drv_rage128
8397 VIDIX_S3=$_vidix_drv_s3
8398 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8399 VIDIX_SIS=$_vidix_drv_sis
8400 VIDIX_UNICHROME=$_vidix_drv_unichrome
8401 VORBIS = $_vorbis
8402 VSTREAM = $_vstream
8403 WII = $_wii
8404 WIN32DLL = $_win32dll
8405 WIN32WAVEOUT = $_win32waveout
8406 WIN32_EMULATION = $_win32_emulation
8407 WINVIDIX = $winvidix
8408 X11 = $_x11
8409 X264 = $_x264
8410 XANIM_CODECS = $_xanim
8411 XMGA = $_xmga
8412 XMMS_PLUGINS = $_xmms
8413 XV = $_xv
8414 XVID4 = $_xvid
8415 XVIDIX = $xvidix
8416 XVMC = $_xvmc
8417 XVR100 = $_xvr100
8418 YUV4MPEG = $_yuv4mpeg
8419 ZR = $_zr
8421 # FFmpeg
8422 LIBAVUTIL = $_libavutil
8423 LIBAVUTIL_A = $_libavutil_a
8424 LIBAVUTIL_SO = $_libavutil_so
8425 LIBAVCODEC = $_libavcodec
8426 LIBAVCODEC_A = $_libavcodec_a
8427 LIBAVCODEC_SO = $_libavcodec_so
8428 LIBAVFORMAT = $_libavformat
8429 LIBAVFORMAT_A = $_libavformat_a
8430 LIBAVFORMAT_SO = $_libavformat_so
8431 LIBPOSTPROC = $_libpostproc
8432 LIBPOSTPROC_A = $_libpostproc_a
8433 LIBPOSTPROC_SO = $_libpostproc_so
8434 LIBSWSCALE = $_libswscale
8435 LIBSWSCALE_A = $_libswscale_a
8436 LIBSWSCALE_SO = $_libswscale_so
8438 CC_O=-o \$@
8439 LD=gcc
8440 CONFIG_STATIC=yes
8441 SRC_PATH=..
8442 BUILD_ROOT=..
8443 LIBPREF=lib
8444 LIBSUF=.a
8445 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8447 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8448 CONFIG_AANDCT=yes
8449 CONFIG_FFT=yes
8450 CONFIG_FFT_MMX=$fft_mmx
8451 CONFIG_GOLOMB=yes
8452 CONFIG_LPC=yes
8453 CONFIG_MDCT=yes
8454 CONFIG_RDFT=yes
8456 CONFIG_BZLIB=$bzlib
8457 CONFIG_ENCODERS=yes
8458 CONFIG_GPL=yes
8459 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8460 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8461 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8462 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8463 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8464 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8465 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8466 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8467 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8468 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8469 CONFIG_LIBX264_ENCODER=$_x264_lavc
8470 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8471 CONFIG_MLIB = $_mlib
8472 CONFIG_MUXERS=$_mencoder
8473 CONFIG_POSTPROC = yes
8474 # Prevent building libavcodec/imgresample.c with conflicting symbols
8475 CONFIG_SWSCALE=yes
8476 CONFIG_VDPAU=$_vdpau
8477 CONFIG_XVMC=$_xvmc
8478 CONFIG_ZLIB=$_zlib
8480 HAVE_PTHREADS = $_pthreads
8481 HAVE_SHM = $_shm
8482 HAVE_W32THREADS = $_w32threads
8483 HAVE_YASM = $_have_yasm
8485 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8486 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8487 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8488 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8489 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8490 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8491 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8494 #############################################################################
8496 ff_config_enable () {
8497 _nprefix=$3;
8498 test -z "$_nprefix" && _nprefix='CONFIG'
8499 for part in $1; do
8500 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8501 echo "#define ${_nprefix}_$part 1"
8502 else
8503 echo "#define ${_nprefix}_$part 0"
8505 done
8508 echo "Creating config.h"
8509 cat > $TMPH << EOF
8510 /*----------------------------------------------------------------------------
8511 ** This file has been automatically generated by configure any changes in it
8512 ** will be lost when you run configure again.
8513 ** Instead of modifying definitions here, use the --enable/--disable options
8514 ** of the configure script! See ./configure --help for details.
8515 *---------------------------------------------------------------------------*/
8517 #ifndef MPLAYER_CONFIG_H
8518 #define MPLAYER_CONFIG_H
8520 /* Undefine this if you do not want to select mono audio (left or right)
8521 with a stereo MPEG layer 2/3 audio stream. The command line option
8522 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8523 right-only), with 0 being the default.
8525 #define CONFIG_FAKE_MONO 1
8527 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8528 #define MAX_OUTBURST 65536
8530 /* set up audio OUTBURST. Do not change this! */
8531 #define OUTBURST 512
8533 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8534 #undef FAST_OSD
8535 #undef FAST_OSD_TABLE
8537 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8538 #define MPEG12_POSTPROC 1
8539 #define ATTRIBUTE_ALIGNED_MAX 16
8543 #define CONFIGURATION "$_configuration"
8545 #define MPLAYER_DATADIR "$_datadir"
8546 #define MPLAYER_CONFDIR "$_confdir"
8547 #define MPLAYER_LIBDIR "$_libdir"
8549 /* definitions needed by included libraries */
8550 #define HAVE_INTTYPES_H 1
8551 /* libmpeg2 + FFmpeg */
8552 $def_fast_inttypes
8553 /* libdvdcss */
8554 #define HAVE_ERRNO_H 1
8555 /* libdvdcss + libdvdread */
8556 #define HAVE_LIMITS_H 1
8557 /* libdvdcss + libfaad2 */
8558 #define HAVE_UNISTD_H 1
8559 /* libfaad2 + libdvdread */
8560 #define STDC_HEADERS 1
8561 #define HAVE_MEMCPY 1
8562 /* libfaad2 */
8563 #define HAVE_STRING_H 1
8564 #define HAVE_STRINGS_H 1
8565 #define HAVE_SYS_STAT_H 1
8566 #define HAVE_SYS_TYPES_H 1
8567 /* libdvdnav */
8568 #define READ_CACHE_TRACE 0
8569 /* libdvdread */
8570 #define HAVE_DLFCN_H 1
8571 $def_dvdcss
8574 /* system headers */
8575 $def_alloca_h
8576 $def_alsa_asoundlib_h
8577 $def_altivec_h
8578 $def_malloc_h
8579 $def_mman_h
8580 $def_mman_has_map_failed
8581 $def_soundcard_h
8582 $def_sys_asoundlib_h
8583 $def_sys_soundcard_h
8584 $def_sys_sysinfo_h
8585 $def_termios_h
8586 $def_termios_sys_h
8587 $def_winsock2_h
8590 /* system functions */
8591 $def_gethostbyname2
8592 $def_gettimeofday
8593 $def_glob
8594 $def_langinfo
8595 $def_llrint
8596 $def_log2
8597 $def_lrint
8598 $def_lrintf
8599 $def_map_memalign
8600 $def_memalign
8601 $def_nanosleep
8602 $def_posix_select
8603 $def_round
8604 $def_roundf
8605 $def_select
8606 $def_setenv
8607 $def_shm
8608 $def_strsep
8609 $def_swab
8610 $def_sysi86
8611 $def_sysi86_iv
8612 $def_termcap
8613 $def_termios
8614 $def_truncf
8615 $def_vsscanf
8618 /* system-specific features */
8619 $def_asmalign_pot
8620 $def_builtin_expect
8621 $def_dl
8622 $def_extern_asm
8623 $def_extern_prefix
8624 $def_iconv
8625 $def_kstat
8626 $def_macosx_bundle
8627 $def_macosx_finder
8628 $def_maemo
8629 $def_named_asm_args
8630 $def_priority
8631 $def_quicktime
8632 $def_restrict_keyword
8633 $def_rtc
8634 $def_unrar_exec
8637 /* configurable options */
8638 $def_charset
8639 $def_crash_debug
8640 $def_debug
8641 $def_dynamic_plugins
8642 $def_fastmemcpy
8643 $def_menu
8644 $def_runtime_cpudetection
8645 $def_sighandler
8646 $def_sortsub
8647 $def_stream_cache
8648 $def_pthread_cache
8651 /* CPU stuff */
8652 #define __CPU__ $iproc
8653 $def_words_endian
8654 $def_bigendian
8655 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8656 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8659 /* DVD/VCD/CD */
8660 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8661 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8662 $def_bsdi_dvd
8663 $def_cddb
8664 $def_cdio
8665 $def_cdparanoia
8666 $def_cdrom
8667 $def_dvd
8668 $def_dvd_bsd
8669 $def_dvd_darwin
8670 $def_dvd_linux
8671 $def_dvd_openbsd
8672 $def_dvdio
8673 $def_dvdnav
8674 $def_dvdread
8675 $def_hpux_scsi_h
8676 $def_libcdio
8677 $def_sol_scsi_h
8678 $def_vcd
8681 /* codec libraries */
8682 $def_faac
8683 $def_faad
8684 $def_faad_internal
8685 $def_liba52
8686 $def_liba52_internal
8687 $def_libdca
8688 $def_libdv
8689 $def_liblzo
8690 $def_libmpeg2
8691 $def_mad
8692 $def_mp3lame
8693 $def_mp3lame_preset
8694 $def_mp3lame_preset_medium
8695 $def_mp3lib
8696 $def_musepack
8697 $def_speex
8698 $def_theora
8699 $def_toolame
8700 $def_tremor
8701 $def_twolame
8702 $def_vorbis
8703 $def_x264
8704 $def_xvid
8705 $def_zlib
8707 $def_libnut
8710 /* binary codecs */
8711 $def_qtx
8712 $def_qtx_win32
8713 $def_real
8714 $def_real_path
8715 $def_win32_loader
8716 $def_win32dll
8717 #define WIN32_PATH "$_win32codecsdir"
8718 $def_xanim
8719 $def_xanim_path
8720 $def_xmms
8721 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8724 /* GUI */
8725 $def_gtk2
8726 $def_gui
8727 $def_xshape
8730 /* Audio output drivers */
8731 $def_alsa
8732 $def_alsa1x
8733 $def_alsa5
8734 $def_alsa9
8735 $def_arts
8736 $def_coreaudio
8737 $def_dart
8738 $def_esd
8739 $def_esd_latency
8740 $def_jack
8741 $def_nas
8742 $def_openal
8743 $def_openal_h
8744 $def_ossaudio
8745 $def_ossaudio_devdsp
8746 $def_ossaudio_devmixer
8747 $def_pulse
8748 $def_sgiaudio
8749 $def_sunaudio
8750 $def_win32waveout
8752 $def_ladspa
8753 $def_libbs2b
8756 /* input */
8757 $def_apple_ir
8758 $def_apple_remote
8759 $def_ioctl_bt848_h_name
8760 $def_ioctl_meteor_h_name
8761 $def_joystick
8762 $def_lirc
8763 $def_lircc
8764 $def_pvr
8765 $def_radio
8766 $def_radio_bsdbt848
8767 $def_radio_capture
8768 $def_radio_v4l
8769 $def_radio_v4l2
8770 $def_tv
8771 $def_tv_bsdbt848
8772 $def_tv_dshow
8773 $def_tv_v4l
8774 $def_tv_v4l1
8775 $def_tv_v4l2
8778 /* font stuff */
8779 $def_ass
8780 $def_ass_internal
8781 $def_bitmap_font
8782 $def_enca
8783 $def_fontconfig
8784 $def_freetype
8785 $def_fribidi
8788 /* networking */
8789 $def_closesocket
8790 $def_ftp
8791 $def_inet6
8792 $def_inet_aton
8793 $def_inet_pton
8794 $def_live
8795 $def_nemesi
8796 $def_network
8797 $def_smb
8798 $def_socklen_t
8799 $def_vstream
8802 /* libvo options */
8803 $def_3dfx
8804 $def_aa
8805 $def_bl
8806 $def_caca
8807 $def_corevideo
8808 $def_dfbmga
8809 $def_dga
8810 $def_dga1
8811 $def_dga2
8812 $def_direct3d
8813 $def_directfb
8814 $def_directfb_version
8815 $def_directx
8816 $def_dvb
8817 $def_dvb_head
8818 $def_dvbin
8819 $def_dxr2
8820 $def_dxr3
8821 $def_fbdev
8822 $def_ggi
8823 $def_ggiwmh
8824 $def_gif
8825 $def_gif_4
8826 $def_gif_tvt_hack
8827 $def_gl
8828 $def_gl_win32
8829 $def_gl_x11
8830 $def_ivtv
8831 $def_jpeg
8832 $def_kva
8833 $def_md5sum
8834 $def_mga
8835 $def_mng
8836 $def_png
8837 $def_pnm
8838 $def_quartz
8839 $def_s3fb
8840 $def_sdl
8841 $def_sdlbuggy
8842 $def_svga
8843 $def_tdfxfb
8844 $def_tdfxvid
8845 $def_tga
8846 $def_v4l2
8847 $def_vdpau
8848 $def_vesa
8849 $def_vidix
8850 $def_vidix_drv_cyberblade
8851 $def_vidix_drv_ivtv
8852 $def_vidix_drv_mach64
8853 $def_vidix_drv_mga
8854 $def_vidix_drv_mga_crtc2
8855 $def_vidix_drv_nvidia
8856 $def_vidix_drv_pm3
8857 $def_vidix_drv_radeon
8858 $def_vidix_drv_rage128
8859 $def_vidix_drv_s3
8860 $def_vidix_drv_sh_veu
8861 $def_vidix_drv_sis
8862 $def_vidix_drv_unichrome
8863 $def_vidix_pfx
8864 $def_vm
8865 $def_wii
8866 $def_x11
8867 $def_xdpms
8868 $def_xf86keysym
8869 $def_xinerama
8870 $def_xmga
8871 $def_xss
8872 $def_xv
8873 $def_xvmc
8874 $def_xvr100
8875 $def_yuv4mpeg
8876 $def_zr
8879 /* FFmpeg */
8880 $def_libavcodec
8881 $def_libavcodec_a
8882 $def_libavcodec_so
8883 $def_libavformat
8884 $def_libavformat_a
8885 $def_libavformat_so
8886 $def_libavutil
8887 $def_libavutil_a
8888 $def_libavutil_so
8889 $def_libpostproc
8890 $def_libpostproc_a
8891 $def_libpostproc_so
8892 $def_libswscale
8893 $def_libswscale_a
8894 $def_libswscale_so
8896 #define CONFIG_DECODERS 1
8897 #define CONFIG_ENCODERS 1
8898 #define CONFIG_DEMUXERS 1
8899 $def_muxers
8901 $def_arpa_inet_h
8902 $def_bswap
8903 $def_bzlib
8904 $def_dcbzl
8905 $def_dos_paths
8906 $def_fast_64bit
8907 $def_fast_unaligned
8908 $def_libavcodec_mpegaudio_hp
8909 $def_memalign_hack
8910 $def_mlib
8911 $def_mkstemp
8912 $def_posix_memalign
8913 $def_pthreads
8914 $def_ten_operands
8915 $def_threads
8916 $def_xform_asm
8917 $def_yasm
8919 #define CONFIG_FASTDIV 0
8920 #define CONFIG_FFSERVER 0
8921 #define CONFIG_GPL 1
8922 #define CONFIG_GRAY 0
8923 #define CONFIG_HARDCODED_TABLES 0
8924 #define CONFIG_LIBVORBIS 0
8925 #define CONFIG_POWERPC_PERF 0
8926 #define CONFIG_SMALL 0
8927 #define CONFIG_SWSCALE 1
8928 #define CONFIG_SWSCALE_ALPHA 1
8930 #define HAVE_ATTRIBUTE_PACKED 1
8931 #define HAVE_GETHRTIME 0
8932 #define HAVE_INLINE_ASM 0
8933 #define HAVE_LDBRX 0
8934 #define HAVE_POLL_H 1
8935 #define HAVE_PPC4XX 0
8936 #define HAVE_VIRTUALALLOC 0
8938 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8939 #define CONFIG_AANDCT 1
8940 #define CONFIG_FFT 1
8941 #define CONFIG_GOLOMB 1
8942 #define CONFIG_LPC 1
8943 #define CONFIG_MDCT 1
8944 #define CONFIG_RDFT 1
8946 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8947 $def_ebx_available
8948 #ifndef MP_DEBUG
8949 #define HAVE_EBP_AVAILABLE 1
8950 #else
8951 #define HAVE_EBP_AVAILABLE 0
8952 #endif
8954 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
8955 #define FFMPEG_LICENSE "GPL version 2 or later"
8957 /* External libraries used through libavcodec. */
8958 $def_faac_lavc
8959 $def_libdirac_lavc
8960 $def_libopencore_amrnb
8961 $def_libopencore_amrwb
8962 $def_libschroedinger_lavc
8963 $def_mp3lame_lavc
8964 $def_x264_lavc
8965 $def_xvid_lavc
8967 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8968 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8969 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8970 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8971 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8972 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8973 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8975 #define CONFIG_H263_VAAPI_HWACCEL 0
8976 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8977 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8978 #define CONFIG_H264_VAAPI_HWACCEL 0
8979 #define CONFIG_VC1_VAAPI_HWACCEL 0
8980 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8982 #endif /* MPLAYER_CONFIG_H */
8985 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8986 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8988 #############################################################################
8990 cat << EOF
8992 Config files successfully generated by ./configure $_configuration !
8994 Install prefix: $_prefix
8995 Data directory: $_datadir
8996 Config direct.: $_confdir
8998 Byte order: $_byte_order
8999 Optimizing for: $_optimizing
9001 Languages:
9002 Messages/GUI: $language_msg
9003 Manual pages: $language_man
9004 Documentation: $language_doc
9006 Enabled optional drivers:
9007 Input: $_inputmodules
9008 Codecs: $_codecmodules
9009 Audio output: $_aomodules
9010 Video output: $_vomodules
9012 Disabled optional drivers:
9013 Input: $_noinputmodules
9014 Codecs: $_nocodecmodules
9015 Audio output: $_noaomodules
9016 Video output: $_novomodules
9018 'config.h' and 'config.mak' contain your configuration options.
9019 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9020 compile *** DO NOT REPORT BUGS if you tweak these files ***
9022 'make' will now compile MPlayer and 'make install' will install it.
9023 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9028 if test "$_mtrr" = yes ; then
9029 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9030 echo
9033 if ! x86_32; then
9034 cat <<EOF
9035 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9036 operating system ($system_name). You may encounter a few files that cannot
9037 be played due to missing open source video/audio codec support.
9043 cat <<EOF
9044 Check $TMPLOG if you wonder why an autodetection failed (make sure
9045 development headers/packages are installed).
9047 NOTE: The --enable-* parameters unconditionally force options on, completely
9048 skipping autodetection. This behavior is unlike what you may be used to from
9049 autoconf-based configure scripts that can decide to override you. This greater
9050 level of control comes at a price. You may have to provide the correct compiler
9051 and linker flags yourself.
9052 If you used one of these options (except --enable-gui and similar ones that
9053 turn on internal features) and experience a compilation or linking failure,
9054 make sure you have passed the necessary compiler/linker flags to configure.
9056 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9060 if test "$_warn_CFLAGS" = yes; then
9061 cat <<EOF
9063 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9064 but:
9066 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9068 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9069 To do so, execute 'CFLAGS= ./configure <options>'
9074 # Last move:
9075 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"