Synced with help_mp-en.h r29912
[mplayer/glamo.git] / configure
blobc2b3de83dabc4c46cd5353b7a5bee719d4136719
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
284 --enable-rpath enable runtime linker path for extra libs [disabled]
286 Codecs:
287 --enable-gif enable GIF support [autodetect]
288 --enable-png enable PNG input/output support [autodetect]
289 --enable-mng enable MNG input support [autodetect]
290 --enable-jpeg enable JPEG input/output support [autodetect]
291 --enable-libcdio enable libcdio support [autodetect]
292 --enable-liblzo enable liblzo support [autodetect]
293 --disable-win32dll disable Win32 DLL support [enabled]
294 --disable-qtx disable QuickTime codecs support [enabled]
295 --disable-xanim disable XAnim codecs support [enabled]
296 --disable-real disable RealPlayer codecs support [enabled]
297 --disable-xvid disable Xvid [autodetect]
298 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
299 --disable-x264 disable x264 [autodetect]
300 --disable-x264-lavc disable x264 in libavcodec [autodetect]
301 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
302 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
303 decoder) [autodetect]
304 --disable-libnut disable libnut [autodetect]
305 --disable-libavutil_a disable static libavutil [autodetect]
306 --disable-libavcodec_a disable static libavcodec [autodetect]
307 --disable-libavformat_a disable static libavformat [autodetect]
308 --disable-libpostproc_a disable static libpostproc [autodetect]
309 --disable-libswscale_a disable static libswscale [autodetect]
310 --disable-libavutil_so disable shared libavutil [autodetect]
311 --disable-libavcodec_so disable shared libavcodec [autodetect]
312 --disable-libavformat_so disable shared libavformat [autodetect]
313 --disable-libpostproc_so disable shared libpostproc [autodetect]
314 --disable-libswscale_so disable shared libswscale [autodetect]
315 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
316 in libavcodec [enabled]
317 --disable-tremor-internal disable internal Tremor [enabled]
318 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
319 --enable-tremor enable external Tremor [autodetect]
320 --disable-libvorbis disable libvorbis support [autodetect]
321 --disable-speex disable Speex support [autodetect]
322 --enable-theora enable OggTheora libraries [autodetect]
323 --enable-faad enable external FAAD2 (AAC) [autodetect]
324 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
325 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
326 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
327 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
328 --disable-ladspa disable LADSPA plugin support [autodetect]
329 --disable-libbs2b disable libbs2b audio filter support [autodetect]
330 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
331 --disable-mad disable libmad (MPEG audio) support [autodetect]
332 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
333 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
334 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
335 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
336 --enable-xmms enable XMMS input plugin support [disabled]
337 --enable-libdca enable libdca support [autodetect]
338 --disable-mp3lib disable builtin mp3lib [autodetect]
339 --disable-liba52 disable liba52 [autodetect]
340 --disable-liba52-internal disable builtin liba52 [autodetect]
341 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
342 --disable-musepack disable musepack support [autodetect]
343 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
344 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
345 --disable-decoder=DECODER disable specified FFmpeg decoder
346 --enable-decoder=DECODER enable specified FFmpeg decoder
347 --disable-encoder=ENCODER disable specified FFmpeg encoder
348 --enable-encoder=ENCODER enable specified FFmpeg encoder
349 --disable-parser=PARSER disable specified FFmpeg parser
350 --enable-parser=PARSER enable specified FFmpeg parser
351 --disable-protocol=PROTO disable specified FFmpeg protocol
352 --enable-protocol=PROTO enable specified FFmpeg protocol
353 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
354 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
355 --disable-muxer=MUXER disable specified FFmpeg muxer
356 --enable-muxer=MUXER enable specified FFmpeg muxer
358 Video output:
359 --disable-vidix disable VIDIX [for x86 *nix]
360 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
361 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
362 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
363 --disable-vidix-pcidb disable VIDIX PCI device name database
364 --enable-dhahelper enable VIDIX dhahelper support
365 --enable-svgalib_helper enable VIDIX svgalib_helper support
366 --enable-gl enable OpenGL video output [autodetect]
367 --enable-dga2 enable DGA 2 support [autodetect]
368 --enable-dga1 enable DGA 1 support [autodetect]
369 --enable-vesa enable VESA video output [autodetect]
370 --enable-svga enable SVGAlib video output [autodetect]
371 --enable-sdl enable SDL video output [autodetect]
372 --enable-kva enable KVA video output [autodetect]
373 --enable-aa enable AAlib video output [autodetect]
374 --enable-caca enable CACA video output [autodetect]
375 --enable-ggi enable GGI video output [autodetect]
376 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
377 --enable-direct3d enable Direct3D video output [autodetect]
378 --enable-directx enable DirectX video output [autodetect]
379 --enable-dxr2 enable DXR2 video output [autodetect]
380 --enable-dxr3 enable DXR3/H+ video output [autodetect]
381 --enable-ivtv enable IVTV TV-Out video output [autodetect]
382 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
383 --enable-dvb enable DVB video output [autodetect]
384 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
385 --enable-mga enable mga_vid video output [autodetect]
386 --enable-xmga enable mga_vid X11 video output [autodetect]
387 --enable-xv enable Xv video output [autodetect]
388 --enable-xvmc enable XvMC acceleration [disable]
389 --enable-vdpau enable VDPAU acceleration [autodetect]
390 --enable-vm enable XF86VidMode support [autodetect]
391 --enable-xinerama enable Xinerama support [autodetect]
392 --enable-x11 enable X11 video output [autodetect]
393 --enable-xshape enable XShape support [autodetect]
394 --disable-xss disable screensaver support via xss [autodetect]
395 --enable-fbdev enable FBDev video output [autodetect]
396 --enable-mlib enable mediaLib video output (Solaris) [disable]
397 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
398 --enable-tdfxfb enable tdfxfb video output [disable]
399 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
400 --enable-wii enable Nintendo Wii/GameCube video output [disable]
401 --enable-directfb enable DirectFB video output [autodetect]
402 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
403 --enable-bl enable Blinkenlights video output [disable]
404 --enable-tdfxvid enable tdfx_vid video output [disable]
405 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
406 --disable-tga disable Targa video output [enable]
407 --disable-pnm disable PNM video output [enable]
408 --disable-md5sum disable md5sum video output [enable]
409 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
410 --disable-corevideo disable CoreVideo video output [autodetect]
411 --disable-quartz disable Quartz video output [autodetect]
413 Audio output:
414 --disable-alsa disable ALSA audio output [autodetect]
415 --disable-ossaudio disable OSS audio output [autodetect]
416 --disable-arts disable aRts audio output [autodetect]
417 --disable-esd disable esd audio output [autodetect]
418 --disable-pulse disable Pulseaudio audio output [autodetect]
419 --disable-jack disable JACK audio output [autodetect]
420 --disable-openal disable OpenAL audio output [autodetect]
421 --disable-nas disable NAS audio output [autodetect]
422 --disable-sgiaudio disable SGI audio output [autodetect]
423 --disable-sunaudio disable Sun audio output [autodetect]
424 --disable-dart disable DART audio output [autodetect]
425 --disable-win32waveout disable Windows waveout audio output [autodetect]
426 --disable-coreaudio disable CoreAudio audio output [autodetect]
427 --disable-select disable using select() on the audio device [enable]
429 Language options:
430 --charset=charset convert the console messages to this character set
431 --language-doc=lang language to use for the documentation [en]
432 --language-man=lang language to use for the man pages [en]
433 --language-msg=lang language to use for the messages and the GUI [en]
434 --language=lang default language to use [en]
435 Specific options override --language. You can pass a list of languages separated
436 by whitespace or commas instead of a single language. Nonexisting translations
437 will be dropped from each list. All documentation and man page translations
438 available in the list will be installed, for the messages the first available
439 translation will be used. The value "all" will activate all translations. The
440 LINGUAS environment variable is honored. In all cases the fallback is English.
441 Available values are: all $msg_lang_all
443 Miscellaneous options:
444 --enable-runtime-cpudetection enable runtime CPU detection [disable]
445 --enable-cross-compile enable cross-compilation [autodetect]
446 --cc=COMPILER C compiler to build MPlayer [gcc]
447 --host-cc=COMPILER C compiler for tools needed while building [gcc]
448 --as=ASSEMBLER assembler to build MPlayer [as]
449 --nm=NM nm tool to build MPlayer [nm]
450 --yasm=YASM Yasm assembler to build MPlayer [yasm]
451 --ar=AR librarian to build MPlayer [ar]
452 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
453 --windres=WINDRES windres to build MPlayer [windres]
454 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
455 --enable-static build a statically linked binary
456 --with-install=PATH path to a custom install program
458 Advanced options:
459 --enable-mmx enable MMX [autodetect]
460 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
461 --enable-3dnow enable 3DNow! [autodetect]
462 --enable-3dnowext enable extended 3DNow! [autodetect]
463 --enable-sse enable SSE [autodetect]
464 --enable-sse2 enable SSE2 [autodetect]
465 --enable-ssse3 enable SSSE3 [autodetect]
466 --enable-shm enable shm [autodetect]
467 --enable-altivec enable AltiVec (PowerPC) [autodetect]
468 --enable-armv5te enable DSP extensions (ARM) [autodetect]
469 --enable-armv6 enable ARMv6 (ARM) [autodetect]
470 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
471 --enable-armvfp enable ARM VFP (ARM) [autodetect]
472 --enable-neon enable NEON (ARM) [autodetect]
473 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
474 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
475 --enable-big-endian force byte order to big-endian [autodetect]
476 --enable-debug[=1-3] compile-in debugging information [disable]
477 --enable-profile compile-in profiling information [disable]
478 --disable-sighandler disable sighandler for crashes [enable]
479 --enable-crash-debug enable automatic gdb attach on crash [disable]
480 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
482 Use these options if autodetection fails:
483 --extra-cflags=FLAGS extra CFLAGS
484 --extra-ldflags=FLAGS extra LDFLAGS
485 --extra-libs=FLAGS extra linker flags
486 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
487 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
488 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
490 --with-freetype-config=PATH path to freetype-config
491 --with-fribidi-config=PATH path to fribidi-config
492 --with-glib-config=PATH path to glib*-config
493 --with-gtk-config=PATH path to gtk*-config
494 --with-sdl-config=PATH path to sdl*-config
495 --with-dvdnav-config=PATH path to dvdnav-config
496 --with-dvdread-config=PATH path to dvdread-config
498 This configure script is NOT autoconf-based, even though its output is similar.
499 It will try to autodetect all configuration options. If you --enable an option
500 it will be forcefully turned on, skipping autodetection. This can break
501 compilation, so you need to know what you are doing.
503 exit 0
504 } #show_help()
506 # GOTCHA: the variables below defines the default behavior for autodetection
507 # and have - unless stated otherwise - at least 2 states : yes no
508 # If autodetection is available then the third state is: auto
509 _mmx=auto
510 _3dnow=auto
511 _3dnowext=auto
512 _mmxext=auto
513 _sse=auto
514 _sse2=auto
515 _ssse3=auto
516 _cmov=auto
517 _fast_cmov=auto
518 _armv5te=auto
519 _armv6=auto
520 _armv6t2=auto
521 _armvfp=auto
522 neon=auto
523 _iwmmxt=auto
524 _mtrr=auto
525 _altivec=auto
526 _install=install
527 _ranlib=ranlib
528 _windres=windres
529 _cc=cc
530 _ar=ar
531 test "$CC" && _cc="$CC"
532 _as=auto
533 _nm=auto
534 _yasm=yasm
535 _runtime_cpudetection=no
536 _cross_compile=auto
537 _prefix="/usr/local"
538 _libavutil_a=auto
539 _libavutil_so=auto
540 _libavcodec_a=auto
541 _libopencore_amrnb=auto
542 _libopencore_amrwb=auto
543 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
544 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
545 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
546 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
547 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
548 _libavparsers=$_libavparsers_all
549 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
550 _libavbsfs=$_libavbsfs_all
551 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
552 _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//)
553 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
554 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
555 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
556 _libavprotocols=""
557 _libavcodec_so=auto
558 _libavformat_a=auto
559 _libavformat_so=auto
560 _libpostproc_a=auto
561 _libpostproc_so=auto
562 _libswscale_a=auto
563 _libswscale_so=auto
564 _libavcodec_mpegaudio_hp=yes
565 _mencoder=yes
566 _mplayer=yes
567 _x11=auto
568 _xshape=auto
569 _xss=auto
570 _dga1=auto
571 _dga2=auto
572 _xv=auto
573 _xvmc=no #auto when complete
574 _vdpau=auto
575 _sdl=auto
576 _kva=auto
577 _direct3d=auto
578 _directx=auto
579 _win32waveout=auto
580 _nas=auto
581 _png=auto
582 _mng=auto
583 _jpeg=auto
584 _pnm=yes
585 _md5sum=yes
586 _yuv4mpeg=yes
587 _gif=auto
588 _gl=auto
589 _ggi=auto
590 _ggiwmh=auto
591 _aa=auto
592 _caca=auto
593 _svga=auto
594 _vesa=auto
595 _fbdev=auto
596 _dvb=auto
597 _dvbhead=auto
598 _dxr2=auto
599 _dxr3=auto
600 _ivtv=auto
601 _v4l2=auto
602 _iconv=auto
603 _langinfo=auto
604 _rtc=auto
605 _ossaudio=auto
606 _arts=auto
607 _esd=auto
608 _pulse=auto
609 _jack=auto
610 _dart=auto
611 _openal=auto
612 _libcdio=auto
613 _liblzo=auto
614 _mad=auto
615 _mp3lame=auto
616 _mp3lame_lavc=auto
617 _toolame=auto
618 _twolame=auto
619 _tremor=auto
620 _tremor_internal=yes
621 _tremor_low=no
622 _libvorbis=auto
623 _speex=auto
624 _theora=auto
625 _mp3lib=auto
626 _liba52=auto
627 _liba52_internal=auto
628 _libdca=auto
629 _libmpeg2=auto
630 _faad=auto
631 _faad_internal=auto
632 _faad_fixed=no
633 _faac=auto
634 _faac_lavc=auto
635 _ladspa=auto
636 _libbs2b=auto
637 _xmms=no
638 _vcd=auto
639 _dvdnav=auto
640 _dvdnavconfig=dvdnav-config
641 _dvdreadconfig=dvdread-config
642 _dvdread=auto
643 _dvdread_internal=auto
644 _libdvdcss_internal=auto
645 _xanim=auto
646 _real=auto
647 _live=auto
648 _nemesi=auto
649 _native_rtsp=yes
650 _xinerama=auto
651 _mga=auto
652 _xmga=auto
653 _vm=auto
654 _xf86keysym=auto
655 _mlib=no #broken, thus disabled
656 _sgiaudio=auto
657 _sunaudio=auto
658 _alsa=auto
659 _fastmemcpy=yes
660 _unrar_exec=auto
661 _win32dll=auto
662 _select=yes
663 _radio=no
664 _radio_capture=no
665 _radio_v4l=auto
666 _radio_v4l2=auto
667 _radio_bsdbt848=auto
668 _tv=yes
669 _tv_v4l1=auto
670 _tv_v4l2=auto
671 _tv_bsdbt848=auto
672 _tv_dshow=auto
673 _pvr=auto
674 _network=yes
675 _winsock2_h=auto
676 _smb=auto
677 _vidix=auto
678 _vidix_pcidb=yes
679 _dhahelper=no
680 _svgalib_helper=no
681 _joystick=no
682 _xvid=auto
683 _xvid_lavc=auto
684 _x264=auto
685 _x264_lavc=auto
686 _libdirac_lavc=auto
687 _libschroedinger_lavc=auto
688 _libnut=auto
689 _lirc=auto
690 _lircc=auto
691 _apple_remote=auto
692 _apple_ir=auto
693 _gui=no
694 _gtk1=no
695 _termcap=auto
696 _termios=auto
697 _3dfx=no
698 _s3fb=no
699 _wii=no
700 _tdfxfb=no
701 _tdfxvid=no
702 _xvr100=auto
703 _tga=yes
704 _directfb=auto
705 _zr=auto
706 _bl=no
707 _largefiles=yes
708 #language=en
709 _shm=auto
710 _linux_devfs=no
711 _charset="UTF-8"
712 _dynamic_plugins=no
713 _crash_debug=no
714 _sighandler=yes
715 _libdv=auto
716 _cdparanoia=auto
717 _cddb=auto
718 _big_endian=auto
719 _bitmap_font=yes
720 _freetype=auto
721 _fontconfig=auto
722 _menu=no
723 _qtx=auto
724 _maemo=auto
725 _coreaudio=auto
726 _corevideo=auto
727 _quartz=auto
728 quicktime=auto
729 _macosx_finder=no
730 _macosx_bundle=auto
731 _sortsub=yes
732 _freetypeconfig='freetype-config'
733 _fribidi=auto
734 _fribidiconfig='fribidi-config'
735 _enca=auto
736 _inet6=auto
737 _gethostbyname2=auto
738 _ftp=yes
739 _musepack=auto
740 _vstream=auto
741 _pthreads=auto
742 _w32threads=auto
743 _ass=auto
744 _rpath=no
745 _asmalign_pot=auto
746 _stream_cache=yes
747 _priority=no
748 def_dos_paths="#define HAVE_DOS_PATHS 0"
749 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
750 def_priority="#undef CONFIG_PRIORITY"
751 def_pthread_cache="#undef PTHREAD_CACHE"
752 _need_shmem=yes
753 for ac_option do
754 case "$ac_option" in
755 --help|-help|-h)
756 show_help
758 --prefix=*)
759 _prefix=$(echo $ac_option | cut -d '=' -f 2)
761 --bindir=*)
762 _bindir=$(echo $ac_option | cut -d '=' -f 2)
764 --datadir=*)
765 _datadir=$(echo $ac_option | cut -d '=' -f 2)
767 --mandir=*)
768 _mandir=$(echo $ac_option | cut -d '=' -f 2)
770 --confdir=*)
771 _confdir=$(echo $ac_option | cut -d '=' -f 2)
773 --libdir=*)
774 _libdir=$(echo $ac_option | cut -d '=' -f 2)
776 --codecsdir=*)
777 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
779 --win32codecsdir=*)
780 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
782 --xanimcodecsdir=*)
783 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
785 --realcodecsdir=*)
786 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
789 --with-install=*)
790 _install=$(echo $ac_option | cut -d '=' -f 2 )
792 --with-xvmclib=*)
793 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
796 --with-sdl-config=*)
797 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
799 --with-freetype-config=*)
800 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
802 --with-fribidi-config=*)
803 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
805 --with-gtk-config=*)
806 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
808 --with-glib-config=*)
809 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
811 --with-dvdnav-config=*)
812 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
814 --with-dvdread-config=*)
815 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
818 --extra-cflags=*)
819 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
821 --extra-ldflags=*)
822 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
824 --extra-libs=*)
825 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
827 --extra-libs-mplayer=*)
828 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
830 --extra-libs-mencoder=*)
831 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
834 --target=*)
835 _target=$(echo $ac_option | cut -d '=' -f 2)
837 --cc=*)
838 _cc=$(echo $ac_option | cut -d '=' -f 2)
840 --host-cc=*)
841 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
843 --as=*)
844 _as=$(echo $ac_option | cut -d '=' -f 2)
846 --nm=*)
847 _nm=$(echo $ac_option | cut -d '=' -f 2)
849 --yasm=*)
850 _yasm=$(echo $ac_option | cut -d '=' -f 2)
852 --ar=*)
853 _ar=$(echo $ac_option | cut -d '=' -f 2)
855 --ranlib=*)
856 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
858 --windres=*)
859 _windres=$(echo $ac_option | cut -d '=' -f 2)
861 --charset=*)
862 _charset=$(echo $ac_option | cut -d '=' -f 2)
864 --language-doc=*)
865 language_doc=$(echo $ac_option | cut -d '=' -f 2)
867 --language-man=*)
868 language_man=$(echo $ac_option | cut -d '=' -f 2)
870 --language-msg=*)
871 language_msg=$(echo $ac_option | cut -d '=' -f 2)
873 --language=*)
874 language=$(echo $ac_option | cut -d '=' -f 2)
877 --enable-static)
878 _ld_static='-static'
880 --disable-static)
881 _ld_static=''
883 --enable-profile)
884 _profile='-p'
886 --disable-profile)
887 _profile=
889 --enable-debug)
890 _debug='-g'
892 --enable-debug=*)
893 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
895 --disable-debug)
896 _debug=
898 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
899 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
900 --enable-cross-compile) _cross_compile=yes ;;
901 --disable-cross-compile) _cross_compile=no ;;
902 --enable-mencoder) _mencoder=yes ;;
903 --disable-mencoder) _mencoder=no ;;
904 --enable-mplayer) _mplayer=yes ;;
905 --disable-mplayer) _mplayer=no ;;
906 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
907 --disable-dynamic-plugins) _dynamic_plugins=no ;;
908 --enable-x11) _x11=yes ;;
909 --disable-x11) _x11=no ;;
910 --enable-xshape) _xshape=yes ;;
911 --disable-xshape) _xshape=no ;;
912 --enable-xss) _xss=yes ;;
913 --disable-xss) _xss=no ;;
914 --enable-xv) _xv=yes ;;
915 --disable-xv) _xv=no ;;
916 --enable-xvmc) _xvmc=yes ;;
917 --disable-xvmc) _xvmc=no ;;
918 --enable-vdpau) _vdpau=yes ;;
919 --disable-vdpau) _vdpau=no ;;
920 --enable-sdl) _sdl=yes ;;
921 --disable-sdl) _sdl=no ;;
922 --enable-kva) _kva=yes ;;
923 --disable-kva) _kva=no ;;
924 --enable-direct3d) _direct3d=yes ;;
925 --disable-direct3d) _direct3d=no ;;
926 --enable-directx) _directx=yes ;;
927 --disable-directx) _directx=no ;;
928 --enable-win32waveout) _win32waveout=yes ;;
929 --disable-win32waveout) _win32waveout=no ;;
930 --enable-nas) _nas=yes ;;
931 --disable-nas) _nas=no ;;
932 --enable-png) _png=yes ;;
933 --disable-png) _png=no ;;
934 --enable-mng) _mng=yes ;;
935 --disable-mng) _mng=no ;;
936 --enable-jpeg) _jpeg=yes ;;
937 --disable-jpeg) _jpeg=no ;;
938 --enable-pnm) _pnm=yes ;;
939 --disable-pnm) _pnm=no ;;
940 --enable-md5sum) _md5sum=yes ;;
941 --disable-md5sum) _md5sum=no ;;
942 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
943 --disable-yuv4mpeg) _yuv4mpeg=no ;;
944 --enable-gif) _gif=yes ;;
945 --disable-gif) _gif=no ;;
946 --enable-gl) _gl=yes ;;
947 --disable-gl) _gl=no ;;
948 --enable-ggi) _ggi=yes ;;
949 --disable-ggi) _ggi=no ;;
950 --enable-ggiwmh) _ggiwmh=yes ;;
951 --disable-ggiwmh) _ggiwmh=no ;;
952 --enable-aa) _aa=yes ;;
953 --disable-aa) _aa=no ;;
954 --enable-caca) _caca=yes ;;
955 --disable-caca) _caca=no ;;
956 --enable-svga) _svga=yes ;;
957 --disable-svga) _svga=no ;;
958 --enable-vesa) _vesa=yes ;;
959 --disable-vesa) _vesa=no ;;
960 --enable-fbdev) _fbdev=yes ;;
961 --disable-fbdev) _fbdev=no ;;
962 --enable-dvb) _dvb=yes ;;
963 --disable-dvb) _dvb=no ;;
964 --enable-dvbhead) _dvbhead=yes ;;
965 --disable-dvbhead) _dvbhead=no ;;
966 --enable-dxr2) _dxr2=yes ;;
967 --disable-dxr2) _dxr2=no ;;
968 --enable-dxr3) _dxr3=yes ;;
969 --disable-dxr3) _dxr3=no ;;
970 --enable-ivtv) _ivtv=yes ;;
971 --disable-ivtv) _ivtv=no ;;
972 --enable-v4l2) _v4l2=yes ;;
973 --disable-v4l2) _v4l2=no ;;
974 --enable-iconv) _iconv=yes ;;
975 --disable-iconv) _iconv=no ;;
976 --enable-langinfo) _langinfo=yes ;;
977 --disable-langinfo) _langinfo=no ;;
978 --enable-rtc) _rtc=yes ;;
979 --disable-rtc) _rtc=no ;;
980 --enable-libdv) _libdv=yes ;;
981 --disable-libdv) _libdv=no ;;
982 --enable-ossaudio) _ossaudio=yes ;;
983 --disable-ossaudio) _ossaudio=no ;;
984 --enable-arts) _arts=yes ;;
985 --disable-arts) _arts=no ;;
986 --enable-esd) _esd=yes ;;
987 --disable-esd) _esd=no ;;
988 --enable-pulse) _pulse=yes ;;
989 --disable-pulse) _pulse=no ;;
990 --enable-jack) _jack=yes ;;
991 --disable-jack) _jack=no ;;
992 --enable-openal) _openal=yes ;;
993 --disable-openal) _openal=no ;;
994 --enable-dart) _dart=yes ;;
995 --disable-dart) _dart=no ;;
996 --enable-mad) _mad=yes ;;
997 --disable-mad) _mad=no ;;
998 --enable-mp3lame) _mp3lame=yes ;;
999 --disable-mp3lame) _mp3lame=no ;;
1000 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1001 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1002 --enable-toolame) _toolame=yes ;;
1003 --disable-toolame) _toolame=no ;;
1004 --enable-twolame) _twolame=yes ;;
1005 --disable-twolame) _twolame=no ;;
1006 --enable-libcdio) _libcdio=yes ;;
1007 --disable-libcdio) _libcdio=no ;;
1008 --enable-liblzo) _liblzo=yes ;;
1009 --disable-liblzo) _liblzo=no ;;
1010 --enable-libvorbis) _libvorbis=yes ;;
1011 --disable-libvorbis) _libvorbis=no ;;
1012 --enable-speex) _speex=yes ;;
1013 --disable-speex) _speex=no ;;
1014 --enable-tremor) _tremor=yes ;;
1015 --disable-tremor) _tremor=no ;;
1016 --enable-tremor-internal) _tremor_internal=yes ;;
1017 --disable-tremor-internal) _tremor_internal=no ;;
1018 --enable-tremor-low) _tremor_low=yes ;;
1019 --disable-tremor-low) _tremor_low=no ;;
1020 --enable-theora) _theora=yes ;;
1021 --disable-theora) _theora=no ;;
1022 --enable-mp3lib) _mp3lib=yes ;;
1023 --disable-mp3lib) _mp3lib=no ;;
1024 --enable-liba52-internal) _liba52_internal=yes ;;
1025 --disable-liba52-internal) _liba52_internal=no ;;
1026 --enable-liba52) _liba52=yes ;;
1027 --disable-liba52) _liba52=no ;;
1028 --enable-libdca) _libdca=yes ;;
1029 --disable-libdca) _libdca=no ;;
1030 --enable-libmpeg2) _libmpeg2=yes ;;
1031 --disable-libmpeg2) _libmpeg2=no ;;
1032 --enable-musepack) _musepack=yes ;;
1033 --disable-musepack) _musepack=no ;;
1034 --enable-faad) _faad=yes ;;
1035 --disable-faad) _faad=no ;;
1036 --enable-faad-internal) _faad_internal=yes ;;
1037 --disable-faad-internal) _faad_internal=no ;;
1038 --enable-faad-fixed) _faad_fixed=yes ;;
1039 --disable-faad-fixed) _faad_fixed=no ;;
1040 --enable-faac) _faac=yes ;;
1041 --disable-faac) _faac=no ;;
1042 --enable-faac-lavc) _faac_lavc=yes ;;
1043 --disable-faac-lavc) _faac_lavc=no ;;
1044 --enable-ladspa) _ladspa=yes ;;
1045 --disable-ladspa) _ladspa=no ;;
1046 --enable-libbs2b) _libbs2b=yes ;;
1047 --disable-libbs2b) _libbs2b=no ;;
1048 --enable-xmms) _xmms=yes ;;
1049 --disable-xmms) _xmms=no ;;
1050 --enable-vcd) _vcd=yes ;;
1051 --disable-vcd) _vcd=no ;;
1052 --enable-dvdread) _dvdread=yes ;;
1053 --disable-dvdread) _dvdread=no ;;
1054 --enable-dvdread-internal) _dvdread_internal=yes ;;
1055 --disable-dvdread-internal) _dvdread_internal=no ;;
1056 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1057 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1058 --enable-dvdnav) _dvdnav=yes ;;
1059 --disable-dvdnav) _dvdnav=no ;;
1060 --enable-xanim) _xanim=yes ;;
1061 --disable-xanim) _xanim=no ;;
1062 --enable-real) _real=yes ;;
1063 --disable-real) _real=no ;;
1064 --enable-live) _live=yes ;;
1065 --disable-live) _live=no ;;
1066 --enable-nemesi) _nemesi=yes ;;
1067 --disable-nemesi) _nemesi=no ;;
1068 --enable-xinerama) _xinerama=yes ;;
1069 --disable-xinerama) _xinerama=no ;;
1070 --enable-mga) _mga=yes ;;
1071 --disable-mga) _mga=no ;;
1072 --enable-xmga) _xmga=yes ;;
1073 --disable-xmga) _xmga=no ;;
1074 --enable-vm) _vm=yes ;;
1075 --disable-vm) _vm=no ;;
1076 --enable-xf86keysym) _xf86keysym=yes ;;
1077 --disable-xf86keysym) _xf86keysym=no ;;
1078 --enable-mlib) _mlib=yes ;;
1079 --disable-mlib) _mlib=no ;;
1080 --enable-sunaudio) _sunaudio=yes ;;
1081 --disable-sunaudio) _sunaudio=no ;;
1082 --enable-sgiaudio) _sgiaudio=yes ;;
1083 --disable-sgiaudio) _sgiaudio=no ;;
1084 --enable-alsa) _alsa=yes ;;
1085 --disable-alsa) _alsa=no ;;
1086 --enable-tv) _tv=yes ;;
1087 --disable-tv) _tv=no ;;
1088 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1089 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1090 --enable-tv-v4l1) _tv_v4l1=yes ;;
1091 --disable-tv-v4l1) _tv_v4l1=no ;;
1092 --enable-tv-v4l2) _tv_v4l2=yes ;;
1093 --disable-tv-v4l2) _tv_v4l2=no ;;
1094 --enable-tv-dshow) _tv_dshow=yes ;;
1095 --disable-tv-dshow) _tv_dshow=no ;;
1096 --enable-radio) _radio=yes ;;
1097 --enable-radio-capture) _radio_capture=yes ;;
1098 --disable-radio-capture) _radio_capture=no ;;
1099 --disable-radio) _radio=no ;;
1100 --enable-radio-v4l) _radio_v4l=yes ;;
1101 --disable-radio-v4l) _radio_v4l=no ;;
1102 --enable-radio-v4l2) _radio_v4l2=yes ;;
1103 --disable-radio-v4l2) _radio_v4l2=no ;;
1104 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1105 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1106 --enable-pvr) _pvr=yes ;;
1107 --disable-pvr) _pvr=no ;;
1108 --enable-fastmemcpy) _fastmemcpy=yes ;;
1109 --disable-fastmemcpy) _fastmemcpy=no ;;
1110 --enable-network) _network=yes ;;
1111 --disable-network) _network=no ;;
1112 --enable-winsock2_h) _winsock2_h=yes ;;
1113 --disable-winsock2_h) _winsock2_h=no ;;
1114 --enable-smb) _smb=yes ;;
1115 --disable-smb) _smb=no ;;
1116 --enable-vidix) _vidix=yes ;;
1117 --disable-vidix) _vidix=no ;;
1118 --with-vidix-drivers=*)
1119 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1121 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1122 --enable-dhahelper) _dhahelper=yes ;;
1123 --disable-dhahelper) _dhahelper=no ;;
1124 --enable-svgalib_helper) _svgalib_helper=yes ;;
1125 --disable-svgalib_helper) _svgalib_helper=no ;;
1126 --enable-joystick) _joystick=yes ;;
1127 --disable-joystick) _joystick=no ;;
1128 --enable-xvid) _xvid=yes ;;
1129 --disable-xvid) _xvid=no ;;
1130 --enable-xvid-lavc) _xvid_lavc=yes ;;
1131 --disable-xvid-lavc) _xvid_lavc=no ;;
1132 --enable-x264) _x264=yes ;;
1133 --disable-x264) _x264=no ;;
1134 --enable-x264-lavc) _x264_lavc=yes ;;
1135 --disable-x264-lavc) _x264_lavc=no ;;
1136 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1137 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1138 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1139 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1140 --enable-libnut) _libnut=yes ;;
1141 --disable-libnut) _libnut=no ;;
1142 --enable-libavutil_a) _libavutil_a=yes ;;
1143 --disable-libavutil_a) _libavutil_a=no ;;
1144 --enable-libavutil_so) _libavutil_so=yes ;;
1145 --disable-libavutil_so) _libavutil_so=no ;;
1146 --enable-libavcodec_a) _libavcodec_a=yes ;;
1147 --disable-libavcodec_a) _libavcodec_a=no ;;
1148 --enable-libavcodec_so) _libavcodec_so=yes ;;
1149 --disable-libavcodec_so) _libavcodec_so=no ;;
1150 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1151 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1152 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1153 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1154 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1155 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1156 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1157 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1158 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1159 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1160 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1161 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1162 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1163 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1164 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1165 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1166 --enable-libavformat_a) _libavformat_a=yes ;;
1167 --disable-libavformat_a) _libavformat_a=no ;;
1168 --enable-libavformat_so) _libavformat_so=yes ;;
1169 --disable-libavformat_so) _libavformat_so=no ;;
1170 --enable-libpostproc_a) _libpostproc_a=yes ;;
1171 --disable-libpostproc_a) _libpostproc_a=no ;;
1172 --enable-libpostproc_so) _libpostproc_so=yes ;;
1173 --disable-libpostproc_so) _libpostproc_so=no ;;
1174 --enable-libswscale_a) _libswscale_a=yes ;;
1175 --disable-libswscale_a) _libswscale_a=no ;;
1176 --enable-libswscale_so) _libswscale_so=yes ;;
1177 --disable-libswscale_so) _libswscale_so=no ;;
1178 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1179 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1181 --enable-lirc) _lirc=yes ;;
1182 --disable-lirc) _lirc=no ;;
1183 --enable-lircc) _lircc=yes ;;
1184 --disable-lircc) _lircc=no ;;
1185 --enable-apple-remote) _apple_remote=yes ;;
1186 --disable-apple-remote) _apple_remote=no ;;
1187 --enable-apple-ir) _apple_ir=yes ;;
1188 --disable-apple-ir) _apple_ir=no ;;
1189 --enable-gui) _gui=yes ;;
1190 --disable-gui) _gui=no ;;
1191 --enable-gtk1) _gtk1=yes ;;
1192 --disable-gtk1) _gtk1=no ;;
1193 --enable-termcap) _termcap=yes ;;
1194 --disable-termcap) _termcap=no ;;
1195 --enable-termios) _termios=yes ;;
1196 --disable-termios) _termios=no ;;
1197 --enable-3dfx) _3dfx=yes ;;
1198 --disable-3dfx) _3dfx=no ;;
1199 --enable-s3fb) _s3fb=yes ;;
1200 --disable-s3fb) _s3fb=no ;;
1201 --enable-wii) _wii=yes ;;
1202 --disable-wii) _wii=no ;;
1203 --enable-tdfxfb) _tdfxfb=yes ;;
1204 --disable-tdfxfb) _tdfxfb=no ;;
1205 --disable-tdfxvid) _tdfxvid=no ;;
1206 --enable-tdfxvid) _tdfxvid=yes ;;
1207 --disable-xvr100) _xvr100=no ;;
1208 --enable-xvr100) _xvr100=yes ;;
1209 --disable-tga) _tga=no ;;
1210 --enable-tga) _tga=yes ;;
1211 --enable-directfb) _directfb=yes ;;
1212 --disable-directfb) _directfb=no ;;
1213 --enable-zr) _zr=yes ;;
1214 --disable-zr) _zr=no ;;
1215 --enable-bl) _bl=yes ;;
1216 --disable-bl) _bl=no ;;
1217 --enable-mtrr) _mtrr=yes ;;
1218 --disable-mtrr) _mtrr=no ;;
1219 --enable-largefiles) _largefiles=yes ;;
1220 --disable-largefiles) _largefiles=no ;;
1221 --enable-shm) _shm=yes ;;
1222 --disable-shm) _shm=no ;;
1223 --enable-select) _select=yes ;;
1224 --disable-select) _select=no ;;
1225 --enable-linux-devfs) _linux_devfs=yes ;;
1226 --disable-linux-devfs) _linux_devfs=no ;;
1227 --enable-cdparanoia) _cdparanoia=yes ;;
1228 --disable-cdparanoia) _cdparanoia=no ;;
1229 --enable-cddb) _cddb=yes ;;
1230 --disable-cddb) _cddb=no ;;
1231 --enable-big-endian) _big_endian=yes ;;
1232 --disable-big-endian) _big_endian=no ;;
1233 --enable-bitmap-font) _bitmap_font=yes ;;
1234 --disable-bitmap-font) _bitmap_font=no ;;
1235 --enable-freetype) _freetype=yes ;;
1236 --disable-freetype) _freetype=no ;;
1237 --enable-fontconfig) _fontconfig=yes ;;
1238 --disable-fontconfig) _fontconfig=no ;;
1239 --enable-unrarexec) _unrar_exec=yes ;;
1240 --disable-unrarexec) _unrar_exec=no ;;
1241 --enable-ftp) _ftp=yes ;;
1242 --disable-ftp) _ftp=no ;;
1243 --enable-vstream) _vstream=yes ;;
1244 --disable-vstream) _vstream=no ;;
1245 --enable-pthreads) _pthreads=yes ;;
1246 --disable-pthreads) _pthreads=no ;;
1247 --enable-w32threads) _w32threads=yes ;;
1248 --disable-w32threads) _w32threads=no ;;
1249 --enable-ass) _ass=yes ;;
1250 --disable-ass) _ass=no ;;
1251 --enable-rpath) _rpath=yes ;;
1252 --disable-rpath) _rpath=no ;;
1254 --enable-fribidi) _fribidi=yes ;;
1255 --disable-fribidi) _fribidi=no ;;
1257 --enable-enca) _enca=yes ;;
1258 --disable-enca) _enca=no ;;
1260 --enable-inet6) _inet6=yes ;;
1261 --disable-inet6) _inet6=no ;;
1263 --enable-gethostbyname2) _gethostbyname2=yes ;;
1264 --disable-gethostbyname2) _gethostbyname2=no ;;
1266 --enable-dga1) _dga1=yes ;;
1267 --disable-dga1) _dga1=no ;;
1268 --enable-dga2) _dga2=yes ;;
1269 --disable-dga2) _dga2=no ;;
1271 --enable-menu) _menu=yes ;;
1272 --disable-menu) _menu=no ;;
1274 --enable-qtx) _qtx=yes ;;
1275 --disable-qtx) _qtx=no ;;
1277 --enable-coreaudio) _coreaudio=yes ;;
1278 --disable-coreaudio) _coreaudio=no ;;
1279 --enable-corevideo) _corevideo=yes ;;
1280 --disable-corevideo) _corevideo=no ;;
1281 --enable-quartz) _quartz=yes ;;
1282 --disable-quartz) _quartz=no ;;
1283 --enable-macosx-finder) _macosx_finder=yes ;;
1284 --disable-macosx-finder) _macosx_finder=no ;;
1285 --enable-macosx-bundle) _macosx_bundle=yes;;
1286 --disable-macosx-bundle) _macosx_bundle=no;;
1288 --enable-maemo) _maemo=yes ;;
1289 --disable-maemo) _maemo=no ;;
1291 --enable-sortsub) _sortsub=yes ;;
1292 --disable-sortsub) _sortsub=no ;;
1294 --enable-crash-debug) _crash_debug=yes ;;
1295 --disable-crash-debug) _crash_debug=no ;;
1296 --enable-sighandler) _sighandler=yes ;;
1297 --disable-sighandler) _sighandler=no ;;
1298 --enable-win32dll) _win32dll=yes ;;
1299 --disable-win32dll) _win32dll=no ;;
1301 --enable-sse) _sse=yes ;;
1302 --disable-sse) _sse=no ;;
1303 --enable-sse2) _sse2=yes ;;
1304 --disable-sse2) _sse2=no ;;
1305 --enable-ssse3) _ssse3=yes ;;
1306 --disable-ssse3) _ssse3=no ;;
1307 --enable-mmxext) _mmxext=yes ;;
1308 --disable-mmxext) _mmxext=no ;;
1309 --enable-3dnow) _3dnow=yes ;;
1310 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1311 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1312 --disable-3dnowext) _3dnowext=no ;;
1313 --enable-cmov) _cmov=yes ;;
1314 --disable-cmov) _cmov=no ;;
1315 --enable-fast-cmov) _fast_cmov=yes ;;
1316 --disable-fast-cmov) _fast_cmov=no ;;
1317 --enable-altivec) _altivec=yes ;;
1318 --disable-altivec) _altivec=no ;;
1319 --enable-armv5te) _armv5te=yes ;;
1320 --disable-armv5te) _armv5te=no ;;
1321 --enable-armv6) _armv6=yes ;;
1322 --disable-armv6) _armv6=no ;;
1323 --enable-armv6t2) _armv6t2=yes ;;
1324 --disable-armv6t2) _armv6t2=no ;;
1325 --enable-armvfp) _armvfp=yes ;;
1326 --disable-armvfp) _armvfp=no ;;
1327 --enable-neon) neon=yes ;;
1328 --disable-neon) neon=no ;;
1329 --enable-iwmmxt) _iwmmxt=yes ;;
1330 --disable-iwmmxt) _iwmmxt=no ;;
1331 --enable-mmx) _mmx=yes ;;
1332 --disable-mmx) # 3Dnow! and MMX2 require MMX
1333 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1336 echo "Unknown parameter: $ac_option"
1337 exit 1
1340 esac
1341 done
1343 # Atmos: moved this here, to be correct, if --prefix is specified
1344 test -z "$_bindir" && _bindir="$_prefix/bin"
1345 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1346 test -z "$_mandir" && _mandir="$_prefix/share/man"
1347 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1348 test -z "$_libdir" && _libdir="$_prefix/lib"
1350 # Determine our OS name and CPU architecture
1351 if test -z "$_target" ; then
1352 # OS name
1353 system_name=$(uname -s 2>&1)
1354 case "$system_name" in
1355 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1357 Haiku)
1358 system_name=BeOS
1360 IRIX*)
1361 system_name=IRIX
1363 GNU/kFreeBSD)
1364 system_name=FreeBSD
1366 HP-UX*)
1367 system_name=HP-UX
1369 [cC][yY][gG][wW][iI][nN]*)
1370 system_name=CYGWIN
1372 MINGW32*)
1373 system_name=MINGW32
1375 OS/2*)
1376 system_name=OS/2
1379 system_name="$system_name-UNKNOWN"
1381 esac
1384 # host's CPU/instruction set
1385 host_arch=$(uname -p 2>&1)
1386 case "$host_arch" in
1387 i386|sparc|ppc|alpha|arm|mips|vax)
1389 powerpc) # Darwin returns 'powerpc'
1390 host_arch=ppc
1392 *) # uname -p on Linux returns 'unknown' for the processor type,
1393 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1395 # Maybe uname -m (machine hardware name) returns something we
1396 # recognize.
1398 # x86/x86pc is used by QNX
1399 case "$(uname -m 2>&1)" in
1400 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1401 ia64) host_arch=ia64 ;;
1402 macppc|ppc) host_arch=ppc ;;
1403 ppc64) host_arch=ppc64 ;;
1404 alpha) host_arch=alpha ;;
1405 sparc) host_arch=sparc ;;
1406 sparc64) host_arch=sparc64 ;;
1407 parisc*|hppa*|9000*) host_arch=hppa ;;
1408 arm*|zaurus|cats) host_arch=arm ;;
1409 sh3|sh4|sh4a) host_arch=sh ;;
1410 s390) host_arch=s390 ;;
1411 s390x) host_arch=s390x ;;
1412 *mips*) host_arch=mips ;;
1413 vax) host_arch=vax ;;
1414 xtensa*) host_arch=xtensa ;;
1415 *) host_arch=UNKNOWN ;;
1416 esac
1418 esac
1419 else # if test -z "$_target"
1420 system_name=$(echo $_target | cut -d '-' -f 2)
1421 case "$(echo $system_name | tr A-Z a-z)" in
1422 linux) system_name=Linux ;;
1423 freebsd) system_name=FreeBSD ;;
1424 gnu/kfreebsd) system_name=FreeBSD ;;
1425 netbsd) system_name=NetBSD ;;
1426 bsd/os) system_name=BSD/OS ;;
1427 openbsd) system_name=OpenBSD ;;
1428 dragonfly) system_name=DragonFly ;;
1429 sunos) system_name=SunOS ;;
1430 qnx) system_name=QNX ;;
1431 morphos) system_name=MorphOS ;;
1432 amigaos) system_name=AmigaOS ;;
1433 mingw32msvc) system_name=MINGW32 ;;
1434 esac
1435 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1436 host_arch=$(echo $_target | cut -d '-' -f 1)
1437 if test $(echo $host_arch) != "x86_64" ; then
1438 host_arch=$(echo $host_arch | tr '_' '-')
1442 extra_cflags="-I. $extra_cflags"
1443 _timer=timer-linux.c
1444 _getch=getch2.c
1445 if freebsd ; then
1446 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1447 extra_cflags="$extra_cflags -I/usr/local/include"
1450 if netbsd || dragonfly ; then
1451 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1452 extra_cflags="$extra_cflags -I/usr/pkg/include"
1455 if darwin; then
1456 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1457 _timer=timer-darwin.c
1460 if aix ; then
1461 extra_ldflags="$extra_ldflags -lC"
1464 if irix ; then
1465 _ranlib='ar -r'
1466 elif linux ; then
1467 _ranlib='true'
1470 if win32 ; then
1471 _exesuf=".exe"
1472 # -lwinmm is always needed for osdep/timer-win2.c
1473 extra_ldflags="$extra_ldflags -lwinmm"
1474 _pe_executable=yes
1475 _timer=timer-win2.c
1476 _priority=yes
1477 def_dos_paths="#define HAVE_DOS_PATHS 1"
1478 def_priority="#define CONFIG_PRIORITY 1"
1481 if mingw32 ; then
1482 _getch=getch2-win.c
1483 _need_shmem=no
1486 if amigaos ; then
1487 _select=no
1488 _sighandler=no
1489 _stream_cache=no
1490 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1491 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1494 if qnx ; then
1495 extra_ldflags="$extra_ldflags -lph"
1498 if os2 ; then
1499 _exesuf=".exe"
1500 _getch=getch2-os2.c
1501 _need_shmem=no
1502 _priority=yes
1503 def_dos_paths="#define HAVE_DOS_PATHS 1"
1504 def_priority="#define CONFIG_PRIORITY 1"
1507 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1508 test "$I" && break
1509 done
1512 TMPLOG="configure.log"
1513 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1514 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1515 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1516 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1517 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1519 rm -f "$TMPLOG"
1520 echo configuration: $_configuration > "$TMPLOG"
1521 echo >> "$TMPLOG"
1524 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1525 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1529 # Checking CC version...
1530 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1531 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1532 echocheck "$_cc version"
1533 cc_vendor=intel
1534 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1535 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1536 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1537 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1538 # TODO verify older icc/ecc compatibility
1539 case $cc_version in
1541 cc_version="v. ?.??, bad"
1542 cc_fail=yes
1544 10.1|11.0|11.1)
1545 cc_version="$cc_version, ok"
1548 cc_version="$cc_version, bad"
1549 cc_fail=yes
1551 esac
1552 echores "$cc_version"
1553 else
1554 for _cc in "$_cc" cc gcc ; do
1555 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1556 if test "$cc_name_tmp" = "gcc"; then
1557 cc_name=$cc_name_tmp
1558 echocheck "$_cc version"
1559 cc_vendor=gnu
1560 cc_version=$($_cc -dumpversion 2>&1)
1561 case $cc_version in
1562 2.96*)
1563 cc_fail=yes
1566 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1567 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1568 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1570 esac
1571 echores "$cc_version"
1572 break
1574 done
1575 fi # icc
1576 test "$cc_fail" = yes && die "unsupported compiler version"
1578 if test -z "$_target" && x86 ; then
1579 cat > $TMPC << EOF
1580 int main(void) {
1581 int test[(int)sizeof(char *)-7];
1582 return 0;
1585 cc_check && host_arch=x86_64 || host_arch=i386
1588 echo "Detected operating system: $system_name"
1589 echo "Detected host architecture: $host_arch"
1591 echocheck "host cc"
1592 test "$_host_cc" || _host_cc=$_cc
1593 echores $_host_cc
1595 echocheck "cross compilation"
1596 if test $_cross_compile = auto ; then
1597 cat > $TMPC << EOF
1598 int main(void) { return 0; }
1600 _cross_compile=yes
1601 cc_check && "$TMPEXE" && _cross_compile=no
1603 echores $_cross_compile
1605 if test $_cross_compile = yes; then
1606 tmp_run() {
1607 return 0
1611 # ---
1613 # now that we know what compiler should be used for compilation, try to find
1614 # out which assembler is used by the $_cc compiler
1615 if test "$_as" = auto ; then
1616 _as=$($_cc -print-prog-name=as)
1617 test -z "$_as" && _as=as
1620 if test "$_nm" = auto ; then
1621 _nm=$($_cc -print-prog-name=nm)
1622 test -z "$_nm" && _nm=nm
1625 # XXX: this should be ok..
1626 _cpuinfo="echo"
1628 if test "$_runtime_cpudetection" = no ; then
1630 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1631 # FIXME: Remove the cygwin check once AMD CPUs are supported
1632 if test -r /proc/cpuinfo && ! cygwin; then
1633 # Linux with /proc mounted, extract CPU information from it
1634 _cpuinfo="cat /proc/cpuinfo"
1635 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1636 # FreeBSD with Linux emulation /proc mounted,
1637 # extract CPU information from it
1638 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1639 elif darwin && ! x86 ; then
1640 # use hostinfo on Darwin
1641 _cpuinfo="hostinfo"
1642 elif aix; then
1643 # use 'lsattr' on AIX
1644 _cpuinfo="lsattr -E -l proc0 -a type"
1645 elif x86; then
1646 # all other OSes try to extract CPU information from a small helper
1647 # program cpuinfo instead
1648 $_cc -o cpuinfo$_exesuf cpuinfo.c
1649 _cpuinfo="./cpuinfo$_exesuf"
1652 if x86 ; then
1653 # gather more CPU information
1654 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1655 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1656 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1657 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1658 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1660 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1662 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1663 -e s/xmm/sse/ -e s/kni/sse/)
1665 for ext in $pparam ; do
1666 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1667 done
1669 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1670 test $_sse = kernel_check && _mmxext=kernel_check
1672 echocheck "CPU vendor"
1673 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1675 echocheck "CPU type"
1676 echores "$pname"
1679 fi # test "$_runtime_cpudetection" = no
1681 if x86 && test "$_runtime_cpudetection" = no ; then
1682 extcheck() {
1683 if test "$1" = kernel_check ; then
1684 echocheck "kernel support of $2"
1685 cat > $TMPC <<EOF
1686 #include <stdlib.h>
1687 #include <signal.h>
1688 void catch() { exit(1); }
1689 int main(void) {
1690 signal(SIGILL, catch);
1691 __asm__ volatile ("$3":::"memory"); return 0;
1695 if cc_check && tmp_run ; then
1696 eval _$2=yes
1697 echores "yes"
1698 _optimizing="$_optimizing $2"
1699 return 0
1700 else
1701 eval _$2=no
1702 echores "failed"
1703 echo "It seems that your kernel does not correctly support $2."
1704 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1705 return 1
1708 return 0
1711 extcheck $_mmx "mmx" "emms"
1712 extcheck $_mmxext "mmxext" "sfence"
1713 extcheck $_3dnow "3dnow" "femms"
1714 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1715 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1716 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1717 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1718 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1720 echocheck "mtrr support"
1721 if test "$_mtrr" = kernel_check ; then
1722 _mtrr="yes"
1723 _optimizing="$_optimizing mtrr"
1725 echores "$_mtrr"
1727 if test "$_gcc3_ext" != ""; then
1728 # if we had to disable sse/sse2 because the active kernel does not
1729 # support this instruction set extension, we also have to tell
1730 # gcc3 to not generate sse/sse2 instructions for normal C code
1731 cat > $TMPC << EOF
1732 int main(void) { return 0; }
1734 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1740 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1741 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1742 _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'
1743 case "$host_arch" in
1744 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1745 _arch='X86 X86_32'
1746 _target_arch="ARCH_X86 = yes"
1747 _target_subarch="ARCH_X86_32 = yes"
1748 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1749 iproc=486
1750 proc=i486
1753 if test "$_runtime_cpudetection" = no ; then
1754 case "$pvendor" in
1755 AuthenticAMD)
1756 case "$pfamily" in
1757 3) proc=i386 iproc=386 ;;
1758 4) proc=i486 iproc=486 ;;
1759 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1760 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1761 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1762 proc=k6-3
1763 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1764 proc=geode
1765 elif test "$pmodel" -ge 8; then
1766 proc=k6-2
1767 elif test "$pmodel" -ge 6; then
1768 proc=k6
1769 else
1770 proc=i586
1773 6) iproc=686
1774 # It's a bit difficult to determine the correct type of Family 6
1775 # AMD CPUs just from their signature. Instead, we check directly
1776 # whether it supports SSE.
1777 if test "$_sse" = yes; then
1778 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1779 proc=athlon-xp
1780 else
1781 # Again, gcc treats athlon and athlon-tbird similarly.
1782 proc=athlon
1785 15) iproc=686
1786 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1787 # caught and remedied in the optimization tests below.
1788 proc=k8
1791 *) proc=k8 iproc=686 ;;
1792 esac
1794 GenuineIntel)
1795 case "$pfamily" in
1796 3) proc=i386 iproc=386 ;;
1797 4) proc=i486 iproc=486 ;;
1798 5) iproc=586
1799 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1800 proc=pentium-mmx # 4 is desktop, 8 is mobile
1801 else
1802 proc=i586
1805 6) iproc=686
1806 if test "$pmodel" -ge 15; then
1807 proc=core2
1808 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1809 proc=pentium-m
1810 elif test "$pmodel" -ge 7; then
1811 proc=pentium3
1812 elif test "$pmodel" -ge 3; then
1813 proc=pentium2
1814 else
1815 proc=i686
1818 15) iproc=686
1819 # A nocona in 32-bit mode has no more capabilities than a prescott.
1820 if test "$pmodel" -ge 3; then
1821 proc=prescott
1822 else
1823 proc=pentium4
1825 test $_fast_cmov = "auto" && _fast_cmov=no
1827 *) proc=prescott iproc=686 ;;
1828 esac
1830 CentaurHauls)
1831 case "$pfamily" in
1832 5) iproc=586
1833 if test "$pmodel" -ge 8; then
1834 proc=winchip2
1835 elif test "$pmodel" -ge 4; then
1836 proc=winchip-c6
1837 else
1838 proc=i586
1841 6) iproc=686
1842 if test "$pmodel" -ge 9; then
1843 proc=c3-2
1844 else
1845 proc=c3
1846 iproc=586
1849 *) proc=i686 iproc=i686 ;;
1850 esac
1852 unknown)
1853 case "$pfamily" in
1854 3) proc=i386 iproc=386 ;;
1855 4) proc=i486 iproc=486 ;;
1856 *) proc=i586 iproc=586 ;;
1857 esac
1860 proc=i586 iproc=586 ;;
1861 esac
1862 fi # test "$_runtime_cpudetection" = no
1865 # check that gcc supports our CPU, if not, fall back to earlier ones
1866 # LGB: check -mcpu and -march swithing step by step with enabling
1867 # to fall back till 386.
1869 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1871 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1872 cpuopt=-mtune
1873 else
1874 cpuopt=-mcpu
1877 echocheck "GCC & CPU optimization abilities"
1878 cat > $TMPC << EOF
1879 int main(void) { return 0; }
1881 if test "$_runtime_cpudetection" = no ; then
1882 cc_check -march=native && proc=native
1883 if test "$proc" = "k8"; then
1884 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1886 if test "$proc" = "athlon-xp"; then
1887 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1889 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1890 cc_check -march=$proc $cpuopt=$proc || proc=k6
1892 if test "$proc" = "k6" || test "$proc" = "c3"; then
1893 if ! cc_check -march=$proc $cpuopt=$proc; then
1894 if cc_check -march=i586 $cpuopt=i686; then
1895 proc=i586-i686
1896 else
1897 proc=i586
1901 if test "$proc" = "prescott" ; then
1902 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1904 if test "$proc" = "core2" ; then
1905 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1907 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
1908 cc_check -march=$proc $cpuopt=$proc || proc=i686
1910 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1911 cc_check -march=$proc $cpuopt=$proc || proc=i586
1913 if test "$proc" = "i586"; then
1914 cc_check -march=$proc $cpuopt=$proc || proc=i486
1916 if test "$proc" = "i486" ; then
1917 cc_check -march=$proc $cpuopt=$proc || proc=i386
1919 if test "$proc" = "i386" ; then
1920 cc_check -march=$proc $cpuopt=$proc || proc=error
1922 if test "$proc" = "error" ; then
1923 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1924 _mcpu=""
1925 _march=""
1926 _optimizing=""
1927 elif test "$proc" = "i586-i686"; then
1928 _march="-march=i586"
1929 _mcpu="$cpuopt=i686"
1930 _optimizing="$proc"
1931 else
1932 _march="-march=$proc"
1933 _mcpu="$cpuopt=$proc"
1934 _optimizing="$proc"
1936 else # if test "$_runtime_cpudetection" = no
1937 _mcpu="$cpuopt=generic"
1938 # at least i486 required, for bswap instruction
1939 _march="-march=i486"
1940 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1941 cc_check $_mcpu || _mcpu=""
1942 cc_check $_march $_mcpu || _march=""
1945 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1946 ## autodetected mcpu/march parameters
1947 if test "$_target" ; then
1948 # TODO: it may be a good idea to check GCC and fall back in all cases
1949 if test "$host_arch" = "i586-i686"; then
1950 _march="-march=i586"
1951 _mcpu="$cpuopt=i686"
1952 else
1953 _march="-march=$host_arch"
1954 _mcpu="$cpuopt=$host_arch"
1957 proc="$host_arch"
1959 case "$proc" in
1960 i386) iproc=386 ;;
1961 i486) iproc=486 ;;
1962 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1963 i686|athlon*|pentium*) iproc=686 ;;
1964 *) iproc=586 ;;
1965 esac
1968 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1969 _fast_cmov="yes"
1970 else
1971 _fast_cmov="no"
1974 echores "$proc"
1977 ia64)
1978 _arch='IA64'
1979 _target_arch='ARCH_IA64 = yes'
1980 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1981 iproc='ia64'
1984 x86_64|amd64)
1985 _arch='X86 X86_64'
1986 _target_subarch='ARCH_X86_64 = yes'
1987 _target_arch="ARCH_X86 = yes"
1988 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1989 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1990 iproc='x86_64'
1992 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1993 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1994 cpuopt=-mtune
1995 else
1996 cpuopt=-mcpu
1998 test $_fast_cmov = "auto" && _fast_cmov=yes
1999 if test "$_runtime_cpudetection" = no ; then
2000 case "$pvendor" in
2001 AuthenticAMD)
2002 proc=k8;;
2003 GenuineIntel)
2004 case "$pfamily" in
2005 6) proc=core2;;
2007 # 64-bit prescotts exist, but as far as GCC is concerned they
2008 # have the same capabilities as a nocona.
2009 proc=nocona
2011 esac
2014 proc=error;;
2015 esac
2016 fi # test "$_runtime_cpudetection" = no
2018 echocheck "GCC & CPU optimization abilities"
2019 cat > $TMPC << EOF
2020 int main(void) { return 0; }
2022 # This is a stripped-down version of the i386 fallback.
2023 if test "$_runtime_cpudetection" = no ; then
2024 cc_check -march=native && proc=native
2025 # --- AMD processors ---
2026 if test "$proc" = "k8"; then
2027 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2029 # This will fail if gcc version < 3.3, which is ok because earlier
2030 # versions don't really support 64-bit on amd64.
2031 # Is this a valid assumption? -Corey
2032 if test "$proc" = "athlon-xp"; then
2033 cc_check -march=$proc $cpuopt=$proc || proc=error
2035 # --- Intel processors ---
2036 if test "$proc" = "core2"; then
2037 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2039 if test "$proc" = "nocona"; then
2040 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2042 if test "$proc" = "pentium4"; then
2043 cc_check -march=$proc $cpuopt=$proc || proc=error
2046 _march="-march=$proc"
2047 _mcpu="$cpuopt=$proc"
2048 if test "$proc" = "error" ; then
2049 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2050 _mcpu=""
2051 _march=""
2053 else # if test "$_runtime_cpudetection" = no
2054 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2055 _march="-march=x86-64"
2056 _mcpu="$cpuopt=generic"
2057 cc_check $_mcpu || _mcpu="x86-64"
2058 cc_check $_mcpu || _mcpu=""
2059 cc_check $_march $_mcpu || _march=""
2062 _optimizing=""
2064 echores "$proc"
2067 sparc|sparc64)
2068 _arch='SPARC'
2069 _target_arch='ARCH_SPARC = yes'
2070 iproc='sparc'
2071 if test "$host_arch" = "sparc64" ; then
2072 _vis='yes'
2073 proc='ultrasparc'
2074 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2075 elif sunos ; then
2076 echocheck "CPU type"
2077 karch=$(uname -m)
2078 case "$(echo $karch)" in
2079 sun4) proc=v7 ;;
2080 sun4c) proc=v7 ;;
2081 sun4d) proc=v8 ;;
2082 sun4m) proc=v8 ;;
2083 sun4u) proc=ultrasparc _vis='yes' ;;
2084 sun4v) proc=v9 ;;
2085 *) proc=v8 ;;
2086 esac
2087 echores "$proc"
2088 else
2089 proc=v8
2091 _mcpu="-mcpu=$proc"
2092 _optimizing="$proc"
2095 arm|armv4l|armv5tel)
2096 _arch='ARM'
2097 _target_arch='ARCH_ARM = yes'
2098 iproc='arm'
2101 avr32)
2102 _arch='AVR32'
2103 _target_arch='ARCH_AVR32 = yes'
2104 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2105 iproc='avr32'
2108 sh|sh4)
2109 _arch='SH4'
2110 _target_arch='ARCH_SH4 = yes'
2111 iproc='sh4'
2114 ppc|ppc64|powerpc|powerpc64)
2115 _arch='PPC'
2116 def_dcbzl='#define HAVE_DCBZL 0'
2117 _target_arch='ARCH_PPC = yes'
2118 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2119 iproc='ppc'
2121 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2122 _arch='PPC PPC64'
2123 _target_subarch='ARCH_PPC64 = yes'
2124 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2126 echocheck "CPU type"
2127 case $system_name in
2128 Linux)
2129 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2130 if test -n "$($_cpuinfo | grep altivec)"; then
2131 test $_altivec = auto && _altivec=yes
2134 Darwin)
2135 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2136 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2137 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2138 test $_altivec = auto && _altivec=yes
2141 NetBSD)
2142 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2143 case $cc_version in
2144 2*|3.0*|3.1*|3.2*|3.3*)
2147 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2148 test $_altivec = auto && _altivec=yes
2151 esac
2153 AIX)
2154 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2156 esac
2157 if test "$_altivec" = yes; then
2158 echores "$proc altivec"
2159 else
2160 _altivec=no
2161 echores "$proc"
2164 echocheck "GCC & CPU optimization abilities"
2166 if test -n "$proc"; then
2167 case "$proc" in
2168 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2169 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2170 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2171 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2172 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2173 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2174 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2175 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2176 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2177 *) ;;
2178 esac
2179 # gcc 3.1(.1) and up supports 7400 and 7450
2180 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2181 case "$proc" in
2182 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2183 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2184 *) ;;
2185 esac
2187 # gcc 3.2 and up supports 970
2188 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2189 case "$proc" in
2190 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2191 def_dcbzl='#define HAVE_DCBZL 1' ;;
2192 *) ;;
2193 esac
2195 # gcc 3.3 and up supports POWER4
2196 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2197 case "$proc" in
2198 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2199 *) ;;
2200 esac
2202 # gcc 3.4 and up supports 440*
2203 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2204 case "$proc" in
2205 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2206 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2207 *) ;;
2208 esac
2210 # gcc 4.0 and up supports POWER5
2211 if test "$_cc_major" -ge "4"; then
2212 case "$proc" in
2213 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2214 *) ;;
2215 esac
2219 if test -n "$_mcpu"; then
2220 _optimizing=$(echo $_mcpu | cut -c 8-)
2221 echores "$_optimizing"
2222 else
2223 echores "none"
2228 alpha*)
2229 _arch='ALPHA'
2230 _target_arch='ARCH_ALPHA = yes'
2231 iproc='alpha'
2233 echocheck "CPU type"
2234 cat > $TMPC << EOF
2235 int main(void) {
2236 unsigned long ver, mask;
2237 __asm__ ("implver %0" : "=r" (ver));
2238 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2239 printf("%ld-%x\n", ver, ~mask);
2240 return 0;
2243 $_cc -o "$TMPEXE" "$TMPC"
2244 case $("$TMPEXE") in
2246 0-0) proc="ev4"; _mvi="0";;
2247 1-0) proc="ev5"; _mvi="0";;
2248 1-1) proc="ev56"; _mvi="0";;
2249 1-101) proc="pca56"; _mvi="1";;
2250 2-303) proc="ev6"; _mvi="1";;
2251 2-307) proc="ev67"; _mvi="1";;
2252 2-1307) proc="ev68"; _mvi="1";;
2253 esac
2254 echores "$proc"
2256 echocheck "GCC & CPU optimization abilities"
2257 if test "$proc" = "ev68" ; then
2258 cc_check -mcpu=$proc || proc=ev67
2260 if test "$proc" = "ev67" ; then
2261 cc_check -mcpu=$proc || proc=ev6
2263 _mcpu="-mcpu=$proc"
2264 echores "$proc"
2266 _optimizing="$proc"
2269 mips)
2270 _arch='SGI_MIPS'
2271 _target_arch='ARCH_SGI_MIPS = yes'
2272 iproc='sgi-mips'
2274 if irix ; then
2275 echocheck "CPU type"
2276 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2277 case "$(echo $proc)" in
2278 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2279 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2280 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2281 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2282 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2283 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2284 esac
2285 # gcc < 3.x does not support -mtune.
2286 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2287 _mcpu=''
2289 echores "$proc"
2294 hppa)
2295 _arch='PA_RISC'
2296 _target_arch='ARCH_PA_RISC = yes'
2297 iproc='PA-RISC'
2300 s390)
2301 _arch='S390'
2302 _target_arch='ARCH_S390 = yes'
2303 iproc='390'
2306 s390x)
2307 _arch='S390X'
2308 _target_arch='ARCH_S390X = yes'
2309 iproc='390x'
2312 vax)
2313 _arch='VAX'
2314 _target_arch='ARCH_VAX = yes'
2315 iproc='vax'
2318 xtensa)
2319 _arch='XTENSA'
2320 _target_arch='ARCH_XTENSA = yes'
2321 iproc='xtensa'
2324 generic)
2325 _arch='GENERIC'
2326 _target_arch='ARCH_GENERIC = yes'
2330 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2331 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2332 die "unsupported architecture $host_arch"
2334 esac # case "$host_arch" in
2336 if test "$_runtime_cpudetection" = yes ; then
2337 if x86 ; then
2338 test "$_cmov" != no && _cmov=yes
2339 x86_32 && _cmov=no
2340 test "$_mmx" != no && _mmx=yes
2341 test "$_3dnow" != no && _3dnow=yes
2342 test "$_3dnowext" != no && _3dnowext=yes
2343 test "$_mmxext" != no && _mmxext=yes
2344 test "$_sse" != no && _sse=yes
2345 test "$_sse2" != no && _sse2=yes
2346 test "$_ssse3" != no && _ssse3=yes
2347 test "$_mtrr" != no && _mtrr=yes
2349 if ppc; then
2350 _altivec=yes
2355 # endian testing
2356 echocheck "byte order"
2357 if test "$_big_endian" = auto ; then
2358 cat > $TMPC <<EOF
2359 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2360 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2361 int main(void) { return (int)ascii_name; }
2363 if cc_check ; then
2364 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2365 _big_endian=yes
2366 else
2367 _big_endian=no
2369 else
2370 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2373 if test "$_big_endian" = yes ; then
2374 _byte_order='big-endian'
2375 def_words_endian='#define WORDS_BIGENDIAN 1'
2376 def_bigendian='#define HAVE_BIGENDIAN 1'
2377 else
2378 _byte_order='little-endian'
2379 def_words_endian='#undef WORDS_BIGENDIAN'
2380 def_bigendian='#define HAVE_BIGENDIAN 0'
2382 echores "$_byte_order"
2385 echocheck "extern symbol prefix"
2386 cat > $TMPC << EOF
2387 int ff_extern;
2389 cc_check -c || die "Symbol mangling check failed."
2390 sym=$($_nm -P -g $TMPEXE)
2391 extern_prefix=${sym%%ff_extern*}
2392 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2393 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2394 echores $extern_prefix
2397 echocheck "assembler support of -pipe option"
2398 cat > $TMPC << EOF
2399 int main(void) { return 0; }
2401 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2404 echocheck "compiler support of named assembler arguments"
2405 _named_asm_args=yes
2406 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2407 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2408 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2409 _named_asm_args=no
2410 def_named_asm_args="#undef NAMED_ASM_ARGS"
2412 echores $_named_asm_args
2415 if darwin && test "$cc_vendor" = "gnu" ; then
2416 echocheck "GCC support of -mstackrealign"
2417 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2418 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2419 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2420 # wrong code with this flag, but this can be worked around by adding
2421 # -fno-unit-at-a-time as described in the blog post at
2422 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2423 cat > $TMPC << EOF
2424 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2425 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2427 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2428 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2429 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2430 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2431 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2434 # Checking for CFLAGS
2435 _install_strip="-s"
2436 if test "$_profile" != "" || test "$_debug" != "" ; then
2437 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2438 _install_strip=
2439 elif test -z "$CFLAGS" ; then
2440 if test "$cc_vendor" = "intel" ; then
2441 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2442 elif test "$cc_vendor" != "gnu" ; then
2443 CFLAGS="-O2 $_march $_mcpu $_pipe"
2444 else
2445 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2446 extra_ldflags="$extra_ldflags -ffast-math"
2448 else
2449 _warn_CFLAGS=yes
2452 cat > $TMPC << EOF
2453 int main(void) { return 0; }
2455 if test "$cc_vendor" = "gnu" ; then
2456 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2457 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2458 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2459 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2460 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2461 else
2462 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2465 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2468 if test -n "$LDFLAGS" ; then
2469 extra_ldflags="$extra_ldflags $LDFLAGS"
2470 _warn_CFLAGS=yes
2471 elif test "$cc_vendor" = "intel" ; then
2472 extra_ldflags="$extra_ldflags -i-static"
2474 if test -n "$CPPFLAGS" ; then
2475 extra_cflags="$extra_cflags $CPPFLAGS"
2476 _warn_CFLAGS=yes
2481 if x86_32 ; then
2482 # Checking assembler (_as) compatibility...
2483 # Added workaround for older as that reads from stdin by default - atmos
2484 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2485 echocheck "assembler ($_as $as_version)"
2487 _pref_as_version='2.9.1'
2488 echo 'nop' > $TMPS
2489 if test "$_mmx" = yes ; then
2490 echo 'emms' >> $TMPS
2492 if test "$_3dnow" = yes ; then
2493 _pref_as_version='2.10.1'
2494 echo 'femms' >> $TMPS
2496 if test "$_3dnowext" = yes ; then
2497 _pref_as_version='2.10.1'
2498 echo 'pswapd %mm0, %mm0' >> $TMPS
2500 if test "$_mmxext" = yes ; then
2501 _pref_as_version='2.10.1'
2502 echo 'movntq %mm0, (%eax)' >> $TMPS
2504 if test "$_sse" = yes ; then
2505 _pref_as_version='2.10.1'
2506 echo 'xorps %xmm0, %xmm0' >> $TMPS
2508 #if test "$_sse2" = yes ; then
2509 # _pref_as_version='2.11'
2510 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2512 if test "$_cmov" = yes ; then
2513 _pref_as_version='2.10.1'
2514 echo 'cmovb %eax, %ebx' >> $TMPS
2516 if test "$_ssse3" = yes ; then
2517 _pref_as_version='2.16.92'
2518 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2520 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2522 if test "$as_verc_fail" != yes ; then
2523 echores "ok"
2524 else
2525 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2526 echores "failed"
2527 die "obsolete binutils version"
2530 fi #if x86_32
2532 echocheck ".align is a power of two"
2533 if test "$_asmalign_pot" = auto ; then
2534 _asmalign_pot=no
2535 cat > $TMPC << EOF
2536 int main(void) { __asm__ (".align 3"); return 0; }
2538 cc_check && _asmalign_pot=yes
2540 if test "$_asmalign_pot" = "yes" ; then
2541 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2542 else
2543 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2545 echores $_asmalign_pot
2547 if x86 ; then
2548 echocheck "10 assembler operands"
2549 ten_operands=no
2550 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2551 cat > $TMPC << EOF
2552 int main(void) {
2553 int x=0;
2554 __asm__ volatile(
2556 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2558 return 0;
2561 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2562 echores $ten_operands
2564 echocheck "ebx availability"
2565 ebx_available=no
2566 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2567 cat > $TMPC << EOF
2568 int main(void) {
2569 int x;
2570 __asm__ volatile(
2571 "xor %0, %0"
2572 :"=b"(x)
2573 // just adding ebx to clobber list seems unreliable with some
2574 // compilers, e.g. Haiku's gcc 2.95
2576 // and the above check does not work for OSX 64 bit...
2577 __asm__ volatile("":::"%ebx");
2578 return 0;
2581 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2582 echores $ebx_available
2584 echocheck "PIC"
2585 pic=no
2586 cat > $TMPC << EOF
2587 int main(void) {
2588 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2589 #error PIC not enabled
2590 #endif
2591 return 0;
2594 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2595 echores $pic
2597 echocheck "yasm"
2598 if test -z "$YASMFLAGS" ; then
2599 if darwin ; then
2600 x86_64 && objformat="macho64" || objformat="macho"
2601 elif win32 ; then
2602 objformat="win32"
2603 else
2604 objformat="elf"
2606 # currently tested for Linux x86, x86_64
2607 YASMFLAGS="-f $objformat"
2608 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2609 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2610 case "$objformat" in
2611 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2612 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2613 esac
2614 else
2615 _warn_CFLAGS=yes
2618 echo "pabsw xmm0, xmm0" > $TMPS
2619 yasm_check || _yasm=""
2620 if test $_yasm ; then
2621 test "$_mmx" = "yes" && fft_mmx="yes"
2622 def_yasm='#define HAVE_YASM 1'
2623 _have_yasm="yes"
2624 echores "$_yasm"
2625 else
2626 def_yasm='#define HAVE_YASM 0'
2627 fft_mmx="no"
2628 _have_yasm="no"
2629 echores "no"
2632 echocheck "bswap"
2633 def_bswap='#define HAVE_BSWAP 0'
2634 echo 'bswap %eax' > $TMPS
2635 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2636 echores "$bswap"
2637 fi #if x86
2640 #FIXME: This should happen before the check for CFLAGS..
2641 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2642 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2644 # check if AltiVec is supported by the compiler, and how to enable it
2645 echocheck "GCC AltiVec flags"
2646 cat > $TMPC << EOF
2647 int main(void) { return 0; }
2649 if $(cc_check -maltivec -mabi=altivec) ; then
2650 _altivec_gcc_flags="-maltivec -mabi=altivec"
2651 # check if <altivec.h> should be included
2652 cat > $TMPC << EOF
2653 #include <altivec.h>
2654 int main(void) { return 0; }
2656 if $(cc_check $_altivec_gcc_flags) ; then
2657 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2658 inc_altivec_h='#include <altivec.h>'
2659 else
2660 cat > $TMPC << EOF
2661 int main(void) { return 0; }
2663 if $(cc_check -faltivec) ; then
2664 _altivec_gcc_flags="-faltivec"
2665 else
2666 _altivec=no
2667 _altivec_gcc_flags="none, AltiVec disabled"
2671 echores "$_altivec_gcc_flags"
2673 # check if the compiler supports braces for vector declarations
2674 cat > $TMPC << EOF
2675 $inc_altivec_h
2676 int main(void) { (vector int) {1}; return 0; }
2678 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2680 # Disable runtime cpudetection if we cannot generate AltiVec code or
2681 # AltiVec is disabled by the user.
2682 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2683 && _runtime_cpudetection=no
2685 # Show that we are optimizing for AltiVec (if enabled and supported).
2686 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2687 && _optimizing="$_optimizing altivec"
2689 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2690 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2693 if ppc ; then
2694 def_xform_asm='#define HAVE_XFORM_ASM 0'
2695 xform_asm=no
2696 echocheck "XFORM ASM support"
2697 cat > $TMPC << EOF
2698 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2700 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2701 echores "$xform_asm"
2704 if arm ; then
2705 echocheck "ARM pld instruction"
2706 cat > $TMPC << EOF
2707 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2709 pld=no
2710 cc_check && pld=yes
2711 echores "$pld"
2713 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2714 if test $_armv5te = "auto" ; then
2715 cat > $TMPC << EOF
2716 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2718 _armv5te=no
2719 cc_check && _armv5te=yes
2721 echores "$_armv5te"
2723 echocheck "ARMv6 (SIMD instructions)"
2724 if test $_armv6 = "auto" ; then
2725 cat > $TMPC << EOF
2726 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2728 _armv6=no
2729 cc_check && _armv6=yes
2731 echores "$_armv6"
2733 echocheck "ARMv6t2 (SIMD instructions)"
2734 if test $_armv6t2 = "auto" ; then
2735 cat > $TMPC << EOF
2736 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2738 _armv6t2=no
2739 cc_check && _armv6t2=yes
2741 echores "$_armv6"
2743 echocheck "ARM VFP"
2744 if test $_armvfp = "auto" ; then
2745 cat > $TMPC << EOF
2746 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2748 _armvfp=no
2749 cc_check && _armvfp=yes
2751 echores "$_armvfp"
2753 echocheck "ARM NEON"
2754 if test $neon = "auto" ; then
2755 cat > $TMPC << EOF
2756 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2758 neon=no
2759 cc_check && neon=yes
2761 echores "$neon"
2763 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2764 if test $_iwmmxt = "auto" ; then
2765 cat > $TMPC << EOF
2766 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2768 _iwmmxt=no
2769 cc_check && _iwmmxt=yes
2771 echores "$_iwmmxt"
2774 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2775 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2776 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2777 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2778 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2779 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2780 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2781 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2782 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2783 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2784 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2785 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2786 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2787 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2788 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2789 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2790 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2791 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2792 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2793 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2795 # Checking kernel version...
2796 if x86_32 && linux ; then
2797 _k_verc_problem=no
2798 kernel_version=$(uname -r 2>&1)
2799 echocheck "$system_name kernel version"
2800 case "$kernel_version" in
2801 '') kernel_version="?.??"; _k_verc_fail=yes;;
2802 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2803 _k_verc_problem=yes;;
2804 esac
2805 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2806 _k_verc_fail=yes
2808 if test "$_k_verc_fail" ; then
2809 echores "$kernel_version, fail"
2810 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2811 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2812 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2813 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2814 echo "2.2.x you must upgrade it to get SSE support!"
2815 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2816 else
2817 echores "$kernel_version, ok"
2821 ######################
2822 # MAIN TESTS GO HERE #
2823 ######################
2826 echocheck "-lposix"
2827 cat > $TMPC <<EOF
2828 int main(void) { return 0; }
2830 if cc_check -lposix ; then
2831 extra_ldflags="$extra_ldflags -lposix"
2832 echores "yes"
2833 else
2834 echores "no"
2837 echocheck "-lm"
2838 cat > $TMPC <<EOF
2839 int main(void) { return 0; }
2841 if cc_check -lm ; then
2842 _ld_lm="-lm"
2843 echores "yes"
2844 else
2845 _ld_lm=""
2846 echores "no"
2850 echocheck "langinfo"
2851 if test "$_langinfo" = auto ; then
2852 cat > $TMPC <<EOF
2853 #include <langinfo.h>
2854 int main(void) { nl_langinfo(CODESET); return 0; }
2856 _langinfo=no
2857 cc_check && _langinfo=yes
2859 if test "$_langinfo" = yes ; then
2860 def_langinfo='#define HAVE_LANGINFO 1'
2861 else
2862 def_langinfo='#undef HAVE_LANGINFO'
2864 echores "$_langinfo"
2867 echocheck "language"
2868 # Set preferred languages, "all" uses English as main language.
2869 test -z "$language" && language=$LINGUAS
2870 test -z "$language_doc" && language_doc=$language
2871 test -z "$language_man" && language_man=$language
2872 test -z "$language_msg" && language_msg=$language
2873 language_doc=$(echo $language_doc | tr , " ")
2874 language_man=$(echo $language_man | tr , " ")
2875 language_msg=$(echo $language_msg | tr , " ")
2877 test "$language_doc" = "all" && language_doc=$doc_lang_all
2878 test "$language_man" = "all" && language_man=$man_lang_all
2879 test "$language_msg" = "all" && language_msg=en
2881 # Prune non-existing translations from language lists.
2882 # Set message translation to the first available language.
2883 # Fall back on English.
2884 for lang in $language_doc ; do
2885 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2886 done
2887 language_doc=$tmp_language_doc
2888 test -z "$language_doc" && language_doc=en
2890 for lang in $language_man ; do
2891 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2892 done
2893 language_man=$tmp_language_man
2894 test -z "$language_man" && language_man=en
2896 for lang in $language_msg ; do
2897 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2898 done
2899 language_msg=$tmp_language_msg
2900 test -z "$language_msg" && language_msg=en
2901 _mp_help="help/help_mp-${language_msg}.h"
2902 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2905 echocheck "enable sighandler"
2906 if test "$_sighandler" = yes ; then
2907 def_sighandler='#define CONFIG_SIGHANDLER 1'
2908 else
2909 def_sighandler='#undef CONFIG_SIGHANDLER'
2911 echores "$_sighandler"
2913 echocheck "runtime cpudetection"
2914 if test "$_runtime_cpudetection" = yes ; then
2915 _optimizing="Runtime CPU-Detection enabled"
2916 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2917 else
2918 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2920 echores "$_runtime_cpudetection"
2923 echocheck "restrict keyword"
2924 for restrict_keyword in restrict __restrict __restrict__ ; do
2925 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2926 if cc_check; then
2927 def_restrict_keyword=$restrict_keyword
2928 break;
2930 done
2931 if [ -n "$def_restrict_keyword" ]; then
2932 echores "$def_restrict_keyword"
2933 else
2934 echores "none"
2936 # Avoid infinite recursion loop ("#define restrict restrict")
2937 if [ "$def_restrict_keyword" != "restrict" ]; then
2938 def_restrict_keyword="#define restrict $def_restrict_keyword"
2939 else
2940 def_restrict_keyword=""
2944 echocheck "__builtin_expect"
2945 # GCC branch prediction hint
2946 cat > $TMPC << EOF
2947 int foo(int a) {
2948 a = __builtin_expect(a, 10);
2949 return a == 10 ? 0 : 1;
2951 int main(void) { return foo(10) && foo(0); }
2953 _builtin_expect=no
2954 cc_check && _builtin_expect=yes
2955 if test "$_builtin_expect" = yes ; then
2956 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2957 else
2958 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2960 echores "$_builtin_expect"
2963 echocheck "kstat"
2964 cat > $TMPC << EOF
2965 #include <kstat.h>
2966 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2968 _kstat=no
2969 cc_check -lkstat && _kstat=yes
2970 if test "$_kstat" = yes ; then
2971 def_kstat="#define HAVE_LIBKSTAT 1"
2972 extra_ldflags="$extra_ldflags -lkstat"
2973 else
2974 def_kstat="#undef HAVE_LIBKSTAT"
2976 echores "$_kstat"
2979 echocheck "posix4"
2980 # required for nanosleep on some systems
2981 cat > $TMPC << EOF
2982 #include <time.h>
2983 int main(void) { (void) nanosleep(0, 0); return 0; }
2985 _posix4=no
2986 cc_check -lposix4 && _posix4=yes
2987 if test "$_posix4" = yes ; then
2988 extra_ldflags="$extra_ldflags -lposix4"
2990 echores "$_posix4"
2992 for func in llrint log2 lrint lrintf round roundf truncf; do
2993 echocheck $func
2994 cat > $TMPC << EOF
2995 #include <math.h>
2996 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2998 eval _$func=no
2999 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3000 if eval test "x\$_$func" = "xyes"; then
3001 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3002 echores yes
3003 else
3004 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3005 echores no
3007 done
3010 echocheck "mkstemp"
3011 cat > $TMPC << EOF
3012 #include <stdlib.h>
3013 int main(void) { char a; mkstemp(&a); return 0; }
3015 _mkstemp=no
3016 cc_check && _mkstemp=yes
3017 if test "$_mkstemp" = yes ; then
3018 def_mkstemp='#define HAVE_MKSTEMP 1'
3019 else
3020 def_mkstemp='#undef HAVE_MKSTEMP'
3022 echores "$_mkstemp"
3025 echocheck "nanosleep"
3026 # also check for nanosleep
3027 cat > $TMPC << EOF
3028 #include <time.h>
3029 int main(void) { (void) nanosleep(0, 0); return 0; }
3031 _nanosleep=no
3032 cc_check && _nanosleep=yes
3033 if test "$_nanosleep" = yes ; then
3034 def_nanosleep='#define HAVE_NANOSLEEP 1'
3035 else
3036 def_nanosleep='#undef HAVE_NANOSLEEP'
3038 echores "$_nanosleep"
3041 echocheck "socklib"
3042 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3043 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3044 cat > $TMPC << EOF
3045 #include <netdb.h>
3046 #include <sys/socket.h>
3047 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3049 _socklib=no
3050 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3051 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3052 done
3053 if test $_winsock2_h = auto && ! cygwin ; then
3054 _winsock2_h=no
3055 cat > $TMPC << EOF
3056 #include <winsock2.h>
3057 int main(void) { (void) gethostbyname(0); return 0; }
3059 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3061 test "$_ld_sock" && _res_comment="using $_ld_sock"
3062 echores "$_socklib"
3065 if test $_winsock2_h = yes ; then
3066 _ld_sock="-lws2_32"
3067 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3068 else
3069 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3073 echocheck "arpa/inet.h"
3074 arpa_inet_h=no
3075 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3076 cat > $TMPC << EOF
3077 #include <arpa/inet.h>
3078 int main(void) { return 0; }
3080 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3081 echores "$arpa_inet_h"
3084 echocheck "inet_pton()"
3085 def_inet_pton='#define HAVE_INET_PTON 0'
3086 inet_pton=no
3087 cat > $TMPC << EOF
3088 #include <sys/types.h>
3089 #include <sys/socket.h>
3090 #include <arpa/inet.h>
3091 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3093 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3094 cc_check $_ld_tmp && inet_pton=yes && break
3095 done
3096 if test $inet_pton = yes ; then
3097 test $_ld_tmp && _res_comment="using $_ld_tmp"
3098 def_inet_pton='#define HAVE_INET_PTON 1'
3100 echores "$inet_pton"
3103 echocheck "inet_aton()"
3104 def_inet_aton='#define HAVE_INET_ATON 0'
3105 inet_aton=no
3106 cat > $TMPC << EOF
3107 #include <sys/types.h>
3108 #include <sys/socket.h>
3109 #include <arpa/inet.h>
3110 int main(void) { (void) inet_aton(0, 0); return 0; }
3112 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3113 cc_check $_ld_tmp && inet_aton=yes && break
3114 done
3115 if test $inet_aton = yes ; then
3116 test $_ld_tmp && _res_comment="using $_ld_tmp"
3117 def_inet_aton='#define HAVE_INET_ATON 1'
3119 echores "$inet_aton"
3122 echocheck "socklen_t"
3123 _socklen_t=no
3124 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3125 cat > $TMPC << EOF
3126 #include <$header>
3127 int main(void) { socklen_t v = 0; return v; }
3129 cc_check && _socklen_t=yes && break
3130 done
3131 if test "$_socklen_t" = yes ; then
3132 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3133 else
3134 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3136 echores "$_socklen_t"
3139 echocheck "closesocket()"
3140 _closesocket=no
3141 cat > $TMPC << EOF
3142 #include <winsock2.h>
3143 int main(void) { closesocket(~0); return 0; }
3145 cc_check $_ld_sock && _closesocket=yes
3146 if test "$_closesocket" = yes ; then
3147 def_closesocket='#define HAVE_CLOSESOCKET 1'
3148 else
3149 def_closesocket='#define HAVE_CLOSESOCKET 0'
3151 echores "$_closesocket"
3154 echocheck "network"
3155 test $_winsock2_h = no && test $inet_pton = no &&
3156 test $inet_aton = no && _network=no
3157 if test "$_network" = yes ; then
3158 def_network='#define CONFIG_NETWORK 1'
3159 extra_ldflags="$extra_ldflags $_ld_sock"
3160 _inputmodules="network $_inputmodules"
3161 else
3162 _noinputmodules="network $_noinputmodules"
3163 def_network='#undef CONFIG_NETWORK'
3164 _ftp=no
3166 echores "$_network"
3169 echocheck "inet6"
3170 if test "$_inet6" = auto ; then
3171 cat > $TMPC << EOF
3172 #include <sys/types.h>
3173 #if !defined(_WIN32) || defined(__CYGWIN__)
3174 #include <sys/socket.h>
3175 #include <netinet/in.h>
3176 #else
3177 #include <ws2tcpip.h>
3178 #endif
3179 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3181 _inet6=no
3182 if cc_check $_ld_sock ; then
3183 _inet6=yes
3186 if test "$_inet6" = yes ; then
3187 def_inet6='#define HAVE_AF_INET6 1'
3188 else
3189 def_inet6='#undef HAVE_AF_INET6'
3191 echores "$_inet6"
3194 echocheck "gethostbyname2"
3195 if test "$_gethostbyname2" = auto ; then
3196 cat > $TMPC << EOF
3197 #include <sys/types.h>
3198 #include <sys/socket.h>
3199 #include <netdb.h>
3200 int main(void) { gethostbyname2("", AF_INET); return 0; }
3202 _gethostbyname2=no
3203 if cc_check ; then
3204 _gethostbyname2=yes
3207 if test "$_gethostbyname2" = yes ; then
3208 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3209 else
3210 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3212 echores "$_gethostbyname2"
3215 echocheck "inttypes.h (required)"
3216 cat > $TMPC << EOF
3217 #include <inttypes.h>
3218 int main(void) { return 0; }
3220 _inttypes=no
3221 cc_check && _inttypes=yes
3222 echores "$_inttypes"
3224 if test "$_inttypes" = no ; then
3225 echocheck "bitypes.h (inttypes.h predecessor)"
3226 cat > $TMPC << EOF
3227 #include <sys/bitypes.h>
3228 int main(void) { return 0; }
3230 cc_check && _inttypes=yes
3231 if test "$_inttypes" = yes ; then
3232 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."
3233 else
3234 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3239 echocheck "int_fastXY_t in inttypes.h"
3240 cat > $TMPC << EOF
3241 #include <inttypes.h>
3242 int main(void) {
3243 volatile int_fast16_t v= 0;
3244 return v; }
3246 _fast_inttypes=no
3247 cc_check && _fast_inttypes=yes
3248 if test "$_fast_inttypes" = no ; then
3249 def_fast_inttypes='
3250 typedef signed char int_fast8_t;
3251 typedef signed int int_fast16_t;
3252 typedef signed int int_fast32_t;
3253 typedef signed long long int_fast64_t;
3254 typedef unsigned char uint_fast8_t;
3255 typedef unsigned int uint_fast16_t;
3256 typedef unsigned int uint_fast32_t;
3257 typedef unsigned long long uint_fast64_t;'
3259 echores "$_fast_inttypes"
3262 echocheck "malloc.h"
3263 cat > $TMPC << EOF
3264 #include <malloc.h>
3265 int main(void) { (void) malloc(0); return 0; }
3267 _malloc=no
3268 cc_check && _malloc=yes
3269 if test "$_malloc" = yes ; then
3270 def_malloc_h='#define HAVE_MALLOC_H 1'
3271 else
3272 def_malloc_h='#define HAVE_MALLOC_H 0'
3274 # malloc.h emits a warning in FreeBSD and OpenBSD
3275 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3276 echores "$_malloc"
3279 echocheck "memalign()"
3280 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3281 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3282 cat > $TMPC << EOF
3283 #include <malloc.h>
3284 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3286 _memalign=no
3287 cc_check && _memalign=yes
3288 if test "$_memalign" = yes ; then
3289 def_memalign='#define HAVE_MEMALIGN 1'
3290 else
3291 def_memalign='#define HAVE_MEMALIGN 0'
3292 def_map_memalign='#define memalign(a,b) malloc(b)'
3293 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3295 echores "$_memalign"
3298 echocheck "posix_memalign()"
3299 posix_memalign=no
3300 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3301 cat > $TMPC << EOF
3302 #define _XOPEN_SOURCE 600
3303 #include <stdlib.h>
3304 int main(void) { posix_memalign(NULL, 0, 0); }
3306 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3307 echores "$posix_memalign"
3310 echocheck "alloca.h"
3311 cat > $TMPC << EOF
3312 #include <alloca.h>
3313 int main(void) { (void) alloca(0); return 0; }
3315 _alloca=no
3316 cc_check && _alloca=yes
3317 if cc_check ; then
3318 def_alloca_h='#define HAVE_ALLOCA_H 1'
3319 else
3320 def_alloca_h='#undef HAVE_ALLOCA_H'
3322 echores "$_alloca"
3325 echocheck "fastmemcpy"
3326 if test "$_fastmemcpy" = yes ; then
3327 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3328 else
3329 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3331 echores "$_fastmemcpy"
3334 echocheck "mman.h"
3335 cat > $TMPC << EOF
3336 #include <sys/types.h>
3337 #include <sys/mman.h>
3338 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3340 _mman=no
3341 cc_check && _mman=yes
3342 if test "$_mman" = yes ; then
3343 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3344 else
3345 def_mman_h='#undef HAVE_SYS_MMAN_H'
3346 os2 && _need_mmap=yes
3348 echores "$_mman"
3350 cat > $TMPC << EOF
3351 #include <sys/types.h>
3352 #include <sys/mman.h>
3353 int main(void) { void *p = MAP_FAILED; return 0; }
3355 _mman_has_map_failed=no
3356 cc_check && _mman_has_map_failed=yes
3357 if test "$_mman_has_map_failed" = yes ; then
3358 def_mman_has_map_failed=''
3359 else
3360 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3363 echocheck "dynamic loader"
3364 cat > $TMPC << EOF
3365 #include <stddef.h>
3366 #include <dlfcn.h>
3367 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3369 _dl=no
3370 for _ld_tmp in "" "-ldl" ; do
3371 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3372 done
3373 if test "$_dl" = yes ; then
3374 def_dl='#define HAVE_LIBDL 1'
3375 else
3376 def_dl='#undef HAVE_LIBDL'
3378 echores "$_dl"
3381 echocheck "dynamic a/v plugins support"
3382 if test "$_dl" = no ; then
3383 _dynamic_plugins=no
3385 if test "$_dynamic_plugins" = yes ; then
3386 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3387 else
3388 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3390 echores "$_dynamic_plugins"
3393 def_threads='#define HAVE_THREADS 0'
3395 echocheck "pthread"
3396 if linux ; then
3397 THREAD_CFLAGS=-D_REENTRANT
3398 elif freebsd || netbsd || openbsd || bsdos ; then
3399 THREAD_CFLAGS=-D_THREAD_SAFE
3401 if test "$_pthreads" = auto ; then
3402 cat > $TMPC << EOF
3403 #include <pthread.h>
3404 void* func(void *arg) { return arg; }
3405 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3407 _pthreads=no
3408 if ! hpux ; then
3409 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3410 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3411 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3412 done
3415 if test "$_pthreads" = yes ; then
3416 test $_ld_pthread && _res_comment="using $_ld_pthread"
3417 def_pthreads='#define HAVE_PTHREADS 1'
3418 def_threads='#define HAVE_THREADS 1'
3419 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3420 else
3421 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3422 def_pthreads='#undef HAVE_PTHREADS'
3423 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3424 mingw32 || _win32dll=no
3426 echores "$_pthreads"
3428 if cygwin ; then
3429 if test "$_pthreads" = yes ; then
3430 def_pthread_cache="#define PTHREAD_CACHE 1"
3431 else
3432 _stream_cache=no
3433 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3437 echocheck "w32threads"
3438 if test "$_pthreads" = yes ; then
3439 _res_comment="using pthread instead"
3440 _w32threads=no
3442 if test "$_w32threads" = auto ; then
3443 _w32threads=no
3444 mingw32 && _w32threads=yes
3446 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3447 echores "$_w32threads"
3449 echocheck "rpath"
3450 netbsd &&_rpath=yes
3451 if test "$_rpath" = yes ; then
3452 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3453 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3454 done
3455 extra_ldflags=$tmp
3457 echores "$_rpath"
3459 echocheck "iconv"
3460 if test "$_iconv" = auto ; then
3461 cat > $TMPC << EOF
3462 #include <stdio.h>
3463 #include <unistd.h>
3464 #include <iconv.h>
3465 #define INBUFSIZE 1024
3466 #define OUTBUFSIZE 4096
3468 char inbuffer[INBUFSIZE];
3469 char outbuffer[OUTBUFSIZE];
3471 int main(void) {
3472 size_t numread;
3473 iconv_t icdsc;
3474 char *tocode="UTF-8";
3475 char *fromcode="cp1250";
3476 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3477 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3478 char *iptr=inbuffer;
3479 char *optr=outbuffer;
3480 size_t inleft=numread;
3481 size_t outleft=OUTBUFSIZE;
3482 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3483 != (size_t)(-1)) {
3484 write(1, outbuffer, OUTBUFSIZE - outleft);
3487 if (iconv_close(icdsc) == -1)
3490 return 0;
3493 _iconv=no
3494 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3495 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3496 _iconv=yes && break
3497 done
3499 if test "$_iconv" = yes ; then
3500 def_iconv='#define CONFIG_ICONV 1'
3501 else
3502 def_iconv='#undef CONFIG_ICONV'
3504 echores "$_iconv"
3507 echocheck "soundcard.h"
3508 _soundcard_h=no
3509 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3510 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3511 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3512 cat > $TMPC << EOF
3513 #include <$_soundcard_header>
3514 int main(void) { return 0; }
3516 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3517 done
3519 if test "$_soundcard_h" = yes ; then
3520 if test $_soundcard_header = "sys/soundcard.h"; then
3521 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3522 else
3523 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3526 echores "$_soundcard_h"
3529 echocheck "sys/dvdio.h"
3530 cat > $TMPC << EOF
3531 #include <unistd.h>
3532 #include <sys/dvdio.h>
3533 int main(void) { return 0; }
3535 _dvdio=no
3536 cc_check && _dvdio=yes
3537 if test "$_dvdio" = yes ; then
3538 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3539 else
3540 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3542 echores "$_dvdio"
3545 echocheck "sys/cdio.h"
3546 cat > $TMPC << EOF
3547 #include <unistd.h>
3548 #include <sys/cdio.h>
3549 int main(void) { return 0; }
3551 _cdio=no
3552 cc_check && _cdio=yes
3553 if test "$_cdio" = yes ; then
3554 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3555 else
3556 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3558 echores "$_cdio"
3561 echocheck "linux/cdrom.h"
3562 cat > $TMPC << EOF
3563 #include <sys/types.h>
3564 #include <linux/cdrom.h>
3565 int main(void) { return 0; }
3567 _cdrom=no
3568 cc_check && _cdrom=yes
3569 if test "$_cdrom" = yes ; then
3570 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3571 else
3572 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3574 echores "$_cdrom"
3577 echocheck "dvd.h"
3578 cat > $TMPC << EOF
3579 #include <dvd.h>
3580 int main(void) { return 0; }
3582 _dvd=no
3583 cc_check && _dvd=yes
3584 if test "$_dvd" = yes ; then
3585 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3586 else
3587 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3589 echores "$_dvd"
3592 if bsdos; then
3593 echocheck "BSDI dvd.h"
3594 cat > $TMPC << EOF
3595 #include <dvd.h>
3596 int main(void) { return 0; }
3598 _bsdi_dvd=no
3599 cc_check && _bsdi_dvd=yes
3600 if test "$_bsdi_dvd" = yes ; then
3601 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3602 else
3603 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3605 echores "$_bsdi_dvd"
3606 fi #if bsdos
3609 if hpux; then
3610 # also used by AIX, but AIX does not support VCD and/or libdvdread
3611 echocheck "HP-UX SCSI header"
3612 cat > $TMPC << EOF
3613 #include <sys/scsi.h>
3614 int main(void) { return 0; }
3616 _hpux_scsi_h=no
3617 cc_check && _hpux_scsi_h=yes
3618 if test "$_hpux_scsi_h" = yes ; then
3619 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3620 else
3621 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3623 echores "$_hpux_scsi_h"
3624 fi #if hpux
3627 if sunos; then
3628 echocheck "userspace SCSI headers (Solaris)"
3629 cat > $TMPC << EOF
3630 #include <unistd.h>
3631 #include <stropts.h>
3632 #include <sys/scsi/scsi_types.h>
3633 #include <sys/scsi/impl/uscsi.h>
3634 int main(void) { return 0; }
3636 _sol_scsi_h=no
3637 cc_check && _sol_scsi_h=yes
3638 if test "$_sol_scsi_h" = yes ; then
3639 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3640 else
3641 def_sol_scsi_h='#undef SOLARIS_USCSI'
3643 echores "$_sol_scsi_h"
3644 fi #if sunos
3647 echocheck "termcap"
3648 if test "$_termcap" = auto ; then
3649 cat > $TMPC <<EOF
3650 #include <stddef.h>
3651 #include <term.h>
3652 int main(void) { tgetent(NULL, NULL); return 0; }
3654 _termcap=no
3655 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3656 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3657 && _termcap=yes && break
3658 done
3660 if test "$_termcap" = yes ; then
3661 def_termcap='#define HAVE_TERMCAP 1'
3662 test $_ld_tmp && _res_comment="using $_ld_tmp"
3663 else
3664 def_termcap='#undef HAVE_TERMCAP'
3666 echores "$_termcap"
3669 echocheck "termios"
3670 def_termios='#undef HAVE_TERMIOS'
3671 def_termios_h='#undef HAVE_TERMIOS_H'
3672 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3673 if test "$_termios" = auto ; then
3674 _termios=no
3675 for _termios_header in "sys/termios.h" "termios.h"; do
3676 cat > $TMPC <<EOF
3677 #include <$_termios_header>
3678 int main(void) { return 0; }
3680 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3681 done
3684 if test "$_termios" = yes ; then
3685 def_termios='#define HAVE_TERMIOS 1'
3686 if test "$_termios_header" = "termios.h" ; then
3687 def_termios_h='#define HAVE_TERMIOS_H 1'
3688 else
3689 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3692 echores "$_termios"
3695 echocheck "shm"
3696 if test "$_shm" = auto ; then
3697 cat > $TMPC << EOF
3698 #include <sys/types.h>
3699 #include <sys/shm.h>
3700 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3702 _shm=no
3703 cc_check && _shm=yes
3705 if test "$_shm" = yes ; then
3706 def_shm='#define HAVE_SHM 1'
3707 else
3708 def_shm='#undef HAVE_SHM'
3710 echores "$_shm"
3713 echocheck "strsep()"
3714 cat > $TMPC << EOF
3715 #include <string.h>
3716 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3718 _strsep=no
3719 cc_check && _strsep=yes
3720 if test "$_strsep" = yes ; then
3721 def_strsep='#define HAVE_STRSEP 1'
3722 _need_strsep=no
3723 else
3724 def_strsep='#undef HAVE_STRSEP'
3725 _need_strsep=yes
3727 echores "$_strsep"
3730 echocheck "vsscanf()"
3731 cat > $TMPC << EOF
3732 #define _ISOC99_SOURCE
3733 #include <stdarg.h>
3734 #include <stdio.h>
3735 int main(void) { vsscanf(0, 0, 0); return 0; }
3737 _vsscanf=no
3738 cc_check && _vsscanf=yes
3739 if test "$_vsscanf" = yes ; then
3740 def_vsscanf='#define HAVE_VSSCANF 1'
3741 _need_vsscanf=no
3742 else
3743 def_vsscanf='#undef HAVE_VSSCANF'
3744 _need_vsscanf=yes
3746 echores "$_vsscanf"
3749 echocheck "swab()"
3750 cat > $TMPC << EOF
3751 #define _XOPEN_SOURCE 600
3752 #include <unistd.h>
3753 int main(void) { swab(0, 0, 0); return 0; }
3755 _swab=no
3756 cc_check && _swab=yes
3757 if test "$_swab" = yes ; then
3758 def_swab='#define HAVE_SWAB 1'
3759 _need_swab=no
3760 else
3761 def_swab='#undef HAVE_SWAB'
3762 _need_swab=yes
3764 echores "$_swab"
3766 echocheck "POSIX select()"
3767 cat > $TMPC << EOF
3768 #include <stdio.h>
3769 #include <stdlib.h>
3770 #include <sys/types.h>
3771 #include <string.h>
3772 #include <sys/time.h>
3773 #include <unistd.h>
3774 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3776 _posix_select=no
3777 def_posix_select='#undef HAVE_POSIX_SELECT'
3778 #select() of kLIBC (OS/2) supports socket only
3779 ! os2 && cc_check && _posix_select=yes \
3780 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3781 echores "$_posix_select"
3784 echocheck "audio select()"
3785 if test "$_select" = no ; then
3786 def_select='#undef HAVE_AUDIO_SELECT'
3787 elif test "$_select" = yes ; then
3788 def_select='#define HAVE_AUDIO_SELECT 1'
3790 echores "$_select"
3793 echocheck "gettimeofday()"
3794 cat > $TMPC << EOF
3795 #include <stdio.h>
3796 #include <sys/time.h>
3797 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3799 _gettimeofday=no
3800 cc_check && _gettimeofday=yes
3801 if test "$_gettimeofday" = yes ; then
3802 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3803 _need_gettimeofday=no
3804 else
3805 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3806 _need_gettimeofday=yes
3808 echores "$_gettimeofday"
3811 echocheck "glob()"
3812 cat > $TMPC << EOF
3813 #include <stdio.h>
3814 #include <glob.h>
3815 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3817 _glob=no
3818 cc_check && _glob=yes
3819 if test "$_glob" = yes ; then
3820 def_glob='#define HAVE_GLOB 1'
3821 _need_glob=no
3822 else
3823 def_glob='#undef HAVE_GLOB'
3824 _need_glob=yes
3826 echores "$_glob"
3829 echocheck "setenv()"
3830 cat > $TMPC << EOF
3831 #include <stdlib.h>
3832 int main(void) { setenv("","",0); return 0; }
3834 _setenv=no
3835 cc_check && _setenv=yes
3836 if test "$_setenv" = yes ; then
3837 def_setenv='#define HAVE_SETENV 1'
3838 _need_setenv=no
3839 else
3840 def_setenv='#undef HAVE_SETENV'
3841 _need_setenv=yes
3843 echores "$_setenv"
3846 if sunos; then
3847 echocheck "sysi86()"
3848 cat > $TMPC << EOF
3849 #include <sys/sysi86.h>
3850 int main(void) { sysi86(0); return 0; }
3852 _sysi86=no
3853 cc_check && _sysi86=yes
3854 if test "$_sysi86" = yes ; then
3855 def_sysi86='#define HAVE_SYSI86 1'
3856 cat > $TMPC << EOF
3857 #include <sys/sysi86.h>
3858 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3860 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3861 else
3862 def_sysi86='#undef HAVE_SYSI86'
3864 echores "$_sysi86"
3865 fi #if sunos
3868 echocheck "sys/sysinfo.h"
3869 cat > $TMPC << EOF
3870 #include <sys/sysinfo.h>
3871 int main(void) {
3872 struct sysinfo s_info;
3873 sysinfo(&s_info);
3874 return 0;
3877 _sys_sysinfo=no
3878 cc_check && _sys_sysinfo=yes
3879 if test "$_sys_sysinfo" = yes ; then
3880 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3881 else
3882 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3884 echores "$_sys_sysinfo"
3887 if darwin; then
3889 echocheck "Mac OS X Finder Support"
3890 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3891 if test "$_macosx_finder" = yes ; then
3892 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3893 extra_ldflags="$extra_ldflags -framework Carbon"
3895 echores "$_macosx_finder"
3897 echocheck "Mac OS X Bundle file locations"
3898 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3899 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3900 if test "$_macosx_bundle" = yes ; then
3901 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3902 extra_ldflags="$extra_ldflags -framework Carbon"
3904 echores "$_macosx_bundle"
3906 echocheck "Apple Remote"
3907 if test "$_apple_remote" = auto ; then
3908 _apple_remote=no
3909 cat > $TMPC <<EOF
3910 #include <stdio.h>
3911 #include <IOKit/IOCFPlugIn.h>
3912 int main(void) {
3913 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3914 CFMutableDictionaryRef hidMatchDictionary;
3915 IOReturn ioReturnValue;
3917 // Set up a matching dictionary to search the I/O Registry by class.
3918 // name for all HID class devices
3919 hidMatchDictionary = IOServiceMatching("AppleIRController");
3921 // Now search I/O Registry for matching devices.
3922 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3923 hidMatchDictionary, &hidObjectIterator);
3925 // If search is unsuccessful, return nonzero.
3926 if (ioReturnValue != kIOReturnSuccess ||
3927 !IOIteratorIsValid(hidObjectIterator)) {
3928 return 1;
3930 return 0;
3933 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3935 if test "$_apple_remote" = yes ; then
3936 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3937 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3938 else
3939 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3941 echores "$_apple_remote"
3943 fi #if darwin
3945 if linux; then
3947 echocheck "Apple IR"
3948 if test "$_apple_ir" = auto ; then
3949 _apple_ir=no
3950 cat > $TMPC <<EOF
3951 #include <linux/types.h>
3952 #include <linux/input.h>
3953 int main(void) {
3954 struct input_event ev;
3955 struct input_id id;
3956 return 0;
3959 cc_check && _apple_ir=yes
3961 if test "$_apple_ir" = yes ; then
3962 def_apple_ir='#define CONFIG_APPLE_IR 1'
3963 else
3964 def_apple_ir='#undef CONFIG_APPLE_IR'
3966 echores "$_apple_ir"
3967 fi #if linux
3969 echocheck "pkg-config"
3970 _pkg_config=pkg-config
3971 if $($_pkg_config --version > /dev/null 2>&1); then
3972 if test "$_ld_static"; then
3973 _pkg_config="$_pkg_config --static"
3975 echores "yes"
3976 else
3977 _pkg_config=false
3978 echores "no"
3982 echocheck "Samba support (libsmbclient)"
3983 if test "$_smb" = yes; then
3984 extra_ldflags="$extra_ldflags -lsmbclient"
3986 if test "$_smb" = auto; then
3987 _smb=no
3988 cat > $TMPC << EOF
3989 #include <libsmbclient.h>
3990 int main(void) { smbc_opendir("smb://"); return 0; }
3992 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3993 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3994 _smb=yes && break
3995 done
3998 if test "$_smb" = yes; then
3999 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4000 _inputmodules="smb $_inputmodules"
4001 else
4002 def_smb="#undef CONFIG_LIBSMBCLIENT"
4003 _noinputmodules="smb $_noinputmodules"
4005 echores "$_smb"
4008 #########
4009 # VIDEO #
4010 #########
4013 echocheck "tdfxfb"
4014 if test "$_tdfxfb" = yes ; then
4015 def_tdfxfb='#define CONFIG_TDFXFB 1'
4016 _vomodules="tdfxfb $_vomodules"
4017 else
4018 def_tdfxfb='#undef CONFIG_TDFXFB'
4019 _novomodules="tdfxfb $_novomodules"
4021 echores "$_tdfxfb"
4023 echocheck "s3fb"
4024 if test "$_s3fb" = yes ; then
4025 def_s3fb='#define CONFIG_S3FB 1'
4026 _vomodules="s3fb $_vomodules"
4027 else
4028 def_s3fb='#undef CONFIG_S3FB'
4029 _novomodules="s3fb $_novomodules"
4031 echores "$_s3fb"
4033 echocheck "wii"
4034 if test "$_wii" = yes ; then
4035 def_wii='#define CONFIG_WII 1'
4036 _vomodules="wii $_vomodules"
4037 else
4038 def_wii='#undef CONFIG_WII'
4039 _novomodules="wii $_novomodules"
4041 echores "$_wii"
4043 echocheck "tdfxvid"
4044 if test "$_tdfxvid" = yes ; then
4045 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4046 _vomodules="tdfx_vid $_vomodules"
4047 else
4048 def_tdfxvid='#undef CONFIG_TDFX_VID'
4049 _novomodules="tdfx_vid $_novomodules"
4051 echores "$_tdfxvid"
4053 echocheck "xvr100"
4054 if test "$_xvr100" = auto ; then
4055 cat > $TMPC << EOF
4056 #include <unistd.h>
4057 #include <sys/fbio.h>
4058 #include <sys/visual_io.h>
4059 int main(void) {
4060 struct vis_identifier ident;
4061 struct fbgattr attr;
4062 ioctl(0, VIS_GETIDENTIFIER, &ident);
4063 ioctl(0, FBIOGATTR, &attr);
4064 return 0;
4067 _xvr100=no
4068 cc_check && _xvr100=yes
4070 if test "$_xvr100" = yes ; then
4071 def_xvr100='#define CONFIG_XVR100 1'
4072 _vomodules="xvr100 $_vomodules"
4073 else
4074 def_tdfxvid='#undef CONFIG_XVR100'
4075 _novomodules="xvr100 $_novomodules"
4077 echores "$_xvr100"
4079 echocheck "tga"
4080 if test "$_tga" = yes ; then
4081 def_tga='#define CONFIG_TGA 1'
4082 _vomodules="tga $_vomodules"
4083 else
4084 def_tga='#undef CONFIG_TGA'
4085 _novomodules="tga $_novomodules"
4087 echores "$_tga"
4090 echocheck "md5sum support"
4091 if test "$_md5sum" = yes; then
4092 def_md5sum="#define CONFIG_MD5SUM 1"
4093 _vomodules="md5sum $_vomodules"
4094 else
4095 def_md5sum="#undef CONFIG_MD5SUM"
4096 _novomodules="md5sum $_novomodules"
4098 echores "$_md5sum"
4101 echocheck "yuv4mpeg support"
4102 if test "$_yuv4mpeg" = yes; then
4103 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4104 _vomodules="yuv4mpeg $_vomodules"
4105 else
4106 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4107 _novomodules="yuv4mpeg $_novomodules"
4109 echores "$_yuv4mpeg"
4112 echocheck "bl"
4113 if test "$_bl" = yes ; then
4114 def_bl='#define CONFIG_BL 1'
4115 _vomodules="bl $_vomodules"
4116 else
4117 def_bl='#undef CONFIG_BL'
4118 _novomodules="bl $_novomodules"
4120 echores "$_bl"
4123 echocheck "DirectFB"
4124 if test "$_directfb" = auto ; then
4125 _directfb=no
4126 cat > $TMPC <<EOF
4127 #include <directfb.h>
4128 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4130 for _inc_tmp in "" -I/usr/local/include/directfb \
4131 -I/usr/include/directfb -I/usr/local/include; do
4132 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4133 extra_cflags="$extra_cflags $_inc_tmp" && break
4134 done
4137 dfb_version() {
4138 expr $1 \* 65536 + $2 \* 256 + $3
4141 if test "$_directfb" = yes; then
4142 cat > $TMPC << EOF
4143 #include <directfb_version.h>
4145 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4148 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4149 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4150 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4151 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4152 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4153 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4154 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4155 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4156 _res_comment="$_directfb_version"
4157 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4158 else
4159 def_directfb_version='#undef DIRECTFBVERSION'
4160 _directfb=no
4161 _res_comment="version >=0.9.13 required"
4163 else
4164 _directfb=no
4165 _res_comment="failed to get version"
4168 echores "$_directfb"
4170 if test "$_directfb" = yes ; then
4171 def_directfb='#define CONFIG_DIRECTFB 1'
4172 _vomodules="directfb $_vomodules"
4173 libs_mplayer="$libs_mplayer -ldirectfb"
4174 else
4175 def_directfb='#undef CONFIG_DIRECTFB'
4176 _novomodules="directfb $_novomodules"
4178 if test "$_dfbmga" = yes; then
4179 _vomodules="dfbmga $_vomodules"
4180 def_dfbmga='#define CONFIG_DFBMGA 1'
4181 else
4182 _novomodules="dfbmga $_novomodules"
4183 def_dfbmga='#undef CONFIG_DFBMGA'
4187 echocheck "X11 headers presence"
4188 _x11_headers="no"
4189 _res_comment="check if the dev(el) packages are installed"
4190 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4191 if test -f "$I/X11/Xlib.h" ; then
4192 _x11_headers="yes"
4193 _res_comment=""
4194 break
4196 done
4197 if test $_cross_compile = no; then
4198 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4199 /usr/include/X11R6 /usr/openwin/include ; do
4200 if test -f "$I/X11/Xlib.h" ; then
4201 extra_cflags="$extra_cflags -I$I"
4202 _x11_headers="yes"
4203 _res_comment="using $I"
4204 break
4206 done
4208 echores "$_x11_headers"
4211 echocheck "X11"
4212 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4213 cat > $TMPC <<EOF
4214 #include <X11/Xlib.h>
4215 #include <X11/Xutil.h>
4216 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4218 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4219 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4220 -L/usr/lib ; do
4221 if netbsd; then
4222 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4223 else
4224 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4226 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4227 && _x11=yes && break
4228 done
4230 if test "$_x11" = yes ; then
4231 def_x11='#define CONFIG_X11 1'
4232 _vomodules="x11 xover $_vomodules"
4233 else
4234 _x11=no
4235 def_x11='#undef CONFIG_X11'
4236 _novomodules="x11 $_novomodules"
4237 _res_comment="check if the dev(el) packages are installed"
4238 # disable stuff that depends on X
4239 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4241 echores "$_x11"
4243 echocheck "Xss screensaver extensions"
4244 if test "$_xss" = auto ; then
4245 cat > $TMPC << EOF
4246 #include <X11/Xlib.h>
4247 #include <X11/extensions/scrnsaver.h>
4248 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4250 _xss=no
4251 cc_check -lXss && _xss=yes
4253 if test "$_xss" = yes ; then
4254 def_xss='#define CONFIG_XSS 1'
4255 libs_mplayer="$libs_mplayer -lXss"
4256 else
4257 def_xss='#undef CONFIG_XSS'
4259 echores "$_xss"
4261 echocheck "DPMS"
4262 _xdpms3=no
4263 _xdpms4=no
4264 if test "$_x11" = yes ; then
4265 cat > $TMPC <<EOF
4266 #include <X11/Xmd.h>
4267 #include <X11/Xlib.h>
4268 #include <X11/Xutil.h>
4269 #include <X11/Xatom.h>
4270 #include <X11/extensions/dpms.h>
4271 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4273 cc_check -lXdpms && _xdpms3=yes
4274 cat > $TMPC <<EOF
4275 #include <X11/Xlib.h>
4276 #include <X11/extensions/dpms.h>
4277 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4279 cc_check -lXext && _xdpms4=yes
4281 if test "$_xdpms4" = yes ; then
4282 def_xdpms='#define CONFIG_XDPMS 1'
4283 _res_comment="using Xdpms 4"
4284 echores "yes"
4285 elif test "$_xdpms3" = yes ; then
4286 def_xdpms='#define CONFIG_XDPMS 1'
4287 libs_mplayer="$libs_mplayer -lXdpms"
4288 _res_comment="using Xdpms 3"
4289 echores "yes"
4290 else
4291 def_xdpms='#undef CONFIG_XDPMS'
4292 echores "no"
4296 echocheck "Xv"
4297 if test "$_xv" = auto ; then
4298 cat > $TMPC <<EOF
4299 #include <X11/Xlib.h>
4300 #include <X11/extensions/Xvlib.h>
4301 int main(void) {
4302 (void) XvGetPortAttribute(0, 0, 0, 0);
4303 (void) XvQueryPortAttributes(0, 0, 0);
4304 return 0; }
4306 _xv=no
4307 cc_check -lXv && _xv=yes
4310 if test "$_xv" = yes ; then
4311 def_xv='#define CONFIG_XV 1'
4312 libs_mplayer="$libs_mplayer -lXv"
4313 _vomodules="xv $_vomodules"
4314 else
4315 def_xv='#undef CONFIG_XV'
4316 _novomodules="xv $_novomodules"
4318 echores "$_xv"
4321 echocheck "XvMC"
4322 if test "$_xv" = yes && test "$_xvmc" != no ; then
4323 _xvmc=no
4324 cat > $TMPC <<EOF
4325 #include <X11/Xlib.h>
4326 #include <X11/extensions/Xvlib.h>
4327 #include <X11/extensions/XvMClib.h>
4328 int main(void) {
4329 (void) XvMCQueryExtension(0,0,0);
4330 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4331 return 0; }
4333 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4334 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4335 done
4337 if test "$_xvmc" = yes ; then
4338 def_xvmc='#define CONFIG_XVMC 1'
4339 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4340 _vomodules="xvmc $_vomodules"
4341 _res_comment="using $_xvmclib"
4342 else
4343 def_xvmc='#define CONFIG_XVMC 0'
4344 _novomodules="xvmc $_novomodules"
4345 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4347 echores "$_xvmc"
4350 echocheck "VDPAU"
4351 if test "$_vdpau" = auto ; then
4352 _vdpau=no
4353 if test "$_dl" = yes ; then
4354 cat > $TMPC <<EOF
4355 #include <vdpau/vdpau_x11.h>
4356 int main(void) {
4357 (void) vdp_device_create_x11(0, 0, 0, 0);
4358 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4360 cc_check -lvdpau && _vdpau=yes
4363 if test "$_vdpau" = yes ; then
4364 def_vdpau='#define CONFIG_VDPAU 1'
4365 libs_mplayer="$libs_mplayer -lvdpau"
4366 _vomodules="vdpau $_vomodules"
4367 else
4368 def_vdpau='#define CONFIG_VDPAU 0'
4369 _novomodules="vdpau $_novomodules"
4370 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4372 echores "$_vdpau"
4375 echocheck "Xinerama"
4376 if test "$_xinerama" = auto ; then
4377 cat > $TMPC <<EOF
4378 #include <X11/Xlib.h>
4379 #include <X11/extensions/Xinerama.h>
4380 int main(void) { (void) XineramaIsActive(0); return 0; }
4382 _xinerama=no
4383 cc_check -lXinerama && _xinerama=yes
4386 if test "$_xinerama" = yes ; then
4387 def_xinerama='#define CONFIG_XINERAMA 1'
4388 libs_mplayer="$libs_mplayer -lXinerama"
4389 else
4390 def_xinerama='#undef CONFIG_XINERAMA'
4392 echores "$_xinerama"
4395 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4396 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4397 # named 'X extensions' or something similar.
4398 # This check may be useful for future mplayer versions (to change resolution)
4399 # If you run into problems, remove '-lXxf86vm'.
4400 echocheck "Xxf86vm"
4401 if test "$_vm" = auto ; then
4402 cat > $TMPC <<EOF
4403 #include <X11/Xlib.h>
4404 #include <X11/extensions/xf86vmode.h>
4405 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4407 _vm=no
4408 cc_check -lXxf86vm && _vm=yes
4410 if test "$_vm" = yes ; then
4411 def_vm='#define CONFIG_XF86VM 1'
4412 libs_mplayer="$libs_mplayer -lXxf86vm"
4413 else
4414 def_vm='#undef CONFIG_XF86VM'
4416 echores "$_vm"
4418 # Check for the presence of special keycodes, like audio control buttons
4419 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4420 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4421 # have these new keycodes.
4422 echocheck "XF86keysym"
4423 if test "$_xf86keysym" = auto; then
4424 _xf86keysym=no
4425 cat > $TMPC <<EOF
4426 #include <X11/Xlib.h>
4427 #include <X11/XF86keysym.h>
4428 int main(void) { return XF86XK_AudioPause; }
4430 cc_check && _xf86keysym=yes
4432 if test "$_xf86keysym" = yes ; then
4433 def_xf86keysym='#define CONFIG_XF86XK 1'
4434 else
4435 def_xf86keysym='#undef CONFIG_XF86XK'
4437 echores "$_xf86keysym"
4439 echocheck "DGA"
4440 if test "$_dga2" = auto && test "$_x11" = yes ; then
4441 cat > $TMPC << EOF
4442 #include <X11/Xlib.h>
4443 #include <X11/extensions/xf86dga.h>
4444 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4446 _dga2=no
4447 cc_check -lXxf86dga && _dga2=yes
4449 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4450 cat > $TMPC << EOF
4451 #include <X11/Xlib.h>
4452 #include <X11/extensions/xf86dga.h>
4453 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4455 _dga1=no
4456 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4459 _dga=no
4460 def_dga='#undef CONFIG_DGA'
4461 def_dga1='#undef CONFIG_DGA1'
4462 def_dga2='#undef CONFIG_DGA2'
4463 if test "$_dga1" = yes ; then
4464 _dga=yes
4465 def_dga1='#define CONFIG_DGA1 1'
4466 _res_comment="using DGA 1.0"
4467 elif test "$_dga2" = yes ; then
4468 _dga=yes
4469 def_dga2='#define CONFIG_DGA2 1'
4470 _res_comment="using DGA 2.0"
4472 if test "$_dga" = yes ; then
4473 def_dga='#define CONFIG_DGA 1'
4474 libs_mplayer="$libs_mplayer -lXxf86dga"
4475 _vomodules="dga $_vomodules"
4476 else
4477 _novomodules="dga $_novomodules"
4479 echores "$_dga"
4482 echocheck "3dfx"
4483 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4484 def_3dfx='#define CONFIG_3DFX 1'
4485 _vomodules="3dfx $_vomodules"
4486 else
4487 def_3dfx='#undef CONFIG_3DFX'
4488 _novomodules="3dfx $_novomodules"
4490 echores "$_3dfx"
4493 echocheck "VIDIX"
4494 def_vidix='#undef CONFIG_VIDIX'
4495 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4496 _vidix_drv_cyberblade=no
4497 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4498 _vidix_drv_ivtv=no
4499 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4500 _vidix_drv_mach64=no
4501 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4502 _vidix_drv_mga=no
4503 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4504 _vidix_drv_mga_crtc2=no
4505 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4506 _vidix_drv_nvidia=no
4507 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4508 _vidix_drv_pm2=no
4509 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4510 _vidix_drv_pm3=no
4511 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4512 _vidix_drv_radeon=no
4513 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4514 _vidix_drv_rage128=no
4515 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4516 _vidix_drv_s3=no
4517 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4518 _vidix_drv_sh_veu=no
4519 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4520 _vidix_drv_sis=no
4521 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4522 _vidix_drv_unichrome=no
4523 if test "$_vidix" = auto ; then
4524 _vidix=no
4525 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4526 && _vidix=yes
4527 (ppc || alpha) && linux && _vidix=yes
4529 echores "$_vidix"
4531 if test "$_vidix" = yes ; then
4532 def_vidix='#define CONFIG_VIDIX 1'
4533 _vomodules="cvidix $_vomodules"
4534 # FIXME: ivtv driver temporarily disabled until we have a proper test
4535 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4536 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4538 # some vidix drivers are architecture and os specific, discard them elsewhere
4539 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4540 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4542 for driver in $_vidix_drivers ; do
4543 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4544 eval _vidix_drv_${driver}=yes
4545 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4546 done
4548 echocheck "VIDIX PCI device name database"
4549 echores "$_vidix_pcidb"
4550 if test "$_vidix_pcidb" = yes ; then
4551 _vidix_pcidb_val=1
4552 else
4553 _vidix_pcidb_val=0
4556 echocheck "VIDIX dhahelper support"
4557 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4558 echores "$_dhahelper"
4560 echocheck "VIDIX svgalib_helper support"
4561 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4562 echores "$_svgalib_helper"
4564 else
4565 _novomodules="cvidix $_novomodules"
4568 if test "$_vidix" = yes && win32; then
4569 winvidix=yes
4570 _vomodules="winvidix $_vomodules"
4571 libs_mplayer="$libs_mplayer -lgdi32"
4572 else
4573 _novomodules="winvidix $_novomodules"
4575 if test "$_vidix" = yes && test "$_x11" = yes; then
4576 xvidix=yes
4577 _vomodules="xvidix $_vomodules"
4578 else
4579 _novomodules="xvidix $_novomodules"
4582 echocheck "/dev/mga_vid"
4583 if test "$_mga" = auto ; then
4584 _mga=no
4585 test -c /dev/mga_vid && _mga=yes
4587 if test "$_mga" = yes ; then
4588 def_mga='#define CONFIG_MGA 1'
4589 _vomodules="mga $_vomodules"
4590 else
4591 def_mga='#undef CONFIG_MGA'
4592 _novomodules="mga $_novomodules"
4594 echores "$_mga"
4597 echocheck "xmga"
4598 if test "$_xmga" = auto ; then
4599 _xmga=no
4600 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4602 if test "$_xmga" = yes ; then
4603 def_xmga='#define CONFIG_XMGA 1'
4604 _vomodules="xmga $_vomodules"
4605 else
4606 def_xmga='#undef CONFIG_XMGA'
4607 _novomodules="xmga $_novomodules"
4609 echores "$_xmga"
4612 echocheck "GGI"
4613 if test "$_ggi" = auto ; then
4614 cat > $TMPC << EOF
4615 #include <ggi/ggi.h>
4616 int main(void) { ggiInit(); return 0; }
4618 _ggi=no
4619 cc_check -lggi && _ggi=yes
4621 if test "$_ggi" = yes ; then
4622 def_ggi='#define CONFIG_GGI 1'
4623 libs_mplayer="$libs_mplayer -lggi"
4624 _vomodules="ggi $_vomodules"
4625 else
4626 def_ggi='#undef CONFIG_GGI'
4627 _novomodules="ggi $_novomodules"
4629 echores "$_ggi"
4631 echocheck "GGI extension: libggiwmh"
4632 if test "$_ggiwmh" = auto ; then
4633 _ggiwmh=no
4634 cat > $TMPC << EOF
4635 #include <ggi/ggi.h>
4636 #include <ggi/wmh.h>
4637 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4639 cc_check -lggi -lggiwmh && _ggiwmh=yes
4641 # needed to get right output on obscure combination
4642 # like --disable-ggi --enable-ggiwmh
4643 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4644 def_ggiwmh='#define CONFIG_GGIWMH 1'
4645 libs_mplayer="$libs_mplayer -lggiwmh"
4646 else
4647 _ggiwmh=no
4648 def_ggiwmh='#undef CONFIG_GGIWMH'
4650 echores "$_ggiwmh"
4653 echocheck "AA"
4654 if test "$_aa" = auto ; then
4655 cat > $TMPC << EOF
4656 #include <aalib.h>
4657 extern struct aa_hardware_params aa_defparams;
4658 extern struct aa_renderparams aa_defrenderparams;
4659 int main(void) {
4660 aa_context *c;
4661 aa_renderparams *p;
4662 (void) aa_init(0, 0, 0);
4663 c = aa_autoinit(&aa_defparams);
4664 p = aa_getrenderparams();
4665 aa_autoinitkbd(c,0);
4666 return 0; }
4668 _aa=no
4669 for _ld_tmp in "-laa" ; do
4670 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4671 done
4673 if test "$_aa" = yes ; then
4674 def_aa='#define CONFIG_AA 1'
4675 if cygwin ; then
4676 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4678 _vomodules="aa $_vomodules"
4679 else
4680 def_aa='#undef CONFIG_AA'
4681 _novomodules="aa $_novomodules"
4683 echores "$_aa"
4686 echocheck "CACA"
4687 if test "$_caca" = auto ; then
4688 _caca=no
4689 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4690 cat > $TMPC << EOF
4691 #include <caca.h>
4692 #ifdef CACA_API_VERSION_1
4693 #include <caca0.h>
4694 #endif
4695 int main(void) { (void) caca_init(); return 0; }
4697 cc_check $(caca-config --libs) && _caca=yes
4700 if test "$_caca" = yes ; then
4701 def_caca='#define CONFIG_CACA 1'
4702 extra_cflags="$extra_cflags $(caca-config --cflags)"
4703 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4704 _vomodules="caca $_vomodules"
4705 else
4706 def_caca='#undef CONFIG_CACA'
4707 _novomodules="caca $_novomodules"
4709 echores "$_caca"
4712 echocheck "SVGAlib"
4713 if test "$_svga" = auto ; then
4714 cat > $TMPC << EOF
4715 #include <vga.h>
4716 int main(void) { return 0; }
4718 _svga=no
4719 cc_check -lvga $_ld_lm && _svga=yes
4721 if test "$_svga" = yes ; then
4722 def_svga='#define CONFIG_SVGALIB 1'
4723 libs_mplayer="$libs_mplayer -lvga"
4724 _vomodules="svga $_vomodules"
4725 else
4726 def_svga='#undef CONFIG_SVGALIB'
4727 _novomodules="svga $_novomodules"
4729 echores "$_svga"
4732 echocheck "FBDev"
4733 if test "$_fbdev" = auto ; then
4734 _fbdev=no
4735 linux && _fbdev=yes
4737 if test "$_fbdev" = yes ; then
4738 def_fbdev='#define CONFIG_FBDEV 1'
4739 _vomodules="fbdev $_vomodules"
4740 else
4741 def_fbdev='#undef CONFIG_FBDEV'
4742 _novomodules="fbdev $_novomodules"
4744 echores "$_fbdev"
4748 echocheck "DVB"
4749 if test "$_dvb" = auto ; then
4750 _dvb=no
4751 cat >$TMPC << EOF
4752 #include <poll.h>
4753 #include <sys/ioctl.h>
4754 #include <stdio.h>
4755 #include <time.h>
4756 #include <unistd.h>
4757 #include <ost/dmx.h>
4758 #include <ost/frontend.h>
4759 #include <ost/sec.h>
4760 #include <ost/video.h>
4761 #include <ost/audio.h>
4762 int main(void) {return 0;}
4764 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4765 cc_check $_inc_tmp && _dvb=yes && \
4766 extra_cflags="$extra_cflags $_inc_tmp" && break
4767 done
4769 echores "$_dvb"
4770 if test "$_dvb" = yes ; then
4771 def_dvb='#define CONFIG_DVB 1'
4772 def_dvbin='#define CONFIG_DVBIN 1'
4773 _aomodules="mpegpes(dvb) $_aomodules"
4774 _vomodules="mpegpes(dvb) $_vomodules"
4777 echocheck "DVB HEAD"
4778 if test "$_dvbhead" = auto ; then
4779 _dvbhead=no
4781 cat >$TMPC << EOF
4782 #include <poll.h>
4783 #include <sys/ioctl.h>
4784 #include <stdio.h>
4785 #include <time.h>
4786 #include <unistd.h>
4787 #include <linux/dvb/dmx.h>
4788 #include <linux/dvb/frontend.h>
4789 #include <linux/dvb/video.h>
4790 #include <linux/dvb/audio.h>
4791 int main(void) {return 0;}
4793 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4794 cc_check $_inc_tmp && _dvbhead=yes && \
4795 extra_cflags="$extra_cflags $_inc_tmp" && break
4796 done
4798 echores "$_dvbhead"
4799 if test "$_dvbhead" = yes ; then
4800 def_dvb='#define CONFIG_DVB 1'
4801 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4802 def_dvbin='#define CONFIG_DVBIN 1'
4803 _aomodules="mpegpes(dvb) $_aomodules"
4804 _vomodules="mpegpes(dvb) $_vomodules"
4807 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4808 def_dvb='#undef CONFIG_DVB'
4809 def_dvb_head='#undef CONFIG_DVB_HEAD'
4810 def_dvbin='#undef CONFIG_DVBIN '
4811 _aomodules="mpegpes(file) $_aomodules"
4812 _vomodules="mpegpes(file) $_vomodules"
4815 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4816 _dvbin=yes
4817 _inputmodules="dvb $_inputmodules"
4818 else
4819 _dvbin=no
4820 _noinputmodules="dvb $_noinputmodules"
4824 if darwin; then
4826 echocheck "QuickTime"
4827 if test "$quicktime" = auto ; then
4828 cat > $TMPC <<EOF
4829 #include <QuickTime/QuickTime.h>
4830 int main(void) {
4831 ImageDescription *desc;
4832 EnterMovies();
4833 ExitMovies();
4834 return 0;
4837 quicktime=no
4838 cc_check -framework QuickTime && quicktime=yes
4840 if test "$quicktime" = yes ; then
4841 extra_ldflags="$extra_ldflags -framework QuickTime"
4842 def_quicktime='#define CONFIG_QUICKTIME 1'
4843 else
4844 def_quicktime='#undef CONFIG_QUICKTIME'
4845 _quartz=no
4847 echores $quicktime
4849 echocheck "Quartz"
4850 if test "$_quartz" = auto ; then
4851 cat > $TMPC <<EOF
4852 #include <Carbon/Carbon.h>
4853 int main(void) {
4854 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4855 return 0;
4858 _quartz=no
4859 cc_check -framework Carbon && _quartz=yes
4861 if test "$_quartz" = yes ; then
4862 libs_mplayer="$libs_mplayer -framework Carbon"
4863 def_quartz='#define CONFIG_QUARTZ 1'
4864 _vomodules="quartz $_vomodules"
4865 else
4866 def_quartz='#undef CONFIG_QUARTZ'
4867 _novomodules="quartz $_novomodules"
4869 echores $_quartz
4871 echocheck "CoreVideo"
4872 if test "$_corevideo" = auto ; then
4873 cat > $TMPC <<EOF
4874 #include <Carbon/Carbon.h>
4875 #include <CoreServices/CoreServices.h>
4876 #include <OpenGL/OpenGL.h>
4877 #include <QuartzCore/CoreVideo.h>
4878 int main(void) { return 0; }
4880 _corevideo=no
4881 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4883 if test "$_corevideo" = yes ; then
4884 _vomodules="corevideo $_vomodules"
4885 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4886 def_corevideo='#define CONFIG_COREVIDEO 1'
4887 else
4888 _novomodules="corevideo $_novomodules"
4889 def_corevideo='#undef CONFIG_COREVIDEO'
4891 echores "$_corevideo"
4893 fi #if darwin
4896 # make sure this stays below CoreVideo to avoid issues due to namespace
4897 # conflicts between -lGL and -framework OpenGL
4898 echocheck "OpenGL"
4899 #Note: this test is run even with --enable-gl since we autodetect linker flags
4900 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4901 cat > $TMPC << EOF
4902 #ifdef GL_WIN32
4903 #include <windows.h>
4904 #include <GL/gl.h>
4905 #else
4906 #include <GL/gl.h>
4907 #include <X11/Xlib.h>
4908 #include <GL/glx.h>
4909 #endif
4910 int main(void) {
4911 #ifdef GL_WIN32
4912 HDC dc;
4913 wglCreateContext(dc);
4914 #else
4915 glXCreateContext(NULL, NULL, NULL, True);
4916 #endif
4917 glFinish();
4918 return 0;
4921 _gl=no
4922 if cc_check -lGL $_ld_lm ; then
4923 _gl=yes
4924 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4925 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4926 _gl=yes
4927 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4928 elif cc_check -DGL_WIN32 -lopengl32 ; then
4929 _gl=yes
4930 _gl_win32=yes
4931 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4933 else
4934 _gl=no
4936 if test "$_gl" = yes ; then
4937 def_gl='#define CONFIG_GL 1'
4938 if test "$_gl_win32" = yes ; then
4939 def_gl_win32='#define GL_WIN32 1'
4940 _res_comment="win32 version"
4942 _vomodules="opengl $_vomodules"
4943 else
4944 def_gl='#undef CONFIG_GL'
4945 def_gl_win32='#undef GL_WIN32'
4946 _novomodules="opengl $_novomodules"
4948 echores "$_gl"
4951 echocheck "PNG support"
4952 if test "$_png" = auto ; then
4953 _png=no
4954 if irix ; then
4955 # Don't check for -lpng on irix since it has its own libpng
4956 # incompatible with the GNU libpng
4957 _res_comment="disabled on irix (not GNU libpng)"
4958 else
4959 cat > $TMPC << EOF
4960 #include <png.h>
4961 #include <string.h>
4962 int main(void) {
4963 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4964 printf("libpng: %s\n", png_libpng_ver);
4965 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4968 cc_check -lpng -lz $_ld_lm && _png=yes
4971 echores "$_png"
4972 if test "$_png" = yes ; then
4973 def_png='#define CONFIG_PNG 1'
4974 extra_ldflags="$extra_ldflags -lpng -lz"
4975 _vomodules="png $_vomodules"
4976 else
4977 def_png='#undef CONFIG_PNG'
4978 _novomodules="png $_novomodules"
4981 echocheck "MNG support"
4982 if test "$_mng" = auto ; then
4983 _mng=no
4984 cat > $TMPC << EOF
4985 #include <libmng.h>
4986 int main(void) {
4987 const char * p_ver = mng_version_text();
4988 return !p_ver || p_ver[0] == 0;
4991 if cc_check -lmng -lz $_ld_lm ; then
4992 _mng=yes
4995 echores "$_mng"
4996 if test "$_mng" = yes ; then
4997 def_mng='#define CONFIG_MNG 1'
4998 extra_ldflags="$extra_ldflags -lmng -lz"
4999 else
5000 def_mng='#undef CONFIG_MNG'
5003 echocheck "JPEG support"
5004 if test "$_jpeg" = auto ; then
5005 _jpeg=no
5006 cat > $TMPC << EOF
5007 #include <stdio.h>
5008 #include <stdlib.h>
5009 #include <setjmp.h>
5010 #include <string.h>
5011 #include <jpeglib.h>
5012 int main(void) { return 0; }
5014 cc_check -ljpeg $_ld_lm && _jpeg=yes
5016 echores "$_jpeg"
5018 if test "$_jpeg" = yes ; then
5019 def_jpeg='#define CONFIG_JPEG 1'
5020 _vomodules="jpeg $_vomodules"
5021 extra_ldflags="$extra_ldflags -ljpeg"
5022 else
5023 def_jpeg='#undef CONFIG_JPEG'
5024 _novomodules="jpeg $_novomodules"
5029 echocheck "PNM support"
5030 if test "$_pnm" = yes; then
5031 def_pnm="#define CONFIG_PNM 1"
5032 _vomodules="pnm $_vomodules"
5033 else
5034 def_pnm="#undef CONFIG_PNM"
5035 _novomodules="pnm $_novomodules"
5037 echores "$_pnm"
5041 echocheck "GIF support"
5042 # This is to appease people who want to force gif support.
5043 # If it is forced to yes, then we still do checks to determine
5044 # which gif library to use.
5045 if test "$_gif" = yes ; then
5046 _force_gif=yes
5047 _gif=auto
5050 if test "$_gif" = auto ; then
5051 _gif=no
5052 cat > $TMPC << EOF
5053 #include <gif_lib.h>
5054 int main(void) { return 0; }
5056 for _ld_gif in "-lungif" "-lgif" ; do
5057 cc_check $_ld_gif && _gif=yes && break
5058 done
5061 # If no library was found, and the user wants support forced,
5062 # then we force it on with libgif, as this is the safest
5063 # assumption IMHO. (libungif & libregif both create symbolic
5064 # links to libgif. We also assume that no x11 support is needed,
5065 # because if you are forcing this, then you _should_ know what
5066 # you are doing. [ Besides, package maintainers should never
5067 # have compiled x11 deps into libungif in the first place. ] )
5068 # </rant>
5069 # --Joey
5070 if test "$_force_gif" = yes && test "$_gif" = no ; then
5071 _gif=yes
5072 _ld_gif="-lgif"
5075 if test "$_gif" = yes ; then
5076 def_gif='#define CONFIG_GIF 1'
5077 _codecmodules="gif $_codecmodules"
5078 _vomodules="gif89a $_vomodules"
5079 _res_comment="old version, some encoding functions disabled"
5080 def_gif_4='#undef CONFIG_GIF_4'
5081 extra_ldflags="$extra_ldflags $_ld_gif"
5083 cat > $TMPC << EOF
5084 #include <signal.h>
5085 #include <gif_lib.h>
5086 void catch() { exit(1); }
5087 int main(void) {
5088 signal(SIGSEGV, catch); // catch segfault
5089 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5090 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5091 return 0;
5094 if cc_check "$_ld_gif" ; then
5095 def_gif_4='#define CONFIG_GIF_4 1'
5096 _res_comment=""
5098 else
5099 def_gif='#undef CONFIG_GIF'
5100 def_gif_4='#undef CONFIG_GIF_4'
5101 _novomodules="gif89a $_novomodules"
5102 _nocodecmodules="gif $_nocodecmodules"
5104 echores "$_gif"
5107 case "$_gif" in yes*)
5108 echocheck "broken giflib workaround"
5109 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5111 cat > $TMPC << EOF
5112 #include <gif_lib.h>
5113 int main(void) {
5114 GifFileType gif;
5115 printf("UserData is at address %p\n", gif.UserData);
5116 return 0;
5119 if cc_check "$_ld_gif" ; then
5120 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5121 echores "disabled"
5122 else
5123 echores "enabled"
5126 esac
5129 echocheck "VESA support"
5130 if test "$_vesa" = auto ; then
5131 cat > $TMPC << EOF
5132 #include <vbe.h>
5133 int main(void) { vbeVersion(); return 0; }
5135 _vesa=no
5136 cc_check -lvbe -llrmi && _vesa=yes
5138 if test "$_vesa" = yes ; then
5139 def_vesa='#define CONFIG_VESA 1'
5140 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5141 _vomodules="vesa $_vomodules"
5142 else
5143 def_vesa='#undef CONFIG_VESA'
5144 _novomodules="vesa $_novomodules"
5146 echores "$_vesa"
5148 #################
5149 # VIDEO + AUDIO #
5150 #################
5153 echocheck "SDL"
5154 if test -z "$_sdlconfig" ; then
5155 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5156 _sdlconfig="sdl-config"
5157 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5158 _sdlconfig="sdl11-config"
5159 else
5160 _sdlconfig=false
5163 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5164 cat > $TMPC << EOF
5165 #include <SDL.h>
5166 int main(int argc, char *argv[]) {
5167 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5168 return 0;
5171 _sdl=no
5172 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5173 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5174 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5175 if test "$_sdlversion" -gt 116 ; then
5176 if test "$_sdlversion" -lt 121 ; then
5177 def_sdlbuggy='#define BUGGY_SDL'
5178 else
5179 def_sdlbuggy='#undef BUGGY_SDL'
5181 _sdl=yes
5186 if test "$_sdl" = yes ; then
5187 def_sdl='#define CONFIG_SDL 1'
5188 if cygwin ; then
5189 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5190 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5191 elif mingw32 ; then
5192 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5193 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5194 else
5195 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5196 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5198 _vomodules="sdl $_vomodules"
5199 _aomodules="sdl $_aomodules"
5200 _res_comment="using $_sdlconfig"
5201 else
5202 def_sdl='#undef CONFIG_SDL'
5203 _novomodules="sdl $_novomodules"
5204 _noaomodules="sdl $_noaomodules"
5206 echores "$_sdl"
5209 if os2 ; then
5210 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5211 if test "$_kva" = auto; then
5212 cat > $TMPC << EOF
5213 #include <os2.h>
5214 #include <kva.h>
5215 int main( void ) { return 0; }
5217 _kva=no;
5218 cc_check -lkva && _kva=yes
5220 if test "$_kva" = yes ; then
5221 def_kva='#define CONFIG_KVA 1'
5222 libs_mplayer="$libs_mplayer -lkva"
5223 _vomodules="kva $_vomodules"
5224 else
5225 def_kva='#undef CONFIG_KVA'
5226 _novomodules="kva $_novomodules"
5228 echores "$_kva"
5229 fi #if os2
5232 if win32; then
5234 echocheck "Windows waveout"
5235 if test "$_win32waveout" = auto ; then
5236 cat > $TMPC << EOF
5237 #include <windows.h>
5238 #include <mmsystem.h>
5239 int main(void) { return 0; }
5241 _win32waveout=no
5242 cc_check -lwinmm && _win32waveout=yes
5244 if test "$_win32waveout" = yes ; then
5245 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5246 libs_mplayer="$libs_mplayer -lwinmm"
5247 _aomodules="win32 $_aomodules"
5248 else
5249 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5250 _noaomodules="win32 $_noaomodules"
5252 echores "$_win32waveout"
5254 echocheck "Direct3D"
5255 if test "$_direct3d" = auto ; then
5256 cat > $TMPC << EOF
5257 #include <windows.h>
5258 #include <d3d9.h>
5259 int main(void) { return 0; }
5261 _direct3d=no
5262 cc_check -ld3d9 && _direct3d=yes
5264 if test "$_direct3d" = yes ; then
5265 def_direct3d='#define CONFIG_DIRECT3D 1'
5266 libs_mplayer="$libs_mplayer -ld3d9"
5267 _vomodules="direct3d $_vomodules"
5268 else
5269 def_direct3d='#undef CONFIG_DIRECT3D'
5270 _novomodules="direct3d $_novomodules"
5272 echores "$_direct3d"
5274 echocheck "Directx"
5275 if test "$_directx" = auto ; then
5276 cat > $TMPC << EOF
5277 #include <windows.h>
5278 #include <ddraw.h>
5279 #include <dsound.h>
5280 int main(void) { return 0; }
5282 _directx=no
5283 cc_check -lgdi32 && _directx=yes
5285 if test "$_directx" = yes ; then
5286 def_directx='#define CONFIG_DIRECTX 1'
5287 libs_mplayer="$libs_mplayer -lgdi32"
5288 _vomodules="directx $_vomodules"
5289 _aomodules="dsound $_aomodules"
5290 else
5291 def_directx='#undef CONFIG_DIRECTX'
5292 _novomodules="directx $_novomodules"
5293 _noaomodules="dsound $_noaomodules"
5295 echores "$_directx"
5297 fi #if win32; then
5300 echocheck "DXR2"
5301 if test "$_dxr2" = auto; then
5302 _dxr2=no
5303 cat > $TMPC << EOF
5304 #include <dxr2ioctl.h>
5305 int main(void) { return 0; }
5307 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5308 cc_check $_inc_tmp && _dxr2=yes && \
5309 extra_cflags="$extra_cflags $_inc_tmp" && break
5310 done
5312 if test "$_dxr2" = yes; then
5313 def_dxr2='#define CONFIG_DXR2 1'
5314 _aomodules="dxr2 $_aomodules"
5315 _vomodules="dxr2 $_vomodules"
5316 else
5317 def_dxr2='#undef CONFIG_DXR2'
5318 _noaomodules="dxr2 $_noaomodules"
5319 _novomodules="dxr2 $_novomodules"
5321 echores "$_dxr2"
5323 echocheck "DXR3/H+"
5324 if test "$_dxr3" = auto ; then
5325 cat > $TMPC << EOF
5326 #include <linux/em8300.h>
5327 int main(void) { return 0; }
5329 _dxr3=no
5330 cc_check && _dxr3=yes
5332 if test "$_dxr3" = yes ; then
5333 def_dxr3='#define CONFIG_DXR3 1'
5334 _vomodules="dxr3 $_vomodules"
5335 else
5336 def_dxr3='#undef CONFIG_DXR3'
5337 _novomodules="dxr3 $_novomodules"
5339 echores "$_dxr3"
5342 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5343 if test "$_ivtv" = auto ; then
5344 cat > $TMPC << EOF
5345 #include <stdlib.h>
5346 #include <inttypes.h>
5347 #include <linux/types.h>
5348 #include <linux/videodev2.h>
5349 #include <linux/ivtv.h>
5350 #include <sys/ioctl.h>
5351 int main(void) {
5352 struct ivtv_cfg_stop_decode sd;
5353 struct ivtv_cfg_start_decode sd1;
5354 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5355 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5356 return 0; }
5358 _ivtv=no
5359 cc_check && _ivtv=yes
5361 if test "$_ivtv" = yes ; then
5362 def_ivtv='#define CONFIG_IVTV 1'
5363 _vomodules="ivtv $_vomodules"
5364 _aomodules="ivtv $_aomodules"
5365 else
5366 def_ivtv='#undef CONFIG_IVTV'
5367 _novomodules="ivtv $_novomodules"
5368 _noaomodules="ivtv $_noaomodules"
5370 echores "$_ivtv"
5373 echocheck "V4L2 MPEG Decoder"
5374 if test "$_v4l2" = auto ; then
5375 cat > $TMPC << EOF
5376 #include <stdlib.h>
5377 #include <inttypes.h>
5378 #include <linux/types.h>
5379 #include <linux/videodev2.h>
5380 #include <linux/version.h>
5381 int main(void) {
5382 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5383 #error kernel headers too old, need 2.6.22
5384 #endif
5385 struct v4l2_ext_controls ctrls;
5386 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5387 return 0;
5390 _v4l2=no
5391 cc_check && _v4l2=yes
5393 if test "$_v4l2" = yes ; then
5394 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5395 _vomodules="v4l2 $_vomodules"
5396 _aomodules="v4l2 $_aomodules"
5397 else
5398 def_v4l2='#undef CONFIG_V4L2_DECODER'
5399 _novomodules="v4l2 $_novomodules"
5400 _noaomodules="v4l2 $_noaomodules"
5402 echores "$_v4l2"
5406 #########
5407 # AUDIO #
5408 #########
5411 echocheck "OSS Audio"
5412 if test "$_ossaudio" = auto ; then
5413 cat > $TMPC << EOF
5414 #include <sys/ioctl.h>
5415 #include <$_soundcard_header>
5416 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5418 _ossaudio=no
5419 cc_check && _ossaudio=yes
5421 if test "$_ossaudio" = yes ; then
5422 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5423 _aomodules="oss $_aomodules"
5424 if test "$_linux_devfs" = yes; then
5425 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5426 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5427 else
5428 cat > $TMPC << EOF
5429 #include <sys/ioctl.h>
5430 #include <$_soundcard_header>
5431 #ifdef OPEN_SOUND_SYSTEM
5432 int main(void) { return 0; }
5433 #else
5434 #error Not the real thing
5435 #endif
5437 _real_ossaudio=no
5438 cc_check && _real_ossaudio=yes
5439 if test "$_real_ossaudio" = yes; then
5440 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5441 elif netbsd || openbsd ; then
5442 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5443 extra_ldflags="$extra_ldflags -lossaudio"
5444 else
5445 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5447 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5449 else
5450 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5451 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5452 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5453 _noaomodules="oss $_noaomodules"
5455 echores "$_ossaudio"
5458 echocheck "aRts"
5459 if test "$_arts" = auto ; then
5460 _arts=no
5461 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5463 cat > $TMPC << EOF
5464 #include <artsc.h>
5465 int main(void) { return 0; }
5467 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5472 if test "$_arts" = yes ; then
5473 def_arts='#define CONFIG_ARTS 1'
5474 _aomodules="arts $_aomodules"
5475 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5476 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5477 else
5478 _noaomodules="arts $_noaomodules"
5480 echores "$_arts"
5483 echocheck "EsounD"
5484 if test "$_esd" = auto ; then
5485 _esd=no
5486 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5488 cat > $TMPC << EOF
5489 #include <esd.h>
5490 int main(void) { int fd = esd_open_sound("test"); return fd; }
5492 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5496 echores "$_esd"
5498 if test "$_esd" = yes ; then
5499 def_esd='#define CONFIG_ESD 1'
5500 _aomodules="esd $_aomodules"
5501 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5502 extra_cflags="$extra_cflags $(esd-config --cflags)"
5504 echocheck "esd_get_latency()"
5505 cat > $TMPC << EOF
5506 #include <esd.h>
5507 int main(void) { return esd_get_latency(0); }
5509 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5510 echores "$_esd_latency"
5511 else
5512 def_esd='#undef CONFIG_ESD'
5513 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5514 _noaomodules="esd $_noaomodules"
5518 echocheck "NAS"
5519 if test "$_nas" = auto ; then
5520 cat > $TMPC << EOF
5521 #include <audio/audiolib.h>
5522 int main(void) { return 0; }
5524 _nas=no
5525 cc_check $_ld_lm -laudio -lXt && _nas=yes
5527 if test "$_nas" = yes ; then
5528 def_nas='#define CONFIG_NAS 1'
5529 libs_mplayer="$libs_mplayer -laudio -lXt"
5530 _aomodules="nas $_aomodules"
5531 else
5532 _noaomodules="nas $_noaomodules"
5533 def_nas='#undef CONFIG_NAS'
5535 echores "$_nas"
5538 echocheck "pulse"
5539 if test "$_pulse" = auto ; then
5540 _pulse=no
5541 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5543 cat > $TMPC << EOF
5544 #include <pulse/pulseaudio.h>
5545 int main(void) { return 0; }
5547 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5551 echores "$_pulse"
5553 if test "$_pulse" = yes ; then
5554 def_pulse='#define CONFIG_PULSE 1'
5555 _aomodules="pulse $_aomodules"
5556 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5557 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5558 else
5559 def_pulse='#undef CONFIG_PULSE'
5560 _noaomodules="pulse $_noaomodules"
5564 echocheck "JACK"
5565 if test "$_jack" = auto ; then
5566 _jack=yes
5568 cat > $TMPC << EOF
5569 #include <jack/jack.h>
5570 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5572 if cc_check -ljack ; then
5573 libs_mplayer="$libs_mplayer -ljack"
5574 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5575 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5576 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5577 else
5578 _jack=no
5582 if test "$_jack" = yes ; then
5583 def_jack='#define CONFIG_JACK 1'
5584 _aomodules="jack $_aomodules"
5585 else
5586 _noaomodules="jack $_noaomodules"
5588 echores "$_jack"
5590 echocheck "OpenAL"
5591 if test "$_openal" = auto ; then
5592 _openal=no
5593 cat > $TMPC << EOF
5594 #ifdef OPENAL_AL_H
5595 #include <OpenAL/al.h>
5596 #else
5597 #include <AL/al.h>
5598 #endif
5599 int main(void) {
5600 alSourceQueueBuffers(0, 0, 0);
5601 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5602 return 0;
5605 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5606 cc_check $I && _openal=yes && break
5607 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5608 done
5609 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5611 if test "$_openal" = yes ; then
5612 def_openal='#define CONFIG_OPENAL 1'
5613 _aomodules="openal $_aomodules"
5614 else
5615 _noaomodules="openal $_noaomodules"
5617 echores "$_openal"
5619 echocheck "ALSA audio"
5620 if test "$_alloca" != yes ; then
5621 _alsa=no
5622 _res_comment="alloca missing"
5624 if test "$_alsa" != no ; then
5625 _alsa=no
5626 cat > $TMPC << EOF
5627 #include <sys/time.h>
5628 #include <sys/asoundlib.h>
5629 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5630 #error "alsa version != 0.5.x"
5631 #endif
5632 int main(void) { return 0; }
5634 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5636 cat > $TMPC << EOF
5637 #include <sys/time.h>
5638 #include <sys/asoundlib.h>
5639 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5640 #error "alsa version != 0.9.x"
5641 #endif
5642 int main(void) { return 0; }
5644 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5645 cat > $TMPC << EOF
5646 #include <sys/time.h>
5647 #include <alsa/asoundlib.h>
5648 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5649 #error "alsa version != 0.9.x"
5650 #endif
5651 int main(void) { return 0; }
5653 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5655 cat > $TMPC << EOF
5656 #include <sys/time.h>
5657 #include <sys/asoundlib.h>
5658 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5659 #error "alsa version != 1.0.x"
5660 #endif
5661 int main(void) { return 0; }
5663 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5664 cat > $TMPC << EOF
5665 #include <sys/time.h>
5666 #include <alsa/asoundlib.h>
5667 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5668 #error "alsa version != 1.0.x"
5669 #endif
5670 int main(void) { return 0; }
5672 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5674 def_alsa='#undef CONFIG_ALSA'
5675 def_alsa5='#undef CONFIG_ALSA5'
5676 def_alsa9='#undef CONFIG_ALSA9'
5677 def_alsa1x='#undef CONFIG_ALSA1X'
5678 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5679 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5680 if test "$_alsaver" ; then
5681 _alsa=yes
5682 if test "$_alsaver" = '0.5.x' ; then
5683 _alsa5=yes
5684 _aomodules="alsa5 $_aomodules"
5685 def_alsa5='#define CONFIG_ALSA5 1'
5686 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5687 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5688 elif test "$_alsaver" = '0.9.x-sys' ; then
5689 _alsa9=yes
5690 _aomodules="alsa $_aomodules"
5691 def_alsa='#define CONFIG_ALSA 1'
5692 def_alsa9='#define CONFIG_ALSA9 1'
5693 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5694 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5695 elif test "$_alsaver" = '0.9.x-alsa' ; then
5696 _alsa9=yes
5697 _aomodules="alsa $_aomodules"
5698 def_alsa='#define CONFIG_ALSA 1'
5699 def_alsa9='#define CONFIG_ALSA9 1'
5700 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5701 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5702 elif test "$_alsaver" = '1.0.x-sys' ; then
5703 _alsa1x=yes
5704 _aomodules="alsa $_aomodules"
5705 def_alsa='#define CONFIG_ALSA 1'
5706 def_alsa1x="#define CONFIG_ALSA1X 1"
5707 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5708 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5709 elif test "$_alsaver" = '1.0.x-alsa' ; then
5710 _alsa1x=yes
5711 _aomodules="alsa $_aomodules"
5712 def_alsa='#define CONFIG_ALSA 1'
5713 def_alsa1x="#define CONFIG_ALSA1X 1"
5714 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5715 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5716 else
5717 _alsa=no
5718 _res_comment="unknown version"
5720 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5721 else
5722 _noaomodules="alsa $_noaomodules"
5724 echores "$_alsa"
5727 echocheck "Sun audio"
5728 if test "$_sunaudio" = auto ; then
5729 cat > $TMPC << EOF
5730 #include <sys/types.h>
5731 #include <sys/audioio.h>
5732 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5734 _sunaudio=no
5735 cc_check && _sunaudio=yes
5737 if test "$_sunaudio" = yes ; then
5738 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5739 _aomodules="sun $_aomodules"
5740 else
5741 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5742 _noaomodules="sun $_noaomodules"
5744 echores "$_sunaudio"
5747 def_mlib='#define CONFIG_MLIB 0'
5748 if sunos; then
5749 echocheck "Sun mediaLib"
5750 if test "$_mlib" = auto ; then
5751 _mlib=no
5752 cat > $TMPC << EOF
5753 #include <mlib.h>
5754 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5756 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5758 echores "$_mlib"
5759 fi #if sunos
5762 if darwin; then
5763 echocheck "CoreAudio"
5764 if test "$_coreaudio" = auto ; then
5765 cat > $TMPC <<EOF
5766 #include <CoreAudio/CoreAudio.h>
5767 #include <AudioToolbox/AudioToolbox.h>
5768 #include <AudioUnit/AudioUnit.h>
5769 int main(void) { return 0; }
5771 _coreaudio=no
5772 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5774 if test "$_coreaudio" = yes ; then
5775 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5776 def_coreaudio='#define CONFIG_COREAUDIO 1'
5777 _aomodules="coreaudio $_aomodules"
5778 else
5779 def_coreaudio='#undef CONFIG_COREAUDIO'
5780 _noaomodules="coreaudio $_noaomodules"
5782 echores $_coreaudio
5783 fi #if darwin
5786 if irix; then
5787 echocheck "SGI audio"
5788 if test "$_sgiaudio" = auto ; then
5789 # check for SGI audio
5790 cat > $TMPC << EOF
5791 #include <dmedia/audio.h>
5792 int main(void) { return 0; }
5794 _sgiaudio=no
5795 cc_check && _sgiaudio=yes
5797 if test "$_sgiaudio" = "yes" ; then
5798 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5799 libs_mplayer="$libs_mplayer -laudio"
5800 _aomodules="sgi $_aomodules"
5801 else
5802 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5803 _noaomodules="sgi $_noaomodules"
5805 echores "$_sgiaudio"
5806 fi #if irix
5809 if os2 ; then
5810 echocheck "DART"
5811 if test "$_dart" = auto; then
5812 cat > $TMPC << EOF
5813 #include <os2.h>
5814 #include <dart.h>
5815 int main( void ) { return 0; }
5817 _dart=no;
5818 cc_check -ldart && _dart=yes
5820 if test "$_dart" = yes ; then
5821 def_dart='#define CONFIG_DART 1'
5822 libs_mplayer="$libs_mplayer -ldart"
5823 _aomodules="dart $_aomodules"
5824 else
5825 def_dart='#undef CONFIG_DART'
5826 _noaomodules="dart $_noaomodules"
5828 echores "$_dart"
5829 fi #if os2
5832 # set default CD/DVD devices
5833 if win32 || os2 ; then
5834 default_cdrom_device="D:"
5835 elif darwin ; then
5836 default_cdrom_device="/dev/disk1"
5837 elif dragonfly ; then
5838 default_cdrom_device="/dev/cd0"
5839 elif freebsd ; then
5840 default_cdrom_device="/dev/acd0"
5841 elif openbsd ; then
5842 default_cdrom_device="/dev/rcd0a"
5843 elif sunos ; then
5844 default_cdrom_device="/vol/dev/aliases/cdrom0"
5845 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5846 # file system and the volfs service.
5847 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5848 elif amigaos ; then
5849 default_cdrom_device="a1ide.device:2"
5850 else
5851 default_cdrom_device="/dev/cdrom"
5854 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5855 default_dvd_device=$default_cdrom_device
5856 elif darwin ; then
5857 default_dvd_device="/dev/rdiskN"
5858 else
5859 default_dvd_device="/dev/dvd"
5863 echocheck "VCD support"
5864 if test "$_vcd" = auto; then
5865 _vcd=no
5866 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5867 _vcd=yes
5868 elif mingw32; then
5869 cat > $TMPC << EOF
5870 #include <ddk/ntddcdrm.h>
5871 int main(void) { return 0; }
5873 cc_check && _vcd=yes
5876 if test "$_vcd" = yes; then
5877 _inputmodules="vcd $_inputmodules"
5878 def_vcd='#define CONFIG_VCD 1'
5879 else
5880 def_vcd='#undef CONFIG_VCD'
5881 _noinputmodules="vcd $_noinputmodules"
5882 _res_comment="not supported on this OS"
5884 echores "$_vcd"
5888 echocheck "dvdread"
5889 if test "$_dvdread_internal" = auto ; then
5890 _dvdread_internal=no
5891 _dvdread=no
5892 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5893 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5894 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5895 || darwin || win32 || os2; then
5896 _dvdread_internal=yes
5897 _dvdread=yes
5898 extra_cflags="-Ilibdvdread4 $extra_cflags"
5900 elif test "$_dvdread" = auto ; then
5901 _dvdread=no
5902 if test "$_dl" = yes; then
5903 cat > $TMPC << EOF
5904 #include <inttypes.h>
5905 #include <dvdread/dvd_reader.h>
5906 #include <dvdread/ifo_types.h>
5907 #include <dvdread/ifo_read.h>
5908 #include <dvdread/nav_read.h>
5909 int main(void) { return 0; }
5911 _dvdreadcflags=$($_dvdreadconfig --cflags)
5912 _dvdreadlibs=$($_dvdreadconfig --libs)
5913 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5914 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5915 _dvdread=yes
5916 extra_cflags="$extra_cflags $_dvdreadcflags"
5917 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5918 _res_comment="external"
5923 if test "$_dvdread_internal" = yes; then
5924 def_dvdread='#define CONFIG_DVDREAD 1'
5925 _inputmodules="dvdread(internal) $_inputmodules"
5926 _largefiles=yes
5927 _res_comment="internal"
5928 elif test "$_dvdread" = yes; then
5929 def_dvdread='#define CONFIG_DVDREAD 1'
5930 _largefiles=yes
5931 extra_ldflags="$extra_ldflags -ldvdread"
5932 _inputmodules="dvdread(external) $_inputmodules"
5933 _res_comment="external"
5934 else
5935 def_dvdread='#undef CONFIG_DVDREAD'
5936 _noinputmodules="dvdread $_noinputmodules"
5938 echores "$_dvdread"
5941 echocheck "internal libdvdcss"
5942 if test "$_libdvdcss_internal" = auto ; then
5943 _libdvdcss_internal=no
5944 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5945 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5947 if test "$_libdvdcss_internal" = yes ; then
5948 if linux || netbsd || openbsd || bsdos ; then
5949 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5950 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5951 elif freebsd || dragonfly ; then
5952 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5953 elif darwin ; then
5954 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5955 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5956 elif cygwin ; then
5957 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5958 elif beos ; then
5959 cflags_libdvdcss="-DSYS_BEOS"
5960 elif os2 ; then
5961 cflags_libdvdcss="-DSYS_OS2"
5963 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5964 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5965 _inputmodules="libdvdcss(internal) $_inputmodules"
5966 _largefiles=yes
5967 else
5968 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5970 echores "$_libdvdcss_internal"
5973 echocheck "cdparanoia"
5974 if test "$_cdparanoia" = auto ; then
5975 cat > $TMPC <<EOF
5976 #include <cdda_interface.h>
5977 #include <cdda_paranoia.h>
5978 // This need a better test. How ?
5979 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5981 _cdparanoia=no
5982 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5983 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5984 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5985 done
5987 if test "$_cdparanoia" = yes ; then
5988 _cdda='yes'
5989 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5990 openbsd && extra_ldflags="$extra_ldflags -lutil"
5992 echores "$_cdparanoia"
5995 echocheck "libcdio"
5996 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5997 cat > $TMPC << EOF
5998 #include <stdio.h>
5999 #include <cdio/version.h>
6000 #include <cdio/cdda.h>
6001 #include <cdio/paranoia.h>
6002 int main(void) {
6003 void *test = cdda_verbose_set;
6004 printf("%s\n", CDIO_VERSION);
6005 return test == (void *)1;
6008 _libcdio=no
6009 for _ld_tmp in "" "-lwinmm" ; do
6010 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6011 cc_check $_ld_tmp $_ld_lm \
6012 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6013 done
6014 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6015 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6016 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6017 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6018 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6021 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6022 _cdda='yes'
6023 def_libcdio='#define CONFIG_LIBCDIO 1'
6024 def_havelibcdio='yes'
6025 else
6026 if test "$_cdparanoia" = yes ; then
6027 _res_comment="using cdparanoia"
6029 def_libcdio='#undef CONFIG_LIBCDIO'
6030 def_havelibcdio='no'
6032 echores "$_libcdio"
6034 if test "$_cdda" = yes ; then
6035 test $_cddb = auto && test $_network = yes && _cddb=yes
6036 def_cdparanoia='#define CONFIG_CDDA 1'
6037 _inputmodules="cdda $_inputmodules"
6038 else
6039 def_cdparanoia='#undef CONFIG_CDDA'
6040 _noinputmodules="cdda $_noinputmodules"
6043 if test "$_cddb" = yes ; then
6044 def_cddb='#define CONFIG_CDDB 1'
6045 _inputmodules="cddb $_inputmodules"
6046 else
6047 _cddb=no
6048 def_cddb='#undef CONFIG_CDDB'
6049 _noinputmodules="cddb $_noinputmodules"
6052 echocheck "bitmap font support"
6053 if test "$_bitmap_font" = yes ; then
6054 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6055 else
6056 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6058 echores "$_bitmap_font"
6061 echocheck "freetype >= 2.0.9"
6063 # freetype depends on iconv
6064 if test "$_iconv" = no ; then
6065 _freetype=no
6066 _res_comment="iconv support needed"
6069 if test "$_freetype" = auto ; then
6070 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6071 cat > $TMPC << EOF
6072 #include <stdio.h>
6073 #include <ft2build.h>
6074 #include FT_FREETYPE_H
6075 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6076 #error "Need FreeType 2.0.9 or newer"
6077 #endif
6078 int main(void) {
6079 FT_Library library;
6080 FT_Int major=-1,minor=-1,patch=-1;
6081 int err=FT_Init_FreeType(&library);
6082 return 0;
6085 _freetype=no
6086 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6087 else
6088 _freetype=no
6091 if test "$_freetype" = yes ; then
6092 def_freetype='#define CONFIG_FREETYPE 1'
6093 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6094 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6095 else
6096 def_freetype='#undef CONFIG_FREETYPE'
6098 echores "$_freetype"
6100 if test "$_freetype" = no ; then
6101 _fontconfig=no
6102 _res_comment="FreeType support needed"
6104 echocheck "fontconfig"
6105 if test "$_fontconfig" = auto ; then
6106 cat > $TMPC << EOF
6107 #include <stdio.h>
6108 #include <stdlib.h>
6109 #include <fontconfig/fontconfig.h>
6110 int main(void) {
6111 int err = FcInit();
6112 if (err == FcFalse) {
6113 printf("Couldn't initialize fontconfig lib\n");
6114 exit(err);
6116 return 0;
6119 _fontconfig=no
6120 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6121 _ld_tmp="-lfontconfig $_ld_tmp"
6122 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6123 done
6124 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6125 _inc_tmp=$($_pkg_config --cflags fontconfig)
6126 _ld_tmp=$($_pkg_config --libs fontconfig)
6127 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6128 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6131 if test "$_fontconfig" = yes ; then
6132 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6133 else
6134 def_fontconfig='#undef CONFIG_FONTCONFIG'
6136 echores "$_fontconfig"
6139 echocheck "SSA/ASS support"
6140 # libass depends on FreeType
6141 if test "$_freetype" = no ; then
6142 _ass=no
6143 _res_comment="FreeType support needed"
6146 if test "$_ass" = auto ; then
6147 cat > $TMPC << EOF
6148 #include <ft2build.h>
6149 #include FT_FREETYPE_H
6150 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6151 #error "Need FreeType 2.1.8 or newer"
6152 #endif
6153 int main(void) { return 0; }
6155 _ass=no
6156 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6157 if test "$_ass" = no ; then
6158 _res_comment="FreeType >= 2.1.8 needed"
6161 if test "$_ass" = yes ; then
6162 def_ass='#define CONFIG_ASS 1'
6163 else
6164 def_ass='#undef CONFIG_ASS'
6166 echores "$_ass"
6169 echocheck "fribidi with charsets"
6170 if test "$_fribidi" = auto ; then
6171 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6172 cat > $TMPC << EOF
6173 #include <stdio.h>
6174 /* workaround for fribidi 0.10.4 and below */
6175 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6176 #include <fribidi/fribidi.h>
6177 int main(void) {
6178 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6179 printf("Fribidi headers are not consistents with the library!\n");
6180 exit(1);
6182 return 0;
6185 _fribidi=no
6186 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && _fribidi=yes
6187 else
6188 _fribidi=no
6191 if test "$_fribidi" = yes ; then
6192 def_fribidi='#define CONFIG_FRIBIDI 1'
6193 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6194 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6195 else
6196 def_fribidi='#undef CONFIG_FRIBIDI'
6198 echores "$_fribidi"
6201 echocheck "ENCA"
6202 if test "$_enca" = auto ; then
6203 cat > $TMPC << EOF
6204 #include <sys/types.h>
6205 #include <enca.h>
6206 int main(void) {
6207 const char **langs;
6208 size_t langcnt;
6209 langs = enca_get_languages(&langcnt);
6210 return 0;
6213 _enca=no
6214 cc_check -lenca $_ld_lm && _enca=yes
6216 if test "$_enca" = yes ; then
6217 def_enca='#define CONFIG_ENCA 1'
6218 extra_ldflags="$extra_ldflags -lenca"
6219 else
6220 def_enca='#undef CONFIG_ENCA'
6222 echores "$_enca"
6225 echocheck "zlib"
6226 cat > $TMPC << EOF
6227 #include <zlib.h>
6228 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6230 _zlib=no
6231 cc_check -lz && _zlib=yes
6232 if test "$_zlib" = yes ; then
6233 def_zlib='#define CONFIG_ZLIB 1'
6234 extra_ldflags="$extra_ldflags -lz"
6235 else
6236 def_zlib='#define CONFIG_ZLIB 0'
6237 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6238 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6240 echores "$_zlib"
6243 echocheck "bzlib"
6244 bzlib=no
6245 def_bzlib='#define CONFIG_BZLIB 0'
6246 cat > $TMPC << EOF
6247 #include <bzlib.h>
6248 int main(void) { BZ2_bzlibVersion(); return 0; }
6250 cc_check -lbz2 && bzlib=yes
6251 if test "$bzlib" = yes ; then
6252 def_bzlib='#define CONFIG_BZLIB 1'
6253 extra_ldflags="$extra_ldflags -lbz2"
6255 echores "$bzlib"
6258 echocheck "RTC"
6259 if test "$_rtc" = auto ; then
6260 cat > $TMPC << EOF
6261 #include <sys/ioctl.h>
6262 #ifdef __linux__
6263 #include <linux/rtc.h>
6264 #else
6265 #include <rtc.h>
6266 #define RTC_PIE_ON RTCIO_PIE_ON
6267 #endif
6268 int main(void) { return RTC_PIE_ON; }
6270 _rtc=no
6271 cc_check && _rtc=yes
6272 ppc && _rtc=no
6274 if test "$_rtc" = yes ; then
6275 def_rtc='#define HAVE_RTC 1'
6276 else
6277 def_rtc='#undef HAVE_RTC'
6279 echores "$_rtc"
6282 echocheck "liblzo2 support"
6283 if test "$_liblzo" = auto ; then
6284 _liblzo=no
6285 cat > $TMPC << EOF
6286 #include <lzo/lzo1x.h>
6287 int main(void) { lzo_init();return 0; }
6289 cc_check -llzo2 && _liblzo=yes
6291 if test "$_liblzo" = yes ; then
6292 def_liblzo='#define CONFIG_LIBLZO 1'
6293 extra_ldflags="$extra_ldflags -llzo2"
6294 _codecmodules="liblzo $_codecmodules"
6295 else
6296 def_liblzo='#undef CONFIG_LIBLZO'
6297 _nocodecmodules="liblzo $_nocodecmodules"
6299 echores "$_liblzo"
6302 echocheck "mad support"
6303 if test "$_mad" = auto ; then
6304 _mad=no
6305 cat > $TMPC << EOF
6306 #include <mad.h>
6307 int main(void) { return 0; }
6309 cc_check -lmad && _mad=yes
6311 if test "$_mad" = yes ; then
6312 def_mad='#define CONFIG_LIBMAD 1'
6313 extra_ldflags="$extra_ldflags -lmad"
6314 _codecmodules="libmad $_codecmodules"
6315 else
6316 def_mad='#undef CONFIG_LIBMAD'
6317 _nocodecmodules="libmad $_nocodecmodules"
6319 echores "$_mad"
6321 echocheck "Twolame"
6322 if test "$_twolame" = auto ; then
6323 cat > $TMPC <<EOF
6324 #include <twolame.h>
6325 int main(void) { twolame_init(); return 0; }
6327 _twolame=no
6328 cc_check -ltwolame $_ld_lm && _twolame=yes
6330 if test "$_twolame" = yes ; then
6331 def_twolame='#define CONFIG_TWOLAME 1'
6332 libs_mencoder="$libs_mencoder -ltwolame"
6333 _codecmodules="twolame $_codecmodules"
6334 else
6335 def_twolame='#undef CONFIG_TWOLAME'
6336 _nocodecmodules="twolame $_nocodecmodules"
6338 echores "$_twolame"
6340 echocheck "Toolame"
6341 if test "$_toolame" = auto ; then
6342 _toolame=no
6343 if test "$_twolame" = yes ; then
6344 _res_comment="disabled by twolame"
6345 else
6346 cat > $TMPC <<EOF
6347 #include <toolame.h>
6348 int main(void) { toolame_init(); return 0; }
6350 cc_check -ltoolame $_ld_lm && _toolame=yes
6353 if test "$_toolame" = yes ; then
6354 def_toolame='#define CONFIG_TOOLAME 1'
6355 libs_mencoder="$libs_mencoder -ltoolame"
6356 _codecmodules="toolame $_codecmodules"
6357 else
6358 def_toolame='#undef CONFIG_TOOLAME'
6359 _nocodecmodules="toolame $_nocodecmodules"
6361 if test "$_toolamedir" ; then
6362 _res_comment="using $_toolamedir"
6364 echores "$_toolame"
6366 echocheck "OggVorbis support"
6367 if test "$_tremor_internal" = yes; then
6368 _libvorbis=no
6369 elif test "$_tremor" = auto; then
6370 _tremor=no
6371 cat > $TMPC << EOF
6372 #include <tremor/ivorbiscodec.h>
6373 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6375 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6377 if test "$_libvorbis" = auto; then
6378 _libvorbis=no
6379 cat > $TMPC << EOF
6380 #include <vorbis/codec.h>
6381 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6383 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6385 if test "$_tremor_internal" = yes ; then
6386 _vorbis=yes
6387 def_vorbis='#define CONFIG_OGGVORBIS 1'
6388 def_tremor='#define CONFIG_TREMOR 1'
6389 _codecmodules="tremor(internal) $_codecmodules"
6390 _res_comment="internal Tremor"
6391 if test "$_tremor_low" = yes ; then
6392 cflags_tremor_low="-D_LOW_ACCURACY_"
6393 _res_comment="internal low accuracy Tremor"
6395 elif test "$_tremor" = yes ; then
6396 _vorbis=yes
6397 def_vorbis='#define CONFIG_OGGVORBIS 1'
6398 def_tremor='#define CONFIG_TREMOR 1'
6399 _codecmodules="tremor(external) $_codecmodules"
6400 _res_comment="external Tremor"
6401 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6402 elif test "$_libvorbis" = yes ; then
6403 _vorbis=yes
6404 def_vorbis='#define CONFIG_OGGVORBIS 1'
6405 _codecmodules="libvorbis $_codecmodules"
6406 _res_comment="libvorbis"
6407 extra_ldflags="$extra_ldflags -lvorbis -logg"
6408 else
6409 _vorbis=no
6410 _nocodecmodules="libvorbis $_nocodecmodules"
6412 echores "$_vorbis"
6414 echocheck "libspeex (version >= 1.1 required)"
6415 if test "$_speex" = auto ; then
6416 _speex=no
6417 cat > $TMPC << EOF
6418 #include <speex/speex.h>
6419 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6421 cc_check -lspeex $_ld_lm && _speex=yes
6423 if test "$_speex" = yes ; then
6424 def_speex='#define CONFIG_SPEEX 1'
6425 extra_ldflags="$extra_ldflags -lspeex"
6426 _codecmodules="speex $_codecmodules"
6427 else
6428 def_speex='#undef CONFIG_SPEEX'
6429 _nocodecmodules="speex $_nocodecmodules"
6431 echores "$_speex"
6433 echocheck "OggTheora support"
6434 if test "$_theora" = auto ; then
6435 _theora=no
6436 cat > $TMPC << EOF
6437 #include <theora/theora.h>
6438 #include <string.h>
6439 int main(void) {
6440 /* Theora is in flux, make sure that all interface routines and datatypes
6441 * exist and work the way we expect it, so we don't break MPlayer. */
6442 ogg_packet op;
6443 theora_comment tc;
6444 theora_info inf;
6445 theora_state st;
6446 yuv_buffer yuv;
6447 int r;
6448 double t;
6450 theora_info_init(&inf);
6451 theora_comment_init(&tc);
6453 return 0;
6455 /* we don't want to execute this kind of nonsense; just for making sure
6456 * that compilation works... */
6457 memset(&op, 0, sizeof(op));
6458 r = theora_decode_header(&inf, &tc, &op);
6459 r = theora_decode_init(&st, &inf);
6460 t = theora_granule_time(&st, op.granulepos);
6461 r = theora_decode_packetin(&st, &op);
6462 r = theora_decode_YUVout(&st, &yuv);
6463 theora_clear(&st);
6465 return 0;
6468 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6469 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6470 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6471 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6472 if test _theora = no; then
6473 _ld_theora="-ltheora -logg"
6474 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6476 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6477 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6478 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6479 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6480 extra_ldflags="$extra_ldflags $_ld_theora" &&
6481 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6482 if test _theora = no; then
6483 _ld_theora="-ltheora -logg"
6484 cc_check tremor/bitwise.c $_ld_theora &&
6485 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6489 if test "$_theora" = yes ; then
6490 def_theora='#define CONFIG_OGGTHEORA 1'
6491 _codecmodules="libtheora $_codecmodules"
6492 # when --enable-theora is forced, we'd better provide a probably sane
6493 # $_ld_theora than nothing
6494 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6495 else
6496 def_theora='#undef CONFIG_OGGTHEORA'
6497 _nocodecmodules="libtheora $_nocodecmodules"
6499 echores "$_theora"
6501 echocheck "internal mp3lib support"
6502 if test "$_mp3lib" = auto ; then
6503 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6505 if test "$_mp3lib" = yes ; then
6506 def_mp3lib='#define CONFIG_MP3LIB 1'
6507 _codecmodules="mp3lib(internal) $_codecmodules"
6508 else
6509 def_mp3lib='#undef CONFIG_MP3LIB'
6510 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6512 echores "$_mp3lib"
6514 echocheck "liba52 support"
6515 if test "$_liba52_internal" = auto ; then
6516 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6518 def_liba52='#undef CONFIG_LIBA52'
6519 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6520 if test "$_liba52_internal" = yes ; then
6521 _liba52=yes
6522 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6523 _res_comment="internal"
6524 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6525 _liba52=no
6526 cat > $TMPC << EOF
6527 #include <inttypes.h>
6528 #include <a52dec/a52.h>
6529 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6531 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6533 if test "$_liba52" = yes ; then
6534 def_liba52='#define CONFIG_LIBA52 1'
6535 _codecmodules="liba52($_res_comment) $_codecmodules"
6536 else
6537 _nocodecmodules="liba52 $_nocodecmodules"
6539 echores "$_liba52"
6541 echocheck "internal libmpeg2 support"
6542 if test "$_libmpeg2" = auto ; then
6543 _libmpeg2=yes
6544 if alpha && test cc_vendor=gnu; then
6545 case $cc_version in
6546 2*|3.0*|3.1*) # cannot compile MVI instructions
6547 _libmpeg2=no
6548 _res_comment="broken gcc"
6550 esac
6553 if test "$_libmpeg2" = yes ; then
6554 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6555 _codecmodules="libmpeg2(internal) $_codecmodules"
6556 else
6557 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6558 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6560 echores "$_libmpeg2"
6562 echocheck "libdca support"
6563 if test "$_libdca" = auto ; then
6564 _libdca=no
6565 cat > $TMPC << EOF
6566 #include <inttypes.h>
6567 #include <dts.h>
6568 int main(void) { dts_init(0); return 0; }
6570 for _ld_dca in -ldts -ldca ; do
6571 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6572 && _libdca=yes && break
6573 done
6575 if test "$_libdca" = yes ; then
6576 def_libdca='#define CONFIG_LIBDCA 1'
6577 _codecmodules="libdca $_codecmodules"
6578 else
6579 def_libdca='#undef CONFIG_LIBDCA'
6580 _nocodecmodules="libdca $_nocodecmodules"
6582 echores "$_libdca"
6584 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6585 if test "$_musepack" = auto ; then
6586 _musepack=no
6587 cat > $TMPC << EOF
6588 #include <stddef.h>
6589 #include <mpcdec/mpcdec.h>
6590 int main(void) {
6591 mpc_streaminfo info;
6592 mpc_decoder decoder;
6593 mpc_decoder_set_streaminfo(&decoder, &info);
6594 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6595 return 0;
6598 cc_check -lmpcdec $_ld_lm && _musepack=yes
6600 if test "$_musepack" = yes ; then
6601 def_musepack='#define CONFIG_MUSEPACK 1'
6602 extra_ldflags="$extra_ldflags -lmpcdec"
6603 _codecmodules="musepack $_codecmodules"
6604 else
6605 def_musepack='#undef CONFIG_MUSEPACK'
6606 _nocodecmodules="musepack $_nocodecmodules"
6608 echores "$_musepack"
6611 echocheck "FAAC support"
6612 if test "$_faac" = auto ; then
6613 cat > $TMPC <<EOF
6614 #include <inttypes.h>
6615 #include <faac.h>
6616 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6618 _faac=no
6619 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6620 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6621 done
6623 if test "$_faac" = yes ; then
6624 def_faac="#define CONFIG_FAAC 1"
6625 test "$_faac_lavc" = auto && _faac_lavc=yes
6626 if test "$_faac_lavc" = yes ; then
6627 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6628 libs_mplayer="$libs_mplayer $_ld_faac"
6629 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6631 _codecmodules="faac $_codecmodules"
6632 else
6633 _faac_lavc=no
6634 def_faac="#undef CONFIG_FAAC"
6635 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6636 _nocodecmodules="faac $_nocodecmodules"
6638 _res_comment="in libavcodec: $_faac_lavc"
6639 echores "$_faac"
6642 echocheck "FAAD2 support"
6643 if test "$_faad_internal" = auto ; then
6644 if x86_32 && test cc_vendor=gnu; then
6645 case $cc_version in
6646 3.1*|3.2) # ICE/insn with these versions
6647 _faad_internal=no
6648 _res_comment="broken gcc"
6651 _faad=yes
6652 _faad_internal=yes
6654 esac
6655 else
6656 _faad=yes
6657 _faad_internal=yes
6660 if test "$_faad" = auto ; then
6661 cat > $TMPC << EOF
6662 #include <faad.h>
6663 #ifndef FAAD_MIN_STREAMSIZE
6664 #error Too old version
6665 #endif
6666 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6667 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6669 cc_check -lfaad $_ld_lm && _faad=yes
6672 def_faad='#undef CONFIG_FAAD'
6673 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6674 if test "$_faad_internal" = yes ; then
6675 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6676 _res_comment="internal floating-point"
6677 if test "$_faad_fixed" = yes ; then
6678 # The FIXED_POINT implementation of FAAD2 improves performance
6679 # on some platforms, especially for SBR files.
6680 cflags_faad_fixed="-DFIXED_POINT"
6681 _res_comment="internal fixed-point"
6683 elif test "$_faad" = yes ; then
6684 extra_ldflags="$extra_ldflags -lfaad"
6687 if test "$_faad" = yes ; then
6688 def_faad='#define CONFIG_FAAD 1'
6689 if test "$_faad_internal" = yes ; then
6690 _codecmodules="faad2(internal) $_codecmodules"
6691 else
6692 _codecmodules="faad2 $_codecmodules"
6694 else
6695 _faad=no
6696 _nocodecmodules="faad2 $_nocodecmodules"
6698 echores "$_faad"
6701 echocheck "LADSPA plugin support"
6702 if test "$_ladspa" = auto ; then
6703 cat > $TMPC <<EOF
6704 #include <stdio.h>
6705 #include <ladspa.h>
6706 int main(void) {
6707 const LADSPA_Descriptor *ld = NULL;
6708 return 0;
6711 _ladspa=no
6712 cc_check && _ladspa=yes
6714 if test "$_ladspa" = yes; then
6715 def_ladspa="#define CONFIG_LADSPA 1"
6716 else
6717 def_ladspa="#undef CONFIG_LADSPA"
6719 echores "$_ladspa"
6722 echocheck "libbs2b audio filter support"
6723 if test "$_libbs2b" = auto ; then
6724 cat > $TMPC <<EOF
6725 #include <bs2b.h>
6726 #if BS2B_VERSION_MAJOR < 3
6727 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6728 #endif
6729 int main(void) {
6730 t_bs2bdp filter;
6731 filter=bs2b_open();
6732 bs2b_close(filter);
6733 return 0;
6736 _libbs2b=no
6737 if $_pkg_config --exists libbs2b ; then
6738 _inc_tmp=$($_pkg_config --cflags libbs2b)
6739 _ld_tmp=$($_pkg_config --libs libbs2b)
6740 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6741 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6742 else
6743 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6744 -I/usr/local/include/bs2b ; do
6745 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6746 extra_ldflags="$extra_ldflags -lbs2b"
6747 extra_cflags="$extra_cflags $_inc_tmp"
6748 _libbs2b=yes
6749 break
6751 done
6754 def_libbs2b="#undef CONFIG_LIBBS2B"
6755 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6756 echores "$_libbs2b"
6759 if test -z "$_codecsdir" ; then
6760 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6761 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6762 if test -d "$dir" ; then
6763 _codecsdir="$dir"
6764 break;
6766 done
6768 # Fall back on default directory.
6769 if test -z "$_codecsdir" ; then
6770 _codecsdir="$_libdir/codecs"
6771 mingw32 && _codecsdir="codecs"
6772 os2 && _codecsdir="codecs"
6776 echocheck "Win32 codecs"
6777 if test "$_win32dll" = auto ; then
6778 _win32dll=no
6779 if x86_32 && ! qnx; then
6780 _win32dll=yes
6783 if test "$_win32dll" = yes ; then
6784 def_win32dll='#define CONFIG_WIN32DLL 1'
6785 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6786 _res_comment="using $_win32codecsdir"
6787 if ! win32 ; then
6788 def_win32_loader='#define WIN32_LOADER 1'
6789 _win32_emulation=yes
6790 else
6791 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6792 _res_comment="using native windows"
6794 _codecmodules="win32 $_codecmodules"
6795 else
6796 def_win32dll='#undef CONFIG_WIN32DLL'
6797 def_win32_loader='#undef WIN32_LOADER'
6798 _nocodecmodules="win32 $_nocodecmodules"
6800 echores "$_win32dll"
6803 echocheck "XAnim codecs"
6804 if test "$_xanim" = auto ; then
6805 _xanim=no
6806 _res_comment="dynamic loader support needed"
6807 if test "$_dl" = yes ; then
6808 _xanim=yes
6811 if test "$_xanim" = yes ; then
6812 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6813 def_xanim='#define CONFIG_XANIM 1'
6814 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6815 _codecmodules="xanim $_codecmodules"
6816 _res_comment="using $_xanimcodecsdir"
6817 else
6818 def_xanim='#undef CONFIG_XANIM'
6819 def_xanim_path='#undef XACODEC_PATH'
6820 _nocodecmodules="xanim $_nocodecmodules"
6822 echores "$_xanim"
6825 echocheck "RealPlayer codecs"
6826 if test "$_real" = auto ; then
6827 _real=no
6828 _res_comment="dynamic loader support needed"
6829 if test "$_dl" = yes || test "$_win32dll" = yes &&
6830 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6831 _real=yes
6834 if test "$_real" = yes ; then
6835 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6836 def_real='#define CONFIG_REALCODECS 1'
6837 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6838 _codecmodules="real $_codecmodules"
6839 _res_comment="using $_realcodecsdir"
6840 else
6841 def_real='#undef CONFIG_REALCODECS'
6842 def_real_path="#undef REALCODEC_PATH"
6843 _nocodecmodules="real $_nocodecmodules"
6845 echores "$_real"
6848 echocheck "QuickTime codecs"
6849 _qtx_emulation=no
6850 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6851 if test "$_qtx" = auto ; then
6852 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6854 if test "$_qtx" = yes ; then
6855 def_qtx='#define CONFIG_QTX_CODECS 1'
6856 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6857 _codecmodules="qtx $_codecmodules"
6858 darwin || win32 || _qtx_emulation=yes
6859 else
6860 def_qtx='#undef CONFIG_QTX_CODECS'
6861 _nocodecmodules="qtx $_nocodecmodules"
6863 echores "$_qtx"
6865 echocheck "Nemesi Streaming Media libraries"
6866 if test "$_nemesi" = auto && test "$_network" = yes ; then
6867 _nemesi=no
6868 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6869 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6870 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6871 _nemesi=yes
6874 if test "$_nemesi" = yes; then
6875 _native_rtsp=no
6876 def_nemesi='#define CONFIG_LIBNEMESI 1'
6877 _inputmodules="nemesi $_inputmodules"
6878 else
6879 _native_rtsp="$_network"
6880 _nemesi=no
6881 def_nemesi='#undef CONFIG_LIBNEMESI'
6882 _noinputmodules="nemesi $_noinputmodules"
6884 echores "$_nemesi"
6886 echocheck "LIVE555 Streaming Media libraries"
6887 if test "$_live" = auto && test "$_network" = yes ; then
6888 cat > $TMPCPP << EOF
6889 #include <liveMedia.hh>
6890 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6891 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6892 #endif
6893 int main(void) { return 0; }
6896 _live=no
6897 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
6898 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6899 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6900 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6901 $_livelibdir/groupsock/libgroupsock.a \
6902 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6903 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6904 $extra_ldflags -lstdc++" \
6905 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6906 -I$_livelibdir/UsageEnvironment/include \
6907 -I$_livelibdir/BasicUsageEnvironment/include \
6908 -I$_livelibdir/groupsock/include" && \
6909 _live=yes && break
6910 done
6911 if test "$_live" != yes ; then
6912 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6913 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6914 _live_dist=yes
6918 if test "$_live" = yes && test "$_network" = yes; then
6919 test $_livelibdir && _res_comment="using $_livelibdir"
6920 def_live='#define CONFIG_LIVE555 1'
6921 _inputmodules="live555 $_inputmodules"
6922 elif test "$_live_dist" = yes && test "$_network" = yes; then
6923 _res_comment="using distribution version"
6924 _live="yes"
6925 def_live='#define CONFIG_LIVE555 1'
6926 extra_ldflags="$extra_ldflags $ld_tmp"
6927 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6928 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6929 _inputmodules="live555 $_inputmodules"
6930 else
6931 _live=no
6932 def_live='#undef CONFIG_LIVE555'
6933 _noinputmodules="live555 $_noinputmodules"
6935 echores "$_live"
6938 echocheck "FFmpeg libavutil"
6939 if test "$_libavutil_a" = auto ; then
6940 if test -d libavutil ; then
6941 _libavutil_a=yes
6942 _res_comment="static"
6943 else
6944 die "MPlayer will not compile without libavutil in the source tree."
6946 elif test "$_libavutil_so" = auto ; then
6947 _libavutil_so=no
6948 cat > $TMPC << EOF
6949 #include <libavutil/common.h>
6950 int main(void) { av_gcd(1,1); return 0; }
6952 if $_pkg_config --exists libavutil ; then
6953 _inc_libavutil=$($_pkg_config --cflags libavutil)
6954 _ld_tmp=$($_pkg_config --libs libavutil)
6955 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6956 && _libavutil_so=yes
6957 elif cc_check -lavutil $_ld_lm ; then
6958 extra_ldflags="$extra_ldflags -lavutil"
6959 _libavutil_so=yes
6960 _res_comment="using libavutil.so, but static libavutil is recommended"
6963 _libavutil=no
6964 def_libavutil='#undef CONFIG_LIBAVUTIL'
6965 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6966 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6967 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6968 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6969 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6970 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6971 # neither static nor shared libavutil is available, but it is mandatory ...
6972 if test "$_libavutil" = no ; then
6973 die "You need static or shared libavutil, MPlayer will not compile without!"
6975 echores "$_libavutil"
6977 echocheck "FFmpeg libavcodec"
6978 if test "$_libavcodec_a" = auto ; then
6979 _libavcodec_a=no
6980 if test -d libavcodec && test -f libavcodec/utils.c ; then
6981 _libavcodec_a="yes"
6982 _res_comment="static"
6984 elif test "$_libavcodec_so" = auto ; then
6985 _libavcodec_so=no
6986 _res_comment="libavcodec.so is discouraged over static libavcodec"
6987 cat > $TMPC << EOF
6988 #include <libavcodec/avcodec.h>
6989 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6991 if $_pkg_config --exists libavcodec ; then
6992 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6993 _ld_tmp=$($_pkg_config --libs libavcodec)
6994 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6995 && _libavcodec_so=yes
6996 elif cc_check -lavcodec $_ld_lm ; then
6997 extra_ldflags="$extra_ldflags -lavcodec"
6998 _libavcodec_so=yes
6999 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7002 _libavcodec=no
7003 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7004 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7005 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7006 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7007 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7008 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7009 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7010 test "$_libavcodec_mpegaudio_hp" = yes \
7011 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
7012 if test "$_libavcodec_a" = yes ; then
7013 _codecmodules="libavcodec(internal) $_codecmodules"
7014 elif test "$_libavcodec_so" = yes ; then
7015 _codecmodules="libavcodec.so $_codecmodules"
7016 else
7017 _nocodecmodules="libavcodec $_nocodecmodules"
7019 echores "$_libavcodec"
7021 echocheck "FFmpeg libavformat"
7022 if test "$_libavformat_a" = auto ; then
7023 _libavformat_a=no
7024 if test -d libavformat && test -f libavformat/utils.c ; then
7025 _libavformat_a=yes
7026 _res_comment="static"
7028 elif test "$_libavformat_so" = auto ; then
7029 _libavformat_so=no
7030 cat > $TMPC <<EOF
7031 #include <libavformat/avformat.h>
7032 #include <libavcodec/opt.h>
7033 int main(void) { av_alloc_format_context(); return 0; }
7035 if $_pkg_config --exists libavformat ; then
7036 _inc_libavformat=$($_pkg_config --cflags libavformat)
7037 _ld_tmp=$($_pkg_config --libs libavformat)
7038 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7039 && _libavformat_so=yes
7040 elif cc_check $_ld_lm -lavformat ; then
7041 extra_ldflags="$extra_ldflags -lavformat"
7042 _libavformat_so=yes
7043 _res_comment="using libavformat.so, but static libavformat is recommended"
7046 _libavformat=no
7047 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7048 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7049 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7050 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7051 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7052 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7053 test "$_libavformat_so" = yes \
7054 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7055 echores "$_libavformat"
7057 echocheck "FFmpeg libpostproc"
7058 if test "$_libpostproc_a" = auto ; then
7059 _libpostproc_a=no
7060 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7061 _libpostproc_a='yes'
7062 _res_comment="static"
7064 elif test "$_libpostproc_so" = auto ; then
7065 _libpostproc_so=no
7066 cat > $TMPC << EOF
7067 #include <inttypes.h>
7068 #include <libpostproc/postprocess.h>
7069 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7071 if cc_check -lpostproc $_ld_lm ; then
7072 extra_ldflags="$extra_ldflags -lpostproc"
7073 _libpostproc_so=yes
7074 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7077 _libpostproc=no
7078 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7079 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7080 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7081 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7082 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7083 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7084 test "$_libpostproc_so" = yes \
7085 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7086 echores "$_libpostproc"
7088 echocheck "FFmpeg libswscale"
7089 if test "$_libswscale_a" = auto ; then
7090 _libswscale_a=no
7091 if test -d libswscale && test -f libswscale/swscale.h ; then
7092 _libswscale_a='yes'
7093 _res_comment="static"
7095 elif test "$_libswscale_so" = auto ; then
7096 _libswscale_so=no
7097 _res_comment="using libswscale.so, but static libswscale is recommended"
7098 cat > $TMPC << EOF
7099 #include <libswscale/swscale.h>
7100 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7102 if $_pkg_config --exists libswscale ; then
7103 _inc_libswscale=$($_pkg_config --cflags libswscale)
7104 _ld_tmp=$($_pkg_config --libs libswscale)
7105 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7106 && _libswscale_so=yes
7107 elif cc_check -lswscale ; then
7108 extra_ldflags="$extra_ldflags -lswscale"
7109 _libswscale_so=yes
7112 _libswscale=no
7113 def_libswscale='#undef CONFIG_LIBSWSCALE'
7114 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7115 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7116 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7117 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7118 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7119 test "$_libswscale_so" = yes \
7120 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7121 echores "$_libswscale"
7123 echocheck "libopencore_amr narrowband"
7124 if test "$_libopencore_amrnb" = auto ; then
7125 _libopencore_amrnb=no
7126 cat > $TMPC << EOF
7127 #include <opencore-amrnb/interf_dec.h>
7128 int main(void) { Decoder_Interface_init(); return 0; }
7130 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7131 if test "$_libavcodec_a" != yes ; then
7132 _libopencore_amrnb=no
7133 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7136 if test "$_libopencore_amrnb" = yes ; then
7137 _libopencore_amr=yes
7138 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7139 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7140 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7141 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7142 _codecmodules="libopencore_amrnb $_codecmodules"
7143 else
7144 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7145 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7147 echores "$_libopencore_amrnb"
7150 echocheck "libopencore_amr wideband"
7151 if test "$_libopencore_amrwb" = auto ; then
7152 _libopencore_amrwb=no
7153 cat > $TMPC << EOF
7154 #include <opencore-amrwb/dec_if.h>
7155 int main(void) { D_IF_init(); return 0; }
7157 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7158 if test "$_libavcodec_a" != yes ; then
7159 _libopencore_amrwb=no
7160 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7163 if test "$_libopencore_amrwb" = yes ; then
7164 _libopencore_amr=yes
7165 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7166 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7167 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7168 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7169 _codecmodules="libopencore_amrwb $_codecmodules"
7170 else
7171 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7172 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7174 echores "$_libopencore_amrwb"
7176 echocheck "libdv-0.9.5+"
7177 if test "$_libdv" = auto ; then
7178 _libdv=no
7179 cat > $TMPC <<EOF
7180 #include <libdv/dv.h>
7181 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7183 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7185 if test "$_libdv" = yes ; then
7186 def_libdv='#define CONFIG_LIBDV095 1'
7187 extra_ldflags="$extra_ldflags -ldv"
7188 _codecmodules="libdv $_codecmodules"
7189 else
7190 def_libdv='#undef CONFIG_LIBDV095'
7191 _nocodecmodules="libdv $_nocodecmodules"
7193 echores "$_libdv"
7196 echocheck "Xvid"
7197 if test "$_xvid" = auto ; then
7198 _xvid=no
7199 cat > $TMPC << EOF
7200 #include <xvid.h>
7201 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7203 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7204 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7205 done
7208 if test "$_xvid" = yes ; then
7209 def_xvid='#define CONFIG_XVID4 1'
7210 _codecmodules="xvid $_codecmodules"
7211 else
7212 def_xvid='#undef CONFIG_XVID4'
7213 _nocodecmodules="xvid $_nocodecmodules"
7215 echores "$_xvid"
7217 echocheck "Xvid two pass plugin"
7218 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7219 cat > $TMPC << EOF
7220 #include <xvid.h>
7221 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7223 cc_check && _xvid_lavc=yes
7225 if test "$_xvid_lavc" = yes ; then
7226 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7227 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7228 else
7229 _xvid_lavc=no
7230 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7232 echores "$_xvid_lavc"
7235 echocheck "x264"
7236 if test "$_x264" = auto ; then
7237 cat > $TMPC << EOF
7238 #include <inttypes.h>
7239 #include <x264.h>
7240 #if X264_BUILD < 78
7241 #error We do not support old versions of x264. Get the latest from git.
7242 #endif
7243 int main(void) { x264_encoder_open((void*)0); return 0; }
7245 _x264=no
7246 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7247 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7248 done
7251 if test "$_x264" = yes ; then
7252 def_x264='#define CONFIG_X264 1'
7253 _codecmodules="x264 $_codecmodules"
7254 test "$_x264_lavc" = auto && _x264_lavc=yes
7255 if test "$_x264_lavc" = yes ; then
7256 def_x264_lavc='#define CONFIG_LIBX264 1'
7257 libs_mplayer="$libs_mplayer $_ld_x264"
7258 _libavencoders="$_libavencoders LIBX264_ENCODER"
7260 else
7261 _x264_lavc=no
7262 def_x264='#undef CONFIG_X264'
7263 def_x264_lavc='#define CONFIG_LIBX264 0'
7264 _nocodecmodules="x264 $_nocodecmodules"
7266 _res_comment="in libavcodec: $_x264_lavc"
7267 echores "$_x264"
7270 echocheck "libdirac"
7271 if test "$_libdirac_lavc" = auto; then
7272 _libdirac_lavc=no
7273 if test "$_libavcodec_a" != yes; then
7274 _res_comment="libavcodec (static) is required by libdirac, sorry"
7275 else
7276 cat > $TMPC << EOF
7277 #include <libdirac_encoder/dirac_encoder.h>
7278 #include <libdirac_decoder/dirac_parser.h>
7279 int main(void)
7281 dirac_encoder_context_t enc_ctx;
7282 dirac_decoder_t *dec_handle;
7283 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7284 dec_handle = dirac_decoder_init(0);
7285 if (dec_handle)
7286 dirac_decoder_close(dec_handle);
7287 return 0;
7290 if $_pkg_config --exists dirac ; then
7291 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7292 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7293 cc_check $_inc_dirac $_ld_dirac &&
7294 _libdirac_lavc=yes &&
7295 extra_cflags="$extra_cflags $_inc_dirac" &&
7296 extra_ldflags="$extra_ldflags $_ld_dirac"
7300 if test "$_libdirac_lavc" = yes ; then
7301 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7302 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7303 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7304 _codecmodules="libdirac $_codecmodules"
7305 else
7306 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7307 _nocodecmodules="libdirac $_nocodecmodules"
7309 echores "$_libdirac_lavc"
7312 echocheck "libschroedinger"
7313 if test "$_libschroedinger_lavc" = auto ; then
7314 _libschroedinger_lavc=no
7315 if test "$_libavcodec_a" != yes; then
7316 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7317 else
7318 cat > $TMPC << EOF
7319 #include <schroedinger/schro.h>
7320 int main(void) { schro_init(); return 0; }
7322 if $_pkg_config --exists schroedinger-1.0 ; then
7323 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7324 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7325 cc_check $_inc_schroedinger $_ld_schroedinger &&
7326 _libschroedinger_lavc=yes &&
7327 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7328 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7332 if test "$_libschroedinger_lavc" = yes ; then
7333 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7334 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7335 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7336 _codecmodules="libschroedinger $_codecmodules"
7337 else
7338 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7339 _nocodecmodules="libschroedinger $_nocodecmodules"
7341 echores "$_libschroedinger_lavc"
7343 echocheck "libnut"
7344 if test "$_libnut" = auto ; then
7345 cat > $TMPC << EOF
7346 #include <stdio.h>
7347 #include <stdlib.h>
7348 #include <inttypes.h>
7349 #include <libnut.h>
7350 nut_context_tt * nut;
7351 int main(void) { (void)nut_error(0); return 0; }
7353 _libnut=no
7354 cc_check -lnut && _libnut=yes
7357 if test "$_libnut" = yes ; then
7358 def_libnut='#define CONFIG_LIBNUT 1'
7359 extra_ldflags="$extra_ldflags -lnut"
7360 else
7361 def_libnut='#undef CONFIG_LIBNUT'
7363 echores "$_libnut"
7365 #check must be done after libavcodec one
7366 echocheck "zr"
7367 if test "$_zr" = auto ; then
7368 #36067's seem to identify themselves as 36057PQC's, so the line
7369 #below should work for 36067's and 36057's.
7370 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7371 _zr=yes
7372 else
7373 _zr=no
7376 if test "$_zr" = yes ; then
7377 if test "$_libavcodec_a" = yes ; then
7378 def_zr='#define CONFIG_ZR 1'
7379 _vomodules="zr zr2 $_vomodules"
7380 else
7381 _res_comment="libavcodec (static) is required by zr, sorry"
7382 _novomodules="zr $_novomodules"
7383 def_zr='#undef CONFIG_ZR'
7385 else
7386 def_zr='#undef CONFIG_ZR'
7387 _novomodules="zr zr2 $_novomodules"
7389 echores "$_zr"
7391 # mencoder requires (optional) those libs: libmp3lame
7392 if test "$_mencoder" != no ; then
7394 echocheck "libmp3lame"
7395 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7396 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7397 if test "$_mp3lame" = auto ; then
7398 _mp3lame=no
7399 cat > $TMPC <<EOF
7400 #include <lame/lame.h>
7401 int main(void) { lame_version_t lv; (void) lame_init();
7402 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7403 return 0; }
7405 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7407 if test "$_mp3lame" = yes ; then
7408 def_mp3lame="#define CONFIG_MP3LAME 1"
7409 _ld_mp3lame=-lmp3lame
7410 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7411 cat > $TMPC << EOF
7412 #include <lame/lame.h>
7413 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7415 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7416 cat > $TMPC << EOF
7417 #include <lame/lame.h>
7418 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7420 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7421 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7422 if test "$_mp3lame_lavc" = yes ; then
7423 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7424 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7425 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7427 else
7428 _mp3lame_lavc=no
7429 def_mp3lame='#undef CONFIG_MP3LAME'
7430 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7432 _res_comment="in libavcodec: $_mp3lame_lavc"
7433 echores "$_mp3lame"
7435 fi # test "$_mencoder" != no
7437 echocheck "mencoder"
7438 if test "$_mencoder" = yes ; then
7439 def_muxers='#define CONFIG_MUXERS 1'
7440 else
7441 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7442 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7443 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7444 _libavmuxers=""
7445 def_muxers='#define CONFIG_MUXERS 0'
7447 echores "$_mencoder"
7450 echocheck "UnRAR executable"
7451 if test "$_unrar_exec" = auto ; then
7452 _unrar_exec="yes"
7453 mingw32 && _unrar_exec="no"
7455 if test "$_unrar_exec" = yes ; then
7456 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7457 else
7458 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7460 echores "$_unrar_exec"
7462 echocheck "TV interface"
7463 if test "$_tv" = yes ; then
7464 def_tv='#define CONFIG_TV 1'
7465 _inputmodules="tv $_inputmodules"
7466 else
7467 _noinputmodules="tv $_noinputmodules"
7468 def_tv='#undef CONFIG_TV'
7470 echores "$_tv"
7473 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7474 echocheck "*BSD BT848 bt8xx header"
7475 _ioctl_bt848_h=no
7476 for file in "machine/ioctl_bt848.h" \
7477 "dev/bktr/ioctl_bt848.h" \
7478 "dev/video/bktr/ioctl_bt848.h" \
7479 "dev/ic/bt8xx.h" ; do
7480 cat > $TMPC <<EOF
7481 #include <sys/types.h>
7482 #include <sys/ioctl.h>
7483 #include <$file>
7484 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7486 if cc_check ; then
7487 _ioctl_bt848_h=yes
7488 _ioctl_bt848_h_name="$file"
7489 break;
7491 done
7492 if test "$_ioctl_bt848_h" = yes ; then
7493 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7494 _res_comment="using $_ioctl_bt848_h_name"
7495 else
7496 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7498 echores "$_ioctl_bt848_h"
7500 echocheck "*BSD ioctl_meteor.h"
7501 _ioctl_meteor_h=no
7502 for file in "machine/ioctl_meteor.h" \
7503 "dev/bktr/ioctl_meteor.h" \
7504 "dev/video/bktr/ioctl_meteor.h" ; do
7505 cat > $TMPC <<EOF
7506 #include <sys/types.h>
7507 #include <$file>
7508 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7510 if cc_check ; then
7511 _ioctl_meteor_h=yes
7512 _ioctl_meteor_h_name="$file"
7513 break;
7515 done
7516 if test "$_ioctl_meteor_h" = yes ; then
7517 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7518 _res_comment="using $_ioctl_meteor_h_name"
7519 else
7520 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7522 echores "$_ioctl_meteor_h"
7524 echocheck "*BSD BrookTree 848 TV interface"
7525 if test "$_tv_bsdbt848" = auto ; then
7526 _tv_bsdbt848=no
7527 if test "$_tv" = yes ; then
7528 cat > $TMPC <<EOF
7529 #include <sys/types.h>
7530 $def_ioctl_meteor_h_name
7531 $def_ioctl_bt848_h_name
7532 #ifdef IOCTL_METEOR_H_NAME
7533 #include IOCTL_METEOR_H_NAME
7534 #endif
7535 #ifdef IOCTL_BT848_H_NAME
7536 #include IOCTL_BT848_H_NAME
7537 #endif
7538 int main(void) {
7539 ioctl(0, METEORSINPUT, 0);
7540 ioctl(0, TVTUNER_GETFREQ, 0);
7541 return 0;
7544 cc_check && _tv_bsdbt848=yes
7547 if test "$_tv_bsdbt848" = yes ; then
7548 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7549 _inputmodules="tv-bsdbt848 $_inputmodules"
7550 else
7551 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7552 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7554 echores "$_tv_bsdbt848"
7555 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7558 echocheck "DirectShow TV interface"
7559 if test "$_tv_dshow" = auto ; then
7560 _tv_dshow=no
7561 if test "$_tv" = yes && win32 ; then
7562 cat > $TMPC <<EOF
7563 #include <ole2.h>
7564 int main(void) {
7565 void* p;
7566 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7567 return 0;
7570 cc_check -lole32 -luuid && _tv_dshow=yes
7573 if test "$_tv_dshow" = yes ; then
7574 _inputmodules="tv-dshow $_inputmodules"
7575 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7576 extra_ldflags="$extra_ldflags -lole32 -luuid"
7577 else
7578 _noinputmodules="tv-dshow $_noinputmodules"
7579 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7581 echores "$_tv_dshow"
7584 echocheck "Video 4 Linux TV interface"
7585 if test "$_tv_v4l1" = auto ; then
7586 _tv_v4l1=no
7587 if test "$_tv" = yes && linux ; then
7588 cat > $TMPC <<EOF
7589 #include <stdlib.h>
7590 #include <linux/videodev.h>
7591 int main(void) { return 0; }
7593 cc_check && _tv_v4l1=yes
7596 if test "$_tv_v4l1" = yes ; then
7597 _audio_input=yes
7598 _tv_v4l=yes
7599 def_tv_v4l='#define CONFIG_TV_V4L 1'
7600 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7601 _inputmodules="tv-v4l $_inputmodules"
7602 else
7603 _noinputmodules="tv-v4l1 $_noinputmodules"
7604 def_tv_v4l='#undef CONFIG_TV_V4L'
7606 echores "$_tv_v4l1"
7609 echocheck "Video 4 Linux 2 TV interface"
7610 if test "$_tv_v4l2" = auto ; then
7611 _tv_v4l2=no
7612 if test "$_tv" = yes && linux ; then
7613 cat > $TMPC <<EOF
7614 #include <stdlib.h>
7615 #include <linux/types.h>
7616 #include <linux/videodev2.h>
7617 int main(void) { return 0; }
7619 cc_check && _tv_v4l2=yes
7622 if test "$_tv_v4l2" = yes ; then
7623 _audio_input=yes
7624 _tv_v4l=yes
7625 def_tv_v4l='#define CONFIG_TV_V4L 1'
7626 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7627 _inputmodules="tv-v4l2 $_inputmodules"
7628 else
7629 _noinputmodules="tv-v4l2 $_noinputmodules"
7630 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7632 echores "$_tv_v4l2"
7635 echocheck "Radio interface"
7636 if test "$_radio" = yes ; then
7637 def_radio='#define CONFIG_RADIO 1'
7638 _inputmodules="radio $_inputmodules"
7639 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7640 _radio_capture=no
7642 if test "$_radio_capture" = yes ; then
7643 _audio_input=yes
7644 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7645 else
7646 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7648 else
7649 _noinputmodules="radio $_noinputmodules"
7650 def_radio='#undef CONFIG_RADIO'
7651 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7652 _radio_capture=no
7654 echores "$_radio"
7655 echocheck "Capture for Radio interface"
7656 echores "$_radio_capture"
7658 echocheck "Video 4 Linux 2 Radio interface"
7659 if test "$_radio_v4l2" = auto ; then
7660 _radio_v4l2=no
7661 if test "$_radio" = yes && linux ; then
7662 cat > $TMPC <<EOF
7663 #include <stdlib.h>
7664 #include <linux/types.h>
7665 #include <linux/videodev2.h>
7666 int main(void) { return 0; }
7668 cc_check && _radio_v4l2=yes
7671 if test "$_radio_v4l2" = yes ; then
7672 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7673 else
7674 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7676 echores "$_radio_v4l2"
7678 echocheck "Video 4 Linux Radio interface"
7679 if test "$_radio_v4l" = auto ; then
7680 _radio_v4l=no
7681 if test "$_radio" = yes && linux ; then
7682 cat > $TMPC <<EOF
7683 #include <stdlib.h>
7684 #include <linux/videodev.h>
7685 int main(void) { return 0; }
7687 cc_check && _radio_v4l=yes
7690 if test "$_radio_v4l" = yes ; then
7691 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7692 else
7693 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7695 echores "$_radio_v4l"
7697 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7698 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7699 echocheck "*BSD BrookTree 848 Radio interface"
7700 _radio_bsdbt848=no
7701 cat > $TMPC <<EOF
7702 #include <sys/types.h>
7703 $def_ioctl_bt848_h_name
7704 #ifdef IOCTL_BT848_H_NAME
7705 #include IOCTL_BT848_H_NAME
7706 #endif
7707 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7709 cc_check && _radio_bsdbt848=yes
7710 echores "$_radio_bsdbt848"
7711 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7713 if test "$_radio_bsdbt848" = yes ; then
7714 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7715 else
7716 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7719 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7720 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7721 die "Radio driver requires BSD BT848, V4L or V4L2!"
7724 echocheck "Video 4 Linux 2 MPEG PVR interface"
7725 if test "$_pvr" = auto ; then
7726 _pvr=no
7727 if test "$_tv_v4l2" = yes && linux ; then
7728 cat > $TMPC <<EOF
7729 #include <stdlib.h>
7730 #include <inttypes.h>
7731 #include <linux/types.h>
7732 #include <linux/videodev2.h>
7733 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7735 cc_check && _pvr=yes
7738 if test "$_pvr" = yes ; then
7739 def_pvr='#define CONFIG_PVR 1'
7740 _inputmodules="pvr $_inputmodules"
7741 else
7742 _noinputmodules="pvr $_noinputmodules"
7743 def_pvr='#undef CONFIG_PVR'
7745 echores "$_pvr"
7748 echocheck "ftp"
7749 if ! beos && test "$_ftp" = yes ; then
7750 def_ftp='#define CONFIG_FTP 1'
7751 _inputmodules="ftp $_inputmodules"
7752 else
7753 _noinputmodules="ftp $_noinputmodules"
7754 def_ftp='#undef CONFIG_FTP'
7756 echores "$_ftp"
7758 echocheck "vstream client"
7759 if test "$_vstream" = auto ; then
7760 _vstream=no
7761 cat > $TMPC <<EOF
7762 #include <vstream-client.h>
7763 void vstream_error(const char *format, ... ) {}
7764 int main(void) { vstream_start(); return 0; }
7766 cc_check -lvstream-client && _vstream=yes
7768 if test "$_vstream" = yes ; then
7769 def_vstream='#define CONFIG_VSTREAM 1'
7770 _inputmodules="vstream $_inputmodules"
7771 extra_ldflags="$extra_ldflags -lvstream-client"
7772 else
7773 _noinputmodules="vstream $_noinputmodules"
7774 def_vstream='#undef CONFIG_VSTREAM'
7776 echores "$_vstream"
7779 echocheck "OSD menu"
7780 if test "$_menu" = yes ; then
7781 def_menu='#define CONFIG_MENU 1'
7782 test $_dvbin = "yes" && _menu_dvbin=yes
7783 else
7784 def_menu='#undef CONFIG_MENU'
7785 _menu_dvbin=no
7787 echores "$_menu"
7790 echocheck "Subtitles sorting"
7791 if test "$_sortsub" = yes ; then
7792 def_sortsub='#define CONFIG_SORTSUB 1'
7793 else
7794 def_sortsub='#undef CONFIG_SORTSUB'
7796 echores "$_sortsub"
7799 echocheck "XMMS inputplugin support"
7800 if test "$_xmms" = yes ; then
7801 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7802 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7803 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7804 else
7805 _xmmsplugindir=/usr/lib/xmms/Input
7806 _xmmslibdir=/usr/lib
7809 def_xmms='#define CONFIG_XMMS 1'
7810 if darwin ; then
7811 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7812 else
7813 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7815 else
7816 def_xmms='#undef CONFIG_XMMS'
7818 echores "$_xmms"
7821 # --------------- GUI specific tests begin -------------------
7822 echocheck "GUI"
7823 echo "$_gui"
7824 if test "$_gui" = yes ; then
7826 # Required libraries
7827 if test "$_libavcodec" != yes ||
7828 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7829 die "The GUI requires libavcodec with PNG support (needs zlib)."
7831 test "$_freetype" = no && test "$_bitmap_font" = no && \
7832 die "The GUI requires either FreeType or bitmap font support."
7833 if ! win32 ; then
7834 _gui_gtk=yes
7835 test "$_x11" != yes && die "X11 support required for GUI compilation."
7837 echocheck "XShape extension"
7838 if test "$_xshape" = auto ; then
7839 _xshape=no
7840 cat > $TMPC << EOF
7841 #include <X11/Xlib.h>
7842 #include <X11/Xproto.h>
7843 #include <X11/Xutil.h>
7844 #include <X11/extensions/shape.h>
7845 #include <stdlib.h>
7846 int main(void) {
7847 char *name = ":0.0";
7848 Display *wsDisplay;
7849 int exitvar = 0;
7850 int eventbase, errorbase;
7851 if (getenv("DISPLAY"))
7852 name=getenv("DISPLAY");
7853 wsDisplay=XOpenDisplay(name);
7854 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7855 exitvar=1;
7856 XCloseDisplay(wsDisplay);
7857 return exitvar;
7860 cc_check -lXext && _xshape=yes
7862 if test "$_xshape" = yes ; then
7863 def_xshape='#define CONFIG_XSHAPE 1'
7864 else
7865 die "The GUI requires the X11 extension XShape (which was not found)."
7867 echores "$_xshape"
7869 #Check for GTK
7870 if test "$_gtk1" = no ; then
7871 #Check for GTK2 :
7872 echocheck "GTK+ version"
7874 if $_pkg_config gtk+-2.0 --exists ; then
7875 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7876 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7877 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7878 echores "$_gtk"
7880 # Check for GLIB2
7881 if $_pkg_config glib-2.0 --exists ; then
7882 echocheck "glib version"
7883 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7884 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7885 echores "$_glib"
7887 def_gui='#define CONFIG_GUI 1'
7888 def_gtk2='#define CONFIG_GTK2 1'
7889 else
7890 _gtk1=yes
7891 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7893 else
7894 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7895 _gtk1=yes
7899 if test "$_gtk1" = yes ; then
7900 # Check for old GTK (1.2.x)
7901 echocheck "GTK version"
7902 if test -z "$_gtkconfig" ; then
7903 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7904 _gtkconfig="gtk-config"
7905 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7906 _gtkconfig="gtk12-config"
7907 else
7908 die "The GUI requires GTK devel packages (which were not found)."
7911 _gtk=$($_gtkconfig --version 2>&1)
7912 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7913 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7914 echores "$_gtk (using $_gtkconfig)"
7916 # Check for GLIB
7917 echocheck "glib version"
7918 if test -z "$_glibconfig" ; then
7919 if ( glib-config --version ) >/dev/null 2>&1 ; then
7920 _glibconfig="glib-config"
7921 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7922 _glibconfig="glib12-config"
7923 else
7924 die "The GUI requires GLIB devel packages (which were not found)"
7927 _glib=$($_glibconfig --version 2>&1)
7928 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7929 echores "$_glib (using $_glibconfig)"
7931 def_gui='#define CONFIG_GUI 1'
7932 def_gtk2='#undef CONFIG_GTK2'
7935 else #if ! win32
7936 _gui_win32=yes
7937 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7938 def_gui='#define CONFIG_GUI 1'
7939 def_gtk2='#undef CONFIG_GTK2'
7940 fi #if ! win32
7942 else #if test "$_gui"
7943 def_gui='#undef CONFIG_GUI'
7944 def_gtk2='#undef CONFIG_GTK2'
7945 fi #if test "$_gui"
7946 # --------------- GUI specific tests end -------------------
7949 if test "$_charset" != "noconv" ; then
7950 def_charset="#define MSG_CHARSET \"$_charset\""
7951 else
7952 def_charset="#undef MSG_CHARSET"
7953 _charset="UTF-8"
7956 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7957 echocheck "iconv program"
7958 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7959 if test "$?" -ne 0 ; then
7960 echores "no"
7961 echo "No working iconv program found, use "
7962 echo "--charset=UTF-8 to continue anyway."
7963 echo "If you also have problems with iconv library functions use --charset=noconv."
7964 echo "Messages in the GTK-2 interface will be broken then."
7965 exit 1
7966 else
7967 echores "yes"
7971 #############################################################################
7973 echocheck "automatic gdb attach"
7974 if test "$_crash_debug" = yes ; then
7975 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7976 else
7977 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7978 _crash_debug=no
7980 echores "$_crash_debug"
7982 echocheck "compiler support for noexecstack"
7983 cat > $TMPC <<EOF
7984 int main(void) { return 0; }
7986 if cc_check -Wl,-z,noexecstack ; then
7987 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7988 echores "yes"
7989 else
7990 echores "no"
7994 # Dynamic linking flags
7995 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7996 _ld_dl_dynamic=''
7997 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7998 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7999 _ld_dl_dynamic='-rdynamic'
8002 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8003 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8004 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8006 def_debug='#undef MP_DEBUG'
8007 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8010 echocheck "joystick"
8011 def_joystick='#undef CONFIG_JOYSTICK'
8012 if test "$_joystick" = yes ; then
8013 if linux ; then
8014 # TODO add some check
8015 def_joystick='#define CONFIG_JOYSTICK 1'
8016 else
8017 _joystick="no"
8018 _res_comment="unsupported under $system_name"
8021 echores "$_joystick"
8023 echocheck "lirc"
8024 if test "$_lirc" = auto ; then
8025 _lirc=no
8026 cat > $TMPC <<EOF
8027 #include <lirc/lirc_client.h>
8028 int main(void) { return 0; }
8030 cc_check -llirc_client && _lirc=yes
8032 if test "$_lirc" = yes ; then
8033 def_lirc='#define CONFIG_LIRC 1'
8034 libs_mplayer="$libs_mplayer -llirc_client"
8035 else
8036 def_lirc='#undef CONFIG_LIRC'
8038 echores "$_lirc"
8040 echocheck "lircc"
8041 if test "$_lircc" = auto ; then
8042 _lircc=no
8043 cat > $TMPC <<EOF
8044 #include <lirc/lircc.h>
8045 int main(void) { return 0; }
8047 cc_check -llircc && _lircc=yes
8049 if test "$_lircc" = yes ; then
8050 def_lircc='#define CONFIG_LIRCC 1'
8051 libs_mplayer="$libs_mplayer -llircc"
8052 else
8053 def_lircc='#undef CONFIG_LIRCC'
8055 echores "$_lircc"
8057 if arm; then
8058 # Detect maemo development platform libraries availability (http://www.maemo.org),
8059 # they are used when run on Nokia 770|8x0
8060 echocheck "maemo (Nokia 770|8x0)"
8061 if test "$_maemo" = auto ; then
8062 _maemo=no
8063 cat > $TMPC << EOF
8064 #include <libosso.h>
8065 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8067 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8069 if test "$_maemo" = yes ; then
8070 def_maemo='#define CONFIG_MAEMO 1'
8071 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8072 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8073 else
8074 def_maemo='#undef CONFIG_MAEMO'
8076 echores "$_maemo"
8079 #############################################################################
8081 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8082 # the OMF format needs to come after the 'extern symbol prefix' check, which
8083 # uses nm.
8084 if os2 ; then
8085 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8088 # linker paths should be the same for mencoder and mplayer
8089 _ld_tmp=""
8090 for I in $libs_mplayer ; do
8091 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8092 if test -z "$_tmp" ; then
8093 extra_ldflags="$extra_ldflags $I"
8094 else
8095 _ld_tmp="$_ld_tmp $I"
8097 done
8098 libs_mplayer=$_ld_tmp
8101 #############################################################################
8102 # 64 bit file offsets?
8103 if test "$_largefiles" = yes || freebsd ; then
8104 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8105 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8106 # dvdread support requires this (for off64_t)
8107 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8111 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8113 # This must be the last test to be performed. Any other tests following it
8114 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8115 # against libdvdread (to permit MPlayer to use its own copy of the library).
8116 # So any compilation using the flags added here but not linking against
8117 # libdvdread can fail.
8118 echocheck "DVD support (libdvdnav)"
8119 dvdnav_internal=no
8120 if test "$_dvdnav" = auto ; then
8121 if test "$_dvdread_internal" = yes ; then
8122 _dvdnav=yes
8123 dvdnav_internal=yes
8124 _res_comment="internal"
8125 else
8126 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8129 if test "$_dvdnav" = auto ; then
8130 cat > $TMPC <<EOF
8131 #include <inttypes.h>
8132 #include <dvdnav/dvdnav.h>
8133 int main(void) { dvdnav_t *dvd=0; return 0; }
8135 _dvdnav=no
8136 _dvdnavdir=$($_dvdnavconfig --cflags)
8137 _dvdnavlibs=$($_dvdnavconfig --libs)
8138 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8140 if test "$_dvdnav" = yes ; then
8141 _largefiles=yes
8142 def_dvdnav='#define CONFIG_DVDNAV 1'
8143 if test "$dvdnav_internal" = yes ; then
8144 cflags_libdvdnav="-Ilibdvdnav"
8145 _inputmodules="dvdnav(internal) $_inputmodules"
8146 else
8147 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8148 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8149 _inputmodules="dvdnav $_inputmodules"
8151 else
8152 def_dvdnav='#undef CONFIG_DVDNAV'
8153 _noinputmodules="dvdnav $_noinputmodules"
8155 echores "$_dvdnav"
8157 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8158 # Read dvdnav comment above.
8160 #############################################################################
8161 echo "Creating config.mak"
8162 cat > config.mak << EOF
8163 # -------- Generated by configure -----------
8165 # Ensure that locale settings do not interfere with shell commands.
8166 export LC_ALL = C
8168 CONFIGURATION = $_configuration
8170 CHARSET = $_charset
8171 DOC_LANGS = $language_doc
8172 DOC_LANG_ALL = $doc_lang_all
8173 MAN_LANGS = $language_man
8174 MAN_LANG_ALL = $man_lang_all
8176 prefix = \$(DESTDIR)$_prefix
8177 BINDIR = \$(DESTDIR)$_bindir
8178 DATADIR = \$(DESTDIR)$_datadir
8179 LIBDIR = \$(DESTDIR)$_libdir
8180 MANDIR = \$(DESTDIR)$_mandir
8181 CONFDIR = \$(DESTDIR)$_confdir
8183 AR = $_ar
8184 AS = $_cc
8185 CC = $_cc
8186 CXX = $_cc
8187 HOST_CC = $_host_cc
8188 YASM = $_yasm
8189 INSTALL = $_install
8190 INSTALLSTRIP = $_install_strip
8191 RANLIB = $_ranlib
8192 WINDRES = $_windres
8194 CFLAGS = $CFLAGS $extra_cflags
8195 OPTFLAGS = $CFLAGS $extra_cflags
8196 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8197 CFLAGS_DHAHELPER = $cflags_dhahelper
8198 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8199 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8200 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8201 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8202 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8203 CFLAGS_STACKREALIGN = $cflags_stackrealign
8204 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8205 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8206 YASMFLAGS = $YASMFLAGS
8208 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8209 EXTRALIBS_MPLAYER = $libs_mplayer
8210 EXTRALIBS_MENCODER = $libs_mencoder
8212 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8214 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 &,"
8215 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 &,"
8217 GETCH = $_getch
8218 HELP_FILE = $_mp_help
8219 TIMER = $_timer
8221 EXESUF = $_exesuf
8222 EXESUFS_ALL = .exe
8224 $_target_arch
8225 $_target_subarch
8226 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8228 MENCODER = $_mencoder
8229 MPLAYER = $_mplayer
8231 NEED_GETTIMEOFDAY = $_need_gettimeofday
8232 NEED_GLOB = $_need_glob
8233 NEED_MMAP = $_need_mmap
8234 NEED_SETENV = $_need_setenv
8235 NEED_SHMEM = $_need_shmem
8236 NEED_STRSEP = $_need_strsep
8237 NEED_SWAB = $_need_swab
8238 NEED_VSSCANF = $_need_vsscanf
8240 # features
8241 3DFX = $_3dfx
8242 AA = $_aa
8243 ALSA1X = $_alsa1x
8244 ALSA9 = $_alsa9
8245 ALSA5 = $_alsa5
8246 APPLE_IR = $_apple_ir
8247 APPLE_REMOTE = $_apple_remote
8248 ARTS = $_arts
8249 AUDIO_INPUT = $_audio_input
8250 BITMAP_FONT = $_bitmap_font
8251 BL = $_bl
8252 CACA = $_caca
8253 CDDA = $_cdda
8254 CDDB = $_cddb
8255 COREAUDIO = $_coreaudio
8256 COREVIDEO = $_corevideo
8257 DART = $_dart
8258 DFBMGA = $_dfbmga
8259 DGA = $_dga
8260 DIRECT3D = $_direct3d
8261 DIRECTFB = $_directfb
8262 DIRECTX = $_directx
8263 DVBIN = $_dvbin
8264 DVDNAV = $_dvdnav
8265 DVDNAV_INTERNAL = $dvdnav_internal
8266 DVDREAD = $_dvdread
8267 DVDREAD_INTERNAL = $_dvdread_internal
8268 DXR2 = $_dxr2
8269 DXR3 = $_dxr3
8270 ESD = $_esd
8271 FAAC=$_faac
8272 FAAD = $_faad
8273 FAAD_INTERNAL = $_faad_internal
8274 FASTMEMCPY = $_fastmemcpy
8275 FBDEV = $_fbdev
8276 FREETYPE = $_freetype
8277 FTP = $_ftp
8278 GIF = $_gif
8279 GGI = $_ggi
8280 GL = $_gl
8281 GL_WIN32 = $_gl_win32
8282 GUI = $_gui
8283 GUI_GTK = $_gui_gtk
8284 GUI_WIN32 = $_gui_win32
8285 HAVE_POSIX_SELECT = $_posix_select
8286 HAVE_SYS_MMAN_H = $_mman
8287 IVTV = $_ivtv
8288 JACK = $_jack
8289 JOYSTICK = $_joystick
8290 JPEG = $_jpeg
8291 KVA = $_kva
8292 LADSPA = $_ladspa
8293 LIBA52 = $_liba52
8294 LIBA52_INTERNAL = $_liba52_internal
8295 LIBASS = $_ass
8296 LIBBS2B = $_libbs2b
8297 LIBDCA = $_libdca
8298 LIBDV = $_libdv
8299 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8300 LIBLZO = $_liblzo
8301 LIBMAD = $_mad
8302 LIBMENU = $_menu
8303 LIBMENU_DVBIN = $_menu_dvbin
8304 LIBMPEG2 = $_libmpeg2
8305 LIBNEMESI = $_nemesi
8306 LIBNUT = $_libnut
8307 LIBSMBCLIENT = $_smb
8308 LIBTHEORA = $_theora
8309 LIRC = $_lirc
8310 LIVE555 = $_live
8311 MACOSX_BUNDLE = $_macosx_bundle
8312 MACOSX_FINDER = $_macosx_finder
8313 MD5SUM = $_md5sum
8314 MGA = $_mga
8315 MNG = $_mng
8316 MP3LAME = $_mp3lame
8317 MP3LIB = $_mp3lib
8318 MUSEPACK = $_musepack
8319 NAS = $_nas
8320 NATIVE_RTSP = $_native_rtsp
8321 NETWORK = $_network
8322 OPENAL = $_openal
8323 OSS = $_ossaudio
8324 PE_EXECUTABLE = $_pe_executable
8325 PNG = $_png
8326 PNM = $_pnm
8327 PRIORITY = $_priority
8328 PULSE = $_pulse
8329 PVR = $_pvr
8330 QTX_CODECS = $_qtx
8331 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8332 QTX_EMULATION = $_qtx_emulation
8333 QUARTZ = $_quartz
8334 RADIO=$_radio
8335 RADIO_CAPTURE=$_radio_capture
8336 REAL_CODECS = $_real
8337 S3FB = $_s3fb
8338 SDL = $_sdl
8339 SPEEX = $_speex
8340 STREAM_CACHE = $_stream_cache
8341 SGIAUDIO = $_sgiaudio
8342 SUNAUDIO = $_sunaudio
8343 SVGA = $_svga
8344 TDFXFB = $_tdfxfb
8345 TDFXVID = $_tdfxvid
8346 TGA = $_tga
8347 TOOLAME=$_toolame
8348 TREMOR_INTERNAL = $_tremor_internal
8349 TV = $_tv
8350 TV_BSDBT848 = $_tv_bsdbt848
8351 TV_DSHOW = $_tv_dshow
8352 TV_V4L = $_tv_v4l
8353 TV_V4L1 = $_tv_v4l1
8354 TV_V4L2 = $_tv_v4l2
8355 TWOLAME=$_twolame
8356 UNRAR_EXEC = $_unrar_exec
8357 V4L2 = $_v4l2
8358 VCD = $_vcd
8359 VDPAU = $_vdpau
8360 VESA = $_vesa
8361 VIDIX = $_vidix
8362 VIDIX_PCIDB = $_vidix_pcidb_val
8363 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8364 VIDIX_IVTV=$_vidix_drv_ivtv
8365 VIDIX_MACH64=$_vidix_drv_mach64
8366 VIDIX_MGA=$_vidix_drv_mga
8367 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8368 VIDIX_NVIDIA=$_vidix_drv_nvidia
8369 VIDIX_PM2=$_vidix_drv_pm2
8370 VIDIX_PM3=$_vidix_drv_pm3
8371 VIDIX_RADEON=$_vidix_drv_radeon
8372 VIDIX_RAGE128=$_vidix_drv_rage128
8373 VIDIX_S3=$_vidix_drv_s3
8374 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8375 VIDIX_SIS=$_vidix_drv_sis
8376 VIDIX_UNICHROME=$_vidix_drv_unichrome
8377 VORBIS = $_vorbis
8378 VSTREAM = $_vstream
8379 WII = $_wii
8380 WIN32DLL = $_win32dll
8381 WIN32WAVEOUT = $_win32waveout
8382 WIN32_EMULATION = $_win32_emulation
8383 WINVIDIX = $winvidix
8384 X11 = $_x11
8385 X264 = $_x264
8386 XANIM_CODECS = $_xanim
8387 XMGA = $_xmga
8388 XMMS_PLUGINS = $_xmms
8389 XV = $_xv
8390 XVID4 = $_xvid
8391 XVIDIX = $xvidix
8392 XVMC = $_xvmc
8393 XVR100 = $_xvr100
8394 YUV4MPEG = $_yuv4mpeg
8395 ZR = $_zr
8397 # FFmpeg
8398 LIBAVUTIL = $_libavutil
8399 LIBAVUTIL_A = $_libavutil_a
8400 LIBAVUTIL_SO = $_libavutil_so
8401 LIBAVCODEC = $_libavcodec
8402 LIBAVCODEC_A = $_libavcodec_a
8403 LIBAVCODEC_SO = $_libavcodec_so
8404 LIBAVFORMAT = $_libavformat
8405 LIBAVFORMAT_A = $_libavformat_a
8406 LIBAVFORMAT_SO = $_libavformat_so
8407 LIBPOSTPROC = $_libpostproc
8408 LIBPOSTPROC_A = $_libpostproc_a
8409 LIBPOSTPROC_SO = $_libpostproc_so
8410 LIBSWSCALE = $_libswscale
8411 LIBSWSCALE_A = $_libswscale_a
8412 LIBSWSCALE_SO = $_libswscale_so
8414 CC_O=-o \$@
8415 LD=gcc
8416 CONFIG_STATIC=yes
8417 SRC_PATH=..
8418 BUILD_ROOT=..
8419 LIBPREF=lib
8420 LIBSUF=.a
8421 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8423 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8424 CONFIG_AANDCT=yes
8425 CONFIG_FFT=yes
8426 CONFIG_FFT_MMX=$fft_mmx
8427 CONFIG_GOLOMB=yes
8428 CONFIG_LPC=yes
8429 CONFIG_MDCT=yes
8430 CONFIG_RDFT=yes
8432 CONFIG_BZLIB=$bzlib
8433 CONFIG_ENCODERS=yes
8434 CONFIG_GPL=yes
8435 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8436 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8437 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8438 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8439 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8440 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8441 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8442 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8443 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8444 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8445 CONFIG_LIBX264_ENCODER=$_x264_lavc
8446 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8447 CONFIG_MLIB = $_mlib
8448 CONFIG_MUXERS=$_mencoder
8449 CONFIG_POSTPROC = yes
8450 # Prevent building libavcodec/imgresample.c with conflicting symbols
8451 CONFIG_SWSCALE=yes
8452 CONFIG_VDPAU=$_vdpau
8453 CONFIG_XVMC=$_xvmc
8454 CONFIG_ZLIB=$_zlib
8456 HAVE_PTHREADS = $_pthreads
8457 HAVE_SHM = $_shm
8458 HAVE_W32THREADS = $_w32threads
8459 HAVE_YASM = $_have_yasm
8461 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8462 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8463 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8464 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8465 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8466 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8467 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8470 #############################################################################
8472 ff_config_enable () {
8473 _nprefix=$3;
8474 test -z "$_nprefix" && _nprefix='CONFIG'
8475 for part in $1; do
8476 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8477 echo "#define ${_nprefix}_$part 1"
8478 else
8479 echo "#define ${_nprefix}_$part 0"
8481 done
8484 echo "Creating config.h"
8485 cat > $TMPH << EOF
8486 /*----------------------------------------------------------------------------
8487 ** This file has been automatically generated by configure any changes in it
8488 ** will be lost when you run configure again.
8489 ** Instead of modifying definitions here, use the --enable/--disable options
8490 ** of the configure script! See ./configure --help for details.
8491 *---------------------------------------------------------------------------*/
8493 #ifndef MPLAYER_CONFIG_H
8494 #define MPLAYER_CONFIG_H
8496 /* Undefine this if you do not want to select mono audio (left or right)
8497 with a stereo MPEG layer 2/3 audio stream. The command line option
8498 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8499 right-only), with 0 being the default.
8501 #define CONFIG_FAKE_MONO 1
8503 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8504 #define MAX_OUTBURST 65536
8506 /* set up audio OUTBURST. Do not change this! */
8507 #define OUTBURST 512
8509 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8510 #undef FAST_OSD
8511 #undef FAST_OSD_TABLE
8513 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8514 #define MPEG12_POSTPROC 1
8515 #define ATTRIBUTE_ALIGNED_MAX 16
8519 #define CONFIGURATION "$_configuration"
8521 #define MPLAYER_DATADIR "$_datadir"
8522 #define MPLAYER_CONFDIR "$_confdir"
8523 #define MPLAYER_LIBDIR "$_libdir"
8525 /* definitions needed by included libraries */
8526 #define HAVE_INTTYPES_H 1
8527 /* libmpeg2 + FFmpeg */
8528 $def_fast_inttypes
8529 /* libdvdcss */
8530 #define HAVE_ERRNO_H 1
8531 /* libdvdcss + libdvdread */
8532 #define HAVE_LIMITS_H 1
8533 /* libdvdcss + libfaad2 */
8534 #define HAVE_UNISTD_H 1
8535 /* libfaad2 + libdvdread */
8536 #define STDC_HEADERS 1
8537 #define HAVE_MEMCPY 1
8538 /* libfaad2 */
8539 #define HAVE_STRING_H 1
8540 #define HAVE_STRINGS_H 1
8541 #define HAVE_SYS_STAT_H 1
8542 #define HAVE_SYS_TYPES_H 1
8543 /* libdvdnav */
8544 #define READ_CACHE_TRACE 0
8545 /* libdvdread */
8546 #define HAVE_DLFCN_H 1
8547 $def_dvdcss
8550 /* system headers */
8551 $def_alloca_h
8552 $def_alsa_asoundlib_h
8553 $def_altivec_h
8554 $def_malloc_h
8555 $def_mman_h
8556 $def_mman_has_map_failed
8557 $def_soundcard_h
8558 $def_sys_asoundlib_h
8559 $def_sys_soundcard_h
8560 $def_sys_sysinfo_h
8561 $def_termios_h
8562 $def_termios_sys_h
8563 $def_winsock2_h
8566 /* system functions */
8567 $def_gethostbyname2
8568 $def_gettimeofday
8569 $def_glob
8570 $def_langinfo
8571 $def_llrint
8572 $def_log2
8573 $def_lrint
8574 $def_lrintf
8575 $def_map_memalign
8576 $def_memalign
8577 $def_nanosleep
8578 $def_posix_select
8579 $def_round
8580 $def_roundf
8581 $def_select
8582 $def_setenv
8583 $def_shm
8584 $def_strsep
8585 $def_swab
8586 $def_sysi86
8587 $def_sysi86_iv
8588 $def_termcap
8589 $def_termios
8590 $def_truncf
8591 $def_vsscanf
8594 /* system-specific features */
8595 $def_asmalign_pot
8596 $def_builtin_expect
8597 $def_dl
8598 $def_extern_asm
8599 $def_extern_prefix
8600 $def_iconv
8601 $def_kstat
8602 $def_macosx_bundle
8603 $def_macosx_finder
8604 $def_maemo
8605 $def_named_asm_args
8606 $def_priority
8607 $def_quicktime
8608 $def_restrict_keyword
8609 $def_rtc
8610 $def_unrar_exec
8613 /* configurable options */
8614 $def_charset
8615 $def_crash_debug
8616 $def_debug
8617 $def_dynamic_plugins
8618 $def_fastmemcpy
8619 $def_menu
8620 $def_runtime_cpudetection
8621 $def_sighandler
8622 $def_sortsub
8623 $def_stream_cache
8624 $def_pthread_cache
8627 /* CPU stuff */
8628 #define __CPU__ $iproc
8629 $def_words_endian
8630 $def_bigendian
8631 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8632 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8635 /* DVD/VCD/CD */
8636 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8637 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8638 $def_bsdi_dvd
8639 $def_cddb
8640 $def_cdio
8641 $def_cdparanoia
8642 $def_cdrom
8643 $def_dvd
8644 $def_dvd_bsd
8645 $def_dvd_darwin
8646 $def_dvd_linux
8647 $def_dvd_openbsd
8648 $def_dvdio
8649 $def_dvdnav
8650 $def_dvdread
8651 $def_hpux_scsi_h
8652 $def_libcdio
8653 $def_sol_scsi_h
8654 $def_vcd
8657 /* codec libraries */
8658 $def_faac
8659 $def_faad
8660 $def_faad_internal
8661 $def_liba52
8662 $def_liba52_internal
8663 $def_libdca
8664 $def_libdv
8665 $def_liblzo
8666 $def_libmpeg2
8667 $def_mad
8668 $def_mp3lame
8669 $def_mp3lame_preset
8670 $def_mp3lame_preset_medium
8671 $def_mp3lib
8672 $def_musepack
8673 $def_speex
8674 $def_theora
8675 $def_toolame
8676 $def_tremor
8677 $def_twolame
8678 $def_vorbis
8679 $def_x264
8680 $def_xvid
8681 $def_zlib
8683 $def_libnut
8686 /* binary codecs */
8687 $def_qtx
8688 $def_qtx_win32
8689 $def_real
8690 $def_real_path
8691 $def_win32_loader
8692 $def_win32dll
8693 #define WIN32_PATH "$_win32codecsdir"
8694 $def_xanim
8695 $def_xanim_path
8696 $def_xmms
8697 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8700 /* GUI */
8701 $def_gtk2
8702 $def_gui
8703 $def_xshape
8706 /* Audio output drivers */
8707 $def_alsa
8708 $def_alsa1x
8709 $def_alsa5
8710 $def_alsa9
8711 $def_arts
8712 $def_coreaudio
8713 $def_dart
8714 $def_esd
8715 $def_esd_latency
8716 $def_jack
8717 $def_nas
8718 $def_openal
8719 $def_openal_h
8720 $def_ossaudio
8721 $def_ossaudio_devdsp
8722 $def_ossaudio_devmixer
8723 $def_pulse
8724 $def_sgiaudio
8725 $def_sunaudio
8726 $def_win32waveout
8728 $def_ladspa
8729 $def_libbs2b
8732 /* input */
8733 $def_apple_ir
8734 $def_apple_remote
8735 $def_ioctl_bt848_h_name
8736 $def_ioctl_meteor_h_name
8737 $def_joystick
8738 $def_lirc
8739 $def_lircc
8740 $def_pvr
8741 $def_radio
8742 $def_radio_bsdbt848
8743 $def_radio_capture
8744 $def_radio_v4l
8745 $def_radio_v4l2
8746 $def_tv
8747 $def_tv_bsdbt848
8748 $def_tv_dshow
8749 $def_tv_v4l
8750 $def_tv_v4l1
8751 $def_tv_v4l2
8754 /* font stuff */
8755 $def_ass
8756 $def_bitmap_font
8757 $def_enca
8758 $def_fontconfig
8759 $def_freetype
8760 $def_fribidi
8763 /* networking */
8764 $def_closesocket
8765 $def_ftp
8766 $def_inet6
8767 $def_inet_aton
8768 $def_inet_pton
8769 $def_live
8770 $def_nemesi
8771 $def_network
8772 $def_smb
8773 $def_socklen_t
8774 $def_vstream
8777 /* libvo options */
8778 $def_3dfx
8779 $def_aa
8780 $def_bl
8781 $def_caca
8782 $def_corevideo
8783 $def_dfbmga
8784 $def_dga
8785 $def_dga1
8786 $def_dga2
8787 $def_direct3d
8788 $def_directfb
8789 $def_directfb_version
8790 $def_directx
8791 $def_dvb
8792 $def_dvb_head
8793 $def_dvbin
8794 $def_dxr2
8795 $def_dxr3
8796 $def_fbdev
8797 $def_ggi
8798 $def_ggiwmh
8799 $def_gif
8800 $def_gif_4
8801 $def_gif_tvt_hack
8802 $def_gl
8803 $def_gl_win32
8804 $def_ivtv
8805 $def_jpeg
8806 $def_kva
8807 $def_md5sum
8808 $def_mga
8809 $def_mng
8810 $def_png
8811 $def_pnm
8812 $def_quartz
8813 $def_s3fb
8814 $def_sdl
8815 $def_sdlbuggy
8816 $def_svga
8817 $def_tdfxfb
8818 $def_tdfxvid
8819 $def_tga
8820 $def_v4l2
8821 $def_vdpau
8822 $def_vesa
8823 $def_vidix
8824 $def_vidix_drv_cyberblade
8825 $def_vidix_drv_ivtv
8826 $def_vidix_drv_mach64
8827 $def_vidix_drv_mga
8828 $def_vidix_drv_mga_crtc2
8829 $def_vidix_drv_nvidia
8830 $def_vidix_drv_pm3
8831 $def_vidix_drv_radeon
8832 $def_vidix_drv_rage128
8833 $def_vidix_drv_s3
8834 $def_vidix_drv_sh_veu
8835 $def_vidix_drv_sis
8836 $def_vidix_drv_unichrome
8837 $def_vidix_pfx
8838 $def_vm
8839 $def_wii
8840 $def_x11
8841 $def_xdpms
8842 $def_xf86keysym
8843 $def_xinerama
8844 $def_xmga
8845 $def_xss
8846 $def_xv
8847 $def_xvmc
8848 $def_xvr100
8849 $def_yuv4mpeg
8850 $def_zr
8853 /* FFmpeg */
8854 $def_libavcodec
8855 $def_libavcodec_a
8856 $def_libavcodec_so
8857 $def_libavformat
8858 $def_libavformat_a
8859 $def_libavformat_so
8860 $def_libavutil
8861 $def_libavutil_a
8862 $def_libavutil_so
8863 $def_libpostproc
8864 $def_libpostproc_a
8865 $def_libpostproc_so
8866 $def_libswscale
8867 $def_libswscale_a
8868 $def_libswscale_so
8870 #define CONFIG_DECODERS 1
8871 #define CONFIG_ENCODERS 1
8872 #define CONFIG_DEMUXERS 1
8873 $def_muxers
8875 $def_arpa_inet_h
8876 $def_bswap
8877 $def_bzlib
8878 $def_dcbzl
8879 $def_dos_paths
8880 $def_fast_64bit
8881 $def_fast_unaligned
8882 $def_libavcodec_mpegaudio_hp
8883 $def_memalign_hack
8884 $def_mlib
8885 $def_mkstemp
8886 $def_posix_memalign
8887 $def_pthreads
8888 $def_ten_operands
8889 $def_threads
8890 $def_xform_asm
8891 $def_yasm
8893 #define CONFIG_FASTDIV 0
8894 #define CONFIG_FFSERVER 0
8895 #define CONFIG_GPL 1
8896 #define CONFIG_GRAY 0
8897 #define CONFIG_HARDCODED_TABLES 0
8898 #define CONFIG_LIBVORBIS 0
8899 #define CONFIG_POWERPC_PERF 0
8900 #define CONFIG_SMALL 0
8901 #define CONFIG_SWSCALE 1
8902 #define CONFIG_SWSCALE_ALPHA 1
8904 #define HAVE_ATTRIBUTE_PACKED 1
8905 #define HAVE_GETHRTIME 0
8906 #define HAVE_INLINE_ASM 0
8907 #define HAVE_LDBRX 0
8908 #define HAVE_POLL_H 1
8909 #define HAVE_PPC4XX 0
8910 #define HAVE_VIRTUALALLOC 0
8912 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8913 #define CONFIG_AANDCT 1
8914 #define CONFIG_FFT 1
8915 #define CONFIG_GOLOMB 1
8916 #define CONFIG_LPC 1
8917 #define CONFIG_MDCT 1
8918 #define CONFIG_RDFT 1
8920 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8921 $def_ebx_available
8922 #ifndef MP_DEBUG
8923 #define HAVE_EBP_AVAILABLE 1
8924 #else
8925 #define HAVE_EBP_AVAILABLE 0
8926 #endif
8928 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
8929 #define FFMPEG_LICENSE "GPL version 2 or later"
8931 /* External libraries used through libavcodec. */
8932 $def_faac_lavc
8933 $def_libdirac_lavc
8934 $def_libopencore_amrnb
8935 $def_libopencore_amrwb
8936 $def_libschroedinger_lavc
8937 $def_mp3lame_lavc
8938 $def_x264_lavc
8939 $def_xvid_lavc
8941 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8942 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8943 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8944 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8945 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8946 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8947 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8949 #define CONFIG_H263_VAAPI_HWACCEL 0
8950 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8951 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8952 #define CONFIG_H264_VAAPI_HWACCEL 0
8953 #define CONFIG_VC1_VAAPI_HWACCEL 0
8954 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8956 #endif /* MPLAYER_CONFIG_H */
8959 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8960 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8962 #############################################################################
8964 cat << EOF
8966 Config files successfully generated by ./configure $_configuration !
8968 Install prefix: $_prefix
8969 Data directory: $_datadir
8970 Config direct.: $_confdir
8972 Byte order: $_byte_order
8973 Optimizing for: $_optimizing
8975 Languages:
8976 Messages/GUI: $language_msg
8977 Manual pages: $language_man
8978 Documentation: $language_doc
8980 Enabled optional drivers:
8981 Input: $_inputmodules
8982 Codecs: $_codecmodules
8983 Audio output: $_aomodules
8984 Video output: $_vomodules
8986 Disabled optional drivers:
8987 Input: $_noinputmodules
8988 Codecs: $_nocodecmodules
8989 Audio output: $_noaomodules
8990 Video output: $_novomodules
8992 'config.h' and 'config.mak' contain your configuration options.
8993 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8994 compile *** DO NOT REPORT BUGS if you tweak these files ***
8996 'make' will now compile MPlayer and 'make install' will install it.
8997 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9002 if test "$_mtrr" = yes ; then
9003 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9004 echo
9007 if ! x86_32; then
9008 cat <<EOF
9009 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9010 operating system ($system_name). You may encounter a few files that cannot
9011 be played due to missing open source video/audio codec support.
9017 cat <<EOF
9018 Check $TMPLOG if you wonder why an autodetection failed (make sure
9019 development headers/packages are installed).
9021 NOTE: The --enable-* parameters unconditionally force options on, completely
9022 skipping autodetection. This behavior is unlike what you may be used to from
9023 autoconf-based configure scripts that can decide to override you. This greater
9024 level of control comes at a price. You may have to provide the correct compiler
9025 and linker flags yourself.
9026 If you used one of these options (except --enable-gui and similar ones that
9027 turn on internal features) and experience a compilation or linking failure,
9028 make sure you have passed the necessary compiler/linker flags to configure.
9030 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9034 if test "$_warn_CFLAGS" = yes; then
9035 cat <<EOF
9037 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9038 but:
9040 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9042 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9043 To do so, execute 'CFLAGS= ./configure <options>'
9048 # Last move:
9049 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"