Add a check for availability of ebx register, needed for
[mplayer/greg.git] / configure
blob5e264a3853c8452cf63f677224cccac97aed1959
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-tv-teletext disable TV teletext interface [autodetect]
252 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
253 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
254 --disable-network disable networking [enable]
255 --enable-winsock2_h enable winsock2_h [autodetect]
256 --enable-smb enable Samba (SMB) input [autodetect]
257 --enable-live enable LIVE555 Streaming Media [autodetect]
258 --enable-nemesi enable Nemesi Streaming Media [autodetect]
259 --disable-vcd disable VCD support [autodetect]
260 --disable-dvdnav disable libdvdnav [autodetect]
261 --disable-dvdread disable libdvdread [autodetect]
262 --disable-dvdread-internal disable internal libdvdread [autodetect]
263 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
264 --disable-cdparanoia disable cdparanoia [autodetect]
265 --disable-cddb disable cddb [autodetect]
266 --disable-bitmap-font disable bitmap font support [enable]
267 --disable-freetype disable FreeType 2 font rendering [autodetect]
268 --disable-fontconfig disable fontconfig font lookup [autodetect]
269 --disable-unrarexec disable using of UnRAR executable [enabled]
270 --enable-menu enable OSD menu (not DVD menu) [disabled]
271 --disable-sortsub disable subtitle sorting [enabled]
272 --enable-fribidi enable the FriBiDi libs [autodetect]
273 --disable-enca disable ENCA charset oracle library [autodetect]
274 --disable-maemo disable maemo specific features [autodetect]
275 --enable-macosx-finder enable Mac OS X Finder invocation parameter
276 parsing [disabled]
277 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
278 --disable-inet6 disable IPv6 support [autodetect]
279 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
280 --disable-ftp disable FTP support [enabled]
281 --disable-vstream disable TiVo vstream client support [autodetect]
282 --disable-pthreads disable Posix threads support [autodetect]
283 --disable-w32threads disable Win32 threads support [autodetect]
284 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --disable-liba52-internal disable builtin liba52 [autodetect]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-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-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --enable-dga2 enable DGA 2 support [autodetect]
367 --enable-dga1 enable DGA 1 support [autodetect]
368 --enable-vesa enable VESA video output [autodetect]
369 --enable-svga enable SVGAlib video output [autodetect]
370 --enable-sdl enable SDL video output [autodetect]
371 --enable-kva enable KVA video output [autodetect]
372 --enable-aa enable AAlib video output [autodetect]
373 --enable-caca enable CACA video output [autodetect]
374 --enable-ggi enable GGI video output [autodetect]
375 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
376 --enable-direct3d enable Direct3D video output [autodetect]
377 --enable-directx enable DirectX video output [autodetect]
378 --enable-dxr2 enable DXR2 video output [autodetect]
379 --enable-dxr3 enable DXR3/H+ video output [autodetect]
380 --enable-ivtv enable IVTV TV-Out video output [autodetect]
381 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
382 --enable-dvb enable DVB video output [autodetect]
383 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-dart disable DART audio output [autodetect]
424 --disable-win32waveout disable Windows waveout audio output [autodetect]
425 --disable-coreaudio disable CoreAudio audio output [autodetect]
426 --disable-select disable using select() on the audio device [enable]
428 Language options:
429 --charset=charset convert the console messages to this character set
430 --language-doc=lang language to use for the documentation [en]
431 --language-man=lang language to use for the man pages [en]
432 --language-msg=lang language to use for the messages and the GUI [en]
433 --language=lang default language to use [en]
434 Specific options override --language. You can pass a list of languages separated
435 by whitespace or commas instead of a single language. Nonexisting translations
436 will be dropped from each list. All documentation and man page translations
437 available in the list will be installed, for the messages the first available
438 translation will be used. The value "all" will activate all translations. The
439 LINGUAS environment variable is honored. In all cases the fallback is English.
440 Available values are: all $msg_lang_all
442 Miscellaneous options:
443 --enable-runtime-cpudetection enable runtime CPU detection [disable]
444 --enable-cross-compile enable cross-compilation [autodetect]
445 --cc=COMPILER C compiler to build MPlayer [gcc]
446 --host-cc=COMPILER C compiler for tools needed while building [gcc]
447 --as=ASSEMBLER assembler to build MPlayer [as]
448 --nm=NM nm tool to build MPlayer [nm]
449 --yasm=YASM Yasm assembler to build MPlayer [yasm]
450 --ar=AR librarian to build MPlayer [ar]
451 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
452 --windres=WINDRES windres to build MPlayer [windres]
453 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
454 --enable-static build a statically linked binary
455 --with-install=PATH path to a custom install program
457 Advanced options:
458 --enable-mmx enable MMX [autodetect]
459 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
460 --enable-3dnow enable 3DNow! [autodetect]
461 --enable-3dnowext enable extended 3DNow! [autodetect]
462 --enable-sse enable SSE [autodetect]
463 --enable-sse2 enable SSE2 [autodetect]
464 --enable-ssse3 enable SSSE3 [autodetect]
465 --enable-shm enable shm [autodetect]
466 --enable-altivec enable AltiVec (PowerPC) [autodetect]
467 --enable-armv5te enable DSP extensions (ARM) [autodetect]
468 --enable-armv6 enable ARMv6 (ARM) [autodetect]
469 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
470 --enable-armvfp enable ARM VFP (ARM) [autodetect]
471 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
472 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
473 --enable-big-endian force byte order to big-endian [autodetect]
474 --enable-debug[=1-3] compile-in debugging information [disable]
475 --enable-profile compile-in profiling information [disable]
476 --disable-sighandler disable sighandler for crashes [enable]
477 --enable-crash-debug enable automatic gdb attach on crash [disable]
478 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
480 Use these options if autodetection fails:
481 --extra-cflags=FLAGS extra CFLAGS
482 --extra-ldflags=FLAGS extra LDFLAGS
483 --extra-libs=FLAGS extra linker flags
484 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
485 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
486 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
488 --with-freetype-config=PATH path to freetype-config
489 --with-fribidi-config=PATH path to fribidi-config
490 --with-glib-config=PATH path to glib*-config
491 --with-gtk-config=PATH path to gtk*-config
492 --with-sdl-config=PATH path to sdl*-config
493 --with-dvdnav-config=PATH path to dvdnav-config
494 --with-dvdread-config=PATH path to dvdread-config
496 This configure script is NOT autoconf-based, even though its output is similar.
497 It will try to autodetect all configuration options. If you --enable an option
498 it will be forcefully turned on, skipping autodetection. This can break
499 compilation, so you need to know what you are doing.
501 exit 0
502 } #show_help()
504 # GOTCHA: the variables below defines the default behavior for autodetection
505 # and have - unless stated otherwise - at least 2 states : yes no
506 # If autodetection is available then the third state is: auto
507 _mmx=auto
508 _3dnow=auto
509 _3dnowext=auto
510 _mmxext=auto
511 _sse=auto
512 _sse2=auto
513 _ssse3=auto
514 _cmov=auto
515 _fast_cmov=auto
516 _armv5te=auto
517 _armv6=auto
518 _armv6t2=auto
519 _armvfp=auto
520 _iwmmxt=auto
521 _mtrr=auto
522 _altivec=auto
523 _install=install
524 _ranlib=ranlib
525 _windres=windres
526 _cc=cc
527 _ar=ar
528 test "$CC" && _cc="$CC"
529 _as=auto
530 _nm=auto
531 _yasm=yasm
532 _runtime_cpudetection=no
533 _cross_compile=auto
534 _prefix="/usr/local"
535 _libavutil_a=auto
536 _libavutil_so=auto
537 _libavcodec_a=auto
538 _libopencore_amrnb=auto
539 _libopencore_amrwb=auto
540 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
541 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
542 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
543 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
544 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
545 _libavparsers=$_libavparsers_all
546 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavbsfs=$_libavbsfs_all
548 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
549 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER//)
550 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
551 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
552 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
553 _libavcodec_so=auto
554 _libavformat_a=auto
555 _libavformat_so=auto
556 _libpostproc_a=auto
557 _libpostproc_so=auto
558 _libswscale_a=auto
559 _libswscale_so=auto
560 _libavcodec_mpegaudio_hp=yes
561 _mencoder=yes
562 _mplayer=yes
563 _x11=auto
564 _xshape=auto
565 _xss=auto
566 _dga1=auto
567 _dga2=auto
568 _xv=auto
569 _xvmc=no #auto when complete
570 _vdpau=auto
571 _sdl=auto
572 _kva=auto
573 _direct3d=auto
574 _directx=auto
575 _win32waveout=auto
576 _nas=auto
577 _png=auto
578 _mng=auto
579 _jpeg=auto
580 _pnm=yes
581 _md5sum=yes
582 _yuv4mpeg=yes
583 _gif=auto
584 _gl=auto
585 _ggi=auto
586 _ggiwmh=auto
587 _aa=auto
588 _caca=auto
589 _svga=auto
590 _vesa=auto
591 _fbdev=auto
592 _dvb=auto
593 _dvbhead=auto
594 _dxr2=auto
595 _dxr3=auto
596 _ivtv=auto
597 _v4l2=auto
598 _iconv=auto
599 _langinfo=auto
600 _rtc=auto
601 _ossaudio=auto
602 _arts=auto
603 _esd=auto
604 _pulse=auto
605 _jack=auto
606 _dart=auto
607 _openal=auto
608 _libcdio=auto
609 _liblzo=auto
610 _mad=auto
611 _mp3lame=auto
612 _mp3lame_lavc=auto
613 _toolame=auto
614 _twolame=auto
615 _tremor=auto
616 _tremor_internal=yes
617 _tremor_low=no
618 _libvorbis=auto
619 _speex=auto
620 _theora=auto
621 _mp3lib=auto
622 _liba52=auto
623 _liba52_internal=auto
624 _libdca=auto
625 _libmpeg2=auto
626 _faad=auto
627 _faad_internal=auto
628 _faad_fixed=no
629 _faac=auto
630 _faac_lavc=auto
631 _ladspa=auto
632 _libbs2b=auto
633 _xmms=no
634 _vcd=auto
635 _dvdnav=auto
636 _dvdnavconfig=dvdnav-config
637 _dvdreadconfig=dvdread-config
638 _dvdread=auto
639 _dvdread_internal=auto
640 _libdvdcss_internal=auto
641 _xanim=auto
642 _real=auto
643 _live=auto
644 _nemesi=auto
645 _native_rtsp=yes
646 _xinerama=auto
647 _mga=auto
648 _xmga=auto
649 _vm=auto
650 _xf86keysym=auto
651 _mlib=no #broken, thus disabled
652 _sgiaudio=auto
653 _sunaudio=auto
654 _alsa=auto
655 _fastmemcpy=yes
656 _unrar_exec=auto
657 _win32dll=auto
658 _select=yes
659 _radio=no
660 _radio_capture=no
661 _radio_v4l=auto
662 _radio_v4l2=auto
663 _radio_bsdbt848=auto
664 _tv=yes
665 _tv_v4l1=auto
666 _tv_v4l2=auto
667 _tv_bsdbt848=auto
668 _tv_dshow=auto
669 _tv_teletext=auto
670 _pvr=auto
671 _network=yes
672 _winsock2_h=auto
673 _smb=auto
674 _vidix=auto
675 _vidix_pcidb=yes
676 _dhahelper=no
677 _svgalib_helper=no
678 _joystick=no
679 _xvid=auto
680 _xvid_lavc=auto
681 _x264=auto
682 _x264_lavc=auto
683 _libdirac_lavc=auto
684 _libschroedinger_lavc=auto
685 _libnut=auto
686 _lirc=auto
687 _lircc=auto
688 _apple_remote=auto
689 _apple_ir=auto
690 _gui=no
691 _gtk1=no
692 _termcap=auto
693 _termios=auto
694 _3dfx=no
695 _s3fb=no
696 _wii=no
697 _tdfxfb=no
698 _tdfxvid=no
699 _xvr100=auto
700 _tga=yes
701 _directfb=auto
702 _zr=auto
703 _bl=no
704 _largefiles=yes
705 #language=en
706 _shm=auto
707 _linux_devfs=no
708 _charset="UTF-8"
709 _dynamic_plugins=no
710 _crash_debug=no
711 _sighandler=yes
712 _libdv=auto
713 _cdparanoia=auto
714 _cddb=auto
715 _big_endian=auto
716 _bitmap_font=yes
717 _freetype=auto
718 _fontconfig=auto
719 _menu=no
720 _qtx=auto
721 _maemo=auto
722 _coreaudio=auto
723 _corevideo=auto
724 _quartz=auto
725 quicktime=auto
726 _macosx_finder=no
727 _macosx_bundle=auto
728 _sortsub=yes
729 _freetypeconfig='freetype-config'
730 _fribidi=auto
731 _fribidiconfig='fribidi-config'
732 _enca=auto
733 _inet6=auto
734 _gethostbyname2=auto
735 _ftp=yes
736 _musepack=auto
737 _vstream=auto
738 _pthreads=auto
739 _w32threads=auto
740 _ass=auto
741 _rpath=no
742 _asmalign_pot=auto
743 _stream_cache=yes
744 _priority=no
745 def_dos_paths="#define HAVE_DOS_PATHS 0"
746 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
747 def_priority="#undef CONFIG_PRIORITY"
748 def_pthread_cache="#undef PTHREAD_CACHE"
749 _need_shmem=yes
750 for ac_option do
751 case "$ac_option" in
752 --help|-help|-h)
753 show_help
755 --prefix=*)
756 _prefix=$(echo $ac_option | cut -d '=' -f 2)
758 --bindir=*)
759 _bindir=$(echo $ac_option | cut -d '=' -f 2)
761 --datadir=*)
762 _datadir=$(echo $ac_option | cut -d '=' -f 2)
764 --mandir=*)
765 _mandir=$(echo $ac_option | cut -d '=' -f 2)
767 --confdir=*)
768 _confdir=$(echo $ac_option | cut -d '=' -f 2)
770 --libdir=*)
771 _libdir=$(echo $ac_option | cut -d '=' -f 2)
773 --codecsdir=*)
774 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
776 --win32codecsdir=*)
777 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
779 --xanimcodecsdir=*)
780 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
782 --realcodecsdir=*)
783 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
786 --with-install=*)
787 _install=$(echo $ac_option | cut -d '=' -f 2 )
789 --with-xvmclib=*)
790 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
793 --with-sdl-config=*)
794 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
796 --with-freetype-config=*)
797 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
799 --with-fribidi-config=*)
800 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
802 --with-gtk-config=*)
803 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
805 --with-glib-config=*)
806 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
808 --with-dvdnav-config=*)
809 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
811 --with-dvdread-config=*)
812 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
815 --extra-cflags=*)
816 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
818 --extra-ldflags=*)
819 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
821 --extra-libs=*)
822 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
824 --extra-libs-mplayer=*)
825 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
827 --extra-libs-mencoder=*)
828 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
831 --target=*)
832 _target=$(echo $ac_option | cut -d '=' -f 2)
834 --cc=*)
835 _cc=$(echo $ac_option | cut -d '=' -f 2)
837 --host-cc=*)
838 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
840 --as=*)
841 _as=$(echo $ac_option | cut -d '=' -f 2)
843 --nm=*)
844 _nm=$(echo $ac_option | cut -d '=' -f 2)
846 --yasm=*)
847 _yasm=$(echo $ac_option | cut -d '=' -f 2)
849 --ar=*)
850 _ar=$(echo $ac_option | cut -d '=' -f 2)
852 --ranlib=*)
853 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
855 --windres=*)
856 _windres=$(echo $ac_option | cut -d '=' -f 2)
858 --charset=*)
859 _charset=$(echo $ac_option | cut -d '=' -f 2)
861 --language-doc=*)
862 language_doc=$(echo $ac_option | cut -d '=' -f 2)
864 --language-man=*)
865 language_man=$(echo $ac_option | cut -d '=' -f 2)
867 --language-msg=*)
868 language_msg=$(echo $ac_option | cut -d '=' -f 2)
870 --language=*)
871 language=$(echo $ac_option | cut -d '=' -f 2)
874 --enable-static)
875 _ld_static='-static'
877 --disable-static)
878 _ld_static=''
880 --enable-profile)
881 _profile='-p'
883 --disable-profile)
884 _profile=
886 --enable-debug)
887 _debug='-g'
889 --enable-debug=*)
890 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
892 --disable-debug)
893 _debug=
895 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
896 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
897 --enable-cross-compile) _cross_compile=yes ;;
898 --disable-cross-compile) _cross_compile=no ;;
899 --enable-mencoder) _mencoder=yes ;;
900 --disable-mencoder) _mencoder=no ;;
901 --enable-mplayer) _mplayer=yes ;;
902 --disable-mplayer) _mplayer=no ;;
903 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
904 --disable-dynamic-plugins) _dynamic_plugins=no ;;
905 --enable-x11) _x11=yes ;;
906 --disable-x11) _x11=no ;;
907 --enable-xshape) _xshape=yes ;;
908 --disable-xshape) _xshape=no ;;
909 --enable-xss) _xss=yes ;;
910 --disable-xss) _xss=no ;;
911 --enable-xv) _xv=yes ;;
912 --disable-xv) _xv=no ;;
913 --enable-xvmc) _xvmc=yes ;;
914 --disable-xvmc) _xvmc=no ;;
915 --enable-vdpau) _vdpau=yes ;;
916 --disable-vdpau) _vdpau=no ;;
917 --enable-sdl) _sdl=yes ;;
918 --disable-sdl) _sdl=no ;;
919 --enable-kva) _kva=yes ;;
920 --disable-kva) _kva=no ;;
921 --enable-direct3d) _direct3d=yes ;;
922 --disable-direct3d) _direct3d=no ;;
923 --enable-directx) _directx=yes ;;
924 --disable-directx) _directx=no ;;
925 --enable-win32waveout) _win32waveout=yes ;;
926 --disable-win32waveout) _win32waveout=no ;;
927 --enable-nas) _nas=yes ;;
928 --disable-nas) _nas=no ;;
929 --enable-png) _png=yes ;;
930 --disable-png) _png=no ;;
931 --enable-mng) _mng=yes ;;
932 --disable-mng) _mng=no ;;
933 --enable-jpeg) _jpeg=yes ;;
934 --disable-jpeg) _jpeg=no ;;
935 --enable-pnm) _pnm=yes ;;
936 --disable-pnm) _pnm=no ;;
937 --enable-md5sum) _md5sum=yes ;;
938 --disable-md5sum) _md5sum=no ;;
939 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
940 --disable-yuv4mpeg) _yuv4mpeg=no ;;
941 --enable-gif) _gif=yes ;;
942 --disable-gif) _gif=no ;;
943 --enable-gl) _gl=yes ;;
944 --disable-gl) _gl=no ;;
945 --enable-ggi) _ggi=yes ;;
946 --disable-ggi) _ggi=no ;;
947 --enable-ggiwmh) _ggiwmh=yes ;;
948 --disable-ggiwmh) _ggiwmh=no ;;
949 --enable-aa) _aa=yes ;;
950 --disable-aa) _aa=no ;;
951 --enable-caca) _caca=yes ;;
952 --disable-caca) _caca=no ;;
953 --enable-svga) _svga=yes ;;
954 --disable-svga) _svga=no ;;
955 --enable-vesa) _vesa=yes ;;
956 --disable-vesa) _vesa=no ;;
957 --enable-fbdev) _fbdev=yes ;;
958 --disable-fbdev) _fbdev=no ;;
959 --enable-dvb) _dvb=yes ;;
960 --disable-dvb) _dvb=no ;;
961 --enable-dvbhead) _dvbhead=yes ;;
962 --disable-dvbhead) _dvbhead=no ;;
963 --enable-dxr2) _dxr2=yes ;;
964 --disable-dxr2) _dxr2=no ;;
965 --enable-dxr3) _dxr3=yes ;;
966 --disable-dxr3) _dxr3=no ;;
967 --enable-ivtv) _ivtv=yes ;;
968 --disable-ivtv) _ivtv=no ;;
969 --enable-v4l2) _v4l2=yes ;;
970 --disable-v4l2) _v4l2=no ;;
971 --enable-iconv) _iconv=yes ;;
972 --disable-iconv) _iconv=no ;;
973 --enable-langinfo) _langinfo=yes ;;
974 --disable-langinfo) _langinfo=no ;;
975 --enable-rtc) _rtc=yes ;;
976 --disable-rtc) _rtc=no ;;
977 --enable-libdv) _libdv=yes ;;
978 --disable-libdv) _libdv=no ;;
979 --enable-ossaudio) _ossaudio=yes ;;
980 --disable-ossaudio) _ossaudio=no ;;
981 --enable-arts) _arts=yes ;;
982 --disable-arts) _arts=no ;;
983 --enable-esd) _esd=yes ;;
984 --disable-esd) _esd=no ;;
985 --enable-pulse) _pulse=yes ;;
986 --disable-pulse) _pulse=no ;;
987 --enable-jack) _jack=yes ;;
988 --disable-jack) _jack=no ;;
989 --enable-openal) _openal=yes ;;
990 --disable-openal) _openal=no ;;
991 --enable-dart) _dart=yes ;;
992 --disable-dart) _dart=no ;;
993 --enable-mad) _mad=yes ;;
994 --disable-mad) _mad=no ;;
995 --enable-mp3lame) _mp3lame=yes ;;
996 --disable-mp3lame) _mp3lame=no ;;
997 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
998 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
999 --enable-toolame) _toolame=yes ;;
1000 --disable-toolame) _toolame=no ;;
1001 --enable-twolame) _twolame=yes ;;
1002 --disable-twolame) _twolame=no ;;
1003 --enable-libcdio) _libcdio=yes ;;
1004 --disable-libcdio) _libcdio=no ;;
1005 --enable-liblzo) _liblzo=yes ;;
1006 --disable-liblzo) _liblzo=no ;;
1007 --enable-libvorbis) _libvorbis=yes ;;
1008 --disable-libvorbis) _libvorbis=no ;;
1009 --enable-speex) _speex=yes ;;
1010 --disable-speex) _speex=no ;;
1011 --enable-tremor) _tremor=yes ;;
1012 --disable-tremor) _tremor=no ;;
1013 --enable-tremor-internal) _tremor_internal=yes ;;
1014 --disable-tremor-internal) _tremor_internal=no ;;
1015 --enable-tremor-low) _tremor_low=yes ;;
1016 --disable-tremor-low) _tremor_low=no ;;
1017 --enable-theora) _theora=yes ;;
1018 --disable-theora) _theora=no ;;
1019 --enable-mp3lib) _mp3lib=yes ;;
1020 --disable-mp3lib) _mp3lib=no ;;
1021 --enable-liba52-internal) _liba52_internal=yes ;;
1022 --disable-liba52-internal) _liba52_internal=no ;;
1023 --enable-liba52) _liba52=yes ;;
1024 --disable-liba52) _liba52=no ;;
1025 --enable-libdca) _libdca=yes ;;
1026 --disable-libdca) _libdca=no ;;
1027 --enable-libmpeg2) _libmpeg2=yes ;;
1028 --disable-libmpeg2) _libmpeg2=no ;;
1029 --enable-musepack) _musepack=yes ;;
1030 --disable-musepack) _musepack=no ;;
1031 --enable-faad) _faad=yes ;;
1032 --disable-faad) _faad=no ;;
1033 --enable-faad-internal) _faad_internal=yes ;;
1034 --disable-faad-internal) _faad_internal=no ;;
1035 --enable-faad-fixed) _faad_fixed=yes ;;
1036 --disable-faad-fixed) _faad_fixed=no ;;
1037 --enable-faac) _faac=yes ;;
1038 --disable-faac) _faac=no ;;
1039 --enable-faac-lavc) _faac_lavc=yes ;;
1040 --disable-faac-lavc) _faac_lavc=no ;;
1041 --enable-ladspa) _ladspa=yes ;;
1042 --disable-ladspa) _ladspa=no ;;
1043 --enable-libbs2b) _libbs2b=yes ;;
1044 --disable-libbs2b) _libbs2b=no ;;
1045 --enable-xmms) _xmms=yes ;;
1046 --disable-xmms) _xmms=no ;;
1047 --enable-vcd) _vcd=yes ;;
1048 --disable-vcd) _vcd=no ;;
1049 --enable-dvdread) _dvdread=yes ;;
1050 --disable-dvdread) _dvdread=no ;;
1051 --enable-dvdread-internal) _dvdread_internal=yes ;;
1052 --disable-dvdread-internal) _dvdread_internal=no ;;
1053 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1054 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1055 --enable-dvdnav) _dvdnav=yes ;;
1056 --disable-dvdnav) _dvdnav=no ;;
1057 --enable-xanim) _xanim=yes ;;
1058 --disable-xanim) _xanim=no ;;
1059 --enable-real) _real=yes ;;
1060 --disable-real) _real=no ;;
1061 --enable-live) _live=yes ;;
1062 --disable-live) _live=no ;;
1063 --enable-nemesi) _nemesi=yes ;;
1064 --disable-nemesi) _nemesi=no ;;
1065 --enable-xinerama) _xinerama=yes ;;
1066 --disable-xinerama) _xinerama=no ;;
1067 --enable-mga) _mga=yes ;;
1068 --disable-mga) _mga=no ;;
1069 --enable-xmga) _xmga=yes ;;
1070 --disable-xmga) _xmga=no ;;
1071 --enable-vm) _vm=yes ;;
1072 --disable-vm) _vm=no ;;
1073 --enable-xf86keysym) _xf86keysym=yes ;;
1074 --disable-xf86keysym) _xf86keysym=no ;;
1075 --enable-mlib) _mlib=yes ;;
1076 --disable-mlib) _mlib=no ;;
1077 --enable-sunaudio) _sunaudio=yes ;;
1078 --disable-sunaudio) _sunaudio=no ;;
1079 --enable-sgiaudio) _sgiaudio=yes ;;
1080 --disable-sgiaudio) _sgiaudio=no ;;
1081 --enable-alsa) _alsa=yes ;;
1082 --disable-alsa) _alsa=no ;;
1083 --enable-tv) _tv=yes ;;
1084 --disable-tv) _tv=no ;;
1085 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1086 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1087 --enable-tv-v4l1) _tv_v4l1=yes ;;
1088 --disable-tv-v4l1) _tv_v4l1=no ;;
1089 --enable-tv-v4l2) _tv_v4l2=yes ;;
1090 --disable-tv-v4l2) _tv_v4l2=no ;;
1091 --enable-tv-dshow) _tv_dshow=yes ;;
1092 --disable-tv-dshow) _tv_dshow=no ;;
1093 --enable-tv-teletext) _tv_teletext=yes ;;
1094 --disable-tv-teletext) _tv_teletext=no ;;
1095 --enable-radio) _radio=yes ;;
1096 --enable-radio-capture) _radio_capture=yes ;;
1097 --disable-radio-capture) _radio_capture=no ;;
1098 --disable-radio) _radio=no ;;
1099 --enable-radio-v4l) _radio_v4l=yes ;;
1100 --disable-radio-v4l) _radio_v4l=no ;;
1101 --enable-radio-v4l2) _radio_v4l2=yes ;;
1102 --disable-radio-v4l2) _radio_v4l2=no ;;
1103 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1104 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1105 --enable-pvr) _pvr=yes ;;
1106 --disable-pvr) _pvr=no ;;
1107 --enable-fastmemcpy) _fastmemcpy=yes ;;
1108 --disable-fastmemcpy) _fastmemcpy=no ;;
1109 --enable-network) _network=yes ;;
1110 --disable-network) _network=no ;;
1111 --enable-winsock2_h) _winsock2_h=yes ;;
1112 --disable-winsock2_h) _winsock2_h=no ;;
1113 --enable-smb) _smb=yes ;;
1114 --disable-smb) _smb=no ;;
1115 --enable-vidix) _vidix=yes ;;
1116 --disable-vidix) _vidix=no ;;
1117 --with-vidix-drivers=*)
1118 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1120 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1121 --enable-dhahelper) _dhahelper=yes ;;
1122 --disable-dhahelper) _dhahelper=no ;;
1123 --enable-svgalib_helper) _svgalib_helper=yes ;;
1124 --disable-svgalib_helper) _svgalib_helper=no ;;
1125 --enable-joystick) _joystick=yes ;;
1126 --disable-joystick) _joystick=no ;;
1127 --enable-xvid) _xvid=yes ;;
1128 --disable-xvid) _xvid=no ;;
1129 --enable-xvid-lavc) _xvid_lavc=yes ;;
1130 --disable-xvid-lavc) _xvid_lavc=no ;;
1131 --enable-x264) _x264=yes ;;
1132 --disable-x264) _x264=no ;;
1133 --enable-x264-lavc) _x264_lavc=yes ;;
1134 --disable-x264-lavc) _x264_lavc=no ;;
1135 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1136 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1137 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1138 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1139 --enable-libnut) _libnut=yes ;;
1140 --disable-libnut) _libnut=no ;;
1141 --enable-libavutil_a) _libavutil_a=yes ;;
1142 --disable-libavutil_a) _libavutil_a=no ;;
1143 --enable-libavutil_so) _libavutil_so=yes ;;
1144 --disable-libavutil_so) _libavutil_so=no ;;
1145 --enable-libavcodec_a) _libavcodec_a=yes ;;
1146 --disable-libavcodec_a) _libavcodec_a=no ;;
1147 --enable-libavcodec_so) _libavcodec_so=yes ;;
1148 --disable-libavcodec_so) _libavcodec_so=no ;;
1149 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1150 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1151 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1152 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1153 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1154 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1155 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1156 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1157 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1158 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1159 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1160 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1161 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1162 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1163 --enable-libavformat_a) _libavformat_a=yes ;;
1164 --disable-libavformat_a) _libavformat_a=no ;;
1165 --enable-libavformat_so) _libavformat_so=yes ;;
1166 --disable-libavformat_so) _libavformat_so=no ;;
1167 --enable-libpostproc_a) _libpostproc_a=yes ;;
1168 --disable-libpostproc_a) _libpostproc_a=no ;;
1169 --enable-libpostproc_so) _libpostproc_so=yes ;;
1170 --disable-libpostproc_so) _libpostproc_so=no ;;
1171 --enable-libswscale_a) _libswscale_a=yes ;;
1172 --disable-libswscale_a) _libswscale_a=no ;;
1173 --enable-libswscale_so) _libswscale_so=yes ;;
1174 --disable-libswscale_so) _libswscale_so=no ;;
1175 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1176 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1178 --enable-lirc) _lirc=yes ;;
1179 --disable-lirc) _lirc=no ;;
1180 --enable-lircc) _lircc=yes ;;
1181 --disable-lircc) _lircc=no ;;
1182 --enable-apple-remote) _apple_remote=yes ;;
1183 --disable-apple-remote) _apple_remote=no ;;
1184 --enable-apple-ir) _apple_ir=yes ;;
1185 --disable-apple-ir) _apple_ir=no ;;
1186 --enable-gui) _gui=yes ;;
1187 --disable-gui) _gui=no ;;
1188 --enable-gtk1) _gtk1=yes ;;
1189 --disable-gtk1) _gtk1=no ;;
1190 --enable-termcap) _termcap=yes ;;
1191 --disable-termcap) _termcap=no ;;
1192 --enable-termios) _termios=yes ;;
1193 --disable-termios) _termios=no ;;
1194 --enable-3dfx) _3dfx=yes ;;
1195 --disable-3dfx) _3dfx=no ;;
1196 --enable-s3fb) _s3fb=yes ;;
1197 --disable-s3fb) _s3fb=no ;;
1198 --enable-wii) _wii=yes ;;
1199 --disable-wii) _wii=no ;;
1200 --enable-tdfxfb) _tdfxfb=yes ;;
1201 --disable-tdfxfb) _tdfxfb=no ;;
1202 --disable-tdfxvid) _tdfxvid=no ;;
1203 --enable-tdfxvid) _tdfxvid=yes ;;
1204 --disable-xvr100) _xvr100=no ;;
1205 --enable-xvr100) _xvr100=yes ;;
1206 --disable-tga) _tga=no ;;
1207 --enable-tga) _tga=yes ;;
1208 --enable-directfb) _directfb=yes ;;
1209 --disable-directfb) _directfb=no ;;
1210 --enable-zr) _zr=yes ;;
1211 --disable-zr) _zr=no ;;
1212 --enable-bl) _bl=yes ;;
1213 --disable-bl) _bl=no ;;
1214 --enable-mtrr) _mtrr=yes ;;
1215 --disable-mtrr) _mtrr=no ;;
1216 --enable-largefiles) _largefiles=yes ;;
1217 --disable-largefiles) _largefiles=no ;;
1218 --enable-shm) _shm=yes ;;
1219 --disable-shm) _shm=no ;;
1220 --enable-select) _select=yes ;;
1221 --disable-select) _select=no ;;
1222 --enable-linux-devfs) _linux_devfs=yes ;;
1223 --disable-linux-devfs) _linux_devfs=no ;;
1224 --enable-cdparanoia) _cdparanoia=yes ;;
1225 --disable-cdparanoia) _cdparanoia=no ;;
1226 --enable-cddb) _cddb=yes ;;
1227 --disable-cddb) _cddb=no ;;
1228 --enable-big-endian) _big_endian=yes ;;
1229 --disable-big-endian) _big_endian=no ;;
1230 --enable-bitmap-font) _bitmap_font=yes ;;
1231 --disable-bitmap-font) _bitmap_font=no ;;
1232 --enable-freetype) _freetype=yes ;;
1233 --disable-freetype) _freetype=no ;;
1234 --enable-fontconfig) _fontconfig=yes ;;
1235 --disable-fontconfig) _fontconfig=no ;;
1236 --enable-unrarexec) _unrar_exec=yes ;;
1237 --disable-unrarexec) _unrar_exec=no ;;
1238 --enable-ftp) _ftp=yes ;;
1239 --disable-ftp) _ftp=no ;;
1240 --enable-vstream) _vstream=yes ;;
1241 --disable-vstream) _vstream=no ;;
1242 --enable-pthreads) _pthreads=yes ;;
1243 --disable-pthreads) _pthreads=no ;;
1244 --enable-w32threads) _w32threads=yes ;;
1245 --disable-w32threads) _w32threads=no ;;
1246 --enable-ass) _ass=yes ;;
1247 --disable-ass) _ass=no ;;
1248 --enable-rpath) _rpath=yes ;;
1249 --disable-rpath) _rpath=no ;;
1251 --enable-fribidi) _fribidi=yes ;;
1252 --disable-fribidi) _fribidi=no ;;
1254 --enable-enca) _enca=yes ;;
1255 --disable-enca) _enca=no ;;
1257 --enable-inet6) _inet6=yes ;;
1258 --disable-inet6) _inet6=no ;;
1260 --enable-gethostbyname2) _gethostbyname2=yes ;;
1261 --disable-gethostbyname2) _gethostbyname2=no ;;
1263 --enable-dga1) _dga1=yes ;;
1264 --disable-dga1) _dga1=no ;;
1265 --enable-dga2) _dga2=yes ;;
1266 --disable-dga2) _dga2=no ;;
1268 --enable-menu) _menu=yes ;;
1269 --disable-menu) _menu=no ;;
1271 --enable-qtx) _qtx=yes ;;
1272 --disable-qtx) _qtx=no ;;
1274 --enable-coreaudio) _coreaudio=yes ;;
1275 --disable-coreaudio) _coreaudio=no ;;
1276 --enable-corevideo) _corevideo=yes ;;
1277 --disable-corevideo) _corevideo=no ;;
1278 --enable-quartz) _quartz=yes ;;
1279 --disable-quartz) _quartz=no ;;
1280 --enable-macosx-finder) _macosx_finder=yes ;;
1281 --disable-macosx-finder) _macosx_finder=no ;;
1282 --enable-macosx-bundle) _macosx_bundle=yes;;
1283 --disable-macosx-bundle) _macosx_bundle=no;;
1285 --enable-maemo) _maemo=yes ;;
1286 --disable-maemo) _maemo=no ;;
1288 --enable-sortsub) _sortsub=yes ;;
1289 --disable-sortsub) _sortsub=no ;;
1291 --enable-crash-debug) _crash_debug=yes ;;
1292 --disable-crash-debug) _crash_debug=no ;;
1293 --enable-sighandler) _sighandler=yes ;;
1294 --disable-sighandler) _sighandler=no ;;
1295 --enable-win32dll) _win32dll=yes ;;
1296 --disable-win32dll) _win32dll=no ;;
1298 --enable-sse) _sse=yes ;;
1299 --disable-sse) _sse=no ;;
1300 --enable-sse2) _sse2=yes ;;
1301 --disable-sse2) _sse2=no ;;
1302 --enable-ssse3) _ssse3=yes ;;
1303 --disable-ssse3) _ssse3=no ;;
1304 --enable-mmxext) _mmxext=yes ;;
1305 --disable-mmxext) _mmxext=no ;;
1306 --enable-3dnow) _3dnow=yes ;;
1307 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1308 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1309 --disable-3dnowext) _3dnowext=no ;;
1310 --enable-cmov) _cmov=yes ;;
1311 --disable-cmov) _cmov=no ;;
1312 --enable-fast-cmov) _fast_cmov=yes ;;
1313 --disable-fast-cmov) _fast_cmov=no ;;
1314 --enable-altivec) _altivec=yes ;;
1315 --disable-altivec) _altivec=no ;;
1316 --enable-armv5te) _armv5te=yes ;;
1317 --disable-armv5te) _armv5te=no ;;
1318 --enable-armv6) _armv6=yes ;;
1319 --disable-armv6) _armv6=no ;;
1320 --enable-armv6t2) _armv6t2=yes ;;
1321 --disable-armv6t2) _armv6t2=no ;;
1322 --enable-armvfp) _armvfp=yes ;;
1323 --disable-armvfp) _armvfp=no ;;
1324 --enable-iwmmxt) _iwmmxt=yes ;;
1325 --disable-iwmmxt) _iwmmxt=no ;;
1326 --enable-mmx) _mmx=yes ;;
1327 --disable-mmx) # 3Dnow! and MMX2 require MMX
1328 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1331 echo "Unknown parameter: $ac_option"
1332 exit 1
1335 esac
1336 done
1338 # Atmos: moved this here, to be correct, if --prefix is specified
1339 test -z "$_bindir" && _bindir="$_prefix/bin"
1340 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1341 test -z "$_mandir" && _mandir="$_prefix/share/man"
1342 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1343 test -z "$_libdir" && _libdir="$_prefix/lib"
1345 # Determine our OS name and CPU architecture
1346 if test -z "$_target" ; then
1347 # OS name
1348 system_name=$(uname -s 2>&1)
1349 case "$system_name" in
1350 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1352 Haiku)
1353 system_name=BeOS
1355 IRIX*)
1356 system_name=IRIX
1358 GNU/kFreeBSD)
1359 system_name=FreeBSD
1361 HP-UX*)
1362 system_name=HP-UX
1364 [cC][yY][gG][wW][iI][nN]*)
1365 system_name=CYGWIN
1367 MINGW32*)
1368 system_name=MINGW32
1370 OS/2*)
1371 system_name=OS/2
1374 system_name="$system_name-UNKNOWN"
1376 esac
1379 # host's CPU/instruction set
1380 host_arch=$(uname -p 2>&1)
1381 case "$host_arch" in
1382 i386|sparc|ppc|alpha|arm|mips|vax)
1384 powerpc) # Darwin returns 'powerpc'
1385 host_arch=ppc
1387 *) # uname -p on Linux returns 'unknown' for the processor type,
1388 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1390 # Maybe uname -m (machine hardware name) returns something we
1391 # recognize.
1393 # x86/x86pc is used by QNX
1394 case "$(uname -m 2>&1)" in
1395 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 ;;
1396 ia64) host_arch=ia64 ;;
1397 x86_64|amd64)
1398 if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \
1399 -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then
1400 host_arch=x86_64
1401 else
1402 host_arch=i386
1405 macppc|ppc) host_arch=ppc ;;
1406 ppc64) host_arch=ppc64 ;;
1407 alpha) host_arch=alpha ;;
1408 sparc) host_arch=sparc ;;
1409 sparc64) host_arch=sparc64 ;;
1410 parisc*|hppa*|9000*) host_arch=hppa ;;
1411 arm*|zaurus|cats) host_arch=arm ;;
1412 sh3|sh4|sh4a) host_arch=sh ;;
1413 s390) host_arch=s390 ;;
1414 s390x) host_arch=s390x ;;
1415 *mips*) host_arch=mips ;;
1416 vax) host_arch=vax ;;
1417 xtensa*) host_arch=xtensa ;;
1418 *) host_arch=UNKNOWN ;;
1419 esac
1421 esac
1422 else # if test -z "$_target"
1423 system_name=$(echo $_target | cut -d '-' -f 2)
1424 case "$(echo $system_name | tr A-Z a-z)" in
1425 linux) system_name=Linux ;;
1426 freebsd) system_name=FreeBSD ;;
1427 gnu/kfreebsd) system_name=FreeBSD ;;
1428 netbsd) system_name=NetBSD ;;
1429 bsd/os) system_name=BSD/OS ;;
1430 openbsd) system_name=OpenBSD ;;
1431 dragonfly) system_name=DragonFly ;;
1432 sunos) system_name=SunOS ;;
1433 qnx) system_name=QNX ;;
1434 morphos) system_name=MorphOS ;;
1435 amigaos) system_name=AmigaOS ;;
1436 mingw32msvc) system_name=MINGW32 ;;
1437 esac
1438 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1439 host_arch=$(echo $_target | cut -d '-' -f 1)
1440 if test $(echo $host_arch) != "x86_64" ; then
1441 host_arch=$(echo $host_arch | tr '_' '-')
1445 echo "Detected operating system: $system_name"
1446 echo "Detected host architecture: $host_arch"
1448 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1449 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1453 extra_cflags="-I. $extra_cflags"
1454 _timer=timer-linux.c
1455 _getch=getch2.c
1456 if freebsd ; then
1457 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1458 extra_cflags="$extra_cflags -I/usr/local/include"
1461 if netbsd || dragonfly ; then
1462 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1463 extra_cflags="$extra_cflags -I/usr/pkg/include"
1466 if darwin; then
1467 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1468 _timer=timer-darwin.c
1471 if aix ; then
1472 extra_ldflags="$extra_ldflags -lC"
1475 if irix ; then
1476 _ranlib='ar -r'
1477 elif linux ; then
1478 _ranlib='true'
1481 if win32 ; then
1482 _exesuf=".exe"
1483 # -lwinmm is always needed for osdep/timer-win2.c
1484 extra_ldflags="$extra_ldflags -lwinmm"
1485 _pe_executable=yes
1486 _timer=timer-win2.c
1487 _priority=yes
1488 def_dos_paths="#define HAVE_DOS_PATHS 1"
1489 def_priority="#define CONFIG_PRIORITY 1"
1492 if mingw32 ; then
1493 _getch=getch2-win.c
1494 _need_shmem=no
1497 if amigaos ; then
1498 _select=no
1499 _sighandler=no
1500 _stream_cache=no
1501 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1502 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1505 if qnx ; then
1506 extra_ldflags="$extra_ldflags -lph"
1509 if os2 ; then
1510 _exesuf=".exe"
1511 _getch=getch2-os2.c
1512 _need_shmem=no
1513 _priority=yes
1514 def_dos_paths="#define HAVE_DOS_PATHS 1"
1515 def_priority="#define CONFIG_PRIORITY 1"
1518 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1519 test "$I" && break
1520 done
1523 TMPLOG="configure.log"
1524 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1525 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1526 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1527 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1528 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1530 rm -f "$TMPLOG"
1531 echo configuration: $_configuration > "$TMPLOG"
1532 echo >> "$TMPLOG"
1535 # Checking CC version...
1536 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1537 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1538 echocheck "$_cc version"
1539 cc_vendor=intel
1540 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1541 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1542 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1543 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1544 # TODO verify older icc/ecc compatibility
1545 case $cc_version in
1547 cc_version="v. ?.??, bad"
1548 cc_fail=yes
1550 10.1|11.0|11.1)
1551 cc_version="$cc_version, ok"
1554 cc_version="$cc_version, bad"
1555 cc_fail=yes
1557 esac
1558 echores "$cc_version"
1559 else
1560 for _cc in "$_cc" cc gcc ; do
1561 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1562 if test "$cc_name_tmp" = "gcc"; then
1563 cc_name=$cc_name_tmp
1564 echocheck "$_cc version"
1565 cc_vendor=gnu
1566 cc_version=$($_cc -dumpversion 2>&1)
1567 case $cc_version in
1568 2.96*)
1569 cc_fail=yes
1572 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1573 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1574 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1576 esac
1577 echores "$cc_version"
1578 break
1580 done
1581 fi # icc
1582 test "$cc_fail" = yes && die "unsupported compiler version"
1584 echocheck "host cc"
1585 test "$_host_cc" || _host_cc=$_cc
1586 echores $_host_cc
1588 echocheck "cross compilation"
1589 if test $_cross_compile = auto ; then
1590 cat > $TMPC << EOF
1591 int main(void) { return 0; }
1593 _cross_compile=yes
1594 cc_check && "$TMPEXE" && _cross_compile=no
1596 echores $_cross_compile
1598 if test $_cross_compile = yes; then
1599 tmp_run() {
1600 return 0
1604 # ---
1606 # now that we know what compiler should be used for compilation, try to find
1607 # out which assembler is used by the $_cc compiler
1608 if test "$_as" = auto ; then
1609 _as=$($_cc -print-prog-name=as)
1610 test -z "$_as" && _as=as
1613 if test "$_nm" = auto ; then
1614 _nm=$($_cc -print-prog-name=nm)
1615 test -z "$_nm" && _nm=nm
1618 # XXX: this should be ok..
1619 _cpuinfo="echo"
1621 if test "$_runtime_cpudetection" = no ; then
1623 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1624 # FIXME: Remove the cygwin check once AMD CPUs are supported
1625 if test -r /proc/cpuinfo && ! cygwin; then
1626 # Linux with /proc mounted, extract CPU information from it
1627 _cpuinfo="cat /proc/cpuinfo"
1628 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1629 # FreeBSD with Linux emulation /proc mounted,
1630 # extract CPU information from it
1631 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1632 elif darwin && ! x86 ; then
1633 # use hostinfo on Darwin
1634 _cpuinfo="hostinfo"
1635 elif aix; then
1636 # use 'lsattr' on AIX
1637 _cpuinfo="lsattr -E -l proc0 -a type"
1638 elif x86; then
1639 # all other OSes try to extract CPU information from a small helper
1640 # program cpuinfo instead
1641 $_cc -o cpuinfo$_exesuf cpuinfo.c
1642 _cpuinfo="./cpuinfo$_exesuf"
1645 if x86 ; then
1646 # gather more CPU information
1647 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1648 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1649 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1650 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1651 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1653 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1655 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1656 -e s/xmm/sse/ -e s/kni/sse/)
1658 for ext in $pparam ; do
1659 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1660 done
1662 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1663 test $_sse = kernel_check && _mmxext=kernel_check
1665 echocheck "CPU vendor"
1666 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1668 echocheck "CPU type"
1669 echores "$pname"
1672 fi # test "$_runtime_cpudetection" = no
1674 if x86 && test "$_runtime_cpudetection" = no ; then
1675 extcheck() {
1676 if test "$1" = kernel_check ; then
1677 echocheck "kernel support of $2"
1678 cat > $TMPC <<EOF
1679 #include <stdlib.h>
1680 #include <signal.h>
1681 void catch() { exit(1); }
1682 int main(void) {
1683 signal(SIGILL, catch);
1684 __asm__ volatile ("$3":::"memory"); return 0;
1688 if cc_check && tmp_run ; then
1689 eval _$2=yes
1690 echores "yes"
1691 _optimizing="$_optimizing $2"
1692 return 0
1693 else
1694 eval _$2=no
1695 echores "failed"
1696 echo "It seems that your kernel does not correctly support $2."
1697 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1698 return 1
1701 return 0
1704 extcheck $_mmx "mmx" "emms"
1705 extcheck $_mmxext "mmxext" "sfence"
1706 extcheck $_3dnow "3dnow" "femms"
1707 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1708 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1709 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1710 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1711 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1713 echocheck "mtrr support"
1714 if test "$_mtrr" = kernel_check ; then
1715 _mtrr="yes"
1716 _optimizing="$_optimizing mtrr"
1718 echores "$_mtrr"
1720 if test "$_gcc3_ext" != ""; then
1721 # if we had to disable sse/sse2 because the active kernel does not
1722 # support this instruction set extension, we also have to tell
1723 # gcc3 to not generate sse/sse2 instructions for normal C code
1724 cat > $TMPC << EOF
1725 int main(void) { return 0; }
1727 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1733 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1734 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1735 _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'
1736 case "$host_arch" in
1737 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1738 _arch='X86 X86_32'
1739 _target_arch="ARCH_X86 = yes"
1740 _target_subarch="ARCH_X86_32 = yes"
1741 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1742 iproc=486
1743 proc=i486
1746 if test "$_runtime_cpudetection" = no ; then
1747 case "$pvendor" in
1748 AuthenticAMD)
1749 case "$pfamily" in
1750 3) proc=i386 iproc=386 ;;
1751 4) proc=i486 iproc=486 ;;
1752 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1753 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1754 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1755 proc=k6-3
1756 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1757 proc=geode
1758 elif test "$pmodel" -ge 8; then
1759 proc=k6-2
1760 elif test "$pmodel" -ge 6; then
1761 proc=k6
1762 else
1763 proc=i586
1766 6) iproc=686
1767 # It's a bit difficult to determine the correct type of Family 6
1768 # AMD CPUs just from their signature. Instead, we check directly
1769 # whether it supports SSE.
1770 if test "$_sse" = yes; then
1771 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1772 proc=athlon-xp
1773 else
1774 # Again, gcc treats athlon and athlon-tbird similarly.
1775 proc=athlon
1778 15) iproc=686
1779 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1780 # caught and remedied in the optimization tests below.
1781 proc=k8
1784 *) proc=k8 iproc=686 ;;
1785 esac
1787 GenuineIntel)
1788 case "$pfamily" in
1789 3) proc=i386 iproc=386 ;;
1790 4) proc=i486 iproc=486 ;;
1791 5) iproc=586
1792 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1793 proc=pentium-mmx # 4 is desktop, 8 is mobile
1794 else
1795 proc=i586
1798 6) iproc=686
1799 if test "$pmodel" -ge 15; then
1800 proc=core2
1801 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1802 proc=pentium-m
1803 elif test "$pmodel" -ge 7; then
1804 proc=pentium3
1805 elif test "$pmodel" -ge 3; then
1806 proc=pentium2
1807 else
1808 proc=i686
1811 15) iproc=686
1812 # A nocona in 32-bit mode has no more capabilities than a prescott.
1813 if test "$pmodel" -ge 3; then
1814 proc=prescott
1815 else
1816 proc=pentium4
1818 test $_fast_cmov = "auto" && _fast_cmov=no
1820 *) proc=prescott iproc=686 ;;
1821 esac
1823 CentaurHauls)
1824 case "$pfamily" in
1825 5) iproc=586
1826 if test "$pmodel" -ge 8; then
1827 proc=winchip2
1828 elif test "$pmodel" -ge 4; then
1829 proc=winchip-c6
1830 else
1831 proc=i586
1834 6) iproc=686
1835 if test "$pmodel" -ge 9; then
1836 proc=c3-2
1837 else
1838 proc=c3
1839 iproc=586
1842 *) proc=i686 iproc=i686 ;;
1843 esac
1845 unknown)
1846 case "$pfamily" in
1847 3) proc=i386 iproc=386 ;;
1848 4) proc=i486 iproc=486 ;;
1849 *) proc=i586 iproc=586 ;;
1850 esac
1853 proc=i586 iproc=586 ;;
1854 esac
1855 fi # test "$_runtime_cpudetection" = no
1858 # check that gcc supports our CPU, if not, fall back to earlier ones
1859 # LGB: check -mcpu and -march swithing step by step with enabling
1860 # to fall back till 386.
1862 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1864 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1865 cpuopt=-mtune
1866 else
1867 cpuopt=-mcpu
1870 echocheck "GCC & CPU optimization abilities"
1871 cat > $TMPC << EOF
1872 int main(void) { return 0; }
1874 if test "$_runtime_cpudetection" = no ; then
1875 cc_check -march=native && proc=native
1876 if test "$proc" = "k8"; then
1877 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1879 if test "$proc" = "athlon-xp"; then
1880 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1882 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1883 cc_check -march=$proc $cpuopt=$proc || proc=k6
1885 if test "$proc" = "k6" || test "$proc" = "c3"; then
1886 if ! cc_check -march=$proc $cpuopt=$proc; then
1887 if cc_check -march=i586 $cpuopt=i686; then
1888 proc=i586-i686
1889 else
1890 proc=i586
1894 if test "$proc" = "prescott" ; then
1895 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1897 if test "$proc" = "core2" ; then
1898 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1900 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
1901 cc_check -march=$proc $cpuopt=$proc || proc=i686
1903 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1904 cc_check -march=$proc $cpuopt=$proc || proc=i586
1906 if test "$proc" = "i586"; then
1907 cc_check -march=$proc $cpuopt=$proc || proc=i486
1909 if test "$proc" = "i486" ; then
1910 cc_check -march=$proc $cpuopt=$proc || proc=i386
1912 if test "$proc" = "i386" ; then
1913 cc_check -march=$proc $cpuopt=$proc || proc=error
1915 if test "$proc" = "error" ; then
1916 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1917 _mcpu=""
1918 _march=""
1919 _optimizing=""
1920 elif test "$proc" = "i586-i686"; then
1921 _march="-march=i586"
1922 _mcpu="$cpuopt=i686"
1923 _optimizing="$proc"
1924 else
1925 _march="-march=$proc"
1926 _mcpu="$cpuopt=$proc"
1927 _optimizing="$proc"
1929 else # if test "$_runtime_cpudetection" = no
1930 _mcpu="$cpuopt=generic"
1931 # at least i486 required, for bswap instruction
1932 _march="-march=i486"
1933 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1934 cc_check $_mcpu || _mcpu=""
1935 cc_check $_march $_mcpu || _march=""
1938 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1939 ## autodetected mcpu/march parameters
1940 if test "$_target" ; then
1941 # TODO: it may be a good idea to check GCC and fall back in all cases
1942 if test "$host_arch" = "i586-i686"; then
1943 _march="-march=i586"
1944 _mcpu="$cpuopt=i686"
1945 else
1946 _march="-march=$host_arch"
1947 _mcpu="$cpuopt=$host_arch"
1950 proc="$host_arch"
1952 case "$proc" in
1953 i386) iproc=386 ;;
1954 i486) iproc=486 ;;
1955 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1956 i686|athlon*|pentium*) iproc=686 ;;
1957 *) iproc=586 ;;
1958 esac
1961 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1962 _fast_cmov="yes"
1963 else
1964 _fast_cmov="no"
1967 echores "$proc"
1970 ia64)
1971 _arch='IA64'
1972 _target_arch='ARCH_IA64 = yes'
1973 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1974 iproc='ia64'
1977 x86_64|amd64)
1978 _arch='X86 X86_64'
1979 _target_subarch='ARCH_X86_64 = yes'
1980 _target_arch="ARCH_X86 = yes"
1981 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1982 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1983 iproc='x86_64'
1985 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1986 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1987 cpuopt=-mtune
1988 else
1989 cpuopt=-mcpu
1991 test $_fast_cmov = "auto" && _fast_cmov=yes
1992 if test "$_runtime_cpudetection" = no ; then
1993 case "$pvendor" in
1994 AuthenticAMD)
1995 proc=k8;;
1996 GenuineIntel)
1997 case "$pfamily" in
1998 6) proc=core2;;
2000 # 64-bit prescotts exist, but as far as GCC is concerned they
2001 # have the same capabilities as a nocona.
2002 proc=nocona
2004 esac
2007 proc=error;;
2008 esac
2009 fi # test "$_runtime_cpudetection" = no
2011 echocheck "GCC & CPU optimization abilities"
2012 cat > $TMPC << EOF
2013 int main(void) { return 0; }
2015 # This is a stripped-down version of the i386 fallback.
2016 if test "$_runtime_cpudetection" = no ; then
2017 cc_check -march=native && proc=native
2018 # --- AMD processors ---
2019 if test "$proc" = "k8"; then
2020 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2022 # This will fail if gcc version < 3.3, which is ok because earlier
2023 # versions don't really support 64-bit on amd64.
2024 # Is this a valid assumption? -Corey
2025 if test "$proc" = "athlon-xp"; then
2026 cc_check -march=$proc $cpuopt=$proc || proc=error
2028 # --- Intel processors ---
2029 if test "$proc" = "core2"; then
2030 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2032 if test "$proc" = "nocona"; then
2033 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2035 if test "$proc" = "pentium4"; then
2036 cc_check -march=$proc $cpuopt=$proc || proc=error
2039 _march="-march=$proc"
2040 _mcpu="$cpuopt=$proc"
2041 if test "$proc" = "error" ; then
2042 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2043 _mcpu=""
2044 _march=""
2046 else # if test "$_runtime_cpudetection" = no
2047 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2048 _march="-march=x86-64"
2049 _mcpu="$cpuopt=generic"
2050 cc_check $_mcpu || _mcpu="x86-64"
2051 cc_check $_mcpu || _mcpu=""
2052 cc_check $_march $_mcpu || _march=""
2055 _optimizing=""
2057 echores "$proc"
2060 sparc|sparc64)
2061 _arch='SPARC'
2062 _target_arch='ARCH_SPARC = yes'
2063 iproc='sparc'
2064 if test "$host_arch" = "sparc64" ; then
2065 _vis='yes'
2066 proc='ultrasparc'
2067 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2068 elif sunos ; then
2069 echocheck "CPU type"
2070 karch=$(uname -m)
2071 case "$(echo $karch)" in
2072 sun4) proc=v7 ;;
2073 sun4c) proc=v7 ;;
2074 sun4d) proc=v8 ;;
2075 sun4m) proc=v8 ;;
2076 sun4u) proc=ultrasparc _vis='yes' ;;
2077 sun4v) proc=v9 ;;
2078 *) proc=v8 ;;
2079 esac
2080 echores "$proc"
2081 else
2082 proc=v8
2084 _mcpu="-mcpu=$proc"
2085 _optimizing="$proc"
2088 arm|armv4l|armv5tel)
2089 _arch='ARM'
2090 _target_arch='ARCH_ARM = yes'
2091 iproc='arm'
2094 avr32)
2095 _arch='AVR32'
2096 _target_arch='ARCH_AVR32 = yes'
2097 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2098 iproc='avr32'
2101 sh|sh4)
2102 _arch='SH4'
2103 _target_arch='ARCH_SH4 = yes'
2104 iproc='sh4'
2107 ppc|ppc64|powerpc|powerpc64)
2108 _arch='PPC'
2109 def_dcbzl='#define HAVE_DCBZL 0'
2110 _target_arch='ARCH_PPC = yes'
2111 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2112 iproc='ppc'
2114 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2115 _arch='PPC PPC64'
2116 _target_subarch='ARCH_PPC64 = yes'
2117 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2119 echocheck "CPU type"
2120 case $system_name in
2121 Linux)
2122 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2123 if test -n "$($_cpuinfo | grep altivec)"; then
2124 test $_altivec = auto && _altivec=yes
2127 Darwin)
2128 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2129 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2130 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2131 test $_altivec = auto && _altivec=yes
2134 NetBSD)
2135 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2136 case $cc_version in
2137 2*|3.0*|3.1*|3.2*|3.3*)
2140 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2141 test $_altivec = auto && _altivec=yes
2144 esac
2146 AIX)
2147 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2149 esac
2150 if test "$_altivec" = yes; then
2151 echores "$proc altivec"
2152 else
2153 _altivec=no
2154 echores "$proc"
2157 echocheck "GCC & CPU optimization abilities"
2159 if test -n "$proc"; then
2160 case "$proc" in
2161 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2162 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2163 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2164 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2165 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2166 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2167 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2168 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2169 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2170 *) ;;
2171 esac
2172 # gcc 3.1(.1) and up supports 7400 and 7450
2173 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2174 case "$proc" in
2175 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2176 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2177 *) ;;
2178 esac
2180 # gcc 3.2 and up supports 970
2181 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2182 case "$proc" in
2183 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2184 def_dcbzl='#define HAVE_DCBZL 1' ;;
2185 *) ;;
2186 esac
2188 # gcc 3.3 and up supports POWER4
2189 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2190 case "$proc" in
2191 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2192 *) ;;
2193 esac
2195 # gcc 3.4 and up supports 440*
2196 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2197 case "$proc" in
2198 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2199 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2200 *) ;;
2201 esac
2203 # gcc 4.0 and up supports POWER5
2204 if test "$_cc_major" -ge "4"; then
2205 case "$proc" in
2206 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2207 *) ;;
2208 esac
2212 if test -n "$_mcpu"; then
2213 _optimizing=$(echo $_mcpu | cut -c 8-)
2214 echores "$_optimizing"
2215 else
2216 echores "none"
2221 alpha*)
2222 _arch='ALPHA'
2223 _target_arch='ARCH_ALPHA = yes'
2224 iproc='alpha'
2226 echocheck "CPU type"
2227 cat > $TMPC << EOF
2228 int main(void) {
2229 unsigned long ver, mask;
2230 __asm__ ("implver %0" : "=r" (ver));
2231 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2232 printf("%ld-%x\n", ver, ~mask);
2233 return 0;
2236 $_cc -o "$TMPEXE" "$TMPC"
2237 case $("$TMPEXE") in
2239 0-0) proc="ev4"; _mvi="0";;
2240 1-0) proc="ev5"; _mvi="0";;
2241 1-1) proc="ev56"; _mvi="0";;
2242 1-101) proc="pca56"; _mvi="1";;
2243 2-303) proc="ev6"; _mvi="1";;
2244 2-307) proc="ev67"; _mvi="1";;
2245 2-1307) proc="ev68"; _mvi="1";;
2246 esac
2247 echores "$proc"
2249 echocheck "GCC & CPU optimization abilities"
2250 if test "$proc" = "ev68" ; then
2251 cc_check -mcpu=$proc || proc=ev67
2253 if test "$proc" = "ev67" ; then
2254 cc_check -mcpu=$proc || proc=ev6
2256 _mcpu="-mcpu=$proc"
2257 echores "$proc"
2259 _optimizing="$proc"
2262 mips)
2263 _arch='SGI_MIPS'
2264 _target_arch='ARCH_SGI_MIPS = yes'
2265 iproc='sgi-mips'
2267 if irix ; then
2268 echocheck "CPU type"
2269 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2270 case "$(echo $proc)" in
2271 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2272 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2273 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2274 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2275 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2276 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2277 esac
2278 # gcc < 3.x does not support -mtune.
2279 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2280 _mcpu=''
2282 echores "$proc"
2287 hppa)
2288 _arch='PA_RISC'
2289 _target_arch='ARCH_PA_RISC = yes'
2290 iproc='PA-RISC'
2293 s390)
2294 _arch='S390'
2295 _target_arch='ARCH_S390 = yes'
2296 iproc='390'
2299 s390x)
2300 _arch='S390X'
2301 _target_arch='ARCH_S390X = yes'
2302 iproc='390x'
2305 vax)
2306 _arch='VAX'
2307 _target_arch='ARCH_VAX = yes'
2308 iproc='vax'
2311 xtensa)
2312 _arch='XTENSA'
2313 _target_arch='ARCH_XTENSA = yes'
2314 iproc='xtensa'
2317 generic)
2318 _arch='GENERIC'
2319 _target_arch='ARCH_GENERIC = yes'
2323 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2324 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2325 die "unsupported architecture $host_arch"
2327 esac # case "$host_arch" in
2329 if test "$_runtime_cpudetection" = yes ; then
2330 if x86 ; then
2331 test "$_cmov" != no && _cmov=yes
2332 x86_32 && _cmov=no
2333 test "$_mmx" != no && _mmx=yes
2334 test "$_3dnow" != no && _3dnow=yes
2335 test "$_3dnowext" != no && _3dnowext=yes
2336 test "$_mmxext" != no && _mmxext=yes
2337 test "$_sse" != no && _sse=yes
2338 test "$_sse2" != no && _sse2=yes
2339 test "$_ssse3" != no && _ssse3=yes
2340 test "$_mtrr" != no && _mtrr=yes
2342 if ppc; then
2343 _altivec=yes
2348 # endian testing
2349 echocheck "byte order"
2350 if test "$_big_endian" = auto ; then
2351 cat > $TMPC <<EOF
2352 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2353 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2354 int main(void) { return (int)ascii_name; }
2356 if cc_check ; then
2357 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2358 _big_endian=yes
2359 else
2360 _big_endian=no
2362 else
2363 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2366 if test "$_big_endian" = yes ; then
2367 _byte_order='big-endian'
2368 def_words_endian='#define WORDS_BIGENDIAN 1'
2369 def_bigendian='#define HAVE_BIGENDIAN 1'
2370 else
2371 _byte_order='little-endian'
2372 def_words_endian='#undef WORDS_BIGENDIAN'
2373 def_bigendian='#define HAVE_BIGENDIAN 0'
2375 echores "$_byte_order"
2378 echocheck "extern symbol prefix"
2379 cat > $TMPC << EOF
2380 int ff_extern;
2382 cc_check -c || die "Symbol mangling check failed."
2383 sym=$($_nm -P -g $TMPEXE)
2384 extern_prefix=${sym%%ff_extern*}
2385 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2386 echores $extern_prefix
2389 echocheck "assembler support of -pipe option"
2390 cat > $TMPC << EOF
2391 int main(void) { return 0; }
2393 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2396 echocheck "compiler support of named assembler arguments"
2397 _named_asm_args=yes
2398 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2399 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2400 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2401 _named_asm_args=no
2402 def_named_asm_args="#undef NAMED_ASM_ARGS"
2404 echores $_named_asm_args
2407 if darwin && test "$cc_vendor" = "gnu" ; then
2408 echocheck "GCC support of -mstackrealign"
2409 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2410 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2411 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2412 # wrong code with this flag, but this can be worked around by adding
2413 # -fno-unit-at-a-time as described in the blog post at
2414 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2415 cat > $TMPC << EOF
2416 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2417 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2419 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2420 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2421 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2422 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2423 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2426 # Checking for CFLAGS
2427 _install_strip="-s"
2428 if test "$_profile" != "" || test "$_debug" != "" ; then
2429 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2430 _install_strip=
2431 elif test -z "$CFLAGS" ; then
2432 if test "$cc_vendor" = "intel" ; then
2433 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2434 elif test "$cc_vendor" != "gnu" ; then
2435 CFLAGS="-O2 $_march $_mcpu $_pipe"
2436 else
2437 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2438 extra_ldflags="$extra_ldflags -ffast-math"
2440 else
2441 _warn_CFLAGS=yes
2444 cat > $TMPC << EOF
2445 int main(void) { return 0; }
2447 if test "$cc_vendor" = "gnu" ; then
2448 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2449 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2450 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2451 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2452 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2453 else
2454 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2457 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2460 if test -n "$LDFLAGS" ; then
2461 extra_ldflags="$extra_ldflags $LDFLAGS"
2462 _warn_CFLAGS=yes
2463 elif test "$cc_vendor" = "intel" ; then
2464 extra_ldflags="$extra_ldflags -i-static"
2466 if test -n "$CPPFLAGS" ; then
2467 extra_cflags="$extra_cflags $CPPFLAGS"
2468 _warn_CFLAGS=yes
2473 if x86_32 ; then
2474 # Checking assembler (_as) compatibility...
2475 # Added workaround for older as that reads from stdin by default - atmos
2476 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2477 echocheck "assembler ($_as $as_version)"
2479 _pref_as_version='2.9.1'
2480 echo 'nop' > $TMPS
2481 if test "$_mmx" = yes ; then
2482 echo 'emms' >> $TMPS
2484 if test "$_3dnow" = yes ; then
2485 _pref_as_version='2.10.1'
2486 echo 'femms' >> $TMPS
2488 if test "$_3dnowext" = yes ; then
2489 _pref_as_version='2.10.1'
2490 echo 'pswapd %mm0, %mm0' >> $TMPS
2492 if test "$_mmxext" = yes ; then
2493 _pref_as_version='2.10.1'
2494 echo 'movntq %mm0, (%eax)' >> $TMPS
2496 if test "$_sse" = yes ; then
2497 _pref_as_version='2.10.1'
2498 echo 'xorps %xmm0, %xmm0' >> $TMPS
2500 #if test "$_sse2" = yes ; then
2501 # _pref_as_version='2.11'
2502 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2504 if test "$_cmov" = yes ; then
2505 _pref_as_version='2.10.1'
2506 echo 'cmovb %eax, %ebx' >> $TMPS
2508 if test "$_ssse3" = yes ; then
2509 _pref_as_version='2.16.92'
2510 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2512 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2514 if test "$as_verc_fail" != yes ; then
2515 echores "ok"
2516 else
2517 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2518 echores "failed"
2519 die "obsolete binutils version"
2522 fi #if x86_32
2524 echocheck ".align is a power of two"
2525 if test "$_asmalign_pot" = auto ; then
2526 _asmalign_pot=no
2527 cat > $TMPC << EOF
2528 int main(void) { __asm__ (".align 3"); return 0; }
2530 cc_check && _asmalign_pot=yes
2532 if test "$_asmalign_pot" = "yes" ; then
2533 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2534 else
2535 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2537 echores $_asmalign_pot
2539 if x86 ; then
2540 echocheck "10 assembler operands"
2541 ten_operands=no
2542 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2543 cat > $TMPC << EOF
2544 int main(void) {
2545 int x=0;
2546 __asm__ volatile(
2548 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2550 return 0;
2553 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2554 echores $ten_operands
2556 echocheck "ebx availability"
2557 ebx_available=no
2558 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2559 cat > $TMPC << EOF
2560 int main(void) {
2561 int x;
2562 __asm__ volatile(
2563 "xor %0, %0"
2564 :"=b"(x)
2565 // just adding ebx to clobber list seems unreliable with some
2566 // compilers, e.g. Haiku's gcc 2.95
2568 return 0;
2571 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2572 echores $ebx_available
2574 echocheck "yasm"
2575 if test -z "$YASMFLAGS" ; then
2576 if darwin ; then
2577 x86_64 && objformat="macho64" || objformat="macho"
2578 elif win32 ; then
2579 objformat="win32"
2580 else
2581 objformat="elf"
2583 # currently tested for Linux x86, x86_64
2584 YASMFLAGS="-f $objformat"
2585 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2586 case "$objformat" in
2587 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2588 macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
2589 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2590 esac
2591 else
2592 _warn_CFLAGS=yes
2595 echo "pabsw xmm0, xmm0" > $TMPS
2596 yasm_check || _yasm=""
2597 if test $_yasm ; then
2598 test "$_mmx" = "yes" && fft_mmx="yes"
2599 def_yasm='#define HAVE_YASM 1'
2600 _have_yasm="yes"
2601 echores "$_yasm"
2602 else
2603 def_yasm='#define HAVE_YASM 0'
2604 fft_mmx="no"
2605 _have_yasm="no"
2606 echores "no"
2609 echocheck "bswap"
2610 def_bswap='#define HAVE_BSWAP 0'
2611 echo 'bswap %eax' > $TMPS
2612 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2613 echores "$bswap"
2614 fi #if x86
2617 #FIXME: This should happen before the check for CFLAGS..
2618 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2619 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2621 # check if AltiVec is supported by the compiler, and how to enable it
2622 echocheck "GCC AltiVec flags"
2623 cat > $TMPC << EOF
2624 int main(void) { return 0; }
2626 if $(cc_check -maltivec -mabi=altivec) ; then
2627 _altivec_gcc_flags="-maltivec -mabi=altivec"
2628 # check if <altivec.h> should be included
2629 cat > $TMPC << EOF
2630 #include <altivec.h>
2631 int main(void) { return 0; }
2633 if $(cc_check $_altivec_gcc_flags) ; then
2634 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2635 inc_altivec_h='#include <altivec.h>'
2636 else
2637 cat > $TMPC << EOF
2638 int main(void) { return 0; }
2640 if $(cc_check -faltivec) ; then
2641 _altivec_gcc_flags="-faltivec"
2642 else
2643 _altivec=no
2644 _altivec_gcc_flags="none, AltiVec disabled"
2648 echores "$_altivec_gcc_flags"
2650 # check if the compiler supports braces for vector declarations
2651 cat > $TMPC << EOF
2652 $inc_altivec_h
2653 int main(void) { (vector int) {1}; return 0; }
2655 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2657 # Disable runtime cpudetection if we cannot generate AltiVec code or
2658 # AltiVec is disabled by the user.
2659 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2660 && _runtime_cpudetection=no
2662 # Show that we are optimizing for AltiVec (if enabled and supported).
2663 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2664 && _optimizing="$_optimizing altivec"
2666 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2667 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2670 if ppc ; then
2671 def_xform_asm='#define HAVE_XFORM_ASM 0'
2672 xform_asm=no
2673 echocheck "XFORM ASM support"
2674 cat > $TMPC << EOF
2675 int main(void) { __asm__ volatile ("lwzx 0, %y0" :: "Z"(*(int*)0)); return 0; }
2677 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2678 echores "$xform_asm"
2681 if arm ; then
2682 echocheck "ARM pld instruction"
2683 cat > $TMPC << EOF
2684 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2686 pld=no
2687 cc_check && pld=yes
2688 echores "$pld"
2690 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2691 if test $_armv5te = "auto" ; then
2692 cat > $TMPC << EOF
2693 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2695 _armv5te=no
2696 cc_check && _armv5te=yes
2698 echores "$_armv5te"
2700 echocheck "ARMv6 (SIMD instructions)"
2701 if test $_armv6 = "auto" ; then
2702 cat > $TMPC << EOF
2703 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2705 _armv6=no
2706 cc_check && _armv6=yes
2708 echores "$_armv6"
2710 echocheck "ARMv6t2 (SIMD instructions)"
2711 if test $_armv6t2 = "auto" ; then
2712 cat > $TMPC << EOF
2713 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2715 _armv6t2=no
2716 cc_check && _armv6t2=yes
2718 echores "$_armv6"
2720 echocheck "ARM VFP"
2721 if test $_armvfp = "auto" ; then
2722 cat > $TMPC << EOF
2723 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2725 _armvfp=no
2726 cc_check && _armvfp=yes
2728 echores "$_armvfp"
2730 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2731 if test $_iwmmxt = "auto" ; then
2732 cat > $TMPC << EOF
2733 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2735 _iwmmxt=no
2736 cc_check && _iwmmxt=yes
2738 echores "$_iwmmxt"
2741 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI'
2742 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2743 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2744 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2745 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2746 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2747 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2748 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2749 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2750 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2751 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2752 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2753 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2754 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2755 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2756 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2757 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2758 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2759 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2761 # Checking kernel version...
2762 if x86_32 && linux ; then
2763 _k_verc_problem=no
2764 kernel_version=$(uname -r 2>&1)
2765 echocheck "$system_name kernel version"
2766 case "$kernel_version" in
2767 '') kernel_version="?.??"; _k_verc_fail=yes;;
2768 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2769 _k_verc_problem=yes;;
2770 esac
2771 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2772 _k_verc_fail=yes
2774 if test "$_k_verc_fail" ; then
2775 echores "$kernel_version, fail"
2776 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2777 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2778 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2779 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2780 echo "2.2.x you must upgrade it to get SSE support!"
2781 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2782 else
2783 echores "$kernel_version, ok"
2787 ######################
2788 # MAIN TESTS GO HERE #
2789 ######################
2792 echocheck "-lposix"
2793 cat > $TMPC <<EOF
2794 int main(void) { return 0; }
2796 if cc_check -lposix ; then
2797 extra_ldflags="$extra_ldflags -lposix"
2798 echores "yes"
2799 else
2800 echores "no"
2803 echocheck "-lm"
2804 cat > $TMPC <<EOF
2805 int main(void) { return 0; }
2807 if cc_check -lm ; then
2808 _ld_lm="-lm"
2809 echores "yes"
2810 else
2811 _ld_lm=""
2812 echores "no"
2816 echocheck "langinfo"
2817 if test "$_langinfo" = auto ; then
2818 cat > $TMPC <<EOF
2819 #include <langinfo.h>
2820 int main(void) { nl_langinfo(CODESET); return 0; }
2822 _langinfo=no
2823 cc_check && _langinfo=yes
2825 if test "$_langinfo" = yes ; then
2826 def_langinfo='#define HAVE_LANGINFO 1'
2827 else
2828 def_langinfo='#undef HAVE_LANGINFO'
2830 echores "$_langinfo"
2833 echocheck "language"
2834 # Set preferred languages, "all" uses English as main language.
2835 test -z "$language" && language=$LINGUAS
2836 test -z "$language_doc" && language_doc=$language
2837 test -z "$language_man" && language_man=$language
2838 test -z "$language_msg" && language_msg=$language
2839 language_doc=$(echo $language_doc | tr , " ")
2840 language_man=$(echo $language_man | tr , " ")
2841 language_msg=$(echo $language_msg | tr , " ")
2843 test "$language_doc" = "all" && language_doc=$doc_lang_all
2844 test "$language_man" = "all" && language_man=$man_lang_all
2845 test "$language_msg" = "all" && language_msg=en
2847 # Prune non-existing translations from language lists.
2848 # Set message translation to the first available language.
2849 # Fall back on English.
2850 for lang in $language_doc ; do
2851 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2852 done
2853 language_doc=$tmp_language_doc
2854 test -z "$language_doc" && language_doc=en
2856 for lang in $language_man ; do
2857 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2858 done
2859 language_man=$tmp_language_man
2860 test -z "$language_man" && language_man=en
2862 for lang in $language_msg ; do
2863 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2864 done
2865 language_msg=$tmp_language_msg
2866 test -z "$language_msg" && language_msg=en
2867 _mp_help="help/help_mp-${language_msg}.h"
2868 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2871 echocheck "enable sighandler"
2872 if test "$_sighandler" = yes ; then
2873 def_sighandler='#define CONFIG_SIGHANDLER 1'
2874 else
2875 def_sighandler='#undef CONFIG_SIGHANDLER'
2877 echores "$_sighandler"
2879 echocheck "runtime cpudetection"
2880 if test "$_runtime_cpudetection" = yes ; then
2881 _optimizing="Runtime CPU-Detection enabled"
2882 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2883 else
2884 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2886 echores "$_runtime_cpudetection"
2889 echocheck "restrict keyword"
2890 for restrict_keyword in restrict __restrict __restrict__ ; do
2891 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2892 if cc_check; then
2893 def_restrict_keyword=$restrict_keyword
2894 break;
2896 done
2897 if [ -n "$def_restrict_keyword" ]; then
2898 echores "$def_restrict_keyword"
2899 else
2900 echores "none"
2902 # Avoid infinite recursion loop ("#define restrict restrict")
2903 if [ "$def_restrict_keyword" != "restrict" ]; then
2904 def_restrict_keyword="#define restrict $def_restrict_keyword"
2905 else
2906 def_restrict_keyword=""
2910 echocheck "__builtin_expect"
2911 # GCC branch prediction hint
2912 cat > $TMPC << EOF
2913 int foo(int a) {
2914 a = __builtin_expect(a, 10);
2915 return a == 10 ? 0 : 1;
2917 int main(void) { return foo(10) && foo(0); }
2919 _builtin_expect=no
2920 cc_check && _builtin_expect=yes
2921 if test "$_builtin_expect" = yes ; then
2922 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2923 else
2924 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2926 echores "$_builtin_expect"
2929 echocheck "kstat"
2930 cat > $TMPC << EOF
2931 #include <kstat.h>
2932 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2934 _kstat=no
2935 cc_check -lkstat && _kstat=yes
2936 if test "$_kstat" = yes ; then
2937 def_kstat="#define HAVE_LIBKSTAT 1"
2938 extra_ldflags="$extra_ldflags -lkstat"
2939 else
2940 def_kstat="#undef HAVE_LIBKSTAT"
2942 echores "$_kstat"
2945 echocheck "posix4"
2946 # required for nanosleep on some systems
2947 cat > $TMPC << EOF
2948 #include <time.h>
2949 int main(void) { (void) nanosleep(0, 0); return 0; }
2951 _posix4=no
2952 cc_check -lposix4 && _posix4=yes
2953 if test "$_posix4" = yes ; then
2954 extra_ldflags="$extra_ldflags -lposix4"
2956 echores "$_posix4"
2958 for func in llrint log2 lrint lrintf round roundf truncf; do
2959 echocheck $func
2960 cat > $TMPC << EOF
2961 #include <math.h>
2962 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2964 eval _$func=no
2965 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2966 if eval test "x\$_$func" = "xyes"; then
2967 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2968 echores yes
2969 else
2970 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2971 echores no
2973 done
2976 echocheck "mkstemp"
2977 cat > $TMPC << EOF
2978 #include <stdlib.h>
2979 int main(void) { char a; mkstemp(&a); return 0; }
2981 _mkstemp=no
2982 cc_check && _mkstemp=yes
2983 if test "$_mkstemp" = yes ; then
2984 def_mkstemp='#define HAVE_MKSTEMP 1'
2985 else
2986 def_mkstemp='#undef HAVE_MKSTEMP'
2988 echores "$_mkstemp"
2991 echocheck "nanosleep"
2992 # also check for nanosleep
2993 cat > $TMPC << EOF
2994 #include <time.h>
2995 int main(void) { (void) nanosleep(0, 0); return 0; }
2997 _nanosleep=no
2998 cc_check && _nanosleep=yes
2999 if test "$_nanosleep" = yes ; then
3000 def_nanosleep='#define HAVE_NANOSLEEP 1'
3001 else
3002 def_nanosleep='#undef HAVE_NANOSLEEP'
3004 echores "$_nanosleep"
3007 echocheck "socklib"
3008 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3009 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3010 cat > $TMPC << EOF
3011 #include <netdb.h>
3012 #include <sys/socket.h>
3013 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3015 _socklib=no
3016 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3017 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3018 done
3019 if test $_winsock2_h = auto && ! cygwin ; then
3020 _winsock2_h=no
3021 cat > $TMPC << EOF
3022 #include <winsock2.h>
3023 int main(void) { (void) gethostbyname(0); return 0; }
3025 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3027 test "$_ld_sock" && _res_comment="using $_ld_sock"
3028 echores "$_socklib"
3031 if test $_winsock2_h = yes ; then
3032 _ld_sock="-lws2_32"
3033 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3034 else
3035 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3039 echocheck "arpa/inet.h"
3040 arpa_inet_h=no
3041 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3042 cat > $TMPC << EOF
3043 #include <arpa/inet.h>
3044 int main(void) { return 0; }
3046 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3047 echores "$arpa_inet_h"
3050 echocheck "inet_pton()"
3051 def_inet_pton='#define HAVE_INET_PTON 0'
3052 inet_pton=no
3053 cat > $TMPC << EOF
3054 #include <sys/types.h>
3055 #include <sys/socket.h>
3056 #include <arpa/inet.h>
3057 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3059 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3060 cc_check $_ld_tmp && inet_pton=yes && break
3061 done
3062 if test $inet_pton = yes ; then
3063 test $_ld_tmp && _res_comment="using $_ld_tmp"
3064 def_inet_pton='#define HAVE_INET_PTON 1'
3066 echores "$inet_pton"
3069 echocheck "inet_aton()"
3070 def_inet_aton='#define HAVE_INET_ATON 0'
3071 inet_aton=no
3072 cat > $TMPC << EOF
3073 #include <sys/types.h>
3074 #include <sys/socket.h>
3075 #include <arpa/inet.h>
3076 int main(void) { (void) inet_aton(0, 0); return 0; }
3078 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3079 cc_check $_ld_tmp && inet_aton=yes && break
3080 done
3081 if test $inet_aton = yes ; then
3082 test $_ld_tmp && _res_comment="using $_ld_tmp"
3083 def_inet_aton='#define HAVE_INET_ATON 1'
3085 echores "$inet_aton"
3088 echocheck "socklen_t"
3089 _socklen_t=no
3090 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3091 cat > $TMPC << EOF
3092 #include <$header>
3093 int main(void) { socklen_t v = 0; return v; }
3095 cc_check && _socklen_t=yes && break
3096 done
3097 if test "$_socklen_t" = yes ; then
3098 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3099 else
3100 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3102 echores "$_socklen_t"
3105 echocheck "closesocket()"
3106 _closesocket=no
3107 cat > $TMPC << EOF
3108 #include <winsock2.h>
3109 int main(void) { closesocket(~0); return 0; }
3111 cc_check $_ld_sock && _closesocket=yes
3112 if test "$_closesocket" = yes ; then
3113 def_closesocket='#define HAVE_CLOSESOCKET 1'
3114 else
3115 def_closesocket='#define HAVE_CLOSESOCKET 0'
3117 echores "$_closesocket"
3120 echocheck "network"
3121 test $_winsock2_h = no && test $inet_pton = no &&
3122 test $inet_aton = no && _network=no
3123 if test "$_network" = yes ; then
3124 def_network='#define CONFIG_NETWORK 1'
3125 extra_ldflags="$extra_ldflags $_ld_sock"
3126 _inputmodules="network $_inputmodules"
3127 else
3128 _noinputmodules="network $_noinputmodules"
3129 def_network='#undef CONFIG_NETWORK'
3130 _ftp=no
3132 echores "$_network"
3135 echocheck "inet6"
3136 if test "$_inet6" = auto ; then
3137 cat > $TMPC << EOF
3138 #include <sys/types.h>
3139 #if !defined(_WIN32) || defined(__CYGWIN__)
3140 #include <sys/socket.h>
3141 #include <netinet/in.h>
3142 #else
3143 #include <ws2tcpip.h>
3144 #endif
3145 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3147 _inet6=no
3148 if cc_check $_ld_sock ; then
3149 _inet6=yes
3152 if test "$_inet6" = yes ; then
3153 def_inet6='#define HAVE_AF_INET6 1'
3154 else
3155 def_inet6='#undef HAVE_AF_INET6'
3157 echores "$_inet6"
3160 echocheck "gethostbyname2"
3161 if test "$_gethostbyname2" = auto ; then
3162 cat > $TMPC << EOF
3163 #include <sys/types.h>
3164 #include <sys/socket.h>
3165 #include <netdb.h>
3166 int main(void) { gethostbyname2("", AF_INET); return 0; }
3168 _gethostbyname2=no
3169 if cc_check ; then
3170 _gethostbyname2=yes
3173 if test "$_gethostbyname2" = yes ; then
3174 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3175 else
3176 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3178 echores "$_gethostbyname2"
3181 echocheck "inttypes.h (required)"
3182 cat > $TMPC << EOF
3183 #include <inttypes.h>
3184 int main(void) { return 0; }
3186 _inttypes=no
3187 cc_check && _inttypes=yes
3188 echores "$_inttypes"
3190 if test "$_inttypes" = no ; then
3191 echocheck "bitypes.h (inttypes.h predecessor)"
3192 cat > $TMPC << EOF
3193 #include <sys/bitypes.h>
3194 int main(void) { return 0; }
3196 cc_check && _inttypes=yes
3197 if test "$_inttypes" = yes ; then
3198 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."
3199 else
3200 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3205 echocheck "int_fastXY_t in inttypes.h"
3206 cat > $TMPC << EOF
3207 #include <inttypes.h>
3208 int main(void) {
3209 volatile int_fast16_t v= 0;
3210 return v; }
3212 _fast_inttypes=no
3213 cc_check && _fast_inttypes=yes
3214 if test "$_fast_inttypes" = no ; then
3215 def_fast_inttypes='
3216 typedef signed char int_fast8_t;
3217 typedef signed int int_fast16_t;
3218 typedef signed int int_fast32_t;
3219 typedef signed long long int_fast64_t;
3220 typedef unsigned char uint_fast8_t;
3221 typedef unsigned int uint_fast16_t;
3222 typedef unsigned int uint_fast32_t;
3223 typedef unsigned long long uint_fast64_t;'
3225 echores "$_fast_inttypes"
3228 echocheck "malloc.h"
3229 cat > $TMPC << EOF
3230 #include <malloc.h>
3231 int main(void) { (void) malloc(0); return 0; }
3233 _malloc=no
3234 cc_check && _malloc=yes
3235 if test "$_malloc" = yes ; then
3236 def_malloc_h='#define HAVE_MALLOC_H 1'
3237 else
3238 def_malloc_h='#define HAVE_MALLOC_H 0'
3240 # malloc.h emits a warning in FreeBSD and OpenBSD
3241 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3242 echores "$_malloc"
3245 echocheck "memalign()"
3246 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3247 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3248 cat > $TMPC << EOF
3249 #include <malloc.h>
3250 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3252 _memalign=no
3253 cc_check && _memalign=yes
3254 if test "$_memalign" = yes ; then
3255 def_memalign='#define HAVE_MEMALIGN 1'
3256 else
3257 def_memalign='#define HAVE_MEMALIGN 0'
3258 def_map_memalign='#define memalign(a,b) malloc(b)'
3259 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3261 echores "$_memalign"
3264 echocheck "posix_memalign()"
3265 posix_memalign=no
3266 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3267 cat > $TMPC << EOF
3268 #define _XOPEN_SOURCE 600
3269 #include <stdlib.h>
3270 int main(void) { posix_memalign(NULL, 0, 0); }
3272 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3273 echores "$posix_memalign"
3276 echocheck "alloca.h"
3277 cat > $TMPC << EOF
3278 #include <alloca.h>
3279 int main(void) { (void) alloca(0); return 0; }
3281 _alloca=no
3282 cc_check && _alloca=yes
3283 if cc_check ; then
3284 def_alloca_h='#define HAVE_ALLOCA_H 1'
3285 else
3286 def_alloca_h='#undef HAVE_ALLOCA_H'
3288 echores "$_alloca"
3291 echocheck "fastmemcpy"
3292 if test "$_fastmemcpy" = yes ; then
3293 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3294 else
3295 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3297 echores "$_fastmemcpy"
3300 echocheck "mman.h"
3301 cat > $TMPC << EOF
3302 #include <sys/types.h>
3303 #include <sys/mman.h>
3304 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3306 _mman=no
3307 cc_check && _mman=yes
3308 if test "$_mman" = yes ; then
3309 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3310 else
3311 def_mman_h='#undef HAVE_SYS_MMAN_H'
3312 os2 && _need_mmap=yes
3314 echores "$_mman"
3316 cat > $TMPC << EOF
3317 #include <sys/types.h>
3318 #include <sys/mman.h>
3319 int main(void) { void *p = MAP_FAILED; return 0; }
3321 _mman_has_map_failed=no
3322 cc_check && _mman_has_map_failed=yes
3323 if test "$_mman_has_map_failed" = yes ; then
3324 def_mman_has_map_failed=''
3325 else
3326 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3329 echocheck "dynamic loader"
3330 cat > $TMPC << EOF
3331 #include <stddef.h>
3332 #include <dlfcn.h>
3333 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3335 _dl=no
3336 for _ld_tmp in "" "-ldl" ; do
3337 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3338 done
3339 if test "$_dl" = yes ; then
3340 def_dl='#define HAVE_LIBDL 1'
3341 else
3342 def_dl='#undef HAVE_LIBDL'
3344 echores "$_dl"
3347 echocheck "dynamic a/v plugins support"
3348 if test "$_dl" = no ; then
3349 _dynamic_plugins=no
3351 if test "$_dynamic_plugins" = yes ; then
3352 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3353 else
3354 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3356 echores "$_dynamic_plugins"
3359 def_threads='#define HAVE_THREADS 0'
3361 echocheck "pthread"
3362 if linux ; then
3363 THREAD_CFLAGS=-D_REENTRANT
3364 elif freebsd || netbsd || openbsd || bsdos ; then
3365 THREAD_CFLAGS=-D_THREAD_SAFE
3367 if test "$_pthreads" = auto ; then
3368 cat > $TMPC << EOF
3369 #include <pthread.h>
3370 void* func(void *arg) { return arg; }
3371 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3373 _pthreads=no
3374 if ! hpux ; then
3375 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3376 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3377 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3378 done
3381 if test "$_pthreads" = yes ; then
3382 test $_ld_pthread && _res_comment="using $_ld_pthread"
3383 def_pthreads='#define HAVE_PTHREADS 1'
3384 def_threads='#define HAVE_THREADS 1'
3385 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3386 else
3387 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3388 def_pthreads='#undef HAVE_PTHREADS'
3389 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3390 mingw32 || _win32dll=no
3392 echores "$_pthreads"
3394 if cygwin ; then
3395 if test "$_pthreads" = yes ; then
3396 def_pthread_cache="#define PTHREAD_CACHE 1"
3397 else
3398 _stream_cache=no
3399 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3403 echocheck "w32threads"
3404 if test "$_pthreads" = yes ; then
3405 _res_comment="using pthread instead"
3406 _w32threads=no
3408 if test "$_w32threads" = auto ; then
3409 _w32threads=no
3410 mingw32 && _w32threads=yes
3412 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3413 echores "$_w32threads"
3415 echocheck "rpath"
3416 netbsd &&_rpath=yes
3417 if test "$_rpath" = yes ; then
3418 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3419 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3420 done
3421 extra_ldflags=$tmp
3423 echores "$_rpath"
3425 echocheck "iconv"
3426 if test "$_iconv" = auto ; then
3427 cat > $TMPC << EOF
3428 #include <stdio.h>
3429 #include <unistd.h>
3430 #include <iconv.h>
3431 #define INBUFSIZE 1024
3432 #define OUTBUFSIZE 4096
3434 char inbuffer[INBUFSIZE];
3435 char outbuffer[OUTBUFSIZE];
3437 int main(void) {
3438 size_t numread;
3439 iconv_t icdsc;
3440 char *tocode="UTF-8";
3441 char *fromcode="cp1250";
3442 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3443 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3444 char *iptr=inbuffer;
3445 char *optr=outbuffer;
3446 size_t inleft=numread;
3447 size_t outleft=OUTBUFSIZE;
3448 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3449 != (size_t)(-1)) {
3450 write(1, outbuffer, OUTBUFSIZE - outleft);
3453 if (iconv_close(icdsc) == -1)
3456 return 0;
3459 _iconv=no
3460 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3461 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3462 _iconv=yes && break
3463 done
3465 if test "$_iconv" = yes ; then
3466 def_iconv='#define CONFIG_ICONV 1'
3467 else
3468 def_iconv='#undef CONFIG_ICONV'
3470 echores "$_iconv"
3473 echocheck "soundcard.h"
3474 _soundcard_h=no
3475 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3476 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3477 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3478 cat > $TMPC << EOF
3479 #include <$_soundcard_header>
3480 int main(void) { return 0; }
3482 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3483 done
3485 if test "$_soundcard_h" = yes ; then
3486 if test $_soundcard_header = "sys/soundcard.h"; then
3487 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3488 else
3489 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3492 echores "$_soundcard_h"
3495 echocheck "sys/dvdio.h"
3496 cat > $TMPC << EOF
3497 #include <unistd.h>
3498 #include <sys/dvdio.h>
3499 int main(void) { return 0; }
3501 _dvdio=no
3502 cc_check && _dvdio=yes
3503 if test "$_dvdio" = yes ; then
3504 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3505 else
3506 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3508 echores "$_dvdio"
3511 echocheck "sys/cdio.h"
3512 cat > $TMPC << EOF
3513 #include <unistd.h>
3514 #include <sys/cdio.h>
3515 int main(void) { return 0; }
3517 _cdio=no
3518 cc_check && _cdio=yes
3519 if test "$_cdio" = yes ; then
3520 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3521 else
3522 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3524 echores "$_cdio"
3527 echocheck "linux/cdrom.h"
3528 cat > $TMPC << EOF
3529 #include <sys/types.h>
3530 #include <linux/cdrom.h>
3531 int main(void) { return 0; }
3533 _cdrom=no
3534 cc_check && _cdrom=yes
3535 if test "$_cdrom" = yes ; then
3536 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3537 else
3538 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3540 echores "$_cdrom"
3543 echocheck "dvd.h"
3544 cat > $TMPC << EOF
3545 #include <dvd.h>
3546 int main(void) { return 0; }
3548 _dvd=no
3549 cc_check && _dvd=yes
3550 if test "$_dvd" = yes ; then
3551 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3552 else
3553 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3555 echores "$_dvd"
3558 if bsdos; then
3559 echocheck "BSDI dvd.h"
3560 cat > $TMPC << EOF
3561 #include <dvd.h>
3562 int main(void) { return 0; }
3564 _bsdi_dvd=no
3565 cc_check && _bsdi_dvd=yes
3566 if test "$_bsdi_dvd" = yes ; then
3567 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3568 else
3569 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3571 echores "$_bsdi_dvd"
3572 fi #if bsdos
3575 if hpux; then
3576 # also used by AIX, but AIX does not support VCD and/or libdvdread
3577 echocheck "HP-UX SCSI header"
3578 cat > $TMPC << EOF
3579 #include <sys/scsi.h>
3580 int main(void) { return 0; }
3582 _hpux_scsi_h=no
3583 cc_check && _hpux_scsi_h=yes
3584 if test "$_hpux_scsi_h" = yes ; then
3585 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3586 else
3587 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3589 echores "$_hpux_scsi_h"
3590 fi #if hpux
3593 if sunos; then
3594 echocheck "userspace SCSI headers (Solaris)"
3595 cat > $TMPC << EOF
3596 #include <unistd.h>
3597 #include <stropts.h>
3598 #include <sys/scsi/scsi_types.h>
3599 #include <sys/scsi/impl/uscsi.h>
3600 int main(void) { return 0; }
3602 _sol_scsi_h=no
3603 cc_check && _sol_scsi_h=yes
3604 if test "$_sol_scsi_h" = yes ; then
3605 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3606 else
3607 def_sol_scsi_h='#undef SOLARIS_USCSI'
3609 echores "$_sol_scsi_h"
3610 fi #if sunos
3613 echocheck "termcap"
3614 if test "$_termcap" = auto ; then
3615 cat > $TMPC <<EOF
3616 #include <stddef.h>
3617 #include <term.h>
3618 int main(void) { tgetent(NULL, NULL); return 0; }
3620 _termcap=no
3621 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3622 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3623 && _termcap=yes && break
3624 done
3626 if test "$_termcap" = yes ; then
3627 def_termcap='#define HAVE_TERMCAP 1'
3628 test $_ld_tmp && _res_comment="using $_ld_tmp"
3629 else
3630 def_termcap='#undef HAVE_TERMCAP'
3632 echores "$_termcap"
3635 echocheck "termios"
3636 def_termios='#undef HAVE_TERMIOS'
3637 def_termios_h='#undef HAVE_TERMIOS_H'
3638 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3639 if test "$_termios" = auto ; then
3640 _termios=no
3641 for _termios_header in "sys/termios.h" "termios.h"; do
3642 cat > $TMPC <<EOF
3643 #include <$_termios_header>
3644 int main(void) { return 0; }
3646 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3647 done
3650 if test "$_termios" = yes ; then
3651 def_termios='#define HAVE_TERMIOS 1'
3652 if test "$_termios_header" = "termios.h" ; then
3653 def_termios_h='#define HAVE_TERMIOS_H 1'
3654 else
3655 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3658 echores "$_termios"
3661 echocheck "shm"
3662 if test "$_shm" = auto ; then
3663 cat > $TMPC << EOF
3664 #include <sys/types.h>
3665 #include <sys/shm.h>
3666 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3668 _shm=no
3669 cc_check && _shm=yes
3671 if test "$_shm" = yes ; then
3672 def_shm='#define HAVE_SHM 1'
3673 else
3674 def_shm='#undef HAVE_SHM'
3676 echores "$_shm"
3679 echocheck "strsep()"
3680 cat > $TMPC << EOF
3681 #include <string.h>
3682 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3684 _strsep=no
3685 cc_check && _strsep=yes
3686 if test "$_strsep" = yes ; then
3687 def_strsep='#define HAVE_STRSEP 1'
3688 _need_strsep=no
3689 else
3690 def_strsep='#undef HAVE_STRSEP'
3691 _need_strsep=yes
3693 echores "$_strsep"
3696 echocheck "vsscanf()"
3697 cat > $TMPC << EOF
3698 #define _ISOC99_SOURCE
3699 #include <stdarg.h>
3700 #include <stdio.h>
3701 int main(void) { vsscanf(0, 0, 0); return 0; }
3703 _vsscanf=no
3704 cc_check && _vsscanf=yes
3705 if test "$_vsscanf" = yes ; then
3706 def_vsscanf='#define HAVE_VSSCANF 1'
3707 _need_vsscanf=no
3708 else
3709 def_vsscanf='#undef HAVE_VSSCANF'
3710 _need_vsscanf=yes
3712 echores "$_vsscanf"
3715 echocheck "swab()"
3716 cat > $TMPC << EOF
3717 #define _XOPEN_SOURCE 600
3718 #include <unistd.h>
3719 int main(void) { swab(0, 0, 0); return 0; }
3721 _swab=no
3722 cc_check && _swab=yes
3723 if test "$_swab" = yes ; then
3724 def_swab='#define HAVE_SWAB 1'
3725 _need_swab=no
3726 else
3727 def_swab='#undef HAVE_SWAB'
3728 _need_swab=yes
3730 echores "$_swab"
3732 echocheck "POSIX select()"
3733 cat > $TMPC << EOF
3734 #include <stdio.h>
3735 #include <stdlib.h>
3736 #include <sys/types.h>
3737 #include <string.h>
3738 #include <sys/time.h>
3739 #include <unistd.h>
3740 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3742 _posix_select=no
3743 def_posix_select='#undef HAVE_POSIX_SELECT'
3744 #select() of kLIBC (OS/2) supports socket only
3745 ! os2 && cc_check && _posix_select=yes \
3746 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3747 echores "$_posix_select"
3750 echocheck "audio select()"
3751 if test "$_select" = no ; then
3752 def_select='#undef HAVE_AUDIO_SELECT'
3753 elif test "$_select" = yes ; then
3754 def_select='#define HAVE_AUDIO_SELECT 1'
3756 echores "$_select"
3759 echocheck "gettimeofday()"
3760 cat > $TMPC << EOF
3761 #include <stdio.h>
3762 #include <sys/time.h>
3763 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3765 _gettimeofday=no
3766 cc_check && _gettimeofday=yes
3767 if test "$_gettimeofday" = yes ; then
3768 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3769 _need_gettimeofday=no
3770 else
3771 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3772 _need_gettimeofday=yes
3774 echores "$_gettimeofday"
3777 echocheck "glob()"
3778 cat > $TMPC << EOF
3779 #include <stdio.h>
3780 #include <glob.h>
3781 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3783 _glob=no
3784 cc_check && _glob=yes
3785 if test "$_glob" = yes ; then
3786 def_glob='#define HAVE_GLOB 1'
3787 _need_glob=no
3788 else
3789 def_glob='#undef HAVE_GLOB'
3790 _need_glob=yes
3792 echores "$_glob"
3795 echocheck "setenv()"
3796 cat > $TMPC << EOF
3797 #include <stdlib.h>
3798 int main(void) { setenv("","",0); return 0; }
3800 _setenv=no
3801 cc_check && _setenv=yes
3802 if test "$_setenv" = yes ; then
3803 def_setenv='#define HAVE_SETENV 1'
3804 _need_setenv=no
3805 else
3806 def_setenv='#undef HAVE_SETENV'
3807 _need_setenv=yes
3809 echores "$_setenv"
3812 if sunos; then
3813 echocheck "sysi86()"
3814 cat > $TMPC << EOF
3815 #include <sys/sysi86.h>
3816 int main(void) { sysi86(0); return 0; }
3818 _sysi86=no
3819 cc_check && _sysi86=yes
3820 if test "$_sysi86" = yes ; then
3821 def_sysi86='#define HAVE_SYSI86 1'
3822 cat > $TMPC << EOF
3823 #include <sys/sysi86.h>
3824 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3826 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3827 else
3828 def_sysi86='#undef HAVE_SYSI86'
3830 echores "$_sysi86"
3831 fi #if sunos
3834 echocheck "sys/sysinfo.h"
3835 cat > $TMPC << EOF
3836 #include <sys/sysinfo.h>
3837 int main(void) {
3838 struct sysinfo s_info;
3839 sysinfo(&s_info);
3840 return 0;
3843 _sys_sysinfo=no
3844 cc_check && _sys_sysinfo=yes
3845 if test "$_sys_sysinfo" = yes ; then
3846 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3847 else
3848 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3850 echores "$_sys_sysinfo"
3853 if darwin; then
3855 echocheck "Mac OS X Finder Support"
3856 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3857 if test "$_macosx_finder" = yes ; then
3858 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3859 extra_ldflags="$extra_ldflags -framework Carbon"
3861 echores "$_macosx_finder"
3863 echocheck "Mac OS X Bundle file locations"
3864 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3865 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3866 if test "$_macosx_bundle" = yes ; then
3867 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3868 extra_ldflags="$extra_ldflags -framework Carbon"
3870 echores "$_macosx_bundle"
3872 echocheck "Apple Remote"
3873 if test "$_apple_remote" = auto ; then
3874 _apple_remote=no
3875 cat > $TMPC <<EOF
3876 #include <stdio.h>
3877 #include <IOKit/IOCFPlugIn.h>
3878 int main(void) {
3879 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3880 CFMutableDictionaryRef hidMatchDictionary;
3881 IOReturn ioReturnValue;
3883 // Set up a matching dictionary to search the I/O Registry by class.
3884 // name for all HID class devices
3885 hidMatchDictionary = IOServiceMatching("AppleIRController");
3887 // Now search I/O Registry for matching devices.
3888 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3889 hidMatchDictionary, &hidObjectIterator);
3891 // If search is unsuccessful, return nonzero.
3892 if (ioReturnValue != kIOReturnSuccess ||
3893 !IOIteratorIsValid(hidObjectIterator)) {
3894 return 1;
3896 return 0;
3899 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3901 if test "$_apple_remote" = yes ; then
3902 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3903 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3904 else
3905 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3907 echores "$_apple_remote"
3909 fi #if darwin
3911 if linux; then
3913 echocheck "Apple IR"
3914 if test "$_apple_ir" = auto ; then
3915 _apple_ir=no
3916 cat > $TMPC <<EOF
3917 #include <linux/types.h>
3918 #include <linux/input.h>
3919 int main(void) {
3920 struct input_event ev;
3921 struct input_id id;
3922 return 0;
3925 cc_check && tmp_run && _apple_ir=yes
3927 if test "$_apple_ir" = yes ; then
3928 def_apple_ir='#define CONFIG_APPLE_IR 1'
3929 else
3930 def_apple_ir='#undef CONFIG_APPLE_IR'
3932 echores "$_apple_ir"
3933 fi #if linux
3935 echocheck "pkg-config"
3936 _pkg_config=pkg-config
3937 if $($_pkg_config --version > /dev/null 2>&1); then
3938 if test "$_ld_static"; then
3939 _pkg_config="$_pkg_config --static"
3941 echores "yes"
3942 else
3943 _pkg_config=false
3944 echores "no"
3948 echocheck "Samba support (libsmbclient)"
3949 if test "$_smb" = yes; then
3950 extra_ldflags="$extra_ldflags -lsmbclient"
3952 if test "$_smb" = auto; then
3953 _smb=no
3954 cat > $TMPC << EOF
3955 #include <libsmbclient.h>
3956 int main(void) { smbc_opendir("smb://"); return 0; }
3958 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3959 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3960 _smb=yes && break
3961 done
3964 if test "$_smb" = yes; then
3965 def_smb="#define CONFIG_LIBSMBCLIENT"
3966 _inputmodules="smb $_inputmodules"
3967 else
3968 def_smb="#undef CONFIG_LIBSMBCLIENT"
3969 _noinputmodules="smb $_noinputmodules"
3971 echores "$_smb"
3974 #########
3975 # VIDEO #
3976 #########
3979 echocheck "tdfxfb"
3980 if test "$_tdfxfb" = yes ; then
3981 def_tdfxfb='#define CONFIG_TDFXFB 1'
3982 _vomodules="tdfxfb $_vomodules"
3983 else
3984 def_tdfxfb='#undef CONFIG_TDFXFB'
3985 _novomodules="tdfxfb $_novomodules"
3987 echores "$_tdfxfb"
3989 echocheck "s3fb"
3990 if test "$_s3fb" = yes ; then
3991 def_s3fb='#define CONFIG_S3FB 1'
3992 _vomodules="s3fb $_vomodules"
3993 else
3994 def_s3fb='#undef CONFIG_S3FB'
3995 _novomodules="s3fb $_novomodules"
3997 echores "$_s3fb"
3999 echocheck "wii"
4000 if test "$_wii" = yes ; then
4001 def_wii='#define CONFIG_WII 1'
4002 _vomodules="wii $_vomodules"
4003 else
4004 def_wii='#undef CONFIG_WII'
4005 _novomodules="wii $_novomodules"
4007 echores "$_wii"
4009 echocheck "tdfxvid"
4010 if test "$_tdfxvid" = yes ; then
4011 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4012 _vomodules="tdfx_vid $_vomodules"
4013 else
4014 def_tdfxvid='#undef CONFIG_TDFX_VID'
4015 _novomodules="tdfx_vid $_novomodules"
4017 echores "$_tdfxvid"
4019 echocheck "xvr100"
4020 if test "$_xvr100" = auto ; then
4021 cat > $TMPC << EOF
4022 #include <unistd.h>
4023 #include <sys/fbio.h>
4024 #include <sys/visual_io.h>
4025 int main(void) {
4026 struct vis_identifier ident;
4027 struct fbgattr attr;
4028 ioctl(0, VIS_GETIDENTIFIER, &ident);
4029 ioctl(0, FBIOGATTR, &attr);
4030 return 0;
4033 _xvr100=no
4034 cc_check && _xvr100=yes
4036 if test "$_xvr100" = yes ; then
4037 def_xvr100='#define CONFIG_XVR100 1'
4038 _vomodules="xvr100 $_vomodules"
4039 else
4040 def_tdfxvid='#undef CONFIG_XVR100'
4041 _novomodules="xvr100 $_novomodules"
4043 echores "$_xvr100"
4045 echocheck "tga"
4046 if test "$_tga" = yes ; then
4047 def_tga='#define CONFIG_TGA 1'
4048 _vomodules="tga $_vomodules"
4049 else
4050 def_tga='#undef CONFIG_TGA'
4051 _novomodules="tga $_novomodules"
4053 echores "$_tga"
4056 echocheck "md5sum support"
4057 if test "$_md5sum" = yes; then
4058 def_md5sum="#define CONFIG_MD5SUM"
4059 _vomodules="md5sum $_vomodules"
4060 else
4061 def_md5sum="#undef CONFIG_MD5SUM"
4062 _novomodules="md5sum $_novomodules"
4064 echores "$_md5sum"
4067 echocheck "yuv4mpeg support"
4068 if test "$_yuv4mpeg" = yes; then
4069 def_yuv4mpeg="#define CONFIG_YUV4MPEG"
4070 _vomodules="yuv4mpeg $_vomodules"
4071 else
4072 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4073 _novomodules="yuv4mpeg $_novomodules"
4075 echores "$_yuv4mpeg"
4078 echocheck "bl"
4079 if test "$_bl" = yes ; then
4080 def_bl='#define CONFIG_BL 1'
4081 _vomodules="bl $_vomodules"
4082 else
4083 def_bl='#undef CONFIG_BL'
4084 _novomodules="bl $_novomodules"
4086 echores "$_bl"
4089 echocheck "DirectFB"
4090 if test "$_directfb" = auto ; then
4091 _directfb=no
4092 cat > $TMPC <<EOF
4093 #include <directfb.h>
4094 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4096 for _inc_tmp in "" -I/usr/local/include/directfb \
4097 -I/usr/include/directfb -I/usr/local/include; do
4098 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4099 extra_cflags="$extra_cflags $_inc_tmp" && break
4100 done
4103 dfb_version() {
4104 expr $1 \* 65536 + $2 \* 256 + $3
4107 if test "$_directfb" = yes; then
4108 cat > $TMPC << EOF
4109 #include <directfb_version.h>
4111 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4114 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4115 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4116 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4117 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4118 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4119 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4120 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4121 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4122 _res_comment="$_directfb_version"
4123 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4124 else
4125 def_directfb_version='#undef DIRECTFBVERSION'
4126 _directfb=no
4127 _res_comment="version >=0.9.13 required"
4129 else
4130 _directfb=no
4131 _res_comment="failed to get version"
4134 echores "$_directfb"
4136 if test "$_directfb" = yes ; then
4137 def_directfb='#define CONFIG_DIRECTFB 1'
4138 _vomodules="directfb $_vomodules"
4139 libs_mplayer="$libs_mplayer -ldirectfb"
4140 else
4141 def_directfb='#undef CONFIG_DIRECTFB'
4142 _novomodules="directfb $_novomodules"
4144 if test "$_dfbmga" = yes; then
4145 _vomodules="dfbmga $_vomodules"
4146 def_dfbmga='#define CONFIG_DFBMGA 1'
4147 else
4148 _novomodules="dfbmga $_novomodules"
4149 def_dfbmga='#undef CONFIG_DFBMGA'
4153 echocheck "X11 headers presence"
4154 _x11_headers="no"
4155 _res_comment="check if the dev(el) packages are installed"
4156 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4157 if test -f "$I/X11/Xlib.h" ; then
4158 _x11_headers="yes"
4159 _res_comment=""
4160 break
4162 done
4163 if test $_cross_compile = no; then
4164 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4165 /usr/include/X11R6 /usr/openwin/include ; do
4166 if test -f "$I/X11/Xlib.h" ; then
4167 extra_cflags="$extra_cflags -I$I"
4168 _x11_headers="yes"
4169 _res_comment="using $I"
4170 break
4172 done
4174 echores "$_x11_headers"
4177 echocheck "X11"
4178 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4179 cat > $TMPC <<EOF
4180 #include <X11/Xlib.h>
4181 #include <X11/Xutil.h>
4182 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4184 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4185 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4186 -L/usr/lib ; do
4187 if netbsd; then
4188 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4189 else
4190 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4192 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4193 && _x11=yes && break
4194 done
4196 if test "$_x11" = yes ; then
4197 def_x11='#define CONFIG_X11 1'
4198 _vomodules="x11 xover $_vomodules"
4199 else
4200 _x11=no
4201 def_x11='#undef CONFIG_X11'
4202 _novomodules="x11 $_novomodules"
4203 _res_comment="check if the dev(el) packages are installed"
4204 # disable stuff that depends on X
4205 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4207 echores "$_x11"
4209 echocheck "Xss screensaver extensions"
4210 if test "$_xss" = auto ; then
4211 cat > $TMPC << EOF
4212 #include <X11/Xlib.h>
4213 #include <X11/extensions/scrnsaver.h>
4214 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4216 _xss=no
4217 cc_check -lXss && _xss=yes
4219 if test "$_xss" = yes ; then
4220 def_xss='#define CONFIG_XSS 1'
4221 libs_mplayer="$libs_mplayer -lXss"
4222 else
4223 def_xss='#undef CONFIG_XSS'
4225 echores "$_xss"
4227 echocheck "DPMS"
4228 _xdpms3=no
4229 _xdpms4=no
4230 if test "$_x11" = yes ; then
4231 cat > $TMPC <<EOF
4232 #include <X11/Xmd.h>
4233 #include <X11/Xlib.h>
4234 #include <X11/Xutil.h>
4235 #include <X11/Xatom.h>
4236 #include <X11/extensions/dpms.h>
4237 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4239 cc_check -lXdpms && _xdpms3=yes
4240 cat > $TMPC <<EOF
4241 #include <X11/Xlib.h>
4242 #include <X11/extensions/dpms.h>
4243 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4245 cc_check -lXext && _xdpms4=yes
4247 if test "$_xdpms4" = yes ; then
4248 def_xdpms='#define CONFIG_XDPMS 1'
4249 _res_comment="using Xdpms 4"
4250 echores "yes"
4251 elif test "$_xdpms3" = yes ; then
4252 def_xdpms='#define CONFIG_XDPMS 1'
4253 libs_mplayer="$libs_mplayer -lXdpms"
4254 _res_comment="using Xdpms 3"
4255 echores "yes"
4256 else
4257 def_xdpms='#undef CONFIG_XDPMS'
4258 echores "no"
4262 echocheck "Xv"
4263 if test "$_xv" = auto ; then
4264 cat > $TMPC <<EOF
4265 #include <X11/Xlib.h>
4266 #include <X11/extensions/Xvlib.h>
4267 int main(void) {
4268 (void) XvGetPortAttribute(0, 0, 0, 0);
4269 (void) XvQueryPortAttributes(0, 0, 0);
4270 return 0; }
4272 _xv=no
4273 cc_check -lXv && _xv=yes
4276 if test "$_xv" = yes ; then
4277 def_xv='#define CONFIG_XV 1'
4278 libs_mplayer="$libs_mplayer -lXv"
4279 _vomodules="xv $_vomodules"
4280 else
4281 def_xv='#undef CONFIG_XV'
4282 _novomodules="xv $_novomodules"
4284 echores "$_xv"
4287 echocheck "XvMC"
4288 if test "$_xv" = yes && test "$_xvmc" != no ; then
4289 _xvmc=no
4290 cat > $TMPC <<EOF
4291 #include <X11/Xlib.h>
4292 #include <X11/extensions/Xvlib.h>
4293 #include <X11/extensions/XvMClib.h>
4294 int main(void) {
4295 (void) XvMCQueryExtension(0,0,0);
4296 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4297 return 0; }
4299 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4300 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4301 done
4303 if test "$_xvmc" = yes ; then
4304 def_xvmc='#define CONFIG_XVMC 1'
4305 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4306 _vomodules="xvmc $_vomodules"
4307 _res_comment="using $_xvmclib"
4308 else
4309 def_xvmc='#define CONFIG_XVMC 0'
4310 _novomodules="xvmc $_novomodules"
4311 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4313 echores "$_xvmc"
4316 echocheck "VDPAU"
4317 if test "$_vdpau" = auto ; then
4318 _vdpau=no
4319 if test "$_dl" = yes ; then
4320 cat > $TMPC <<EOF
4321 #include <vdpau/vdpau_x11.h>
4322 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4324 cc_check && _vdpau=yes
4327 if test "$_vdpau" = yes ; then
4328 def_vdpau='#define CONFIG_VDPAU 1'
4329 _vomodules="vdpau $_vomodules"
4330 else
4331 def_vdpau='#define CONFIG_VDPAU 0'
4332 _novomodules="vdpau $_novomodules"
4333 _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//)
4335 echores "$_vdpau"
4338 echocheck "Xinerama"
4339 if test "$_xinerama" = auto ; then
4340 cat > $TMPC <<EOF
4341 #include <X11/Xlib.h>
4342 #include <X11/extensions/Xinerama.h>
4343 int main(void) { (void) XineramaIsActive(0); return 0; }
4345 _xinerama=no
4346 cc_check -lXinerama && _xinerama=yes
4349 if test "$_xinerama" = yes ; then
4350 def_xinerama='#define CONFIG_XINERAMA 1'
4351 libs_mplayer="$libs_mplayer -lXinerama"
4352 else
4353 def_xinerama='#undef CONFIG_XINERAMA'
4355 echores "$_xinerama"
4358 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4359 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4360 # named 'X extensions' or something similar.
4361 # This check may be useful for future mplayer versions (to change resolution)
4362 # If you run into problems, remove '-lXxf86vm'.
4363 echocheck "Xxf86vm"
4364 if test "$_vm" = auto ; then
4365 cat > $TMPC <<EOF
4366 #include <X11/Xlib.h>
4367 #include <X11/extensions/xf86vmode.h>
4368 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4370 _vm=no
4371 cc_check -lXxf86vm && _vm=yes
4373 if test "$_vm" = yes ; then
4374 def_vm='#define CONFIG_XF86VM 1'
4375 libs_mplayer="$libs_mplayer -lXxf86vm"
4376 else
4377 def_vm='#undef CONFIG_XF86VM'
4379 echores "$_vm"
4381 # Check for the presence of special keycodes, like audio control buttons
4382 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4383 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4384 # have these new keycodes.
4385 echocheck "XF86keysym"
4386 if test "$_xf86keysym" = auto; then
4387 _xf86keysym=no
4388 cat > $TMPC <<EOF
4389 #include <X11/Xlib.h>
4390 #include <X11/XF86keysym.h>
4391 int main(void) { return XF86XK_AudioPause; }
4393 cc_check && _xf86keysym=yes
4395 if test "$_xf86keysym" = yes ; then
4396 def_xf86keysym='#define CONFIG_XF86XK 1'
4397 else
4398 def_xf86keysym='#undef CONFIG_XF86XK'
4400 echores "$_xf86keysym"
4402 echocheck "DGA"
4403 if test "$_dga2" = auto && test "$_x11" = yes ; then
4404 cat > $TMPC << EOF
4405 #include <X11/Xlib.h>
4406 #include <X11/extensions/xf86dga.h>
4407 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4409 _dga2=no
4410 cc_check -lXxf86dga && _dga2=yes
4412 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4413 cat > $TMPC << EOF
4414 #include <X11/Xlib.h>
4415 #include <X11/extensions/xf86dga.h>
4416 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4418 _dga1=no
4419 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4422 _dga=no
4423 def_dga='#undef CONFIG_DGA'
4424 def_dga1='#undef CONFIG_DGA1'
4425 def_dga2='#undef CONFIG_DGA2'
4426 if test "$_dga1" = yes ; then
4427 _dga=yes
4428 def_dga1='#define CONFIG_DGA1 1'
4429 _res_comment="using DGA 1.0"
4430 elif test "$_dga2" = yes ; then
4431 _dga=yes
4432 def_dga2='#define CONFIG_DGA2 1'
4433 _res_comment="using DGA 2.0"
4435 if test "$_dga" = yes ; then
4436 def_dga='#define CONFIG_DGA 1'
4437 libs_mplayer="$libs_mplayer -lXxf86dga"
4438 _vomodules="dga $_vomodules"
4439 else
4440 _novomodules="dga $_novomodules"
4442 echores "$_dga"
4445 echocheck "3dfx"
4446 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4447 def_3dfx='#define CONFIG_3DFX 1'
4448 _vomodules="3dfx $_vomodules"
4449 else
4450 def_3dfx='#undef CONFIG_3DFX'
4451 _novomodules="3dfx $_novomodules"
4453 echores "$_3dfx"
4456 echocheck "VIDIX"
4457 def_vidix='#undef CONFIG_VIDIX'
4458 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4459 _vidix_drv_cyberblade=no
4460 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4461 _vidix_drv_ivtv=no
4462 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4463 _vidix_drv_mach64=no
4464 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4465 _vidix_drv_mga=no
4466 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4467 _vidix_drv_mga_crtc2=no
4468 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4469 _vidix_drv_nvidia=no
4470 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4471 _vidix_drv_pm2=no
4472 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4473 _vidix_drv_pm3=no
4474 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4475 _vidix_drv_radeon=no
4476 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4477 _vidix_drv_rage128=no
4478 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4479 _vidix_drv_s3=no
4480 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4481 _vidix_drv_sh_veu=no
4482 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4483 _vidix_drv_sis=no
4484 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4485 _vidix_drv_unichrome=no
4486 if test "$_vidix" = auto ; then
4487 _vidix=no
4488 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4489 && _vidix=yes
4490 (ppc || alpha) && linux && _vidix=yes
4492 echores "$_vidix"
4494 if test "$_vidix" = yes ; then
4495 def_vidix='#define CONFIG_VIDIX 1'
4496 _vomodules="cvidix $_vomodules"
4497 # FIXME: ivtv driver temporarily disabled until we have a proper test
4498 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4499 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4501 # some vidix drivers are architecture and os specific, discard them elsewhere
4502 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4503 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4505 for driver in $_vidix_drivers ; do
4506 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4507 eval _vidix_drv_${driver}=yes
4508 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4509 done
4511 echocheck "VIDIX PCI device name database"
4512 echores "$_vidix_pcidb"
4513 if test "$_vidix_pcidb" = yes ; then
4514 _vidix_pcidb_val=1
4515 else
4516 _vidix_pcidb_val=0
4519 echocheck "VIDIX dhahelper support"
4520 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4521 echores "$_dhahelper"
4523 echocheck "VIDIX svgalib_helper support"
4524 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4525 echores "$_svgalib_helper"
4527 else
4528 _novomodules="cvidix $_novomodules"
4531 if test "$_vidix" = yes && win32; then
4532 winvidix=yes
4533 _vomodules="winvidix $_vomodules"
4534 libs_mplayer="$libs_mplayer -lgdi32"
4535 else
4536 _novomodules="winvidix $_novomodules"
4538 if test "$_vidix" = yes && test "$_x11" = yes; then
4539 xvidix=yes
4540 _vomodules="xvidix $_vomodules"
4541 else
4542 _novomodules="xvidix $_novomodules"
4545 echocheck "/dev/mga_vid"
4546 if test "$_mga" = auto ; then
4547 _mga=no
4548 test -c /dev/mga_vid && _mga=yes
4550 if test "$_mga" = yes ; then
4551 def_mga='#define CONFIG_MGA 1'
4552 _vomodules="mga $_vomodules"
4553 else
4554 def_mga='#undef CONFIG_MGA'
4555 _novomodules="mga $_novomodules"
4557 echores "$_mga"
4560 echocheck "xmga"
4561 if test "$_xmga" = auto ; then
4562 _xmga=no
4563 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4565 if test "$_xmga" = yes ; then
4566 def_xmga='#define CONFIG_XMGA 1'
4567 _vomodules="xmga $_vomodules"
4568 else
4569 def_xmga='#undef CONFIG_XMGA'
4570 _novomodules="xmga $_novomodules"
4572 echores "$_xmga"
4575 echocheck "GGI"
4576 if test "$_ggi" = auto ; then
4577 cat > $TMPC << EOF
4578 #include <ggi/ggi.h>
4579 int main(void) { ggiInit(); return 0; }
4581 _ggi=no
4582 cc_check -lggi && _ggi=yes
4584 if test "$_ggi" = yes ; then
4585 def_ggi='#define CONFIG_GGI 1'
4586 libs_mplayer="$libs_mplayer -lggi"
4587 _vomodules="ggi $_vomodules"
4588 else
4589 def_ggi='#undef CONFIG_GGI'
4590 _novomodules="ggi $_novomodules"
4592 echores "$_ggi"
4594 echocheck "GGI extension: libggiwmh"
4595 if test "$_ggiwmh" = auto ; then
4596 _ggiwmh=no
4597 cat > $TMPC << EOF
4598 #include <ggi/ggi.h>
4599 #include <ggi/wmh.h>
4600 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4602 cc_check -lggi -lggiwmh && _ggiwmh=yes
4604 # needed to get right output on obscure combination
4605 # like --disable-ggi --enable-ggiwmh
4606 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4607 def_ggiwmh='#define CONFIG_GGIWMH 1'
4608 libs_mplayer="$libs_mplayer -lggiwmh"
4609 else
4610 _ggiwmh=no
4611 def_ggiwmh='#undef CONFIG_GGIWMH'
4613 echores "$_ggiwmh"
4616 echocheck "AA"
4617 if test "$_aa" = auto ; then
4618 cat > $TMPC << EOF
4619 #include <aalib.h>
4620 extern struct aa_hardware_params aa_defparams;
4621 extern struct aa_renderparams aa_defrenderparams;
4622 int main(void) {
4623 aa_context *c;
4624 aa_renderparams *p;
4625 (void) aa_init(0, 0, 0);
4626 c = aa_autoinit(&aa_defparams);
4627 p = aa_getrenderparams();
4628 aa_autoinitkbd(c,0);
4629 return 0; }
4631 _aa=no
4632 for _ld_tmp in "-laa" ; do
4633 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4634 done
4636 if test "$_aa" = yes ; then
4637 def_aa='#define CONFIG_AA 1'
4638 if cygwin ; then
4639 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4641 _vomodules="aa $_vomodules"
4642 else
4643 def_aa='#undef CONFIG_AA'
4644 _novomodules="aa $_novomodules"
4646 echores "$_aa"
4649 echocheck "CACA"
4650 if test "$_caca" = auto ; then
4651 _caca=no
4652 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4653 cat > $TMPC << EOF
4654 #include <caca.h>
4655 #ifdef CACA_API_VERSION_1
4656 #include <caca0.h>
4657 #endif
4658 int main(void) { (void) caca_init(); return 0; }
4660 cc_check $(caca-config --libs) && _caca=yes
4663 if test "$_caca" = yes ; then
4664 def_caca='#define CONFIG_CACA 1'
4665 extra_cflags="$extra_cflags $(caca-config --cflags)"
4666 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4667 _vomodules="caca $_vomodules"
4668 else
4669 def_caca='#undef CONFIG_CACA'
4670 _novomodules="caca $_novomodules"
4672 echores "$_caca"
4675 echocheck "SVGAlib"
4676 if test "$_svga" = auto ; then
4677 cat > $TMPC << EOF
4678 #include <vga.h>
4679 int main(void) { return 0; }
4681 _svga=no
4682 cc_check -lvga $_ld_lm && _svga=yes
4684 if test "$_svga" = yes ; then
4685 def_svga='#define CONFIG_SVGALIB 1'
4686 libs_mplayer="$libs_mplayer -lvga"
4687 _vomodules="svga $_vomodules"
4688 else
4689 def_svga='#undef CONFIG_SVGALIB'
4690 _novomodules="svga $_novomodules"
4692 echores "$_svga"
4695 echocheck "FBDev"
4696 if test "$_fbdev" = auto ; then
4697 _fbdev=no
4698 linux && _fbdev=yes
4700 if test "$_fbdev" = yes ; then
4701 def_fbdev='#define CONFIG_FBDEV 1'
4702 _vomodules="fbdev $_vomodules"
4703 else
4704 def_fbdev='#undef CONFIG_FBDEV'
4705 _novomodules="fbdev $_novomodules"
4707 echores "$_fbdev"
4711 echocheck "DVB"
4712 if test "$_dvb" = auto ; then
4713 _dvb=no
4714 cat >$TMPC << EOF
4715 #include <poll.h>
4716 #include <sys/ioctl.h>
4717 #include <stdio.h>
4718 #include <time.h>
4719 #include <unistd.h>
4720 #include <ost/dmx.h>
4721 #include <ost/frontend.h>
4722 #include <ost/sec.h>
4723 #include <ost/video.h>
4724 #include <ost/audio.h>
4725 int main(void) {return 0;}
4727 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4728 cc_check $_inc_tmp && _dvb=yes && \
4729 extra_cflags="$extra_cflags $_inc_tmp" && break
4730 done
4732 echores "$_dvb"
4733 if test "$_dvb" = yes ; then
4734 def_dvb='#define CONFIG_DVB 1'
4735 def_dvbin='#define CONFIG_DVBIN 1'
4736 _aomodules="mpegpes(dvb) $_aomodules"
4737 _vomodules="mpegpes(dvb) $_vomodules"
4740 echocheck "DVB HEAD"
4741 if test "$_dvbhead" = auto ; then
4742 _dvbhead=no
4744 cat >$TMPC << EOF
4745 #include <poll.h>
4746 #include <sys/ioctl.h>
4747 #include <stdio.h>
4748 #include <time.h>
4749 #include <unistd.h>
4750 #include <linux/dvb/dmx.h>
4751 #include <linux/dvb/frontend.h>
4752 #include <linux/dvb/video.h>
4753 #include <linux/dvb/audio.h>
4754 int main(void) {return 0;}
4756 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4757 cc_check $_inc_tmp && _dvbhead=yes && \
4758 extra_cflags="$extra_cflags $_inc_tmp" && break
4759 done
4761 echores "$_dvbhead"
4762 if test "$_dvbhead" = yes ; then
4763 def_dvb='#define CONFIG_DVB 1'
4764 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4765 def_dvbin='#define CONFIG_DVBIN 1'
4766 _aomodules="mpegpes(dvb) $_aomodules"
4767 _vomodules="mpegpes(dvb) $_vomodules"
4770 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4771 def_dvb='#undef CONFIG_DVB'
4772 def_dvb_head='#undef CONFIG_DVB_HEAD'
4773 def_dvbin='#undef CONFIG_DVBIN '
4774 _aomodules="mpegpes(file) $_aomodules"
4775 _vomodules="mpegpes(file) $_vomodules"
4778 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4779 _dvbin=yes
4780 _inputmodules="dvb $_inputmodules"
4781 else
4782 _dvbin=no
4783 _noinputmodules="dvb $_noinputmodules"
4787 if darwin; then
4789 echocheck "QuickTime"
4790 if test "$quicktime" = auto ; then
4791 cat > $TMPC <<EOF
4792 #include <QuickTime/QuickTime.h>
4793 int main(void) {
4794 ImageDescription *desc;
4795 EnterMovies();
4796 ExitMovies();
4797 return 0;
4800 quicktime=no
4801 cc_check -framework QuickTime && quicktime=yes
4803 if test "$quicktime" = yes ; then
4804 extra_ldflags="$extra_ldflags -framework QuickTime"
4805 def_quicktime='#define CONFIG_QUICKTIME 1'
4806 else
4807 def_quicktime='#undef CONFIG_QUICKTIME'
4808 _quartz=no
4810 echores $quicktime
4812 echocheck "Quartz"
4813 if test "$_quartz" = auto ; then
4814 cat > $TMPC <<EOF
4815 #include <Carbon/Carbon.h>
4816 int main(void) {
4817 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4818 return 0;
4821 _quartz=no
4822 cc_check -framework Carbon && _quartz=yes
4824 if test "$_quartz" = yes ; then
4825 libs_mplayer="$libs_mplayer -framework Carbon"
4826 def_quartz='#define CONFIG_QUARTZ 1'
4827 _vomodules="quartz $_vomodules"
4828 else
4829 def_quartz='#undef CONFIG_QUARTZ'
4830 _novomodules="quartz $_novomodules"
4832 echores $_quartz
4834 echocheck "CoreVideo"
4835 if test "$_corevideo" = auto ; then
4836 cat > $TMPC <<EOF
4837 #include <Carbon/Carbon.h>
4838 #include <CoreServices/CoreServices.h>
4839 #include <OpenGL/OpenGL.h>
4840 #include <QuartzCore/CoreVideo.h>
4841 int main(void) { return 0; }
4843 _corevideo=no
4844 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4846 if test "$_corevideo" = yes ; then
4847 _vomodules="corevideo $_vomodules"
4848 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4849 def_corevideo='#define CONFIG_COREVIDEO 1'
4850 else
4851 _novomodules="corevideo $_novomodules"
4852 def_corevideo='#undef CONFIG_COREVIDEO'
4854 echores "$_corevideo"
4856 fi #if darwin
4859 # make sure this stays below CoreVideo to avoid issues due to namespace
4860 # conflicts between -lGL and -framework OpenGL
4861 echocheck "OpenGL"
4862 #Note: this test is run even with --enable-gl since we autodetect linker flags
4863 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4864 cat > $TMPC << EOF
4865 #ifdef GL_WIN32
4866 #include <windows.h>
4867 #include <GL/gl.h>
4868 #else
4869 #include <GL/gl.h>
4870 #include <X11/Xlib.h>
4871 #include <GL/glx.h>
4872 #endif
4873 int main(void) {
4874 #ifdef GL_WIN32
4875 HDC dc;
4876 wglCreateContext(dc);
4877 #else
4878 glXCreateContext(NULL, NULL, NULL, True);
4879 #endif
4880 glFinish();
4881 return 0;
4884 _gl=no
4885 if cc_check -lGL $_ld_lm ; then
4886 _gl=yes
4887 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4888 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4889 _gl=yes
4890 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4891 elif cc_check -DGL_WIN32 -lopengl32 ; then
4892 _gl=yes
4893 _gl_win32=yes
4894 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4896 else
4897 _gl=no
4899 if test "$_gl" = yes ; then
4900 def_gl='#define CONFIG_GL 1'
4901 if test "$_gl_win32" = yes ; then
4902 def_gl_win32='#define GL_WIN32 1'
4903 _res_comment="win32 version"
4905 _vomodules="opengl $_vomodules"
4906 else
4907 def_gl='#undef CONFIG_GL'
4908 def_gl_win32='#undef GL_WIN32'
4909 _novomodules="opengl $_novomodules"
4911 echores "$_gl"
4914 echocheck "PNG support"
4915 if test "$_png" = auto ; then
4916 _png=no
4917 if irix ; then
4918 # Don't check for -lpng on irix since it has its own libpng
4919 # incompatible with the GNU libpng
4920 _res_comment="disabled on irix (not GNU libpng)"
4921 else
4922 cat > $TMPC << EOF
4923 #include <png.h>
4924 #include <string.h>
4925 int main(void) {
4926 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4927 printf("libpng: %s\n", png_libpng_ver);
4928 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4931 if cc_check -lpng -lz $_ld_lm ; then
4932 if tmp_run ; then
4933 _png=yes
4934 else
4935 _res_comment="mismatch of library and header versions"
4940 echores "$_png"
4941 if test "$_png" = yes ; then
4942 def_png='#define CONFIG_PNG 1'
4943 extra_ldflags="$extra_ldflags -lpng -lz"
4944 _vomodules="png $_vomodules"
4945 else
4946 def_png='#undef CONFIG_PNG'
4947 _novomodules="png $_novomodules"
4950 echocheck "MNG support"
4951 if test "$_mng" = auto ; then
4952 _mng=no
4953 cat > $TMPC << EOF
4954 #include <libmng.h>
4955 int main(void) {
4956 const char * p_ver = mng_version_text();
4957 return !p_ver || p_ver[0] == 0;
4960 if cc_check -lmng -lz $_ld_lm ; then
4961 _mng=yes
4964 echores "$_mng"
4965 if test "$_mng" = yes ; then
4966 def_mng='#define CONFIG_MNG 1'
4967 extra_ldflags="$extra_ldflags -lmng -lz"
4968 else
4969 def_mng='#undef CONFIG_MNG'
4972 echocheck "JPEG support"
4973 if test "$_jpeg" = auto ; then
4974 _jpeg=no
4975 cat > $TMPC << EOF
4976 #include <stdio.h>
4977 #include <stdlib.h>
4978 #include <setjmp.h>
4979 #include <string.h>
4980 #include <jpeglib.h>
4981 int main(void) { return 0; }
4983 if cc_check -ljpeg $_ld_lm ; then
4984 if tmp_run ; then
4985 _jpeg=yes
4989 echores "$_jpeg"
4991 if test "$_jpeg" = yes ; then
4992 def_jpeg='#define CONFIG_JPEG 1'
4993 _vomodules="jpeg $_vomodules"
4994 extra_ldflags="$extra_ldflags -ljpeg"
4995 else
4996 def_jpeg='#undef CONFIG_JPEG'
4997 _novomodules="jpeg $_novomodules"
5002 echocheck "PNM support"
5003 if test "$_pnm" = yes; then
5004 def_pnm="#define CONFIG_PNM 1"
5005 _vomodules="pnm $_vomodules"
5006 else
5007 def_pnm="#undef CONFIG_PNM"
5008 _novomodules="pnm $_novomodules"
5010 echores "$_pnm"
5014 echocheck "GIF support"
5015 # This is to appease people who want to force gif support.
5016 # If it is forced to yes, then we still do checks to determine
5017 # which gif library to use.
5018 if test "$_gif" = yes ; then
5019 _force_gif=yes
5020 _gif=auto
5023 if test "$_gif" = auto ; then
5024 _gif=no
5025 cat > $TMPC << EOF
5026 #include <gif_lib.h>
5027 int main(void) { return 0; }
5029 for _ld_gif in "-lungif" "-lgif" ; do
5030 cc_check $_ld_gif && tmp_run && _gif=yes && break
5031 done
5034 # If no library was found, and the user wants support forced,
5035 # then we force it on with libgif, as this is the safest
5036 # assumption IMHO. (libungif & libregif both create symbolic
5037 # links to libgif. We also assume that no x11 support is needed,
5038 # because if you are forcing this, then you _should_ know what
5039 # you are doing. [ Besides, package maintainers should never
5040 # have compiled x11 deps into libungif in the first place. ] )
5041 # </rant>
5042 # --Joey
5043 if test "$_force_gif" = yes && test "$_gif" = no ; then
5044 _gif=yes
5045 _ld_gif="-lgif"
5048 if test "$_gif" = yes ; then
5049 def_gif='#define CONFIG_GIF 1'
5050 _codecmodules="gif $_codecmodules"
5051 _vomodules="gif89a $_vomodules"
5052 _res_comment="old version, some encoding functions disabled"
5053 def_gif_4='#undef CONFIG_GIF_4'
5054 extra_ldflags="$extra_ldflags $_ld_gif"
5056 cat > $TMPC << EOF
5057 #include <signal.h>
5058 #include <gif_lib.h>
5059 void catch() { exit(1); }
5060 int main(void) {
5061 signal(SIGSEGV, catch); // catch segfault
5062 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5063 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5064 return 0;
5067 if cc_check "$_ld_gif" && tmp_run ; then
5068 def_gif_4='#define CONFIG_GIF_4 1'
5069 _res_comment=""
5071 else
5072 def_gif='#undef CONFIG_GIF'
5073 def_gif_4='#undef CONFIG_GIF_4'
5074 _novomodules="gif89a $_novomodules"
5075 _nocodecmodules="gif $_nocodecmodules"
5077 echores "$_gif"
5080 case "$_gif" in yes*)
5081 echocheck "broken giflib workaround"
5082 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5084 cat > $TMPC << EOF
5085 #include <gif_lib.h>
5086 int main(void) {
5087 GifFileType gif;
5088 printf("UserData is at address %p\n", gif.UserData);
5089 return 0;
5092 if cc_check "$_ld_gif" && tmp_run ; then
5093 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5094 echores "disabled"
5095 else
5096 echores "enabled"
5099 esac
5102 echocheck "VESA support"
5103 if test "$_vesa" = auto ; then
5104 cat > $TMPC << EOF
5105 #include <vbe.h>
5106 int main(void) { vbeVersion(); return 0; }
5108 _vesa=no
5109 cc_check -lvbe -llrmi && _vesa=yes
5111 if test "$_vesa" = yes ; then
5112 def_vesa='#define CONFIG_VESA 1'
5113 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5114 _vomodules="vesa $_vomodules"
5115 else
5116 def_vesa='#undef CONFIG_VESA'
5117 _novomodules="vesa $_novomodules"
5119 echores "$_vesa"
5121 #################
5122 # VIDEO + AUDIO #
5123 #################
5126 echocheck "SDL"
5127 if test -z "$_sdlconfig" ; then
5128 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5129 _sdlconfig="sdl-config"
5130 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5131 _sdlconfig="sdl11-config"
5132 else
5133 _sdlconfig=false
5136 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5137 cat > $TMPC << EOF
5138 #include <SDL.h>
5139 int main(int argc, char *argv[]) {
5140 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5141 return 0;
5144 _sdl=no
5145 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5146 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5147 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5148 if test "$_sdlversion" -gt 116 ; then
5149 if test "$_sdlversion" -lt 121 ; then
5150 def_sdlbuggy='#define BUGGY_SDL'
5151 else
5152 def_sdlbuggy='#undef BUGGY_SDL'
5154 _sdl=yes
5159 if test "$_sdl" = yes ; then
5160 def_sdl='#define CONFIG_SDL 1'
5161 if cygwin ; then
5162 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5163 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5164 elif mingw32 ; then
5165 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5166 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5167 else
5168 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5169 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5171 _vomodules="sdl $_vomodules"
5172 _aomodules="sdl $_aomodules"
5173 _res_comment="using $_sdlconfig"
5174 else
5175 def_sdl='#undef CONFIG_SDL'
5176 _novomodules="sdl $_novomodules"
5177 _noaomodules="sdl $_noaomodules"
5179 echores "$_sdl"
5182 if os2 ; then
5183 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5184 if test "$_kva" = auto; then
5185 cat > $TMPC << EOF
5186 #include <os2.h>
5187 #include <kva.h>
5188 int main( void ) { return 0; }
5190 _kva=no;
5191 cc_check -lkva && _kva=yes
5193 if test "$_kva" = yes ; then
5194 def_kva='#define CONFIG_KVA 1'
5195 libs_mplayer="$libs_mplayer -lkva"
5196 _vomodules="kva $_vomodules"
5197 else
5198 def_kva='#undef CONFIG_KVA'
5199 _novomodules="kva $_novomodules"
5201 echores "$_kva"
5202 fi #if os2
5205 if win32; then
5207 echocheck "Windows waveout"
5208 if test "$_win32waveout" = auto ; then
5209 cat > $TMPC << EOF
5210 #include <windows.h>
5211 #include <mmsystem.h>
5212 int main(void) { return 0; }
5214 _win32waveout=no
5215 cc_check -lwinmm && _win32waveout=yes
5217 if test "$_win32waveout" = yes ; then
5218 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5219 libs_mplayer="$libs_mplayer -lwinmm"
5220 _aomodules="win32 $_aomodules"
5221 else
5222 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5223 _noaomodules="win32 $_noaomodules"
5225 echores "$_win32waveout"
5227 echocheck "Direct3D"
5228 if test "$_direct3d" = auto ; then
5229 cat > $TMPC << EOF
5230 #include <windows.h>
5231 #include <d3d9.h>
5232 int main(void) { return 0; }
5234 _direct3d=no
5235 cc_check -ld3d9 && _direct3d=yes
5237 if test "$_direct3d" = yes ; then
5238 def_direct3d='#define CONFIG_DIRECT3D 1'
5239 libs_mplayer="$libs_mplayer -ld3d9"
5240 _vomodules="direct3d $_vomodules"
5241 else
5242 def_direct3d='#undef CONFIG_DIRECT3D'
5243 _novomodules="direct3d $_novomodules"
5245 echores "$_direct3d"
5247 echocheck "Directx"
5248 if test "$_directx" = auto ; then
5249 cat > $TMPC << EOF
5250 #include <windows.h>
5251 #include <ddraw.h>
5252 #include <dsound.h>
5253 int main(void) { return 0; }
5255 _directx=no
5256 cc_check -lgdi32 && _directx=yes
5258 if test "$_directx" = yes ; then
5259 def_directx='#define CONFIG_DIRECTX 1'
5260 libs_mplayer="$libs_mplayer -lgdi32"
5261 _vomodules="directx $_vomodules"
5262 _aomodules="dsound $_aomodules"
5263 else
5264 def_directx='#undef CONFIG_DIRECTX'
5265 _novomodules="directx $_novomodules"
5266 _noaomodules="dsound $_noaomodules"
5268 echores "$_directx"
5270 fi #if win32; then
5273 echocheck "DXR2"
5274 if test "$_dxr2" = auto; then
5275 _dxr2=no
5276 cat > $TMPC << EOF
5277 #include <dxr2ioctl.h>
5278 int main(void) { return 0; }
5280 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5281 cc_check $_inc_tmp && _dxr2=yes && \
5282 extra_cflags="$extra_cflags $_inc_tmp" && break
5283 done
5285 if test "$_dxr2" = yes; then
5286 def_dxr2='#define CONFIG_DXR2 1'
5287 _aomodules="dxr2 $_aomodules"
5288 _vomodules="dxr2 $_vomodules"
5289 else
5290 def_dxr2='#undef CONFIG_DXR2'
5291 _noaomodules="dxr2 $_noaomodules"
5292 _novomodules="dxr2 $_novomodules"
5294 echores "$_dxr2"
5296 echocheck "DXR3/H+"
5297 if test "$_dxr3" = auto ; then
5298 cat > $TMPC << EOF
5299 #include <linux/em8300.h>
5300 int main(void) { return 0; }
5302 _dxr3=no
5303 cc_check && _dxr3=yes
5305 if test "$_dxr3" = yes ; then
5306 def_dxr3='#define CONFIG_DXR3 1'
5307 _vomodules="dxr3 $_vomodules"
5308 else
5309 def_dxr3='#undef CONFIG_DXR3'
5310 _novomodules="dxr3 $_novomodules"
5312 echores "$_dxr3"
5315 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5316 if test "$_ivtv" = auto ; then
5317 cat > $TMPC << EOF
5318 #include <stdlib.h>
5319 #include <inttypes.h>
5320 #include <linux/types.h>
5321 #include <linux/videodev2.h>
5322 #include <linux/ivtv.h>
5323 #include <sys/ioctl.h>
5324 int main(void) {
5325 struct ivtv_cfg_stop_decode sd;
5326 struct ivtv_cfg_start_decode sd1;
5327 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5328 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5329 return 0; }
5331 _ivtv=no
5332 cc_check && _ivtv=yes
5334 if test "$_ivtv" = yes ; then
5335 def_ivtv='#define CONFIG_IVTV 1'
5336 _vomodules="ivtv $_vomodules"
5337 _aomodules="ivtv $_aomodules"
5338 else
5339 def_ivtv='#undef CONFIG_IVTV'
5340 _novomodules="ivtv $_novomodules"
5341 _noaomodules="ivtv $_noaomodules"
5343 echores "$_ivtv"
5346 echocheck "V4L2 MPEG Decoder"
5347 if test "$_v4l2" = auto ; then
5348 cat > $TMPC << EOF
5349 #include <stdlib.h>
5350 #include <inttypes.h>
5351 #include <linux/types.h>
5352 #include <linux/videodev2.h>
5353 #include <linux/version.h>
5354 int main(void) {
5355 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5356 #error kernel headers too old, need 2.6.22
5357 bad_kernel_version();
5358 #endif
5359 struct v4l2_ext_controls ctrls;
5360 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5361 return 0;
5364 _v4l2=no
5365 cc_check && _v4l2=yes
5367 if test "$_v4l2" = yes ; then
5368 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5369 _vomodules="v4l2 $_vomodules"
5370 _aomodules="v4l2 $_aomodules"
5371 else
5372 def_v4l2='#undef CONFIG_V4L2_DECODER'
5373 _novomodules="v4l2 $_novomodules"
5374 _noaomodules="v4l2 $_noaomodules"
5376 echores "$_v4l2"
5380 #########
5381 # AUDIO #
5382 #########
5385 echocheck "OSS Audio"
5386 if test "$_ossaudio" = auto ; then
5387 cat > $TMPC << EOF
5388 #include <sys/ioctl.h>
5389 #include <$_soundcard_header>
5390 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5392 _ossaudio=no
5393 cc_check && _ossaudio=yes
5395 if test "$_ossaudio" = yes ; then
5396 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5397 _aomodules="oss $_aomodules"
5398 if test "$_linux_devfs" = yes; then
5399 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5400 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5401 else
5402 cat > $TMPC << EOF
5403 #include <sys/ioctl.h>
5404 #include <$_soundcard_header>
5405 #ifdef OPEN_SOUND_SYSTEM
5406 int main(void) { return 0; }
5407 #else
5408 #error Not the real thing
5409 #endif
5411 _real_ossaudio=no
5412 cc_check && _real_ossaudio=yes
5413 if test "$_real_ossaudio" = yes; then
5414 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5415 elif netbsd || openbsd ; then
5416 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5417 extra_ldflags="$extra_ldflags -lossaudio"
5418 else
5419 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5421 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5423 else
5424 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5425 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5426 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5427 _noaomodules="oss $_noaomodules"
5429 echores "$_ossaudio"
5432 echocheck "aRts"
5433 if test "$_arts" = auto ; then
5434 _arts=no
5435 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5437 cat > $TMPC << EOF
5438 #include <artsc.h>
5439 int main(void) { return 0; }
5441 cc_check $(artsc-config --libs) $(artsc-config --cflags) && tmp_run && _arts=yes
5446 if test "$_arts" = yes ; then
5447 def_arts='#define CONFIG_ARTS 1'
5448 _aomodules="arts $_aomodules"
5449 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5450 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5451 else
5452 _noaomodules="arts $_noaomodules"
5454 echores "$_arts"
5457 echocheck "EsounD"
5458 if test "$_esd" = auto ; then
5459 _esd=no
5460 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5462 cat > $TMPC << EOF
5463 #include <esd.h>
5464 int main(void) { int fd = esd_open_sound("test"); return fd; }
5466 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5470 echores "$_esd"
5472 if test "$_esd" = yes ; then
5473 def_esd='#define CONFIG_ESD 1'
5474 _aomodules="esd $_aomodules"
5475 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5476 extra_cflags="$extra_cflags $(esd-config --cflags)"
5478 echocheck "esd_get_latency()"
5479 cat > $TMPC << EOF
5480 #include <esd.h>
5481 int main(void) { return esd_get_latency(0); }
5483 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY'
5484 echores "$_esd_latency"
5485 else
5486 def_esd='#undef CONFIG_ESD'
5487 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5488 _noaomodules="esd $_noaomodules"
5492 echocheck "NAS"
5493 if test "$_nas" = auto ; then
5494 cat > $TMPC << EOF
5495 #include <audio/audiolib.h>
5496 int main(void) { return 0; }
5498 _nas=no
5499 cc_check $_ld_lm -laudio -lXt && _nas=yes
5501 if test "$_nas" = yes ; then
5502 def_nas='#define CONFIG_NAS 1'
5503 libs_mplayer="$libs_mplayer -laudio -lXt"
5504 _aomodules="nas $_aomodules"
5505 else
5506 _noaomodules="nas $_noaomodules"
5507 def_nas='#undef CONFIG_NAS'
5509 echores "$_nas"
5512 echocheck "pulse"
5513 if test "$_pulse" = auto ; then
5514 _pulse=no
5515 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5517 cat > $TMPC << EOF
5518 #include <pulse/pulseaudio.h>
5519 int main(void) { return 0; }
5521 cc_check $($_pkg_config --libs --cflags libpulse) && tmp_run && _pulse=yes
5525 echores "$_pulse"
5527 if test "$_pulse" = yes ; then
5528 def_pulse='#define CONFIG_PULSE 1'
5529 _aomodules="pulse $_aomodules"
5530 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5531 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5532 else
5533 def_pulse='#undef CONFIG_PULSE'
5534 _noaomodules="pulse $_noaomodules"
5538 echocheck "JACK"
5539 if test "$_jack" = auto ; then
5540 _jack=yes
5542 cat > $TMPC << EOF
5543 #include <jack/jack.h>
5544 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5546 if cc_check -ljack ; then
5547 libs_mplayer="$libs_mplayer -ljack"
5548 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5549 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5550 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5551 else
5552 _jack=no
5556 if test "$_jack" = yes ; then
5557 def_jack='#define CONFIG_JACK 1'
5558 _aomodules="jack $_aomodules"
5559 else
5560 _noaomodules="jack $_noaomodules"
5562 echores "$_jack"
5564 echocheck "OpenAL"
5565 if test "$_openal" = auto ; then
5566 _openal=no
5567 cat > $TMPC << EOF
5568 #ifdef OPENAL_AL_H
5569 #include <OpenAL/al.h>
5570 #else
5571 #include <AL/al.h>
5572 #endif
5573 int main(void) {
5574 alSourceQueueBuffers(0, 0, 0);
5575 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5576 return 0;
5579 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5580 cc_check $I && _openal=yes && break
5581 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5582 done
5583 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5585 if test "$_openal" = yes ; then
5586 def_openal='#define CONFIG_OPENAL 1'
5587 _aomodules="openal $_aomodules"
5588 else
5589 _noaomodules="openal $_noaomodules"
5591 echores "$_openal"
5593 echocheck "ALSA audio"
5594 if test "$_alloca" != yes ; then
5595 _alsa=no
5596 _res_comment="alloca missing"
5598 if test "$_alsa" != no ; then
5599 _alsa=no
5600 cat > $TMPC << EOF
5601 #include <sys/time.h>
5602 #include <sys/asoundlib.h>
5603 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5604 #error "alsa version != 0.5.x"
5605 #endif
5606 int main(void) { return 0; }
5608 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5610 cat > $TMPC << EOF
5611 #include <sys/time.h>
5612 #include <sys/asoundlib.h>
5613 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5614 #error "alsa version != 0.9.x"
5615 #endif
5616 int main(void) { return 0; }
5618 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5619 cat > $TMPC << EOF
5620 #include <sys/time.h>
5621 #include <alsa/asoundlib.h>
5622 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5623 #error "alsa version != 0.9.x"
5624 #endif
5625 int main(void) { return 0; }
5627 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5629 cat > $TMPC << EOF
5630 #include <sys/time.h>
5631 #include <sys/asoundlib.h>
5632 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5633 #error "alsa version != 1.0.x"
5634 #endif
5635 int main(void) { return 0; }
5637 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5638 cat > $TMPC << EOF
5639 #include <sys/time.h>
5640 #include <alsa/asoundlib.h>
5641 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5642 #error "alsa version != 1.0.x"
5643 #endif
5644 int main(void) { return 0; }
5646 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5648 def_alsa='#undef CONFIG_ALSA'
5649 def_alsa5='#undef CONFIG_ALSA5'
5650 def_alsa9='#undef CONFIG_ALSA9'
5651 def_alsa1x='#undef CONFIG_ALSA1X'
5652 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5653 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5654 if test "$_alsaver" ; then
5655 _alsa=yes
5656 if test "$_alsaver" = '0.5.x' ; then
5657 _alsa5=yes
5658 _aomodules="alsa5 $_aomodules"
5659 def_alsa5='#define CONFIG_ALSA5 1'
5660 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5661 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5662 elif test "$_alsaver" = '0.9.x-sys' ; then
5663 _alsa9=yes
5664 _aomodules="alsa $_aomodules"
5665 def_alsa='#define CONFIG_ALSA 1'
5666 def_alsa9='#define CONFIG_ALSA9 1'
5667 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5668 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5669 elif test "$_alsaver" = '0.9.x-alsa' ; then
5670 _alsa9=yes
5671 _aomodules="alsa $_aomodules"
5672 def_alsa='#define CONFIG_ALSA 1'
5673 def_alsa9='#define CONFIG_ALSA9 1'
5674 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5675 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5676 elif test "$_alsaver" = '1.0.x-sys' ; then
5677 _alsa1x=yes
5678 _aomodules="alsa $_aomodules"
5679 def_alsa='#define CONFIG_ALSA 1'
5680 def_alsa1x="#define CONFIG_ALSA1X 1"
5681 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5682 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5683 elif test "$_alsaver" = '1.0.x-alsa' ; then
5684 _alsa1x=yes
5685 _aomodules="alsa $_aomodules"
5686 def_alsa='#define CONFIG_ALSA 1'
5687 def_alsa1x="#define CONFIG_ALSA1X 1"
5688 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5689 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5690 else
5691 _alsa=no
5692 _res_comment="unknown version"
5694 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5695 else
5696 _noaomodules="alsa $_noaomodules"
5698 echores "$_alsa"
5701 echocheck "Sun audio"
5702 if test "$_sunaudio" = auto ; then
5703 cat > $TMPC << EOF
5704 #include <sys/types.h>
5705 #include <sys/audioio.h>
5706 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5708 _sunaudio=no
5709 cc_check && _sunaudio=yes
5711 if test "$_sunaudio" = yes ; then
5712 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5713 _aomodules="sun $_aomodules"
5714 else
5715 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5716 _noaomodules="sun $_noaomodules"
5718 echores "$_sunaudio"
5721 def_mlib='#define CONFIG_MLIB 0'
5722 if sunos; then
5723 echocheck "Sun mediaLib"
5724 if test "$_mlib" = auto ; then
5725 _mlib=no
5726 cat > $TMPC << EOF
5727 #include <mlib.h>
5728 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5730 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5732 echores "$_mlib"
5733 fi #if sunos
5736 if darwin; then
5737 echocheck "CoreAudio"
5738 if test "$_coreaudio" = auto ; then
5739 cat > $TMPC <<EOF
5740 #include <CoreAudio/CoreAudio.h>
5741 #include <AudioToolbox/AudioToolbox.h>
5742 #include <AudioUnit/AudioUnit.h>
5743 int main(void) { return 0; }
5745 _coreaudio=no
5746 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5748 if test "$_coreaudio" = yes ; then
5749 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5750 def_coreaudio='#define CONFIG_COREAUDIO 1'
5751 _aomodules="coreaudio $_aomodules"
5752 else
5753 def_coreaudio='#undef CONFIG_COREAUDIO'
5754 _noaomodules="coreaudio $_noaomodules"
5756 echores $_coreaudio
5757 fi #if darwin
5760 if irix; then
5761 echocheck "SGI audio"
5762 if test "$_sgiaudio" = auto ; then
5763 # check for SGI audio
5764 cat > $TMPC << EOF
5765 #include <dmedia/audio.h>
5766 int main(void) { return 0; }
5768 _sgiaudio=no
5769 cc_check && _sgiaudio=yes
5771 if test "$_sgiaudio" = "yes" ; then
5772 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5773 libs_mplayer="$libs_mplayer -laudio"
5774 _aomodules="sgi $_aomodules"
5775 else
5776 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5777 _noaomodules="sgi $_noaomodules"
5779 echores "$_sgiaudio"
5780 fi #if irix
5783 if os2 ; then
5784 echocheck "DART"
5785 if test "$_dart" = auto; then
5786 cat > $TMPC << EOF
5787 #include <os2.h>
5788 #include <dart.h>
5789 int main( void ) { return 0; }
5791 _dart=no;
5792 cc_check -ldart && _dart=yes
5794 if test "$_dart" = yes ; then
5795 def_dart='#define CONFIG_DART 1'
5796 libs_mplayer="$libs_mplayer -ldart"
5797 _aomodules="dart $_aomodules"
5798 else
5799 def_dart='#undef CONFIG_DART'
5800 _noaomodules="dart $_noaomodules"
5802 echores "$_dart"
5803 fi #if os2
5806 # set default CD/DVD devices
5807 if win32 || os2 ; then
5808 default_cdrom_device="D:"
5809 elif darwin ; then
5810 default_cdrom_device="/dev/disk1"
5811 elif dragonfly ; then
5812 default_cdrom_device="/dev/cd0"
5813 elif freebsd ; then
5814 default_cdrom_device="/dev/acd0"
5815 elif openbsd ; then
5816 default_cdrom_device="/dev/rcd0a"
5817 elif sunos ; then
5818 default_cdrom_device="/vol/dev/aliases/cdrom0"
5819 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5820 # file system and the volfs service.
5821 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5822 elif amigaos ; then
5823 default_cdrom_device="a1ide.device:2"
5824 else
5825 default_cdrom_device="/dev/cdrom"
5828 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5829 default_dvd_device=$default_cdrom_device
5830 elif darwin ; then
5831 default_dvd_device="/dev/rdiskN"
5832 else
5833 default_dvd_device="/dev/dvd"
5837 echocheck "VCD support"
5838 if test "$_vcd" = auto; then
5839 _vcd=no
5840 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5841 _vcd=yes
5842 elif mingw32; then
5843 cat > $TMPC << EOF
5844 #include <ddk/ntddcdrm.h>
5845 int main(void) { return 0; }
5847 cc_check && _vcd=yes
5850 if test "$_vcd" = yes; then
5851 _inputmodules="vcd $_inputmodules"
5852 def_vcd='#define CONFIG_VCD 1'
5853 else
5854 def_vcd='#undef CONFIG_VCD'
5855 _noinputmodules="vcd $_noinputmodules"
5856 _res_comment="not supported on this OS"
5858 echores "$_vcd"
5862 echocheck "dvdread"
5863 if test "$_dvdread_internal" = auto ; then
5864 _dvdread_internal=no
5865 _dvdread=no
5866 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5867 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5868 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5869 || darwin || win32 || os2; then
5870 _dvdread_internal=yes
5871 _dvdread=yes
5872 extra_cflags="-Ilibdvdread4 $extra_cflags"
5874 elif test "$_dvdread" = auto ; then
5875 _dvdread=no
5876 if test "$_dl" = yes; then
5877 cat > $TMPC << EOF
5878 #include <inttypes.h>
5879 #include <dvdread/dvd_reader.h>
5880 #include <dvdread/ifo_types.h>
5881 #include <dvdread/ifo_read.h>
5882 #include <dvdread/nav_read.h>
5883 int main(void) { return 0; }
5885 _dvdreadcflags=$($_dvdreadconfig --cflags)
5886 _dvdreadlibs=$($_dvdreadconfig --libs)
5887 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5888 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5889 _dvdread=yes
5890 extra_cflags="$extra_cflags $_dvdreadcflags"
5891 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5892 _res_comment="external"
5897 if test "$_dvdread_internal" = yes; then
5898 def_dvdread='#define CONFIG_DVDREAD 1'
5899 _inputmodules="dvdread(internal) $_inputmodules"
5900 _largefiles=yes
5901 _res_comment="internal"
5902 elif test "$_dvdread" = yes; then
5903 def_dvdread='#define CONFIG_DVDREAD 1'
5904 _largefiles=yes
5905 extra_ldflags="$extra_ldflags -ldvdread"
5906 _inputmodules="dvdread(external) $_inputmodules"
5907 _res_comment="external"
5908 else
5909 def_dvdread='#undef CONFIG_DVDREAD'
5910 _noinputmodules="dvdread $_noinputmodules"
5912 echores "$_dvdread"
5915 echocheck "internal libdvdcss"
5916 if test "$_libdvdcss_internal" = auto ; then
5917 _libdvdcss_internal=no
5918 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5919 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5921 if test "$_libdvdcss_internal" = yes ; then
5922 if linux || netbsd || openbsd || bsdos ; then
5923 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5924 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5925 elif freebsd || dragonfly ; then
5926 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5927 elif darwin ; then
5928 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5929 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5930 elif cygwin ; then
5931 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5932 elif beos ; then
5933 cflags_libdvdcss="-DSYS_BEOS"
5934 elif os2 ; then
5935 cflags_libdvdcss="-DSYS_OS2"
5937 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5938 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5939 _inputmodules="libdvdcss(internal) $_inputmodules"
5940 _largefiles=yes
5941 else
5942 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5944 echores "$_libdvdcss_internal"
5947 echocheck "cdparanoia"
5948 if test "$_cdparanoia" = auto ; then
5949 cat > $TMPC <<EOF
5950 #include <cdda_interface.h>
5951 #include <cdda_paranoia.h>
5952 // This need a better test. How ?
5953 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5955 _cdparanoia=no
5956 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5957 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5958 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5959 done
5961 if test "$_cdparanoia" = yes ; then
5962 _cdda='yes'
5963 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5964 openbsd && extra_ldflags="$extra_ldflags -lutil"
5966 echores "$_cdparanoia"
5969 echocheck "libcdio"
5970 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5971 cat > $TMPC << EOF
5972 #include <stdio.h>
5973 #include <cdio/version.h>
5974 #include <cdio/cdda.h>
5975 #include <cdio/paranoia.h>
5976 int main(void) {
5977 void *test = cdda_verbose_set;
5978 printf("%s\n", CDIO_VERSION);
5979 return test == (void *)1;
5982 _libcdio=no
5983 for _ld_tmp in "" "-lwinmm" ; do
5984 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5985 cc_check $_ld_tmp $_ld_lm \
5986 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5987 done
5988 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5989 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5990 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5991 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5992 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5995 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5996 _cdda='yes'
5997 def_libcdio='#define CONFIG_LIBCDIO'
5998 def_havelibcdio='yes'
5999 else
6000 if test "$_cdparanoia" = yes ; then
6001 _res_comment="using cdparanoia"
6003 def_libcdio='#undef CONFIG_LIBCDIO'
6004 def_havelibcdio='no'
6006 echores "$_libcdio"
6008 if test "$_cdda" = yes ; then
6009 test $_cddb = auto && test $_network = yes && _cddb=yes
6010 def_cdparanoia='#define CONFIG_CDDA'
6011 _inputmodules="cdda $_inputmodules"
6012 else
6013 def_cdparanoia='#undef CONFIG_CDDA'
6014 _noinputmodules="cdda $_noinputmodules"
6017 if test "$_cddb" = yes ; then
6018 def_cddb='#define CONFIG_CDDB'
6019 _inputmodules="cddb $_inputmodules"
6020 else
6021 _cddb=no
6022 def_cddb='#undef CONFIG_CDDB'
6023 _noinputmodules="cddb $_noinputmodules"
6026 echocheck "bitmap font support"
6027 if test "$_bitmap_font" = yes ; then
6028 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6029 else
6030 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6032 echores "$_bitmap_font"
6035 echocheck "freetype >= 2.0.9"
6037 # freetype depends on iconv
6038 if test "$_iconv" = no ; then
6039 _freetype=no
6040 _res_comment="iconv support needed"
6043 if test "$_freetype" = auto ; then
6044 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6045 cat > $TMPC << EOF
6046 #include <stdio.h>
6047 #include <ft2build.h>
6048 #include FT_FREETYPE_H
6049 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6050 #error "Need FreeType 2.0.9 or newer"
6051 #endif
6052 int main(void) {
6053 FT_Library library;
6054 FT_Int major=-1,minor=-1,patch=-1;
6055 int err=FT_Init_FreeType(&library);
6056 if (err) {
6057 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
6058 exit(err);
6060 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
6061 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
6062 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
6063 (int)major,(int)minor,(int)patch );
6064 if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) {
6065 printf("Library and header version mismatch! Fix it in your distribution!\n");
6066 exit(1);
6068 return 0;
6071 _freetype=no
6072 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _freetype=yes
6073 else
6074 _freetype=no
6077 if test "$_freetype" = yes ; then
6078 def_freetype='#define CONFIG_FREETYPE'
6079 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6080 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6081 else
6082 def_freetype='#undef CONFIG_FREETYPE'
6084 echores "$_freetype"
6086 if test "$_freetype" = no ; then
6087 _fontconfig=no
6088 _res_comment="FreeType support needed"
6090 echocheck "fontconfig"
6091 if test "$_fontconfig" = auto ; then
6092 cat > $TMPC << EOF
6093 #include <stdio.h>
6094 #include <stdlib.h>
6095 #include <fontconfig/fontconfig.h>
6096 int main(void) {
6097 int err = FcInit();
6098 if (err == FcFalse) {
6099 printf("Couldn't initialize fontconfig lib\n");
6100 exit(err);
6102 return 0;
6105 _fontconfig=no
6106 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6107 _ld_tmp="-lfontconfig $_ld_tmp"
6108 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6109 done
6110 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6111 _inc_tmp=$($_pkg_config --cflags fontconfig)
6112 _ld_tmp=$($_pkg_config --libs fontconfig)
6113 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6114 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6117 if test "$_fontconfig" = yes ; then
6118 def_fontconfig='#define CONFIG_FONTCONFIG'
6119 else
6120 def_fontconfig='#undef CONFIG_FONTCONFIG'
6122 echores "$_fontconfig"
6125 echocheck "SSA/ASS support"
6126 # libass depends on FreeType
6127 if test "$_freetype" = no ; then
6128 _ass=no
6129 _res_comment="FreeType support needed"
6132 if test "$_ass" = auto ; then
6133 cat > $TMPC << EOF
6134 #include <ft2build.h>
6135 #include FT_FREETYPE_H
6136 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6137 #error "Need FreeType 2.1.8 or newer"
6138 #endif
6139 int main(void) { return 0; }
6141 _ass=no
6142 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _ass=yes
6143 if test "$_ass" = no ; then
6144 _res_comment="FreeType >= 2.1.8 needed"
6147 if test "$_ass" = yes ; then
6148 def_ass='#define CONFIG_ASS'
6149 else
6150 def_ass='#undef CONFIG_ASS'
6152 echores "$_ass"
6155 echocheck "fribidi with charsets"
6156 if test "$_fribidi" = auto ; then
6157 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6158 cat > $TMPC << EOF
6159 #include <stdio.h>
6160 /* workaround for fribidi 0.10.4 and below */
6161 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6162 #include <fribidi/fribidi.h>
6163 int main(void) {
6164 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6165 printf("Fribidi headers are not consistents with the library!\n");
6166 exit(1);
6168 return 0;
6171 _fribidi=no
6172 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && tmp_run && _fribidi=yes
6173 else
6174 _fribidi=no
6177 if test "$_fribidi" = yes ; then
6178 def_fribidi='#define CONFIG_FRIBIDI'
6179 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6180 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6181 else
6182 def_fribidi='#undef CONFIG_FRIBIDI'
6184 echores "$_fribidi"
6187 echocheck "ENCA"
6188 if test "$_enca" = auto ; then
6189 cat > $TMPC << EOF
6190 #include <sys/types.h>
6191 #include <enca.h>
6192 int main(void) {
6193 const char **langs;
6194 size_t langcnt;
6195 langs = enca_get_languages(&langcnt);
6196 return 0;
6199 _enca=no
6200 cc_check -lenca $_ld_lm && _enca=yes
6202 if test "$_enca" = yes ; then
6203 def_enca='#define CONFIG_ENCA 1'
6204 extra_ldflags="$extra_ldflags -lenca"
6205 else
6206 def_enca='#undef CONFIG_ENCA'
6208 echores "$_enca"
6211 echocheck "zlib"
6212 cat > $TMPC << EOF
6213 #include <zlib.h>
6214 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6216 _zlib=no
6217 cc_check -lz && _zlib=yes
6218 if test "$_zlib" = yes ; then
6219 def_zlib='#define CONFIG_ZLIB 1'
6220 extra_ldflags="$extra_ldflags -lz"
6221 else
6222 def_zlib='#define CONFIG_ZLIB 0'
6223 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6224 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER//)
6226 echores "$_zlib"
6229 echocheck "bzlib"
6230 bzlib=no
6231 def_bzlib='#define CONFIG_BZLIB 0'
6232 cat > $TMPC << EOF
6233 #include <bzlib.h>
6234 int main(void) { BZ2_bzlibVersion(); return 0; }
6236 cc_check -lbz2 && bzlib=yes
6237 if test "$bzlib" = yes ; then
6238 def_bzlib='#define CONFIG_BZLIB 1'
6239 extra_ldflags="$extra_ldflags -lbz2"
6241 echores "$bzlib"
6244 echocheck "RTC"
6245 if test "$_rtc" = auto ; then
6246 cat > $TMPC << EOF
6247 #include <sys/ioctl.h>
6248 #ifdef __linux__
6249 #include <linux/rtc.h>
6250 #else
6251 #include <rtc.h>
6252 #define RTC_PIE_ON RTCIO_PIE_ON
6253 #endif
6254 int main(void) { return RTC_PIE_ON; }
6256 _rtc=no
6257 cc_check && _rtc=yes
6258 ppc && _rtc=no
6260 if test "$_rtc" = yes ; then
6261 def_rtc='#define HAVE_RTC 1'
6262 else
6263 def_rtc='#undef HAVE_RTC'
6265 echores "$_rtc"
6268 echocheck "liblzo2 support"
6269 if test "$_liblzo" = auto ; then
6270 _liblzo=no
6271 cat > $TMPC << EOF
6272 #include <lzo/lzo1x.h>
6273 int main(void) { lzo_init();return 0; }
6275 cc_check -llzo2 && _liblzo=yes
6277 if test "$_liblzo" = yes ; then
6278 def_liblzo='#define CONFIG_LIBLZO 1'
6279 extra_ldflags="$extra_ldflags -llzo2"
6280 _codecmodules="liblzo $_codecmodules"
6281 else
6282 def_liblzo='#undef CONFIG_LIBLZO'
6283 _nocodecmodules="liblzo $_nocodecmodules"
6285 echores "$_liblzo"
6288 echocheck "mad support"
6289 if test "$_mad" = auto ; then
6290 _mad=no
6291 cat > $TMPC << EOF
6292 #include <mad.h>
6293 int main(void) { return 0; }
6295 cc_check -lmad && _mad=yes
6297 if test "$_mad" = yes ; then
6298 def_mad='#define CONFIG_LIBMAD 1'
6299 extra_ldflags="$extra_ldflags -lmad"
6300 _codecmodules="libmad $_codecmodules"
6301 else
6302 def_mad='#undef CONFIG_LIBMAD'
6303 _nocodecmodules="libmad $_nocodecmodules"
6305 echores "$_mad"
6307 echocheck "Twolame"
6308 if test "$_twolame" = auto ; then
6309 cat > $TMPC <<EOF
6310 #include <twolame.h>
6311 int main(void) { twolame_init(); return 0; }
6313 _twolame=no
6314 cc_check -ltwolame $_ld_lm && _twolame=yes
6316 if test "$_twolame" = yes ; then
6317 def_twolame='#define CONFIG_TWOLAME 1'
6318 libs_mencoder="$libs_mencoder -ltwolame"
6319 _codecmodules="twolame $_codecmodules"
6320 else
6321 def_twolame='#undef CONFIG_TWOLAME'
6322 _nocodecmodules="twolame $_nocodecmodules"
6324 echores "$_twolame"
6326 echocheck "Toolame"
6327 if test "$_toolame" = auto ; then
6328 _toolame=no
6329 if test "$_twolame" = yes ; then
6330 _res_comment="disabled by twolame"
6331 else
6332 cat > $TMPC <<EOF
6333 #include <toolame.h>
6334 int main(void) { toolame_init(); return 0; }
6336 cc_check -ltoolame $_ld_lm && _toolame=yes
6339 if test "$_toolame" = yes ; then
6340 def_toolame='#define CONFIG_TOOLAME 1'
6341 libs_mencoder="$libs_mencoder -ltoolame"
6342 _codecmodules="toolame $_codecmodules"
6343 else
6344 def_toolame='#undef CONFIG_TOOLAME'
6345 _nocodecmodules="toolame $_nocodecmodules"
6347 if test "$_toolamedir" ; then
6348 _res_comment="using $_toolamedir"
6350 echores "$_toolame"
6352 echocheck "OggVorbis support"
6353 if test "$_tremor_internal" = yes; then
6354 _libvorbis=no
6355 elif test "$_tremor" = auto; then
6356 _tremor=no
6357 cat > $TMPC << EOF
6358 #include <tremor/ivorbiscodec.h>
6359 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6361 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6363 if test "$_libvorbis" = auto; then
6364 _libvorbis=no
6365 cat > $TMPC << EOF
6366 #include <vorbis/codec.h>
6367 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6369 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6371 if test "$_tremor_internal" = yes ; then
6372 _vorbis=yes
6373 def_vorbis='#define CONFIG_OGGVORBIS 1'
6374 def_tremor='#define CONFIG_TREMOR 1'
6375 _codecmodules="tremor(internal) $_codecmodules"
6376 _res_comment="internal Tremor"
6377 if test "$_tremor_low" = yes ; then
6378 cflags_tremor_low="-D_LOW_ACCURACY_"
6379 _res_comment="internal low accuracy Tremor"
6381 elif test "$_tremor" = yes ; then
6382 _vorbis=yes
6383 def_vorbis='#define CONFIG_OGGVORBIS 1'
6384 def_tremor='#define CONFIG_TREMOR 1'
6385 _codecmodules="tremor(external) $_codecmodules"
6386 _res_comment="external Tremor"
6387 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6388 elif test "$_libvorbis" = yes ; then
6389 _vorbis=yes
6390 def_vorbis='#define CONFIG_OGGVORBIS 1'
6391 _codecmodules="libvorbis $_codecmodules"
6392 _res_comment="libvorbis"
6393 extra_ldflags="$extra_ldflags -lvorbis -logg"
6394 else
6395 _vorbis=no
6396 _nocodecmodules="libvorbis $_nocodecmodules"
6398 echores "$_vorbis"
6400 echocheck "libspeex (version >= 1.1 required)"
6401 if test "$_speex" = auto ; then
6402 _speex=no
6403 cat > $TMPC << EOF
6404 #include <speex/speex.h>
6405 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6407 cc_check -lspeex $_ld_lm && _speex=yes
6409 if test "$_speex" = yes ; then
6410 def_speex='#define CONFIG_SPEEX 1'
6411 extra_ldflags="$extra_ldflags -lspeex"
6412 _codecmodules="speex $_codecmodules"
6413 else
6414 def_speex='#undef CONFIG_SPEEX'
6415 _nocodecmodules="speex $_nocodecmodules"
6417 echores "$_speex"
6419 echocheck "OggTheora support"
6420 if test "$_theora" = auto ; then
6421 _theora=no
6422 cat > $TMPC << EOF
6423 #include <theora/theora.h>
6424 #include <string.h>
6425 int main(void) {
6426 /* Theora is in flux, make sure that all interface routines and datatypes
6427 * exist and work the way we expect it, so we don't break MPlayer. */
6428 ogg_packet op;
6429 theora_comment tc;
6430 theora_info inf;
6431 theora_state st;
6432 yuv_buffer yuv;
6433 int r;
6434 double t;
6436 theora_info_init(&inf);
6437 theora_comment_init(&tc);
6439 return 0;
6441 /* we don't want to execute this kind of nonsense; just for making sure
6442 * that compilation works... */
6443 memset(&op, 0, sizeof(op));
6444 r = theora_decode_header(&inf, &tc, &op);
6445 r = theora_decode_init(&st, &inf);
6446 t = theora_granule_time(&st, op.granulepos);
6447 r = theora_decode_packetin(&st, &op);
6448 r = theora_decode_YUVout(&st, &yuv);
6449 theora_clear(&st);
6451 return 0;
6454 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6455 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6456 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6457 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6458 if test _theora = no; then
6459 _ld_theora="-ltheora -logg"
6460 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6462 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6463 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6464 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6465 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6466 extra_ldflags="$extra_ldflags $_ld_theora" &&
6467 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6468 if test _theora = no; then
6469 _ld_theora="-ltheora -logg"
6470 cc_check tremor/bitwise.c $_ld_theora &&
6471 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6475 if test "$_theora" = yes ; then
6476 def_theora='#define CONFIG_OGGTHEORA 1'
6477 _codecmodules="libtheora $_codecmodules"
6478 # when --enable-theora is forced, we'd better provide a probably sane
6479 # $_ld_theora than nothing
6480 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6481 else
6482 def_theora='#undef CONFIG_OGGTHEORA'
6483 _nocodecmodules="libtheora $_nocodecmodules"
6485 echores "$_theora"
6487 echocheck "internal mp3lib support"
6488 if test "$_mp3lib" = auto ; then
6489 test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes
6491 if test "$_mp3lib" = yes ; then
6492 def_mp3lib='#define CONFIG_MP3LIB 1'
6493 _codecmodules="mp3lib(internal) $_codecmodules"
6494 else
6495 def_mp3lib='#undef CONFIG_MP3LIB'
6496 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6498 echores "$_mp3lib"
6500 echocheck "liba52 support"
6501 if test "$_liba52_internal" = auto ; then
6502 test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes
6504 def_liba52='#undef CONFIG_LIBA52'
6505 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6506 if test "$_liba52_internal" = yes ; then
6507 _liba52=yes
6508 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6509 _res_comment="internal"
6510 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6511 _liba52=no
6512 cat > $TMPC << EOF
6513 #include <inttypes.h>
6514 #include <a52dec/a52.h>
6515 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6517 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6519 if test "$_liba52" = yes ; then
6520 def_liba52='#define CONFIG_LIBA52 1'
6521 _codecmodules="liba52($_res_comment) $_codecmodules"
6522 else
6523 _nocodecmodules="liba52 $_nocodecmodules"
6525 echores "$_liba52"
6527 echocheck "internal libmpeg2 support"
6528 if test "$_libmpeg2" = auto ; then
6529 _libmpeg2=yes
6530 if alpha && test cc_vendor=gnu; then
6531 case $cc_version in
6532 2*|3.0*|3.1*) # cannot compile MVI instructions
6533 _libmpeg2=no
6534 _res_comment="broken gcc"
6536 esac
6539 if test "$_libmpeg2" = yes ; then
6540 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6541 _codecmodules="libmpeg2(internal) $_codecmodules"
6542 else
6543 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6544 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6546 echores "$_libmpeg2"
6548 echocheck "libdca support"
6549 if test "$_libdca" = auto ; then
6550 _libdca=no
6551 cat > $TMPC << EOF
6552 #include <inttypes.h>
6553 #include <dts.h>
6554 int main(void) { dts_init(0); return 0; }
6556 for _ld_dca in -ldts -ldca ; do
6557 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6558 && _libdca=yes && break
6559 done
6561 if test "$_libdca" = yes ; then
6562 def_libdca='#define CONFIG_LIBDCA 1'
6563 _codecmodules="libdca $_codecmodules"
6564 else
6565 def_libdca='#undef CONFIG_LIBDCA'
6566 _nocodecmodules="libdca $_nocodecmodules"
6568 echores "$_libdca"
6570 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6571 if test "$_musepack" = auto ; then
6572 _musepack=no
6573 cat > $TMPC << EOF
6574 #include <stddef.h>
6575 #include <mpcdec/mpcdec.h>
6576 int main(void) {
6577 mpc_streaminfo info;
6578 mpc_decoder decoder;
6579 mpc_decoder_set_streaminfo(&decoder, &info);
6580 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6581 return 0;
6584 cc_check -lmpcdec $_ld_lm && _musepack=yes
6586 if test "$_musepack" = yes ; then
6587 def_musepack='#define CONFIG_MUSEPACK 1'
6588 extra_ldflags="$extra_ldflags -lmpcdec"
6589 _codecmodules="musepack $_codecmodules"
6590 else
6591 def_musepack='#undef CONFIG_MUSEPACK'
6592 _nocodecmodules="musepack $_nocodecmodules"
6594 echores "$_musepack"
6597 echocheck "FAAC support"
6598 if test "$_faac" = auto ; then
6599 cat > $TMPC <<EOF
6600 #include <inttypes.h>
6601 #include <faac.h>
6602 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6604 _faac=no
6605 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6606 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6607 done
6609 if test "$_faac" = yes ; then
6610 def_faac="#define CONFIG_FAAC 1"
6611 test "$_faac_lavc" = auto && _faac_lavc=yes
6612 if test "$_faac_lavc" = yes ; then
6613 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6614 libs_mplayer="$libs_mplayer $_ld_faac"
6615 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6617 _codecmodules="faac $_codecmodules"
6618 else
6619 _faac_lavc=no
6620 def_faac="#undef CONFIG_FAAC"
6621 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6622 _nocodecmodules="faac $_nocodecmodules"
6624 _res_comment="in libavcodec: $_faac_lavc"
6625 echores "$_faac"
6628 echocheck "FAAD2 support"
6629 if test "$_faad_internal" = auto ; then
6630 if x86_32 && test cc_vendor=gnu; then
6631 case $cc_version in
6632 3.1*|3.2) # ICE/insn with these versions
6633 _faad_internal=no
6634 _res_comment="broken gcc"
6637 _faad=yes
6638 _faad_internal=yes
6640 esac
6641 else
6642 _faad=yes
6643 _faad_internal=yes
6646 if test "$_faad" = auto ; then
6647 cat > $TMPC << EOF
6648 #include <faad.h>
6649 #ifndef FAAD_MIN_STREAMSIZE
6650 #error Too old version
6651 #endif
6652 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6653 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6655 cc_check -lfaad $_ld_lm && _faad=yes
6658 def_faad='#undef CONFIG_FAAD'
6659 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6660 if test "$_faad_internal" = yes ; then
6661 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6662 _res_comment="internal floating-point"
6663 if test "$_faad_fixed" = yes ; then
6664 # The FIXED_POINT implementation of FAAD2 improves performance
6665 # on some platforms, especially for SBR files.
6666 cflags_faad_fixed="-DFIXED_POINT"
6667 _res_comment="internal fixed-point"
6669 elif test "$_faad" = yes ; then
6670 extra_ldflags="$extra_ldflags -lfaad"
6673 if test "$_faad" = yes ; then
6674 def_faad='#define CONFIG_FAAD 1'
6675 if test "$_faad_internal" = yes ; then
6676 _codecmodules="faad2(internal) $_codecmodules"
6677 else
6678 _codecmodules="faad2 $_codecmodules"
6680 else
6681 _faad=no
6682 _nocodecmodules="faad2 $_nocodecmodules"
6684 echores "$_faad"
6687 echocheck "LADSPA plugin support"
6688 if test "$_ladspa" = auto ; then
6689 cat > $TMPC <<EOF
6690 #include <stdio.h>
6691 #include <ladspa.h>
6692 int main(void) {
6693 const LADSPA_Descriptor *ld = NULL;
6694 return 0;
6697 _ladspa=no
6698 cc_check && _ladspa=yes
6700 if test "$_ladspa" = yes; then
6701 def_ladspa="#define CONFIG_LADSPA"
6702 else
6703 def_ladspa="#undef CONFIG_LADSPA"
6705 echores "$_ladspa"
6708 echocheck "libbs2b audio filter support"
6709 if test "$_libbs2b" = auto ; then
6710 cat > $TMPC <<EOF
6711 #include <bs2b.h>
6712 #if BS2B_VERSION_MAJOR < 3
6713 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6714 #endif
6715 int main(void) {
6716 t_bs2bdp filter;
6717 filter=bs2b_open();
6718 bs2b_close(filter);
6719 return 0;
6722 _libbs2b=no
6723 if $_pkg_config --exists libbs2b ; then
6724 _inc_tmp=$($_pkg_config --cflags libbs2b)
6725 _ld_tmp=$($_pkg_config --libs libbs2b)
6726 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6727 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6728 else
6729 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6730 -I/usr/local/include/bs2b ; do
6731 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6732 extra_ldflags="$extra_ldflags -lbs2b"
6733 extra_cflags="$extra_cflags $_inc_tmp"
6734 _libbs2b=yes
6735 break
6737 done
6740 def_libbs2b="#undef CONFIG_LIBBS2B"
6741 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B"
6742 echores "$_libbs2b"
6745 if test -z "$_codecsdir" ; then
6746 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6747 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6748 if test -d "$dir" ; then
6749 _codecsdir="$dir"
6750 break;
6752 done
6754 # Fall back on default directory.
6755 if test -z "$_codecsdir" ; then
6756 _codecsdir="$_libdir/codecs"
6757 mingw32 && _codecsdir="codecs"
6758 os2 && _codecsdir="codecs"
6762 echocheck "Win32 codecs"
6763 if test "$_win32dll" = auto ; then
6764 _win32dll=no
6765 if x86_32 && ! qnx; then
6766 _win32dll=yes
6769 if test "$_win32dll" = yes ; then
6770 def_win32dll='#define CONFIG_WIN32DLL 1'
6771 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6772 _res_comment="using $_win32codecsdir"
6773 if ! win32 ; then
6774 def_win32_loader='#define WIN32_LOADER 1'
6775 _win32_emulation=yes
6776 else
6777 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6778 _res_comment="using native windows"
6780 _codecmodules="win32 $_codecmodules"
6781 else
6782 def_win32dll='#undef CONFIG_WIN32DLL'
6783 def_win32_loader='#undef WIN32_LOADER'
6784 _nocodecmodules="win32 $_nocodecmodules"
6786 echores "$_win32dll"
6789 echocheck "XAnim codecs"
6790 if test "$_xanim" = auto ; then
6791 _xanim=no
6792 _res_comment="dynamic loader support needed"
6793 if test "$_dl" = yes ; then
6794 _xanim=yes
6797 if test "$_xanim" = yes ; then
6798 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6799 def_xanim='#define CONFIG_XANIM 1'
6800 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6801 _codecmodules="xanim $_codecmodules"
6802 _res_comment="using $_xanimcodecsdir"
6803 else
6804 def_xanim='#undef CONFIG_XANIM'
6805 def_xanim_path='#undef XACODEC_PATH'
6806 _nocodecmodules="xanim $_nocodecmodules"
6808 echores "$_xanim"
6811 echocheck "RealPlayer codecs"
6812 if test "$_real" = auto ; then
6813 _real=no
6814 _res_comment="dynamic loader support needed"
6815 if test "$_dl" = yes || test "$_win32dll" = yes &&
6816 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6817 _real=yes
6820 if test "$_real" = yes ; then
6821 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6822 def_real='#define CONFIG_REALCODECS 1'
6823 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6824 _codecmodules="real $_codecmodules"
6825 _res_comment="using $_realcodecsdir"
6826 else
6827 def_real='#undef CONFIG_REALCODECS'
6828 def_real_path="#undef REALCODEC_PATH"
6829 _nocodecmodules="real $_nocodecmodules"
6831 echores "$_real"
6834 echocheck "QuickTime codecs"
6835 _qtx_emulation=no
6836 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6837 if test "$_qtx" = auto ; then
6838 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6840 if test "$_qtx" = yes ; then
6841 def_qtx='#define CONFIG_QTX_CODECS 1'
6842 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6843 _codecmodules="qtx $_codecmodules"
6844 darwin || win32 || _qtx_emulation=yes
6845 else
6846 def_qtx='#undef CONFIG_QTX_CODECS'
6847 _nocodecmodules="qtx $_nocodecmodules"
6849 echores "$_qtx"
6851 echocheck "Nemesi Streaming Media libraries"
6852 if test "$_nemesi" = auto && test "$_network" = yes ; then
6853 _nemesi=no
6854 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6855 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6856 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6857 _nemesi=yes
6860 if test "$_nemesi" = yes; then
6861 _native_rtsp=no
6862 def_nemesi='#define CONFIG_LIBNEMESI 1'
6863 _inputmodules="nemesi $_inputmodules"
6864 else
6865 _native_rtsp="$_network"
6866 _nemesi=no
6867 def_nemesi='#undef CONFIG_LIBNEMESI'
6868 _noinputmodules="nemesi $_noinputmodules"
6870 echores "$_nemesi"
6872 echocheck "LIVE555 Streaming Media libraries"
6873 if test "$_live" = auto && test "$_network" = yes ; then
6874 cat > $TMPCPP << EOF
6875 #include <liveMedia.hh>
6876 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6877 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6878 #endif
6879 int main(void) { return 0; }
6882 _live=no
6883 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
6884 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6885 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6886 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6887 $_livelibdir/groupsock/libgroupsock.a \
6888 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6889 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6890 $extra_ldflags -lstdc++" \
6891 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6892 -I$_livelibdir/UsageEnvironment/include \
6893 -I$_livelibdir/BasicUsageEnvironment/include \
6894 -I$_livelibdir/groupsock/include" && \
6895 _live=yes && break
6896 done
6897 if test "$_live" != yes ; then
6898 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6899 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6900 _live_dist=yes
6904 if test "$_live" = yes && test "$_network" = yes; then
6905 test $_livelibdir && _res_comment="using $_livelibdir"
6906 def_live='#define CONFIG_LIVE555 1'
6907 _inputmodules="live555 $_inputmodules"
6908 elif test "$_live_dist" = yes && test "$_network" = yes; then
6909 _res_comment="using distribution version"
6910 _live="yes"
6911 def_live='#define CONFIG_LIVE555 1'
6912 extra_ldflags="$extra_ldflags $ld_tmp"
6913 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6914 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6915 _inputmodules="live555 $_inputmodules"
6916 else
6917 _live=no
6918 def_live='#undef CONFIG_LIVE555'
6919 _noinputmodules="live555 $_noinputmodules"
6921 echores "$_live"
6924 echocheck "FFmpeg libavutil"
6925 if test "$_libavutil_a" = auto ; then
6926 if test -d libavutil ; then
6927 _libavutil_a=yes
6928 _res_comment="static"
6929 else
6930 die "MPlayer will not compile without libavutil in the source tree."
6932 elif test "$_libavutil_so" = auto ; then
6933 _libavutil_so=no
6934 cat > $TMPC << EOF
6935 #include <libavutil/common.h>
6936 int main(void) { av_gcd(1,1); return 0; }
6938 if $_pkg_config --exists libavutil ; then
6939 _inc_libavutil=$($_pkg_config --cflags libavutil)
6940 _ld_tmp=$($_pkg_config --libs libavutil)
6941 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6942 && _libavutil_so=yes
6943 elif cc_check -lavutil $_ld_lm ; then
6944 extra_ldflags="$extra_ldflags -lavutil"
6945 _libavutil_so=yes
6946 _res_comment="using libavutil.so, but static libavutil is recommended"
6949 _libavutil=no
6950 def_libavutil='#undef CONFIG_LIBAVUTIL'
6951 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6952 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6953 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6954 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6955 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6956 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6957 # neither static nor shared libavutil is available, but it is mandatory ...
6958 if test "$_libavutil" = no ; then
6959 die "You need static or shared libavutil, MPlayer will not compile without!"
6961 echores "$_libavutil"
6963 echocheck "FFmpeg libavcodec"
6964 if test "$_libavcodec_a" = auto ; then
6965 _libavcodec_a=no
6966 if test -d libavcodec && test -f libavcodec/utils.c ; then
6967 _libavcodec_a="yes"
6968 _res_comment="static"
6970 elif test "$_libavcodec_so" = auto ; then
6971 _libavcodec_so=no
6972 _res_comment="libavcodec.so is discouraged over static libavcodec"
6973 cat > $TMPC << EOF
6974 #include <libavcodec/avcodec.h>
6975 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6977 if $_pkg_config --exists libavcodec ; then
6978 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6979 _ld_tmp=$($_pkg_config --libs libavcodec)
6980 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6981 && _libavcodec_so=yes
6982 elif cc_check -lavcodec $_ld_lm ; then
6983 extra_ldflags="$extra_ldflags -lavcodec"
6984 _libavcodec_so=yes
6985 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6988 _libavcodec=no
6989 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6990 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
6991 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
6992 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6993 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6994 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
6995 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
6996 test "$_libavcodec_mpegaudio_hp" = yes \
6997 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6998 if test "$_libavcodec_a" = yes ; then
6999 _codecmodules="libavcodec(internal) $_codecmodules"
7000 elif test "$_libavcodec_so" = yes ; then
7001 _codecmodules="libavcodec.so $_codecmodules"
7002 else
7003 _nocodecmodules="libavcodec $_nocodecmodules"
7005 echores "$_libavcodec"
7007 echocheck "FFmpeg libavformat"
7008 if test "$_libavformat_a" = auto ; then
7009 _libavformat_a=no
7010 if test -d libavformat && test -f libavformat/utils.c ; then
7011 _libavformat_a=yes
7012 _res_comment="static"
7014 elif test "$_libavformat_so" = auto ; then
7015 _libavformat_so=no
7016 cat > $TMPC <<EOF
7017 #include <libavformat/avformat.h>
7018 #include <libavcodec/opt.h>
7019 int main(void) { av_alloc_format_context(); return 0; }
7021 if $_pkg_config --exists libavformat ; then
7022 _inc_libavformat=$($_pkg_config --cflags libavformat)
7023 _ld_tmp=$($_pkg_config --libs libavformat)
7024 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7025 && _libavformat_so=yes
7026 elif cc_check $_ld_lm -lavformat ; then
7027 extra_ldflags="$extra_ldflags -lavformat"
7028 _libavformat_so=yes
7029 _res_comment="using libavformat.so, but static libavformat is recommended"
7032 _libavformat=no
7033 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7034 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7035 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7036 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7037 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7038 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7039 test "$_libavformat_so" = yes \
7040 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7041 echores "$_libavformat"
7043 echocheck "FFmpeg libpostproc"
7044 if test "$_libpostproc_a" = auto ; then
7045 _libpostproc_a=no
7046 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7047 _libpostproc_a='yes'
7048 _res_comment="static"
7050 elif test "$_libpostproc_so" = auto ; then
7051 _libpostproc_so=no
7052 cat > $TMPC << EOF
7053 #include <inttypes.h>
7054 #include <libpostproc/postprocess.h>
7055 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7057 if cc_check -lpostproc $_ld_lm ; then
7058 extra_ldflags="$extra_ldflags -lpostproc"
7059 _libpostproc_so=yes
7060 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7063 _libpostproc=no
7064 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7065 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7066 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7067 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7068 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7069 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7070 test "$_libpostproc_so" = yes \
7071 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7072 echores "$_libpostproc"
7074 echocheck "FFmpeg libswscale"
7075 if test "$_libswscale_a" = auto ; then
7076 _libswscale_a=no
7077 if test -d libswscale && test -f libswscale/swscale.h ; then
7078 _libswscale_a='yes'
7079 _res_comment="static"
7081 elif test "$_libswscale_so" = auto ; then
7082 _libswscale_so=no
7083 _res_comment="using libswscale.so, but static libswscale is recommended"
7084 cat > $TMPC << EOF
7085 #include <libswscale/swscale.h>
7086 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7088 if $_pkg_config --exists libswscale ; then
7089 _inc_libswscale=$($_pkg_config --cflags libswscale)
7090 _ld_tmp=$($_pkg_config --libs libswscale)
7091 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7092 && _libswscale_so=yes
7093 elif cc_check -lswscale ; then
7094 extra_ldflags="$extra_ldflags -lswscale"
7095 _libswscale_so=yes
7098 _libswscale=no
7099 def_libswscale='#undef CONFIG_LIBSWSCALE'
7100 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7101 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7102 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7103 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7104 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7105 test "$_libswscale_so" = yes \
7106 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7107 echores "$_libswscale"
7109 echocheck "libopencore_amr narrowband"
7110 if test "$_libopencore_amrnb" = auto ; then
7111 _libopencore_amrnb=no
7112 cat > $TMPC << EOF
7113 #include <opencore-amrnb/interf_dec.h>
7114 int main(void) { Decoder_Interface_init(); return 0; }
7116 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7117 if test "$_libavcodec_a" != yes ; then
7118 _libopencore_amrnb=no
7119 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7122 if test "$_libopencore_amrnb" = yes ; then
7123 _libopencore_amr=yes
7124 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7125 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7126 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7127 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7128 _codecmodules="libopencore_amrnb $_codecmodules"
7129 else
7130 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7131 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7133 echores "$_libopencore_amrnb"
7136 echocheck "libopencore_amr wideband"
7137 if test "$_libopencore_amrwb" = auto ; then
7138 _libopencore_amrwb=no
7139 cat > $TMPC << EOF
7140 #include <opencore-amrwb/dec_if.h>
7141 int main(void) { D_IF_init(); return 0; }
7143 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7144 if test "$_libavcodec_a" != yes ; then
7145 _libopencore_amrwb=no
7146 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7149 if test "$_libopencore_amrwb" = yes ; then
7150 _libopencore_amr=yes
7151 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7152 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7153 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7154 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7155 _codecmodules="libopencore_amrwb $_codecmodules"
7156 else
7157 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7158 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7160 echores "$_libopencore_amrwb"
7162 echocheck "libdv-0.9.5+"
7163 if test "$_libdv" = auto ; then
7164 _libdv=no
7165 cat > $TMPC <<EOF
7166 #include <libdv/dv.h>
7167 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7169 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7171 if test "$_libdv" = yes ; then
7172 def_libdv='#define CONFIG_LIBDV095 1'
7173 extra_ldflags="$extra_ldflags -ldv"
7174 _codecmodules="libdv $_codecmodules"
7175 else
7176 def_libdv='#undef CONFIG_LIBDV095'
7177 _nocodecmodules="libdv $_nocodecmodules"
7179 echores "$_libdv"
7182 echocheck "Xvid"
7183 if test "$_xvid" = auto ; then
7184 _xvid=no
7185 cat > $TMPC << EOF
7186 #include <xvid.h>
7187 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7189 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7190 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7191 done
7194 if test "$_xvid" = yes ; then
7195 def_xvid='#define CONFIG_XVID4 1'
7196 _codecmodules="xvid $_codecmodules"
7197 else
7198 def_xvid='#undef CONFIG_XVID4'
7199 _nocodecmodules="xvid $_nocodecmodules"
7201 echores "$_xvid"
7203 echocheck "Xvid two pass plugin"
7204 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7205 cat > $TMPC << EOF
7206 #include <xvid.h>
7207 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7209 cc_check && _xvid_lavc=yes
7211 if test "$_xvid_lavc" = yes ; then
7212 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7213 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7214 else
7215 _xvid_lavc=no
7216 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7218 echores "$_xvid_lavc"
7221 echocheck "x264"
7222 if test "$_x264" = auto ; then
7223 cat > $TMPC << EOF
7224 #include <inttypes.h>
7225 #include <x264.h>
7226 #if X264_BUILD < 65
7227 #error We do not support old versions of x264. Get the latest from SVN.
7228 #endif
7229 int main(void) { x264_encoder_open((void*)0); return 0; }
7231 _x264=no
7232 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7233 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7234 done
7237 if test "$_x264" = yes ; then
7238 def_x264='#define CONFIG_X264 1'
7239 _codecmodules="x264 $_codecmodules"
7240 test "$_x264_lavc" = auto && _x264_lavc=yes
7241 if test "$_x264_lavc" = yes ; then
7242 def_x264_lavc='#define CONFIG_LIBX264 1'
7243 libs_mplayer="$libs_mplayer $_ld_x264"
7244 _libavencoders="$_libavencoders LIBX264_ENCODER"
7246 else
7247 _x264_lavc=no
7248 def_x264='#undef CONFIG_X264'
7249 def_x264_lavc='#define CONFIG_LIBX264 0'
7250 _nocodecmodules="x264 $_nocodecmodules"
7252 _res_comment="in libavcodec: $_x264_lavc"
7253 echores "$_x264"
7256 echocheck "libdirac"
7257 if test "$_libdirac_lavc" = auto; then
7258 _libdirac_lavc=no
7259 if test "$_libavcodec_a" != yes; then
7260 _res_comment="libavcodec (static) is required by libdirac, sorry"
7261 else
7262 cat > $TMPC << EOF
7263 #include <libdirac_encoder/dirac_encoder.h>
7264 #include <libdirac_decoder/dirac_parser.h>
7265 int main(void)
7267 dirac_encoder_context_t enc_ctx;
7268 dirac_decoder_t *dec_handle;
7269 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7270 dec_handle = dirac_decoder_init(0);
7271 if (dec_handle)
7272 dirac_decoder_close(dec_handle);
7273 return 0;
7276 if $_pkg_config --exists dirac ; then
7277 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7278 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7279 cc_check $_inc_dirac $_ld_dirac &&
7280 _libdirac_lavc=yes &&
7281 extra_cflags="$extra_cflags $_inc_dirac" &&
7282 extra_ldflags="$extra_ldflags $_ld_dirac"
7286 if test "$_libdirac_lavc" = yes ; then
7287 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7288 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7289 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7290 _codecmodules="libdirac $_codecmodules"
7291 else
7292 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7293 _nocodecmodules="libdirac $_nocodecmodules"
7295 echores "$_libdirac_lavc"
7298 echocheck "libschroedinger"
7299 if test "$_libschroedinger_lavc" = auto ; then
7300 _libschroedinger_lavc=no
7301 if test "$_libavcodec_a" != yes; then
7302 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7303 else
7304 cat > $TMPC << EOF
7305 #include <schroedinger/schro.h>
7306 int main(void) { schro_init(); return 0; }
7308 if $_pkg_config --exists schroedinger-1.0 ; then
7309 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7310 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7311 cc_check $_inc_schroedinger $_ld_schroedinger &&
7312 _libschroedinger_lavc=yes &&
7313 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7314 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7318 if test "$_libschroedinger_lavc" = yes ; then
7319 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7320 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7321 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7322 _codecmodules="libschroedinger $_codecmodules"
7323 else
7324 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7325 _nocodecmodules="libschroedinger $_nocodecmodules"
7327 echores "$_libschroedinger_lavc"
7329 echocheck "libnut"
7330 if test "$_libnut" = auto ; then
7331 cat > $TMPC << EOF
7332 #include <stdio.h>
7333 #include <stdlib.h>
7334 #include <inttypes.h>
7335 #include <libnut.h>
7336 nut_context_tt * nut;
7337 int main(void) { (void)nut_error(0); return 0; }
7339 _libnut=no
7340 cc_check -lnut && _libnut=yes
7343 if test "$_libnut" = yes ; then
7344 def_libnut='#define CONFIG_LIBNUT 1'
7345 extra_ldflags="$extra_ldflags -lnut"
7346 else
7347 def_libnut='#undef CONFIG_LIBNUT'
7349 echores "$_libnut"
7351 #check must be done after libavcodec one
7352 echocheck "zr"
7353 if test "$_zr" = auto ; then
7354 #36067's seem to identify themselves as 36057PQC's, so the line
7355 #below should work for 36067's and 36057's.
7356 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7357 _zr=yes
7358 else
7359 _zr=no
7362 if test "$_zr" = yes ; then
7363 if test "$_libavcodec_a" = yes ; then
7364 def_zr='#define CONFIG_ZR 1'
7365 _vomodules="zr zr2 $_vomodules"
7366 else
7367 _res_comment="libavcodec (static) is required by zr, sorry"
7368 _novomodules="zr $_novomodules"
7369 def_zr='#undef CONFIG_ZR'
7371 else
7372 def_zr='#undef CONFIG_ZR'
7373 _novomodules="zr zr2 $_novomodules"
7375 echores "$_zr"
7377 # mencoder requires (optional) those libs: libmp3lame
7378 if test "$_mencoder" != no ; then
7380 echocheck "libmp3lame"
7381 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7382 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7383 if test "$_mp3lame" = auto ; then
7384 _mp3lame=no
7385 cat > $TMPC <<EOF
7386 #include <lame/lame.h>
7387 int main(void) { lame_version_t lv; (void) lame_init();
7388 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7389 return 0; }
7391 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
7393 if test "$_mp3lame" = yes ; then
7394 def_mp3lame="#define CONFIG_MP3LAME"
7395 _ld_mp3lame=-lmp3lame
7396 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7397 cat > $TMPC << EOF
7398 #include <lame/lame.h>
7399 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7401 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET"
7402 cat > $TMPC << EOF
7403 #include <lame/lame.h>
7404 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7406 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM"
7407 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7408 if test "$_mp3lame_lavc" = yes ; then
7409 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7410 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7411 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7413 else
7414 _mp3lame_lavc=no
7415 def_mp3lame='#undef CONFIG_MP3LAME'
7416 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7418 _res_comment="in libavcodec: $_mp3lame_lavc"
7419 echores "$_mp3lame"
7421 fi # test "$_mencoder" != no
7423 echocheck "mencoder"
7424 if test "$_mencoder" = yes ; then
7425 def_muxers='#define CONFIG_MUXERS 1'
7426 else
7427 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7428 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7429 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7430 _libavmuxers=""
7431 def_muxers='#define CONFIG_MUXERS 0'
7433 echores "$_mencoder"
7436 echocheck "UnRAR executable"
7437 if test "$_unrar_exec" = auto ; then
7438 _unrar_exec="yes"
7439 mingw32 && _unrar_exec="no"
7441 if test "$_unrar_exec" = yes ; then
7442 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7443 else
7444 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7446 echores "$_unrar_exec"
7448 echocheck "TV interface"
7449 if test "$_tv" = yes ; then
7450 def_tv='#define CONFIG_TV 1'
7451 _inputmodules="tv $_inputmodules"
7452 else
7453 _noinputmodules="tv $_noinputmodules"
7454 def_tv='#undef CONFIG_TV'
7456 echores "$_tv"
7459 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7460 echocheck "*BSD BT848 bt8xx header"
7461 _ioctl_bt848_h=no
7462 for file in "machine/ioctl_bt848.h" \
7463 "dev/bktr/ioctl_bt848.h" \
7464 "dev/video/bktr/ioctl_bt848.h" \
7465 "dev/ic/bt8xx.h" ; do
7466 cat > $TMPC <<EOF
7467 #include <sys/types.h>
7468 #include <sys/ioctl.h>
7469 #include <$file>
7470 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7472 if cc_check ; then
7473 _ioctl_bt848_h=yes
7474 _ioctl_bt848_h_name="$file"
7475 break;
7477 done
7478 if test "$_ioctl_bt848_h" = yes ; then
7479 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7480 _res_comment="using $_ioctl_bt848_h_name"
7481 else
7482 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7484 echores "$_ioctl_bt848_h"
7486 echocheck "*BSD ioctl_meteor.h"
7487 _ioctl_meteor_h=no
7488 for file in "machine/ioctl_meteor.h" \
7489 "dev/bktr/ioctl_meteor.h" \
7490 "dev/video/bktr/ioctl_meteor.h" ; do
7491 cat > $TMPC <<EOF
7492 #include <sys/types.h>
7493 #include <$file>
7494 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7496 if cc_check ; then
7497 _ioctl_meteor_h=yes
7498 _ioctl_meteor_h_name="$file"
7499 break;
7501 done
7502 if test "$_ioctl_meteor_h" = yes ; then
7503 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7504 _res_comment="using $_ioctl_meteor_h_name"
7505 else
7506 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7508 echores "$_ioctl_meteor_h"
7510 echocheck "*BSD BrookTree 848 TV interface"
7511 if test "$_tv_bsdbt848" = auto ; then
7512 _tv_bsdbt848=no
7513 if test "$_tv" = yes ; then
7514 cat > $TMPC <<EOF
7515 #include <sys/types.h>
7516 $def_ioctl_meteor_h_name
7517 $def_ioctl_bt848_h_name
7518 #ifdef IOCTL_METEOR_H_NAME
7519 #include IOCTL_METEOR_H_NAME
7520 #endif
7521 #ifdef IOCTL_BT848_H_NAME
7522 #include IOCTL_BT848_H_NAME
7523 #endif
7524 int main(void) {
7525 ioctl(0, METEORSINPUT, 0);
7526 ioctl(0, TVTUNER_GETFREQ, 0);
7527 return 0;
7530 cc_check && _tv_bsdbt848=yes
7533 if test "$_tv_bsdbt848" = yes ; then
7534 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7535 _inputmodules="tv-bsdbt848 $_inputmodules"
7536 else
7537 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7538 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7540 echores "$_tv_bsdbt848"
7541 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7544 echocheck "DirectShow TV interface"
7545 if test "$_tv_dshow" = auto ; then
7546 _tv_dshow=no
7547 if test "$_tv" = yes && win32 ; then
7548 cat > $TMPC <<EOF
7549 #include <ole2.h>
7550 int main(void) {
7551 void* p;
7552 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7553 return 0;
7556 cc_check -lole32 -luuid && _tv_dshow=yes
7559 if test "$_tv_dshow" = yes ; then
7560 _inputmodules="tv-dshow $_inputmodules"
7561 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7562 extra_ldflags="$extra_ldflags -lole32 -luuid"
7563 else
7564 _noinputmodules="tv-dshow $_noinputmodules"
7565 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7567 echores "$_tv_dshow"
7570 echocheck "Video 4 Linux TV interface"
7571 if test "$_tv_v4l1" = auto ; then
7572 _tv_v4l1=no
7573 if test "$_tv" = yes && linux ; then
7574 cat > $TMPC <<EOF
7575 #include <stdlib.h>
7576 #include <linux/videodev.h>
7577 int main(void) { return 0; }
7579 cc_check && _tv_v4l1=yes
7582 if test "$_tv_v4l1" = yes ; then
7583 _audio_input=yes
7584 _tv_v4l=yes
7585 def_tv_v4l='#define CONFIG_TV_V4L 1'
7586 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7587 _inputmodules="tv-v4l $_inputmodules"
7588 else
7589 _noinputmodules="tv-v4l1 $_noinputmodules"
7590 def_tv_v4l='#undef CONFIG_TV_V4L'
7592 echores "$_tv_v4l1"
7595 echocheck "Video 4 Linux 2 TV interface"
7596 if test "$_tv_v4l2" = auto ; then
7597 _tv_v4l2=no
7598 if test "$_tv" = yes && linux ; then
7599 cat > $TMPC <<EOF
7600 #include <stdlib.h>
7601 #include <linux/types.h>
7602 #include <linux/videodev2.h>
7603 int main(void) { return 0; }
7605 cc_check && _tv_v4l2=yes
7608 if test "$_tv_v4l2" = yes ; then
7609 _audio_input=yes
7610 _tv_v4l=yes
7611 def_tv_v4l='#define CONFIG_TV_V4L 1'
7612 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7613 _inputmodules="tv-v4l2 $_inputmodules"
7614 else
7615 _noinputmodules="tv-v4l2 $_noinputmodules"
7616 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7618 echores "$_tv_v4l2"
7621 echocheck "TV teletext interface"
7622 if test "$_tv_teletext" = auto ; then
7623 _tv_teletext=no
7624 if test "$_freetype" = yes && test "$_pthreads" = yes; then
7625 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
7626 _tv_teletext=yes
7630 if test "$_tv_teletext" = yes ; then
7631 def_tv_teletext='#define CONFIG_TV_TELETEXT 1'
7632 _inputmodules="tv-teletext $_inputmodules"
7633 else
7634 _noinputmodules="tv-teletext $_noinputmodules"
7635 def_tv_teletext='#undef CONFIG_TV_TELETEXT'
7637 echores "$_tv_teletext"
7640 echocheck "Radio interface"
7641 if test "$_radio" = yes ; then
7642 def_radio='#define CONFIG_RADIO 1'
7643 _inputmodules="radio $_inputmodules"
7644 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7645 _radio_capture=no
7647 if test "$_radio_capture" = yes ; then
7648 _audio_input=yes
7649 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7650 else
7651 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7653 else
7654 _noinputmodules="radio $_noinputmodules"
7655 def_radio='#undef CONFIG_RADIO'
7656 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7657 _radio_capture=no
7659 echores "$_radio"
7660 echocheck "Capture for Radio interface"
7661 echores "$_radio_capture"
7663 echocheck "Video 4 Linux 2 Radio interface"
7664 if test "$_radio_v4l2" = auto ; then
7665 _radio_v4l2=no
7666 if test "$_radio" = yes && linux ; then
7667 cat > $TMPC <<EOF
7668 #include <stdlib.h>
7669 #include <linux/types.h>
7670 #include <linux/videodev2.h>
7671 int main(void) { return 0; }
7673 cc_check && _radio_v4l2=yes
7676 if test "$_radio_v4l2" = yes ; then
7677 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7678 else
7679 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7681 echores "$_radio_v4l2"
7683 echocheck "Video 4 Linux Radio interface"
7684 if test "$_radio_v4l" = auto ; then
7685 _radio_v4l=no
7686 if test "$_radio" = yes && linux ; then
7687 cat > $TMPC <<EOF
7688 #include <stdlib.h>
7689 #include <linux/videodev.h>
7690 int main(void) { return 0; }
7692 cc_check && _radio_v4l=yes
7695 if test "$_radio_v4l" = yes ; then
7696 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7697 else
7698 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7700 echores "$_radio_v4l"
7702 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7703 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7704 echocheck "*BSD BrookTree 848 Radio interface"
7705 _radio_bsdbt848=no
7706 cat > $TMPC <<EOF
7707 #include <sys/types.h>
7708 $def_ioctl_bt848_h_name
7709 #ifdef IOCTL_BT848_H_NAME
7710 #include IOCTL_BT848_H_NAME
7711 #endif
7712 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7714 cc_check && _radio_bsdbt848=yes
7715 echores "$_radio_bsdbt848"
7716 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7718 if test "$_radio_bsdbt848" = yes ; then
7719 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7720 else
7721 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7724 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7725 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7726 die "Radio driver requires BSD BT848, V4L or V4L2!"
7729 echocheck "Video 4 Linux 2 MPEG PVR interface"
7730 if test "$_pvr" = auto ; then
7731 _pvr=no
7732 if test "$_tv_v4l2" = yes && linux ; then
7733 cat > $TMPC <<EOF
7734 #include <stdlib.h>
7735 #include <inttypes.h>
7736 #include <linux/types.h>
7737 #include <linux/videodev2.h>
7738 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7740 cc_check && _pvr=yes
7743 if test "$_pvr" = yes ; then
7744 def_pvr='#define CONFIG_PVR 1'
7745 _inputmodules="pvr $_inputmodules"
7746 else
7747 _noinputmodules="pvr $_noinputmodules"
7748 def_pvr='#undef CONFIG_PVR'
7750 echores "$_pvr"
7753 echocheck "ftp"
7754 if ! beos && test "$_ftp" = yes ; then
7755 def_ftp='#define CONFIG_FTP 1'
7756 _inputmodules="ftp $_inputmodules"
7757 else
7758 _noinputmodules="ftp $_noinputmodules"
7759 def_ftp='#undef CONFIG_FTP'
7761 echores "$_ftp"
7763 echocheck "vstream client"
7764 if test "$_vstream" = auto ; then
7765 _vstream=no
7766 cat > $TMPC <<EOF
7767 #include <vstream-client.h>
7768 void vstream_error(const char *format, ... ) {}
7769 int main(void) { vstream_start(); return 0; }
7771 cc_check -lvstream-client && _vstream=yes
7773 if test "$_vstream" = yes ; then
7774 def_vstream='#define CONFIG_VSTREAM 1'
7775 _inputmodules="vstream $_inputmodules"
7776 extra_ldflags="$extra_ldflags -lvstream-client"
7777 else
7778 _noinputmodules="vstream $_noinputmodules"
7779 def_vstream='#undef CONFIG_VSTREAM'
7781 echores "$_vstream"
7784 echocheck "OSD menu"
7785 if test "$_menu" = yes ; then
7786 def_menu='#define CONFIG_MENU 1'
7787 test $_dvbin = "yes" && _menu_dvbin=yes
7788 else
7789 def_menu='#undef CONFIG_MENU'
7790 _menu_dvbin=no
7792 echores "$_menu"
7795 echocheck "Subtitles sorting"
7796 if test "$_sortsub" = yes ; then
7797 def_sortsub='#define CONFIG_SORTSUB 1'
7798 else
7799 def_sortsub='#undef CONFIG_SORTSUB'
7801 echores "$_sortsub"
7804 echocheck "XMMS inputplugin support"
7805 if test "$_xmms" = yes ; then
7806 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7807 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7808 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7809 else
7810 _xmmsplugindir=/usr/lib/xmms/Input
7811 _xmmslibdir=/usr/lib
7814 def_xmms='#define CONFIG_XMMS 1'
7815 if darwin ; then
7816 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7817 else
7818 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7820 else
7821 def_xmms='#undef CONFIG_XMMS'
7823 echores "$_xmms"
7826 # --------------- GUI specific tests begin -------------------
7827 echocheck "GUI"
7828 echo "$_gui"
7829 if test "$_gui" = yes ; then
7831 # Required libraries
7832 if test "$_libavcodec" != yes ||
7833 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7834 die "The GUI requires libavcodec with PNG support (needs zlib)."
7836 test "$_freetype" = no && test "$_bitmap_font" = no && \
7837 die "The GUI requires either FreeType or bitmap font support."
7838 if ! win32 ; then
7839 _gui_gtk=yes
7840 test "$_x11" != yes && die "X11 support required for GUI compilation."
7842 echocheck "XShape extension"
7843 if test "$_xshape" = auto ; then
7844 _xshape=no
7845 cat > $TMPC << EOF
7846 #include <X11/Xlib.h>
7847 #include <X11/Xproto.h>
7848 #include <X11/Xutil.h>
7849 #include <X11/extensions/shape.h>
7850 #include <stdlib.h>
7851 int main(void) {
7852 char *name = ":0.0";
7853 Display *wsDisplay;
7854 int exitvar = 0;
7855 int eventbase, errorbase;
7856 if (getenv("DISPLAY"))
7857 name=getenv("DISPLAY");
7858 wsDisplay=XOpenDisplay(name);
7859 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7860 exitvar=1;
7861 XCloseDisplay(wsDisplay);
7862 return exitvar;
7865 cc_check -lXext && _xshape=yes
7867 if test "$_xshape" = yes ; then
7868 def_xshape='#define CONFIG_XSHAPE 1'
7869 else
7870 die "The GUI requires the X11 extension XShape (which was not found)."
7872 echores "$_xshape"
7874 #Check for GTK
7875 if test "$_gtk1" = no ; then
7876 #Check for GTK2 :
7877 echocheck "GTK+ version"
7879 if $_pkg_config gtk+-2.0 --exists ; then
7880 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7881 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7882 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7883 echores "$_gtk"
7885 # Check for GLIB2
7886 if $_pkg_config glib-2.0 --exists ; then
7887 echocheck "glib version"
7888 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7889 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7890 echores "$_glib"
7892 def_gui='#define CONFIG_GUI 1'
7893 def_gtk2='#define CONFIG_GTK2 1'
7894 else
7895 _gtk1=yes
7896 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7898 else
7899 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7900 _gtk1=yes
7904 if test "$_gtk1" = yes ; then
7905 # Check for old GTK (1.2.x)
7906 echocheck "GTK version"
7907 if test -z "$_gtkconfig" ; then
7908 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7909 _gtkconfig="gtk-config"
7910 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7911 _gtkconfig="gtk12-config"
7912 else
7913 die "The GUI requires GTK devel packages (which were not found)."
7916 _gtk=$($_gtkconfig --version 2>&1)
7917 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7918 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7919 echores "$_gtk (using $_gtkconfig)"
7921 # Check for GLIB
7922 echocheck "glib version"
7923 if test -z "$_glibconfig" ; then
7924 if ( glib-config --version ) >/dev/null 2>&1 ; then
7925 _glibconfig="glib-config"
7926 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7927 _glibconfig="glib12-config"
7928 else
7929 die "The GUI requires GLIB devel packages (which were not found)"
7932 _glib=$($_glibconfig --version 2>&1)
7933 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7934 echores "$_glib (using $_glibconfig)"
7936 def_gui='#define CONFIG_GUI 1'
7937 def_gtk2='#undef CONFIG_GTK2'
7940 else #if ! win32
7941 _gui_win32=yes
7942 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7943 def_gui='#define CONFIG_GUI 1'
7944 def_gtk2='#undef CONFIG_GTK2'
7945 fi #if ! win32
7947 else #if test "$_gui"
7948 def_gui='#undef CONFIG_GUI'
7949 def_gtk2='#undef CONFIG_GTK2'
7950 fi #if test "$_gui"
7951 # --------------- GUI specific tests end -------------------
7954 if test "$_charset" != "noconv" ; then
7955 def_charset="#define MSG_CHARSET \"$_charset\""
7956 else
7957 def_charset="#undef MSG_CHARSET"
7958 _charset="UTF-8"
7961 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7962 echocheck "iconv program"
7963 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7964 if test "$?" -ne 0 ; then
7965 echores "no"
7966 echo "No working iconv program found, use "
7967 echo "--charset=UTF-8 to continue anyway."
7968 echo "If you also have problems with iconv library functions use --charset=noconv."
7969 echo "Messages in the GTK-2 interface will be broken then."
7970 exit 1
7971 else
7972 echores "yes"
7976 #############################################################################
7978 echocheck "automatic gdb attach"
7979 if test "$_crash_debug" = yes ; then
7980 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7981 else
7982 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7983 _crash_debug=no
7985 echores "$_crash_debug"
7987 echocheck "compiler support for noexecstack"
7988 cat > $TMPC <<EOF
7989 int main(void) { return 0; }
7991 if cc_check -Wl,-z,noexecstack ; then
7992 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7993 echores "yes"
7994 else
7995 echores "no"
7999 # Dynamic linking flags
8000 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8001 _ld_dl_dynamic=''
8002 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8003 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8004 _ld_dl_dynamic='-rdynamic'
8007 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8008 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8009 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8011 def_debug='#undef MP_DEBUG'
8012 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8015 echocheck "joystick"
8016 def_joystick='#undef CONFIG_JOYSTICK'
8017 if test "$_joystick" = yes ; then
8018 if linux ; then
8019 # TODO add some check
8020 def_joystick='#define CONFIG_JOYSTICK 1'
8021 else
8022 _joystick="no"
8023 _res_comment="unsupported under $system_name"
8026 echores "$_joystick"
8028 echocheck "lirc"
8029 if test "$_lirc" = auto ; then
8030 _lirc=no
8031 cat > $TMPC <<EOF
8032 #include <lirc/lirc_client.h>
8033 int main(void) { return 0; }
8035 cc_check -llirc_client && _lirc=yes
8037 if test "$_lirc" = yes ; then
8038 def_lirc='#define CONFIG_LIRC 1'
8039 libs_mplayer="$libs_mplayer -llirc_client"
8040 else
8041 def_lirc='#undef CONFIG_LIRC'
8043 echores "$_lirc"
8045 echocheck "lircc"
8046 if test "$_lircc" = auto ; then
8047 _lircc=no
8048 cat > $TMPC <<EOF
8049 #include <lirc/lircc.h>
8050 int main(void) { return 0; }
8052 cc_check -llircc && _lircc=yes
8054 if test "$_lircc" = yes ; then
8055 def_lircc='#define CONFIG_LIRCC 1'
8056 libs_mplayer="$libs_mplayer -llircc"
8057 else
8058 def_lircc='#undef CONFIG_LIRCC'
8060 echores "$_lircc"
8062 if arm; then
8063 # Detect maemo development platform libraries availability (http://www.maemo.org),
8064 # they are used when run on Nokia 770|8x0
8065 echocheck "maemo (Nokia 770|8x0)"
8066 if test "$_maemo" = auto ; then
8067 _maemo=no
8068 cat > $TMPC << EOF
8069 #include <libosso.h>
8070 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8072 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8074 if test "$_maemo" = yes ; then
8075 def_maemo='#define CONFIG_MAEMO 1'
8076 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8077 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8078 else
8079 def_maemo='#undef CONFIG_MAEMO'
8081 echores "$_maemo"
8084 #############################################################################
8086 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8087 # the OMF format needs to come after the 'extern symbol prefix' check, which
8088 # uses nm.
8089 if os2 ; then
8090 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8093 # linker paths should be the same for mencoder and mplayer
8094 _ld_tmp=""
8095 for I in $libs_mplayer ; do
8096 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8097 if test -z "$_tmp" ; then
8098 extra_ldflags="$extra_ldflags $I"
8099 else
8100 _ld_tmp="$_ld_tmp $I"
8102 done
8103 libs_mplayer=$_ld_tmp
8106 #############################################################################
8107 # 64 bit file offsets?
8108 if test "$_largefiles" = yes || freebsd ; then
8109 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8110 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8111 # dvdread support requires this (for off64_t)
8112 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8116 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8118 # This must be the last test to be performed. Any other tests following it
8119 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8120 # against libdvdread (to permit MPlayer to use its own copy of the library).
8121 # So any compilation using the flags added here but not linking against
8122 # libdvdread can fail.
8123 echocheck "DVD support (libdvdnav)"
8124 dvdnav_internal=no
8125 if test "$_dvdnav" = auto ; then
8126 if test "$_dvdread_internal" = yes ; then
8127 _dvdnav=yes
8128 dvdnav_internal=yes
8129 _res_comment="internal"
8130 else
8131 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8134 if test "$_dvdnav" = auto ; then
8135 cat > $TMPC <<EOF
8136 #include <inttypes.h>
8137 #include <dvdnav/dvdnav.h>
8138 int main(void) { dvdnav_t *dvd=0; return 0; }
8140 _dvdnav=no
8141 _dvdnavdir=$($_dvdnavconfig --cflags)
8142 _dvdnavlibs=$($_dvdnavconfig --libs)
8143 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8145 if test "$_dvdnav" = yes ; then
8146 _largefiles=yes
8147 def_dvdnav='#define CONFIG_DVDNAV 1'
8148 if test "$dvdnav_internal" = yes ; then
8149 cflags_libdvdnav="-Ilibdvdnav"
8150 _inputmodules="dvdnav(internal) $_inputmodules"
8151 else
8152 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8153 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8154 _inputmodules="dvdnav $_inputmodules"
8156 else
8157 def_dvdnav='#undef CONFIG_DVDNAV'
8158 _noinputmodules="dvdnav $_noinputmodules"
8160 echores "$_dvdnav"
8162 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8163 # Read dvdnav comment above.
8165 #############################################################################
8166 echo "Creating config.mak"
8167 cat > config.mak << EOF
8168 # -------- Generated by configure -----------
8170 # Ensure that locale settings do not interfere with shell commands.
8171 export LC_ALL = C
8173 CONFIGURATION = $_configuration
8175 CHARSET = $_charset
8176 DOC_LANGS = $language_doc
8177 DOC_LANG_ALL = $doc_lang_all
8178 MAN_LANGS = $language_man
8179 MAN_LANG_ALL = $man_lang_all
8181 prefix = \$(DESTDIR)$_prefix
8182 BINDIR = \$(DESTDIR)$_bindir
8183 DATADIR = \$(DESTDIR)$_datadir
8184 LIBDIR = \$(DESTDIR)$_libdir
8185 MANDIR = \$(DESTDIR)$_mandir
8186 CONFDIR = \$(DESTDIR)$_confdir
8188 AR = $_ar
8189 AS = $_cc
8190 CC = $_cc
8191 CXX = $_cc
8192 HOST_CC = $_host_cc
8193 YASM = $_yasm
8194 INSTALL = $_install
8195 INSTALLSTRIP = $_install_strip
8196 RANLIB = $_ranlib
8197 WINDRES = $_windres
8199 CFLAGS = $CFLAGS $extra_cflags
8200 OPTFLAGS = $CFLAGS $extra_cflags
8201 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8202 CFLAGS_DHAHELPER = $cflags_dhahelper
8203 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8204 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8205 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8206 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8207 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8208 CFLAGS_STACKREALIGN = $cflags_stackrealign
8209 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8210 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8211 YASMFLAGS = $YASMFLAGS
8213 EXTRALIBS = $extra_libs
8214 EXTRA_LIB = $extra_ldflags $_ld_static $_ld_lm
8215 EXTRALIBS_MPLAYER = $libs_mplayer
8216 EXTRALIBS_MENCODER = $libs_mencoder
8218 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8220 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 &,"
8221 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 &,"
8223 GETCH = $_getch
8224 HELP_FILE = $_mp_help
8225 TIMER = $_timer
8227 EXESUF = $_exesuf
8228 EXESUFS_ALL = .exe
8230 $_target_arch
8231 $_target_subarch
8232 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8234 MENCODER = $_mencoder
8235 MPLAYER = $_mplayer
8237 NEED_GETTIMEOFDAY = $_need_gettimeofday
8238 NEED_GLOB = $_need_glob
8239 NEED_MMAP = $_need_mmap
8240 NEED_SETENV = $_need_setenv
8241 NEED_SHMEM = $_need_shmem
8242 NEED_STRSEP = $_need_strsep
8243 NEED_SWAB = $_need_swab
8244 NEED_VSSCANF = $_need_vsscanf
8246 # features
8247 3DFX = $_3dfx
8248 AA = $_aa
8249 ALSA1X = $_alsa1x
8250 ALSA9 = $_alsa9
8251 ALSA5 = $_alsa5
8252 APPLE_IR = $_apple_ir
8253 APPLE_REMOTE = $_apple_remote
8254 ARTS = $_arts
8255 AUDIO_INPUT = $_audio_input
8256 BITMAP_FONT = $_bitmap_font
8257 BL = $_bl
8258 CACA = $_caca
8259 CDDA = $_cdda
8260 CDDB = $_cddb
8261 COREAUDIO = $_coreaudio
8262 COREVIDEO = $_corevideo
8263 DART = $_dart
8264 DFBMGA = $_dfbmga
8265 DGA = $_dga
8266 DIRECT3D = $_direct3d
8267 DIRECTFB = $_directfb
8268 DIRECTX = $_directx
8269 DVBIN = $_dvbin
8270 DVDNAV = $_dvdnav
8271 DVDNAV_INTERNAL = $dvdnav_internal
8272 DVDREAD = $_dvdread
8273 DVDREAD_INTERNAL = $_dvdread_internal
8274 DXR2 = $_dxr2
8275 DXR3 = $_dxr3
8276 ESD = $_esd
8277 FAAC=$_faac
8278 FAAD = $_faad
8279 FAAD_INTERNAL = $_faad_internal
8280 FASTMEMCPY = $_fastmemcpy
8281 FBDEV = $_fbdev
8282 FREETYPE = $_freetype
8283 FTP = $_ftp
8284 GIF = $_gif
8285 GGI = $_ggi
8286 GL = $_gl
8287 GL_WIN32 = $_gl_win32
8288 GUI = $_gui
8289 GUI_GTK = $_gui_gtk
8290 GUI_WIN32 = $_gui_win32
8291 HAVE_POSIX_SELECT = $_posix_select
8292 HAVE_SYS_MMAN_H = $_mman
8293 IVTV = $_ivtv
8294 JACK = $_jack
8295 JOYSTICK = $_joystick
8296 JPEG = $_jpeg
8297 KVA = $_kva
8298 LADSPA = $_ladspa
8299 LIBA52 = $_liba52
8300 LIBA52_INTERNAL = $_liba52_internal
8301 LIBASS = $_ass
8302 LIBBS2B = $_libbs2b
8303 LIBDCA = $_libdca
8304 LIBDV = $_libdv
8305 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8306 LIBLZO = $_liblzo
8307 LIBMAD = $_mad
8308 LIBMENU = $_menu
8309 LIBMENU_DVBIN = $_menu_dvbin
8310 LIBMPEG2 = $_libmpeg2
8311 LIBNEMESI = $_nemesi
8312 LIBNUT = $_libnut
8313 LIBSMBCLIENT = $_smb
8314 LIBTHEORA = $_theora
8315 LIRC = $_lirc
8316 LIVE555 = $_live
8317 MACOSX_BUNDLE = $_macosx_bundle
8318 MACOSX_FINDER = $_macosx_finder
8319 MD5SUM = $_md5sum
8320 MGA = $_mga
8321 MNG = $_mng
8322 MP3LAME = $_mp3lame
8323 MP3LIB = $_mp3lib
8324 MUSEPACK = $_musepack
8325 NAS = $_nas
8326 NATIVE_RTSP = $_native_rtsp
8327 NETWORK = $_network
8328 OPENAL = $_openal
8329 OSS = $_ossaudio
8330 PE_EXECUTABLE = $_pe_executable
8331 PNG = $_png
8332 PNM = $_pnm
8333 PRIORITY = $_priority
8334 PULSE = $_pulse
8335 PVR = $_pvr
8336 QTX_CODECS = $_qtx
8337 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8338 QTX_EMULATION = $_qtx_emulation
8339 QUARTZ = $_quartz
8340 RADIO=$_radio
8341 RADIO_CAPTURE=$_radio_capture
8342 REAL_CODECS = $_real
8343 S3FB = $_s3fb
8344 SDL = $_sdl
8345 SPEEX = $_speex
8346 STREAM_CACHE = $_stream_cache
8347 SGIAUDIO = $_sgiaudio
8348 SUNAUDIO = $_sunaudio
8349 SVGA = $_svga
8350 TDFXFB = $_tdfxfb
8351 TDFXVID = $_tdfxvid
8352 TGA = $_tga
8353 TOOLAME=$_toolame
8354 TREMOR_INTERNAL = $_tremor_internal
8355 TV = $_tv
8356 TV_BSDBT848 = $_tv_bsdbt848
8357 TV_DSHOW = $_tv_dshow
8358 TV_TELETEXT = $_tv_teletext
8359 TV_V4L = $_tv_v4l
8360 TV_V4L1 = $_tv_v4l1
8361 TV_V4L2 = $_tv_v4l2
8362 TWOLAME=$_twolame
8363 UNRAR_EXEC = $_unrar_exec
8364 V4L2 = $_v4l2
8365 VCD = $_vcd
8366 VDPAU = $_vdpau
8367 VESA = $_vesa
8368 VIDIX = $_vidix
8369 VIDIX_PCIDB = $_vidix_pcidb_val
8370 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8371 VIDIX_IVTV=$_vidix_drv_ivtv
8372 VIDIX_MACH64=$_vidix_drv_mach64
8373 VIDIX_MGA=$_vidix_drv_mga
8374 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8375 VIDIX_NVIDIA=$_vidix_drv_nvidia
8376 VIDIX_PM2=$_vidix_drv_pm2
8377 VIDIX_PM3=$_vidix_drv_pm3
8378 VIDIX_RADEON=$_vidix_drv_radeon
8379 VIDIX_RAGE128=$_vidix_drv_rage128
8380 VIDIX_S3=$_vidix_drv_s3
8381 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8382 VIDIX_SIS=$_vidix_drv_sis
8383 VIDIX_UNICHROME=$_vidix_drv_unichrome
8384 VORBIS = $_vorbis
8385 VSTREAM = $_vstream
8386 WII = $_wii
8387 WIN32DLL = $_win32dll
8388 WIN32WAVEOUT = $_win32waveout
8389 WIN32_EMULATION = $_win32_emulation
8390 WINVIDIX = $winvidix
8391 X11 = $_x11
8392 X264 = $_x264
8393 XANIM_CODECS = $_xanim
8394 XMGA = $_xmga
8395 XMMS_PLUGINS = $_xmms
8396 XV = $_xv
8397 XVID4 = $_xvid
8398 XVIDIX = $xvidix
8399 XVMC = $_xvmc
8400 XVR100 = $_xvr100
8401 YUV4MPEG = $_yuv4mpeg
8402 ZR = $_zr
8404 # FFmpeg
8405 LIBAVUTIL = $_libavutil
8406 LIBAVUTIL_A = $_libavutil_a
8407 LIBAVUTIL_SO = $_libavutil_so
8408 LIBAVCODEC = $_libavcodec
8409 LIBAVCODEC_A = $_libavcodec_a
8410 LIBAVCODEC_SO = $_libavcodec_so
8411 LIBAVFORMAT = $_libavformat
8412 LIBAVFORMAT_A = $_libavformat_a
8413 LIBAVFORMAT_SO = $_libavformat_so
8414 LIBPOSTPROC = $_libpostproc
8415 LIBPOSTPROC_A = $_libpostproc_a
8416 LIBPOSTPROC_SO = $_libpostproc_so
8417 LIBSWSCALE = $_libswscale
8418 LIBSWSCALE_A = $_libswscale_a
8419 LIBSWSCALE_SO = $_libswscale_so
8421 BUILD_STATIC=yes
8422 SRC_PATH=..
8423 BUILD_ROOT=..
8424 LIBPREF=lib
8425 LIBSUF=.a
8426 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8428 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8429 CONFIG_AANDCT=yes
8430 CONFIG_FFT=yes
8431 CONFIG_FFT_MMX=$fft_mmx
8432 CONFIG_GOLOMB=yes
8433 CONFIG_MDCT=yes
8434 CONFIG_RDFT=yes
8436 CONFIG_BZLIB=$bzlib
8437 CONFIG_ENCODERS=yes
8438 CONFIG_GPL=yes
8439 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8440 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8441 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8442 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8443 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8444 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8445 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8446 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8447 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8448 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8449 CONFIG_LIBX264_ENCODER=$_x264_lavc
8450 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8451 CONFIG_MLIB = $_mlib
8452 CONFIG_MUXERS=$_mencoder
8453 CONFIG_POSTPROC = yes
8454 # Prevent building libavcodec/imgresample.c with conflicting symbols
8455 CONFIG_SWSCALE=yes
8456 CONFIG_VDPAU=$_vdpau
8457 CONFIG_XVMC=$_xvmc
8458 CONFIG_ZLIB=$_zlib
8460 HAVE_PTHREADS = $_pthreads
8461 HAVE_SHM = $_shm
8462 HAVE_W32THREADS = $_w32threads
8463 HAVE_YASM = $_have_yasm
8465 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8466 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8467 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8468 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8469 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8470 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8473 #############################################################################
8475 ff_config_enable () {
8476 _nprefix=$3;
8477 test -z "$_nprefix" && _nprefix='CONFIG'
8478 for part in $1; do
8479 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8480 echo "#define ${_nprefix}_$part 1"
8481 else
8482 echo "#define ${_nprefix}_$part 0"
8484 done
8487 echo "Creating config.h"
8488 cat > $TMPH << EOF
8489 /*----------------------------------------------------------------------------
8490 ** This file has been automatically generated by configure any changes in it
8491 ** will be lost when you run configure again.
8492 ** Instead of modifying definitions here, use the --enable/--disable options
8493 ** of the configure script! See ./configure --help for details.
8494 *---------------------------------------------------------------------------*/
8496 #ifndef MPLAYER_CONFIG_H
8497 #define MPLAYER_CONFIG_H
8499 /* Undefine this if you do not want to select mono audio (left or right)
8500 with a stereo MPEG layer 2/3 audio stream. The command line option
8501 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8502 right-only), with 0 being the default.
8504 #define CONFIG_FAKE_MONO 1
8506 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8507 #define MAX_OUTBURST 65536
8509 /* set up audio OUTBURST. Do not change this! */
8510 #define OUTBURST 512
8512 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8513 #undef FAST_OSD
8514 #undef FAST_OSD_TABLE
8516 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8517 #define MPEG12_POSTPROC 1
8518 #define ATTRIBUTE_ALIGNED_MAX 16
8522 #define CONFIGURATION "$_configuration"
8524 #define MPLAYER_DATADIR "$_datadir"
8525 #define MPLAYER_CONFDIR "$_confdir"
8526 #define MPLAYER_LIBDIR "$_libdir"
8528 /* definitions needed by included libraries */
8529 #define HAVE_INTTYPES_H 1
8530 /* libmpeg2 + FFmpeg */
8531 $def_fast_inttypes
8532 /* libdvdcss */
8533 #define HAVE_ERRNO_H 1
8534 /* libdvdcss + libdvdread */
8535 #define HAVE_LIMITS_H 1
8536 /* libdvdcss + libfaad2 */
8537 #define HAVE_UNISTD_H 1
8538 /* libfaad2 + libdvdread */
8539 #define STDC_HEADERS 1
8540 #define HAVE_MEMCPY 1
8541 /* libfaad2 */
8542 #define HAVE_STRING_H 1
8543 #define HAVE_STRINGS_H 1
8544 #define HAVE_SYS_STAT_H 1
8545 #define HAVE_SYS_TYPES_H 1
8546 /* libdvdnav */
8547 #define READ_CACHE_TRACE 0
8548 /* libdvdread */
8549 #define HAVE_DLFCN_H 1
8550 $def_dvdcss
8553 /* system headers */
8554 $def_alloca_h
8555 $def_alsa_asoundlib_h
8556 $def_altivec_h
8557 $def_malloc_h
8558 $def_mman_h
8559 $def_mman_has_map_failed
8560 $def_soundcard_h
8561 $def_sys_asoundlib_h
8562 $def_sys_soundcard_h
8563 $def_sys_sysinfo_h
8564 $def_termios_h
8565 $def_termios_sys_h
8566 $def_winsock2_h
8569 /* system functions */
8570 $def_gethostbyname2
8571 $def_gettimeofday
8572 $def_glob
8573 $def_langinfo
8574 $def_llrint
8575 $def_log2
8576 $def_lrint
8577 $def_lrintf
8578 $def_map_memalign
8579 $def_memalign
8580 $def_nanosleep
8581 $def_posix_select
8582 $def_round
8583 $def_roundf
8584 $def_select
8585 $def_setenv
8586 $def_shm
8587 $def_strsep
8588 $def_swab
8589 $def_sysi86
8590 $def_sysi86_iv
8591 $def_termcap
8592 $def_termios
8593 $def_truncf
8594 $def_vsscanf
8597 /* system-specific features */
8598 $def_asmalign_pot
8599 $def_builtin_expect
8600 $def_dl
8601 $def_extern_prefix
8602 $def_iconv
8603 $def_kstat
8604 $def_macosx_bundle
8605 $def_macosx_finder
8606 $def_maemo
8607 $def_named_asm_args
8608 $def_priority
8609 $def_quicktime
8610 $def_restrict_keyword
8611 $def_rtc
8612 $def_unrar_exec
8615 /* configurable options */
8616 $def_charset
8617 $def_crash_debug
8618 $def_debug
8619 $def_dynamic_plugins
8620 $def_fastmemcpy
8621 $def_menu
8622 $def_runtime_cpudetection
8623 $def_sighandler
8624 $def_sortsub
8625 $def_stream_cache
8626 $def_pthread_cache
8629 /* CPU stuff */
8630 #define __CPU__ $iproc
8631 $def_words_endian
8632 $def_bigendian
8633 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8634 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8637 /* DVD/VCD/CD */
8638 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8639 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8640 $def_bsdi_dvd
8641 $def_cddb
8642 $def_cdio
8643 $def_cdparanoia
8644 $def_cdrom
8645 $def_dvd
8646 $def_dvd_bsd
8647 $def_dvd_darwin
8648 $def_dvd_linux
8649 $def_dvd_openbsd
8650 $def_dvdio
8651 $def_dvdnav
8652 $def_dvdread
8653 $def_hpux_scsi_h
8654 $def_libcdio
8655 $def_sol_scsi_h
8656 $def_vcd
8659 /* codec libraries */
8660 $def_faac
8661 $def_faad
8662 $def_faad_internal
8663 $def_liba52
8664 $def_liba52_internal
8665 $def_libdca
8666 $def_libdv
8667 $def_liblzo
8668 $def_libmpeg2
8669 $def_mad
8670 $def_mp3lame
8671 $def_mp3lame_preset
8672 $def_mp3lame_preset_medium
8673 $def_mp3lib
8674 $def_musepack
8675 $def_speex
8676 $def_theora
8677 $def_toolame
8678 $def_tremor
8679 $def_twolame
8680 $def_vorbis
8681 $def_x264
8682 $def_xvid
8683 $def_zlib
8685 $def_libnut
8688 /* binary codecs */
8689 $def_qtx
8690 $def_qtx_win32
8691 $def_real
8692 $def_real_path
8693 $def_win32_loader
8694 $def_win32dll
8695 #define WIN32_PATH "$_win32codecsdir"
8696 $def_xanim
8697 $def_xanim_path
8698 $def_xmms
8699 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8702 /* GUI */
8703 $def_gtk2
8704 $def_gui
8705 $def_xshape
8708 /* Audio output drivers */
8709 $def_alsa
8710 $def_alsa1x
8711 $def_alsa5
8712 $def_alsa9
8713 $def_arts
8714 $def_coreaudio
8715 $def_dart
8716 $def_esd
8717 $def_esd_latency
8718 $def_jack
8719 $def_nas
8720 $def_openal
8721 $def_openal_h
8722 $def_ossaudio
8723 $def_ossaudio_devdsp
8724 $def_ossaudio_devmixer
8725 $def_pulse
8726 $def_sgiaudio
8727 $def_sunaudio
8728 $def_win32waveout
8730 $def_ladspa
8731 $def_libbs2b
8734 /* input */
8735 $def_apple_ir
8736 $def_apple_remote
8737 $def_ioctl_bt848_h_name
8738 $def_ioctl_meteor_h_name
8739 $def_joystick
8740 $def_lirc
8741 $def_lircc
8742 $def_pvr
8743 $def_radio
8744 $def_radio_bsdbt848
8745 $def_radio_capture
8746 $def_radio_v4l
8747 $def_radio_v4l2
8748 $def_tv
8749 $def_tv_bsdbt848
8750 $def_tv_dshow
8751 $def_tv_teletext
8752 $def_tv_v4l
8753 $def_tv_v4l1
8754 $def_tv_v4l2
8757 /* font stuff */
8758 $def_ass
8759 $def_bitmap_font
8760 $def_enca
8761 $def_fontconfig
8762 $def_freetype
8763 $def_fribidi
8766 /* networking */
8767 $def_closesocket
8768 $def_ftp
8769 $def_inet6
8770 $def_inet_aton
8771 $def_inet_pton
8772 $def_live
8773 $def_nemesi
8774 $def_network
8775 $def_smb
8776 $def_socklen_t
8777 $def_vstream
8780 /* libvo options */
8781 $def_3dfx
8782 $def_aa
8783 $def_bl
8784 $def_caca
8785 $def_corevideo
8786 $def_dfbmga
8787 $def_dga
8788 $def_dga1
8789 $def_dga2
8790 $def_direct3d
8791 $def_directfb
8792 $def_directfb_version
8793 $def_directx
8794 $def_dvb
8795 $def_dvb_head
8796 $def_dvbin
8797 $def_dxr2
8798 $def_dxr3
8799 $def_fbdev
8800 $def_ggi
8801 $def_ggiwmh
8802 $def_gif
8803 $def_gif_4
8804 $def_gif_tvt_hack
8805 $def_gl
8806 $def_gl_win32
8807 $def_ivtv
8808 $def_jpeg
8809 $def_kva
8810 $def_md5sum
8811 $def_mga
8812 $def_mng
8813 $def_png
8814 $def_pnm
8815 $def_quartz
8816 $def_s3fb
8817 $def_sdl
8818 $def_sdlbuggy
8819 $def_svga
8820 $def_tdfxfb
8821 $def_tdfxvid
8822 $def_tga
8823 $def_v4l2
8824 $def_vdpau
8825 $def_vesa
8826 $def_vidix
8827 $def_vidix_drv_cyberblade
8828 $def_vidix_drv_ivtv
8829 $def_vidix_drv_mach64
8830 $def_vidix_drv_mga
8831 $def_vidix_drv_mga_crtc2
8832 $def_vidix_drv_nvidia
8833 $def_vidix_drv_pm3
8834 $def_vidix_drv_radeon
8835 $def_vidix_drv_rage128
8836 $def_vidix_drv_s3
8837 $def_vidix_drv_sh_veu
8838 $def_vidix_drv_sis
8839 $def_vidix_drv_unichrome
8840 $def_vidix_pfx
8841 $def_vm
8842 $def_wii
8843 $def_x11
8844 $def_xdpms
8845 $def_xf86keysym
8846 $def_xinerama
8847 $def_xmga
8848 $def_xss
8849 $def_xv
8850 $def_xvmc
8851 $def_xvr100
8852 $def_yuv4mpeg
8853 $def_zr
8856 /* FFmpeg */
8857 $def_libavcodec
8858 $def_libavcodec_a
8859 $def_libavcodec_so
8860 $def_libavformat
8861 $def_libavformat_a
8862 $def_libavformat_so
8863 $def_libavutil
8864 $def_libavutil_a
8865 $def_libavutil_so
8866 $def_libpostproc
8867 $def_libpostproc_a
8868 $def_libpostproc_so
8869 $def_libswscale
8870 $def_libswscale_a
8871 $def_libswscale_so
8873 #define CONFIG_DECODERS 1
8874 #define CONFIG_ENCODERS 1
8875 #define CONFIG_DEMUXERS 1
8876 $def_muxers
8878 $def_arpa_inet_h
8879 $def_bswap
8880 $def_bzlib
8881 $def_dcbzl
8882 $def_dos_paths
8883 $def_fast_64bit
8884 $def_fast_unaligned
8885 $def_libavcodec_mpegaudio_hp
8886 $def_memalign_hack
8887 $def_mlib
8888 $def_mkstemp
8889 $def_posix_memalign
8890 $def_pthreads
8891 $def_ten_operands
8892 $def_threads
8893 $def_xform_asm
8894 $def_yasm
8896 #define CONFIG_FASTDIV 0
8897 #define CONFIG_FFSERVER 0
8898 #define CONFIG_GPL 1
8899 #define CONFIG_GRAY 0
8900 #define CONFIG_HARDCODED_TABLES 0
8901 #define CONFIG_LIBVORBIS 0
8902 #define CONFIG_POWERPC_PERF 0
8903 #define CONFIG_SMALL 0
8904 #define CONFIG_SWSCALE 1
8905 #define CONFIG_SWSCALE_ALPHA 1
8907 #define HAVE_ATTRIBUTE_PACKED 1
8908 #define HAVE_GETHRTIME 0
8909 #define HAVE_INLINE_ASM 0
8910 #define HAVE_LDBRX 0
8911 #define HAVE_POLL_H 1
8912 #define HAVE_PPC4XX 0
8913 #define HAVE_VIRTUALALLOC 0
8915 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8916 #define CONFIG_AANDCT 1
8917 #define CONFIG_FFT 1
8918 #define CONFIG_GOLOMB 1
8919 #define CONFIG_MDCT 1
8920 #define CONFIG_RDFT 1
8922 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8923 $def_ebx_available
8924 #ifndef MP_DEBUG
8925 #define HAVE_EBP_AVAILABLE 1
8926 #else
8927 #define HAVE_EBP_AVAILABLE 0
8928 #endif
8930 /* External libraries used through libavcodec. */
8931 $def_faac_lavc
8932 $def_libdirac_lavc
8933 $def_libopencore_amrnb
8934 $def_libopencore_amrwb
8935 $def_libschroedinger_lavc
8936 $def_mp3lame_lavc
8937 $def_x264_lavc
8938 $def_xvid_lavc
8940 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8941 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8942 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8943 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8944 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8945 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8946 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8948 #define CONFIG_H263_VAAPI_HWACCEL 0
8949 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8950 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8951 #define CONFIG_H264_VAAPI_HWACCEL 0
8952 #define CONFIG_VC1_VAAPI_HWACCEL 0
8953 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8955 #endif /* MPLAYER_CONFIG_H */
8958 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8959 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8961 #############################################################################
8963 cat << EOF
8965 Config files successfully generated by ./configure $_configuration !
8967 Install prefix: $_prefix
8968 Data directory: $_datadir
8969 Config direct.: $_confdir
8971 Byte order: $_byte_order
8972 Optimizing for: $_optimizing
8974 Languages:
8975 Messages/GUI: $language_msg
8976 Manual pages: $language_man
8977 Documentation: $language_doc
8979 Enabled optional drivers:
8980 Input: $_inputmodules
8981 Codecs: $_codecmodules
8982 Audio output: $_aomodules
8983 Video output: $_vomodules
8985 Disabled optional drivers:
8986 Input: $_noinputmodules
8987 Codecs: $_nocodecmodules
8988 Audio output: $_noaomodules
8989 Video output: $_novomodules
8991 'config.h' and 'config.mak' contain your configuration options.
8992 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8993 compile *** DO NOT REPORT BUGS if you tweak these files ***
8995 'make' will now compile MPlayer and 'make install' will install it.
8996 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9001 if test "$_mtrr" = yes ; then
9002 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9003 echo
9006 if ! x86_32; then
9007 cat <<EOF
9008 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9009 operating system ($system_name). You may encounter a few files that cannot
9010 be played due to missing open source video/audio codec support.
9016 cat <<EOF
9017 Check $TMPLOG if you wonder why an autodetection failed (make sure
9018 development headers/packages are installed).
9020 NOTE: The --enable-* parameters unconditionally force options on, completely
9021 skipping autodetection. This behavior is unlike what you may be used to from
9022 autoconf-based configure scripts that can decide to override you. This greater
9023 level of control comes at a price. You may have to provide the correct compiler
9024 and linker flags yourself.
9025 If you used one of these options (except --enable-gui and similar ones that
9026 turn on internal features) and experience a compilation or linking failure,
9027 make sure you have passed the necessary compiler/linker flags to configure.
9029 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9033 if test "$_warn_CFLAGS" = yes; then
9034 cat <<EOF
9036 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9037 but:
9039 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9041 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9042 To do so, execute 'CFLAGS= ./configure <options>'
9047 # Last move:
9048 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"