add .mp1/.mp2 mov audio fourcc to ffmp2 codec
[mplayer/glamo.git] / configure
blobd25e42a9a24a12397abf9b27b69094875c2580bd
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-tv-teletext disable TV teletext interface [autodetect]
252 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
253 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
254 --disable-network disable networking [enable]
255 --enable-winsock2_h enable winsock2_h [autodetect]
256 --enable-smb enable Samba (SMB) input [autodetect]
257 --enable-live enable LIVE555 Streaming Media [autodetect]
258 --enable-nemesi enable Nemesi Streaming Media [autodetect]
259 --disable-vcd disable VCD support [autodetect]
260 --disable-dvdnav disable libdvdnav [autodetect]
261 --disable-dvdread disable libdvdread [autodetect]
262 --disable-dvdread-internal disable internal libdvdread [autodetect]
263 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
264 --disable-cdparanoia disable cdparanoia [autodetect]
265 --disable-cddb disable cddb [autodetect]
266 --disable-bitmap-font disable bitmap font support [enable]
267 --disable-freetype disable FreeType 2 font rendering [autodetect]
268 --disable-fontconfig disable fontconfig font lookup [autodetect]
269 --disable-unrarexec disable using of UnRAR executable [enabled]
270 --enable-menu enable OSD menu (not DVD menu) [disabled]
271 --disable-sortsub disable subtitle sorting [enabled]
272 --enable-fribidi enable the FriBiDi libs [autodetect]
273 --disable-enca disable ENCA charset oracle library [autodetect]
274 --disable-maemo disable maemo specific features [autodetect]
275 --enable-macosx-finder enable Mac OS X Finder invocation parameter
276 parsing [disabled]
277 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
278 --disable-inet6 disable IPv6 support [autodetect]
279 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
280 --disable-ftp disable FTP support [enabled]
281 --disable-vstream disable TiVo vstream client support [autodetect]
282 --disable-pthreads disable Posix threads support [autodetect]
283 --disable-w32threads disable Win32 threads support [autodetect]
284 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --disable-liba52-internal disable builtin liba52 [autodetect]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libamr_nb disable libamr narrowband [autodetect]
345 --disable-libamr_wb disable libamr wideband [autodetect]
346 --disable-decoder=DECODER disable specified FFmpeg decoder
347 --enable-decoder=DECODER enable specified FFmpeg decoder
348 --disable-encoder=ENCODER disable specified FFmpeg encoder
349 --enable-encoder=ENCODER enable specified FFmpeg encoder
350 --disable-parser=PARSER disable specified FFmpeg parser
351 --enable-parser=PARSER enable specified FFmpeg parser
352 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --enable-dga2 enable DGA 2 support [autodetect]
367 --enable-dga1 enable DGA 1 support [autodetect]
368 --enable-vesa enable VESA video output [autodetect]
369 --enable-svga enable SVGAlib video output [autodetect]
370 --enable-sdl enable SDL video output [autodetect]
371 --enable-kva enable KVA video output [autodetect]
372 --enable-aa enable AAlib video output [autodetect]
373 --enable-caca enable CACA video output [autodetect]
374 --enable-ggi enable GGI video output [autodetect]
375 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
376 --enable-direct3d enable Direct3D video output [autodetect]
377 --enable-directx enable DirectX video output [autodetect]
378 --enable-dxr2 enable DXR2 video output [autodetect]
379 --enable-dxr3 enable DXR3/H+ video output [autodetect]
380 --enable-ivtv enable IVTV TV-Out video output [autodetect]
381 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
382 --enable-dvb enable DVB video output [autodetect]
383 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-dart disable DART audio output [autodetect]
424 --disable-win32waveout disable Windows waveout audio output [autodetect]
425 --disable-coreaudio disable CoreAudio audio output [autodetect]
426 --disable-select disable using select() on the audio device [enable]
428 Language options:
429 --charset=charset convert the console messages to this character set
430 --language-doc=lang language to use for the documentation [en]
431 --language-man=lang language to use for the man pages [en]
432 --language-msg=lang language to use for the messages and the GUI [en]
433 --language=lang default language to use [en]
434 Specific options override --language. You can pass a list of languages separated
435 by whitespace or commas instead of a single language. Nonexisting translations
436 will be dropped from each list. All documentation and man page translations
437 available in the list will be installed, for the messages the first available
438 translation will be used. The value "all" will activate all translations. The
439 LINGUAS environment variable is honored. In all cases the fallback is English.
440 Available values are: all $msg_lang_all
442 Miscellaneous options:
443 --enable-runtime-cpudetection enable runtime CPU detection [disable]
444 --enable-cross-compile enable cross-compilation [autodetect]
445 --cc=COMPILER C compiler to build MPlayer [gcc]
446 --host-cc=COMPILER C compiler for tools needed while building [gcc]
447 --as=ASSEMBLER assembler to build MPlayer [as]
448 --nm=NM nm tool to build MPlayer [nm]
449 --yasm=YASM Yasm assembler to build MPlayer [yasm]
450 --ar=AR librarian to build MPlayer [ar]
451 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
452 --windres=WINDRES windres to build MPlayer [windres]
453 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
454 --enable-static build a statically linked binary
455 --with-install=PATH path to a custom install program
457 Advanced options:
458 --enable-mmx enable MMX [autodetect]
459 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
460 --enable-3dnow enable 3DNow! [autodetect]
461 --enable-3dnowext enable extended 3DNow! [autodetect]
462 --enable-sse enable SSE [autodetect]
463 --enable-sse2 enable SSE2 [autodetect]
464 --enable-ssse3 enable SSSE3 [autodetect]
465 --enable-shm enable shm [autodetect]
466 --enable-altivec enable AltiVec (PowerPC) [autodetect]
467 --enable-armv5te enable DSP extensions (ARM) [autodetect]
468 --enable-armv6 enable ARMv6 (ARM) [autodetect]
469 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
470 --enable-armvfp enable ARM VFP (ARM) [autodetect]
471 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
472 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
473 --enable-big-endian force byte order to big-endian [autodetect]
474 --enable-debug[=1-3] compile-in debugging information [disable]
475 --enable-profile compile-in profiling information [disable]
476 --disable-sighandler disable sighandler for crashes [enable]
477 --enable-crash-debug enable automatic gdb attach on crash [disable]
478 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
480 Use these options if autodetection fails:
481 --extra-cflags=FLAGS extra CFLAGS
482 --extra-ldflags=FLAGS extra LDFLAGS
483 --extra-libs=FLAGS extra linker flags
484 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
485 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
486 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
488 --with-freetype-config=PATH path to freetype-config
489 --with-fribidi-config=PATH path to fribidi-config
490 --with-glib-config=PATH path to glib*-config
491 --with-gtk-config=PATH path to gtk*-config
492 --with-sdl-config=PATH path to sdl*-config
493 --with-dvdnav-config=PATH path to dvdnav-config
494 --with-dvdread-config=PATH path to dvdread-config
496 This configure script is NOT autoconf-based, even though its output is similar.
497 It will try to autodetect all configuration options. If you --enable an option
498 it will be forcefully turned on, skipping autodetection. This can break
499 compilation, so you need to know what you are doing.
501 exit 0
502 } #show_help()
504 # GOTCHA: the variables below defines the default behavior for autodetection
505 # and have - unless stated otherwise - at least 2 states : yes no
506 # If autodetection is available then the third state is: auto
507 _mmx=auto
508 _3dnow=auto
509 _3dnowext=auto
510 _mmxext=auto
511 _sse=auto
512 _sse2=auto
513 _ssse3=auto
514 _cmov=auto
515 _fast_cmov=auto
516 _armv5te=auto
517 _armv6=auto
518 _armv6t2=auto
519 _armvfp=auto
520 _iwmmxt=auto
521 _mtrr=auto
522 _altivec=auto
523 _install=install
524 _ranlib=ranlib
525 _windres=windres
526 _cc=cc
527 _ar=ar
528 test "$CC" && _cc="$CC"
529 _as=auto
530 _nm=auto
531 _yasm=yasm
532 _runtime_cpudetection=no
533 _cross_compile=auto
534 _prefix="/usr/local"
535 _libavutil_a=auto
536 _libavutil_so=auto
537 _libavcodec_a=auto
538 _libamr_nb=auto
539 _libamr_wb=auto
540 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
541 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
542 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
543 _libavencoders=$(echo $_libavencoders_all | sed 's/ LIB[A-Z0-9_]*_ENCODER//g')
544 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
545 _libavparsers=$_libavparsers_all
546 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavbsfs=$_libavbsfs_all
548 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
549 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER//)
550 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
551 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
552 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
553 _libavcodec_so=auto
554 _libavformat_a=auto
555 _libavformat_so=auto
556 _libpostproc_a=auto
557 _libpostproc_so=auto
558 _libswscale_a=auto
559 _libswscale_so=auto
560 _libavcodec_mpegaudio_hp=yes
561 _mencoder=yes
562 _mplayer=yes
563 _x11=auto
564 _xshape=auto
565 _xss=auto
566 _dga1=auto
567 _dga2=auto
568 _xv=auto
569 _xvmc=no #auto when complete
570 _vdpau=auto
571 _sdl=auto
572 _kva=auto
573 _direct3d=auto
574 _directx=auto
575 _win32waveout=auto
576 _nas=auto
577 _png=auto
578 _mng=auto
579 _jpeg=auto
580 _pnm=yes
581 _md5sum=yes
582 _yuv4mpeg=yes
583 _gif=auto
584 _gl=auto
585 _ggi=auto
586 _ggiwmh=auto
587 _aa=auto
588 _caca=auto
589 _svga=auto
590 _vesa=auto
591 _fbdev=auto
592 _dvb=auto
593 _dvbhead=auto
594 _dxr2=auto
595 _dxr3=auto
596 _ivtv=auto
597 _v4l2=auto
598 _iconv=auto
599 _langinfo=auto
600 _rtc=auto
601 _ossaudio=auto
602 _arts=auto
603 _esd=auto
604 _pulse=auto
605 _jack=auto
606 _dart=auto
607 _openal=auto
608 _libcdio=auto
609 _liblzo=auto
610 _mad=auto
611 _mp3lame=auto
612 _mp3lame_lavc=auto
613 _toolame=auto
614 _twolame=auto
615 _tremor=auto
616 _tremor_internal=yes
617 _tremor_low=no
618 _libvorbis=auto
619 _speex=auto
620 _theora=auto
621 _mp3lib=auto
622 _liba52=auto
623 _liba52_internal=auto
624 _libdca=auto
625 _libmpeg2=auto
626 _faad=auto
627 _faad_internal=auto
628 _faad_fixed=no
629 _faac=auto
630 _faac_lavc=auto
631 _ladspa=auto
632 _libbs2b=auto
633 _xmms=no
634 _vcd=auto
635 _dvdnav=auto
636 _dvdnavconfig=dvdnav-config
637 _dvdreadconfig=dvdread-config
638 _dvdread=auto
639 _dvdread_internal=auto
640 _libdvdcss_internal=auto
641 _xanim=auto
642 _real=auto
643 _live=auto
644 _nemesi=auto
645 _native_rtsp=yes
646 _xinerama=auto
647 _mga=auto
648 _xmga=auto
649 _vm=auto
650 _xf86keysym=auto
651 _mlib=no #broken, thus disabled
652 _sgiaudio=auto
653 _sunaudio=auto
654 _alsa=auto
655 _fastmemcpy=yes
656 _unrar_exec=auto
657 _win32dll=auto
658 _select=yes
659 _radio=no
660 _radio_capture=no
661 _radio_v4l=auto
662 _radio_v4l2=auto
663 _radio_bsdbt848=auto
664 _tv=yes
665 _tv_v4l1=auto
666 _tv_v4l2=auto
667 _tv_bsdbt848=auto
668 _tv_dshow=auto
669 _tv_teletext=auto
670 _pvr=auto
671 _network=yes
672 _winsock2_h=auto
673 _smb=auto
674 _vidix=auto
675 _vidix_pcidb=yes
676 _dhahelper=no
677 _svgalib_helper=no
678 _joystick=no
679 _xvid=auto
680 _xvid_lavc=auto
681 _x264=auto
682 _x264_lavc=auto
683 _libdirac_lavc=auto
684 _libschroedinger_lavc=auto
685 _libnut=auto
686 _lirc=auto
687 _lircc=auto
688 _apple_remote=auto
689 _apple_ir=auto
690 _gui=no
691 _gtk1=no
692 _termcap=auto
693 _termios=auto
694 _3dfx=no
695 _s3fb=no
696 _wii=no
697 _tdfxfb=no
698 _tdfxvid=no
699 _xvr100=auto
700 _tga=yes
701 _directfb=auto
702 _zr=auto
703 _bl=no
704 _largefiles=yes
705 #language=en
706 _shm=auto
707 _linux_devfs=no
708 _charset="UTF-8"
709 _dynamic_plugins=no
710 _crash_debug=no
711 _sighandler=yes
712 _libdv=auto
713 _cdparanoia=auto
714 _cddb=auto
715 _big_endian=auto
716 _bitmap_font=yes
717 _freetype=auto
718 _fontconfig=auto
719 _menu=no
720 _qtx=auto
721 _maemo=auto
722 _coreaudio=auto
723 _corevideo=auto
724 _quartz=auto
725 _macosx_finder=no
726 _macosx_bundle=auto
727 _sortsub=yes
728 _freetypeconfig='freetype-config'
729 _fribidi=auto
730 _fribidiconfig='fribidi-config'
731 _enca=auto
732 _inet6=auto
733 _gethostbyname2=auto
734 _ftp=yes
735 _musepack=auto
736 _vstream=auto
737 _pthreads=auto
738 _w32threads=auto
739 _ass=auto
740 _rpath=no
741 _asmalign_pot=auto
742 _stream_cache=yes
743 _priority=no
744 def_dos_paths="#define HAVE_DOS_PATHS 0"
745 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
746 def_priority="#undef CONFIG_PRIORITY"
747 def_pthread_cache="#undef PTHREAD_CACHE"
748 _need_shmem=yes
749 for ac_option do
750 case "$ac_option" in
751 --help|-help|-h)
752 show_help
754 --prefix=*)
755 _prefix=$(echo $ac_option | cut -d '=' -f 2)
757 --bindir=*)
758 _bindir=$(echo $ac_option | cut -d '=' -f 2)
760 --datadir=*)
761 _datadir=$(echo $ac_option | cut -d '=' -f 2)
763 --mandir=*)
764 _mandir=$(echo $ac_option | cut -d '=' -f 2)
766 --confdir=*)
767 _confdir=$(echo $ac_option | cut -d '=' -f 2)
769 --libdir=*)
770 _libdir=$(echo $ac_option | cut -d '=' -f 2)
772 --codecsdir=*)
773 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
775 --win32codecsdir=*)
776 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
778 --xanimcodecsdir=*)
779 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
781 --realcodecsdir=*)
782 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
785 --with-install=*)
786 _install=$(echo $ac_option | cut -d '=' -f 2 )
788 --with-xvmclib=*)
789 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
792 --with-sdl-config=*)
793 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
795 --with-freetype-config=*)
796 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
798 --with-fribidi-config=*)
799 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
801 --with-gtk-config=*)
802 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
804 --with-glib-config=*)
805 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
807 --with-dvdnav-config=*)
808 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
810 --with-dvdread-config=*)
811 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
814 --extra-cflags=*)
815 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
817 --extra-ldflags=*)
818 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
820 --extra-libs=*)
821 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
823 --extra-libs-mplayer=*)
824 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
826 --extra-libs-mencoder=*)
827 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
830 --target=*)
831 _target=$(echo $ac_option | cut -d '=' -f 2)
833 --cc=*)
834 _cc=$(echo $ac_option | cut -d '=' -f 2)
836 --host-cc=*)
837 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
839 --as=*)
840 _as=$(echo $ac_option | cut -d '=' -f 2)
842 --nm=*)
843 _nm=$(echo $ac_option | cut -d '=' -f 2)
845 --yasm=*)
846 _yasm=$(echo $ac_option | cut -d '=' -f 2)
848 --ar=*)
849 _ar=$(echo $ac_option | cut -d '=' -f 2)
851 --ranlib=*)
852 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
854 --windres=*)
855 _windres=$(echo $ac_option | cut -d '=' -f 2)
857 --charset=*)
858 _charset=$(echo $ac_option | cut -d '=' -f 2)
860 --language-doc=*)
861 language_doc=$(echo $ac_option | cut -d '=' -f 2)
863 --language-man=*)
864 language_man=$(echo $ac_option | cut -d '=' -f 2)
866 --language-msg=*)
867 language_msg=$(echo $ac_option | cut -d '=' -f 2)
869 --language=*)
870 language=$(echo $ac_option | cut -d '=' -f 2)
873 --enable-static)
874 _ld_static='-static'
876 --disable-static)
877 _ld_static=''
879 --enable-profile)
880 _profile='-p'
882 --disable-profile)
883 _profile=
885 --enable-debug)
886 _debug='-g'
888 --enable-debug=*)
889 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
891 --disable-debug)
892 _debug=
894 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
895 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
896 --enable-cross-compile) _cross_compile=yes ;;
897 --disable-cross-compile) _cross_compile=no ;;
898 --enable-mencoder) _mencoder=yes ;;
899 --disable-mencoder) _mencoder=no ;;
900 --enable-mplayer) _mplayer=yes ;;
901 --disable-mplayer) _mplayer=no ;;
902 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
903 --disable-dynamic-plugins) _dynamic_plugins=no ;;
904 --enable-x11) _x11=yes ;;
905 --disable-x11) _x11=no ;;
906 --enable-xshape) _xshape=yes ;;
907 --disable-xshape) _xshape=no ;;
908 --enable-xss) _xss=yes ;;
909 --disable-xss) _xss=no ;;
910 --enable-xv) _xv=yes ;;
911 --disable-xv) _xv=no ;;
912 --enable-xvmc) _xvmc=yes ;;
913 --disable-xvmc) _xvmc=no ;;
914 --enable-vdpau) _vdpau=yes ;;
915 --disable-vdpau) _vdpau=no ;;
916 --enable-sdl) _sdl=yes ;;
917 --disable-sdl) _sdl=no ;;
918 --enable-kva) _kva=yes ;;
919 --disable-kva) _kva=no ;;
920 --enable-direct3d) _direct3d=yes ;;
921 --disable-direct3d) _direct3d=no ;;
922 --enable-directx) _directx=yes ;;
923 --disable-directx) _directx=no ;;
924 --enable-win32waveout) _win32waveout=yes ;;
925 --disable-win32waveout) _win32waveout=no ;;
926 --enable-nas) _nas=yes ;;
927 --disable-nas) _nas=no ;;
928 --enable-png) _png=yes ;;
929 --disable-png) _png=no ;;
930 --enable-mng) _mng=yes ;;
931 --disable-mng) _mng=no ;;
932 --enable-jpeg) _jpeg=yes ;;
933 --disable-jpeg) _jpeg=no ;;
934 --enable-pnm) _pnm=yes ;;
935 --disable-pnm) _pnm=no ;;
936 --enable-md5sum) _md5sum=yes ;;
937 --disable-md5sum) _md5sum=no ;;
938 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
939 --disable-yuv4mpeg) _yuv4mpeg=no ;;
940 --enable-gif) _gif=yes ;;
941 --disable-gif) _gif=no ;;
942 --enable-gl) _gl=yes ;;
943 --disable-gl) _gl=no ;;
944 --enable-ggi) _ggi=yes ;;
945 --disable-ggi) _ggi=no ;;
946 --enable-ggiwmh) _ggiwmh=yes ;;
947 --disable-ggiwmh) _ggiwmh=no ;;
948 --enable-aa) _aa=yes ;;
949 --disable-aa) _aa=no ;;
950 --enable-caca) _caca=yes ;;
951 --disable-caca) _caca=no ;;
952 --enable-svga) _svga=yes ;;
953 --disable-svga) _svga=no ;;
954 --enable-vesa) _vesa=yes ;;
955 --disable-vesa) _vesa=no ;;
956 --enable-fbdev) _fbdev=yes ;;
957 --disable-fbdev) _fbdev=no ;;
958 --enable-dvb) _dvb=yes ;;
959 --disable-dvb) _dvb=no ;;
960 --enable-dvbhead) _dvbhead=yes ;;
961 --disable-dvbhead) _dvbhead=no ;;
962 --enable-dxr2) _dxr2=yes ;;
963 --disable-dxr2) _dxr2=no ;;
964 --enable-dxr3) _dxr3=yes ;;
965 --disable-dxr3) _dxr3=no ;;
966 --enable-ivtv) _ivtv=yes ;;
967 --disable-ivtv) _ivtv=no ;;
968 --enable-v4l2) _v4l2=yes ;;
969 --disable-v4l2) _v4l2=no ;;
970 --enable-iconv) _iconv=yes ;;
971 --disable-iconv) _iconv=no ;;
972 --enable-langinfo) _langinfo=yes ;;
973 --disable-langinfo) _langinfo=no ;;
974 --enable-rtc) _rtc=yes ;;
975 --disable-rtc) _rtc=no ;;
976 --enable-libdv) _libdv=yes ;;
977 --disable-libdv) _libdv=no ;;
978 --enable-ossaudio) _ossaudio=yes ;;
979 --disable-ossaudio) _ossaudio=no ;;
980 --enable-arts) _arts=yes ;;
981 --disable-arts) _arts=no ;;
982 --enable-esd) _esd=yes ;;
983 --disable-esd) _esd=no ;;
984 --enable-pulse) _pulse=yes ;;
985 --disable-pulse) _pulse=no ;;
986 --enable-jack) _jack=yes ;;
987 --disable-jack) _jack=no ;;
988 --enable-openal) _openal=yes ;;
989 --disable-openal) _openal=no ;;
990 --enable-dart) _dart=yes ;;
991 --disable-dart) _dart=no ;;
992 --enable-mad) _mad=yes ;;
993 --disable-mad) _mad=no ;;
994 --enable-mp3lame) _mp3lame=yes ;;
995 --disable-mp3lame) _mp3lame=no ;;
996 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
997 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
998 --enable-toolame) _toolame=yes ;;
999 --disable-toolame) _toolame=no ;;
1000 --enable-twolame) _twolame=yes ;;
1001 --disable-twolame) _twolame=no ;;
1002 --enable-libcdio) _libcdio=yes ;;
1003 --disable-libcdio) _libcdio=no ;;
1004 --enable-liblzo) _liblzo=yes ;;
1005 --disable-liblzo) _liblzo=no ;;
1006 --enable-libvorbis) _libvorbis=yes ;;
1007 --disable-libvorbis) _libvorbis=no ;;
1008 --enable-speex) _speex=yes ;;
1009 --disable-speex) _speex=no ;;
1010 --enable-tremor) _tremor=yes ;;
1011 --disable-tremor) _tremor=no ;;
1012 --enable-tremor-internal) _tremor_internal=yes ;;
1013 --disable-tremor-internal) _tremor_internal=no ;;
1014 --enable-tremor-low) _tremor_low=yes ;;
1015 --disable-tremor-low) _tremor_low=no ;;
1016 --enable-theora) _theora=yes ;;
1017 --disable-theora) _theora=no ;;
1018 --enable-mp3lib) _mp3lib=yes ;;
1019 --disable-mp3lib) _mp3lib=no ;;
1020 --enable-liba52-internal) _liba52_internal=yes ;;
1021 --disable-liba52-internal) _liba52_internal=no ;;
1022 --enable-liba52) _liba52=yes ;;
1023 --disable-liba52) _liba52=no ;;
1024 --enable-libdca) _libdca=yes ;;
1025 --disable-libdca) _libdca=no ;;
1026 --enable-libmpeg2) _libmpeg2=yes ;;
1027 --disable-libmpeg2) _libmpeg2=no ;;
1028 --enable-musepack) _musepack=yes ;;
1029 --disable-musepack) _musepack=no ;;
1030 --enable-faad) _faad=yes ;;
1031 --disable-faad) _faad=no ;;
1032 --enable-faad-internal) _faad_internal=yes ;;
1033 --disable-faad-internal) _faad_internal=no ;;
1034 --enable-faad-fixed) _faad_fixed=yes ;;
1035 --disable-faad-fixed) _faad_fixed=no ;;
1036 --enable-faac) _faac=yes ;;
1037 --disable-faac) _faac=no ;;
1038 --enable-faac-lavc) _faac_lavc=yes ;;
1039 --disable-faac-lavc) _faac_lavc=no ;;
1040 --enable-ladspa) _ladspa=yes ;;
1041 --disable-ladspa) _ladspa=no ;;
1042 --enable-libbs2b) _libbs2b=yes ;;
1043 --disable-libbs2b) _libbs2b=no ;;
1044 --enable-xmms) _xmms=yes ;;
1045 --disable-xmms) _xmms=no ;;
1046 --enable-vcd) _vcd=yes ;;
1047 --disable-vcd) _vcd=no ;;
1048 --enable-dvdread) _dvdread=yes ;;
1049 --disable-dvdread) _dvdread=no ;;
1050 --enable-dvdread-internal) _dvdread_internal=yes ;;
1051 --disable-dvdread-internal) _dvdread_internal=no ;;
1052 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1053 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1054 --enable-dvdnav) _dvdnav=yes ;;
1055 --disable-dvdnav) _dvdnav=no ;;
1056 --enable-xanim) _xanim=yes ;;
1057 --disable-xanim) _xanim=no ;;
1058 --enable-real) _real=yes ;;
1059 --disable-real) _real=no ;;
1060 --enable-live) _live=yes ;;
1061 --disable-live) _live=no ;;
1062 --enable-nemesi) _nemesi=yes ;;
1063 --disable-nemesi) _nemesi=no ;;
1064 --enable-xinerama) _xinerama=yes ;;
1065 --disable-xinerama) _xinerama=no ;;
1066 --enable-mga) _mga=yes ;;
1067 --disable-mga) _mga=no ;;
1068 --enable-xmga) _xmga=yes ;;
1069 --disable-xmga) _xmga=no ;;
1070 --enable-vm) _vm=yes ;;
1071 --disable-vm) _vm=no ;;
1072 --enable-xf86keysym) _xf86keysym=yes ;;
1073 --disable-xf86keysym) _xf86keysym=no ;;
1074 --enable-mlib) _mlib=yes ;;
1075 --disable-mlib) _mlib=no ;;
1076 --enable-sunaudio) _sunaudio=yes ;;
1077 --disable-sunaudio) _sunaudio=no ;;
1078 --enable-sgiaudio) _sgiaudio=yes ;;
1079 --disable-sgiaudio) _sgiaudio=no ;;
1080 --enable-alsa) _alsa=yes ;;
1081 --disable-alsa) _alsa=no ;;
1082 --enable-tv) _tv=yes ;;
1083 --disable-tv) _tv=no ;;
1084 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1085 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1086 --enable-tv-v4l1) _tv_v4l1=yes ;;
1087 --disable-tv-v4l1) _tv_v4l1=no ;;
1088 --enable-tv-v4l2) _tv_v4l2=yes ;;
1089 --disable-tv-v4l2) _tv_v4l2=no ;;
1090 --enable-tv-dshow) _tv_dshow=yes ;;
1091 --disable-tv-dshow) _tv_dshow=no ;;
1092 --enable-tv-teletext) _tv_teletext=yes ;;
1093 --disable-tv-teletext) _tv_teletext=no ;;
1094 --enable-radio) _radio=yes ;;
1095 --enable-radio-capture) _radio_capture=yes ;;
1096 --disable-radio-capture) _radio_capture=no ;;
1097 --disable-radio) _radio=no ;;
1098 --enable-radio-v4l) _radio_v4l=yes ;;
1099 --disable-radio-v4l) _radio_v4l=no ;;
1100 --enable-radio-v4l2) _radio_v4l2=yes ;;
1101 --disable-radio-v4l2) _radio_v4l2=no ;;
1102 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1103 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1104 --enable-pvr) _pvr=yes ;;
1105 --disable-pvr) _pvr=no ;;
1106 --enable-fastmemcpy) _fastmemcpy=yes ;;
1107 --disable-fastmemcpy) _fastmemcpy=no ;;
1108 --enable-network) _network=yes ;;
1109 --disable-network) _network=no ;;
1110 --enable-winsock2_h) _winsock2_h=yes ;;
1111 --disable-winsock2_h) _winsock2_h=no ;;
1112 --enable-smb) _smb=yes ;;
1113 --disable-smb) _smb=no ;;
1114 --enable-vidix) _vidix=yes ;;
1115 --disable-vidix) _vidix=no ;;
1116 --with-vidix-drivers=*)
1117 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1119 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1120 --enable-dhahelper) _dhahelper=yes ;;
1121 --disable-dhahelper) _dhahelper=no ;;
1122 --enable-svgalib_helper) _svgalib_helper=yes ;;
1123 --disable-svgalib_helper) _svgalib_helper=no ;;
1124 --enable-joystick) _joystick=yes ;;
1125 --disable-joystick) _joystick=no ;;
1126 --enable-xvid) _xvid=yes ;;
1127 --disable-xvid) _xvid=no ;;
1128 --enable-xvid-lavc) _xvid_lavc=yes ;;
1129 --disable-xvid-lavc) _xvid_lavc=no ;;
1130 --enable-x264) _x264=yes ;;
1131 --disable-x264) _x264=no ;;
1132 --enable-x264-lavc) _x264_lavc=yes ;;
1133 --disable-x264-lavc) _x264_lavc=no ;;
1134 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1135 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1136 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1137 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1138 --enable-libnut) _libnut=yes ;;
1139 --disable-libnut) _libnut=no ;;
1140 --enable-libavutil_a) _libavutil_a=yes ;;
1141 --disable-libavutil_a) _libavutil_a=no ;;
1142 --enable-libavutil_so) _libavutil_so=yes ;;
1143 --disable-libavutil_so) _libavutil_so=no ;;
1144 --enable-libavcodec_a) _libavcodec_a=yes ;;
1145 --disable-libavcodec_a) _libavcodec_a=no ;;
1146 --enable-libavcodec_so) _libavcodec_so=yes ;;
1147 --disable-libavcodec_so) _libavcodec_so=no ;;
1148 --enable-libamr_nb) _libamr_nb=yes ;;
1149 --disable-libamr_nb) _libamr_nb=no ;;
1150 --enable-libamr_wb) _libamr_wb=yes ;;
1151 --disable-libamr_wb) _libamr_wb=no ;;
1152 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2)" ;;
1153 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1154 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2)" ;;
1155 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1156 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2)" ;;
1157 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1158 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2)" ;;
1159 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1160 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2)" ;;
1161 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;;
1162 --enable-libavformat_a) _libavformat_a=yes ;;
1163 --disable-libavformat_a) _libavformat_a=no ;;
1164 --enable-libavformat_so) _libavformat_so=yes ;;
1165 --disable-libavformat_so) _libavformat_so=no ;;
1166 --enable-libpostproc_a) _libpostproc_a=yes ;;
1167 --disable-libpostproc_a) _libpostproc_a=no ;;
1168 --enable-libpostproc_so) _libpostproc_so=yes ;;
1169 --disable-libpostproc_so) _libpostproc_so=no ;;
1170 --enable-libswscale_a) _libswscale_a=yes ;;
1171 --disable-libswscale_a) _libswscale_a=no ;;
1172 --enable-libswscale_so) _libswscale_so=yes ;;
1173 --disable-libswscale_so) _libswscale_so=no ;;
1174 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1175 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1177 --enable-lirc) _lirc=yes ;;
1178 --disable-lirc) _lirc=no ;;
1179 --enable-lircc) _lircc=yes ;;
1180 --disable-lircc) _lircc=no ;;
1181 --enable-apple-remote) _apple_remote=yes ;;
1182 --disable-apple-remote) _apple_remote=no ;;
1183 --enable-apple-ir) _apple_ir=yes ;;
1184 --disable-apple-ir) _apple_ir=no ;;
1185 --enable-gui) _gui=yes ;;
1186 --disable-gui) _gui=no ;;
1187 --enable-gtk1) _gtk1=yes ;;
1188 --disable-gtk1) _gtk1=no ;;
1189 --enable-termcap) _termcap=yes ;;
1190 --disable-termcap) _termcap=no ;;
1191 --enable-termios) _termios=yes ;;
1192 --disable-termios) _termios=no ;;
1193 --enable-3dfx) _3dfx=yes ;;
1194 --disable-3dfx) _3dfx=no ;;
1195 --enable-s3fb) _s3fb=yes ;;
1196 --disable-s3fb) _s3fb=no ;;
1197 --enable-wii) _wii=yes ;;
1198 --disable-wii) _wii=no ;;
1199 --enable-tdfxfb) _tdfxfb=yes ;;
1200 --disable-tdfxfb) _tdfxfb=no ;;
1201 --disable-tdfxvid) _tdfxvid=no ;;
1202 --enable-tdfxvid) _tdfxvid=yes ;;
1203 --disable-xvr100) _xvr100=no ;;
1204 --enable-xvr100) _xvr100=yes ;;
1205 --disable-tga) _tga=no ;;
1206 --enable-tga) _tga=yes ;;
1207 --enable-directfb) _directfb=yes ;;
1208 --disable-directfb) _directfb=no ;;
1209 --enable-zr) _zr=yes ;;
1210 --disable-zr) _zr=no ;;
1211 --enable-bl) _bl=yes ;;
1212 --disable-bl) _bl=no ;;
1213 --enable-mtrr) _mtrr=yes ;;
1214 --disable-mtrr) _mtrr=no ;;
1215 --enable-largefiles) _largefiles=yes ;;
1216 --disable-largefiles) _largefiles=no ;;
1217 --enable-shm) _shm=yes ;;
1218 --disable-shm) _shm=no ;;
1219 --enable-select) _select=yes ;;
1220 --disable-select) _select=no ;;
1221 --enable-linux-devfs) _linux_devfs=yes ;;
1222 --disable-linux-devfs) _linux_devfs=no ;;
1223 --enable-cdparanoia) _cdparanoia=yes ;;
1224 --disable-cdparanoia) _cdparanoia=no ;;
1225 --enable-cddb) _cddb=yes ;;
1226 --disable-cddb) _cddb=no ;;
1227 --enable-big-endian) _big_endian=yes ;;
1228 --disable-big-endian) _big_endian=no ;;
1229 --enable-bitmap-font) _bitmap_font=yes ;;
1230 --disable-bitmap-font) _bitmap_font=no ;;
1231 --enable-freetype) _freetype=yes ;;
1232 --disable-freetype) _freetype=no ;;
1233 --enable-fontconfig) _fontconfig=yes ;;
1234 --disable-fontconfig) _fontconfig=no ;;
1235 --enable-unrarexec) _unrar_exec=yes ;;
1236 --disable-unrarexec) _unrar_exec=no ;;
1237 --enable-ftp) _ftp=yes ;;
1238 --disable-ftp) _ftp=no ;;
1239 --enable-vstream) _vstream=yes ;;
1240 --disable-vstream) _vstream=no ;;
1241 --enable-pthreads) _pthreads=yes ;;
1242 --disable-pthreads) _pthreads=no ;;
1243 --enable-w32threads) _w32threads=yes ;;
1244 --disable-w32threads) _w32threads=no ;;
1245 --enable-ass) _ass=yes ;;
1246 --disable-ass) _ass=no ;;
1247 --enable-rpath) _rpath=yes ;;
1248 --disable-rpath) _rpath=no ;;
1250 --enable-fribidi) _fribidi=yes ;;
1251 --disable-fribidi) _fribidi=no ;;
1253 --enable-enca) _enca=yes ;;
1254 --disable-enca) _enca=no ;;
1256 --enable-inet6) _inet6=yes ;;
1257 --disable-inet6) _inet6=no ;;
1259 --enable-gethostbyname2) _gethostbyname2=yes ;;
1260 --disable-gethostbyname2) _gethostbyname2=no ;;
1262 --enable-dga1) _dga1=yes ;;
1263 --disable-dga1) _dga1=no ;;
1264 --enable-dga2) _dga2=yes ;;
1265 --disable-dga2) _dga2=no ;;
1267 --enable-menu) _menu=yes ;;
1268 --disable-menu) _menu=no ;;
1270 --enable-qtx) _qtx=yes ;;
1271 --disable-qtx) _qtx=no ;;
1273 --enable-coreaudio) _coreaudio=yes ;;
1274 --disable-coreaudio) _coreaudio=no ;;
1275 --enable-corevideo) _corevideo=yes ;;
1276 --disable-corevideo) _corevideo=no ;;
1277 --enable-quartz) _quartz=yes ;;
1278 --disable-quartz) _quartz=no ;;
1279 --enable-macosx-finder) _macosx_finder=yes ;;
1280 --disable-macosx-finder) _macosx_finder=no ;;
1281 --enable-macosx-bundle) _macosx_bundle=yes;;
1282 --disable-macosx-bundle) _macosx_bundle=no;;
1284 --enable-maemo) _maemo=yes ;;
1285 --disable-maemo) _maemo=no ;;
1287 --enable-sortsub) _sortsub=yes ;;
1288 --disable-sortsub) _sortsub=no ;;
1290 --enable-crash-debug) _crash_debug=yes ;;
1291 --disable-crash-debug) _crash_debug=no ;;
1292 --enable-sighandler) _sighandler=yes ;;
1293 --disable-sighandler) _sighandler=no ;;
1294 --enable-win32dll) _win32dll=yes ;;
1295 --disable-win32dll) _win32dll=no ;;
1297 --enable-sse) _sse=yes ;;
1298 --disable-sse) _sse=no ;;
1299 --enable-sse2) _sse2=yes ;;
1300 --disable-sse2) _sse2=no ;;
1301 --enable-ssse3) _ssse3=yes ;;
1302 --disable-ssse3) _ssse3=no ;;
1303 --enable-mmxext) _mmxext=yes ;;
1304 --disable-mmxext) _mmxext=no ;;
1305 --enable-3dnow) _3dnow=yes ;;
1306 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1307 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1308 --disable-3dnowext) _3dnowext=no ;;
1309 --enable-cmov) _cmov=yes ;;
1310 --disable-cmov) _cmov=no ;;
1311 --enable-fast-cmov) _fast_cmov=yes ;;
1312 --disable-fast-cmov) _fast_cmov=no ;;
1313 --enable-altivec) _altivec=yes ;;
1314 --disable-altivec) _altivec=no ;;
1315 --enable-armv5te) _armv5te=yes ;;
1316 --disable-armv5te) _armv5te=no ;;
1317 --enable-armv6) _armv6=yes ;;
1318 --disable-armv6) _armv6=no ;;
1319 --enable-armv6t2) _armv6t2=yes ;;
1320 --disable-armv6t2) _armv6t2=no ;;
1321 --enable-armvfp) _armvfp=yes ;;
1322 --disable-armvfp) _armvfp=no ;;
1323 --enable-iwmmxt) _iwmmxt=yes ;;
1324 --disable-iwmmxt) _iwmmxt=no ;;
1325 --enable-mmx) _mmx=yes ;;
1326 --disable-mmx) # 3Dnow! and MMX2 require MMX
1327 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1330 echo "Unknown parameter: $ac_option"
1331 exit 1
1334 esac
1335 done
1337 # Atmos: moved this here, to be correct, if --prefix is specified
1338 test -z "$_bindir" && _bindir="$_prefix/bin"
1339 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1340 test -z "$_mandir" && _mandir="$_prefix/share/man"
1341 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1342 test -z "$_libdir" && _libdir="$_prefix/lib"
1344 # Determine our OS name and CPU architecture
1345 if test -z "$_target" ; then
1346 # OS name
1347 system_name=$(uname -s 2>&1)
1348 case "$system_name" in
1349 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1351 IRIX*)
1352 system_name=IRIX
1354 GNU/kFreeBSD)
1355 system_name=FreeBSD
1357 HP-UX*)
1358 system_name=HP-UX
1360 [cC][yY][gG][wW][iI][nN]*)
1361 system_name=CYGWIN
1363 MINGW32*)
1364 system_name=MINGW32
1366 OS/2*)
1367 system_name=OS/2
1370 system_name="$system_name-UNKNOWN"
1372 esac
1375 # host's CPU/instruction set
1376 host_arch=$(uname -p 2>&1)
1377 case "$host_arch" in
1378 i386|sparc|ppc|alpha|arm|mips|vax)
1380 powerpc) # Darwin returns 'powerpc'
1381 host_arch=ppc
1383 *) # uname -p on Linux returns 'unknown' for the processor type,
1384 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1386 # Maybe uname -m (machine hardware name) returns something we
1387 # recognize.
1389 # x86/x86pc is used by QNX
1390 case "$(uname -m 2>&1)" in
1391 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 ;;
1392 ia64) host_arch=ia64 ;;
1393 x86_64|amd64)
1394 if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \
1395 -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then
1396 host_arch=x86_64
1397 else
1398 host_arch=i386
1401 macppc|ppc) host_arch=ppc ;;
1402 ppc64) host_arch=ppc64 ;;
1403 alpha) host_arch=alpha ;;
1404 sparc) host_arch=sparc ;;
1405 sparc64) host_arch=sparc64 ;;
1406 parisc*|hppa*|9000*) host_arch=hppa ;;
1407 arm*|zaurus|cats) host_arch=arm ;;
1408 sh3|sh4|sh4a) host_arch=sh ;;
1409 s390) host_arch=s390 ;;
1410 s390x) host_arch=s390x ;;
1411 mips*) host_arch=mips ;;
1412 vax) host_arch=vax ;;
1413 xtensa*) host_arch=xtensa ;;
1414 *) host_arch=UNKNOWN ;;
1415 esac
1417 esac
1418 else # if test -z "$_target"
1419 system_name=$(echo $_target | cut -d '-' -f 2)
1420 case "$(echo $system_name | tr A-Z a-z)" in
1421 linux) system_name=Linux ;;
1422 freebsd) system_name=FreeBSD ;;
1423 gnu/kfreebsd) system_name=FreeBSD ;;
1424 netbsd) system_name=NetBSD ;;
1425 bsd/os) system_name=BSD/OS ;;
1426 openbsd) system_name=OpenBSD ;;
1427 dragonfly) system_name=DragonFly ;;
1428 sunos) system_name=SunOS ;;
1429 qnx) system_name=QNX ;;
1430 morphos) system_name=MorphOS ;;
1431 amigaos) system_name=AmigaOS ;;
1432 mingw32msvc) system_name=MINGW32 ;;
1433 esac
1434 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1435 host_arch=$(echo $_target | cut -d '-' -f 1)
1436 if test $(echo $host_arch) != "x86_64" ; then
1437 host_arch=$(echo $host_arch | tr '_' '-')
1441 echo "Detected operating system: $system_name"
1442 echo "Detected host architecture: $host_arch"
1444 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1445 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1449 extra_cflags="-I. $extra_cflags"
1450 _timer=timer-linux.c
1451 _getch=getch2.c
1452 if freebsd ; then
1453 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1454 extra_cflags="$extra_cflags -I/usr/local/include"
1457 if netbsd || dragonfly ; then
1458 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1459 extra_cflags="$extra_cflags -I/usr/pkg/include"
1462 if darwin; then
1463 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1464 _timer=timer-darwin.c
1467 if aix ; then
1468 extra_ldflags="$extra_ldflags -lC"
1471 if irix ; then
1472 _ranlib='ar -r'
1473 elif linux ; then
1474 _ranlib='true'
1477 if win32 ; then
1478 _exesuf=".exe"
1479 # -lwinmm is always needed for osdep/timer-win2.c
1480 extra_ldflags="$extra_ldflags -lwinmm"
1481 _pe_executable=yes
1482 _timer=timer-win2.c
1483 _priority=yes
1484 def_dos_paths="#define HAVE_DOS_PATHS 1"
1485 def_priority="#define CONFIG_PRIORITY 1"
1488 if mingw32 ; then
1489 _getch=getch2-win.c
1490 _need_shmem=no
1493 if amigaos ; then
1494 _select=no
1495 _sighandler=no
1496 _stream_cache=no
1497 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1498 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1501 if qnx ; then
1502 extra_ldflags="$extra_ldflags -lph"
1505 if os2 ; then
1506 _exesuf=".exe"
1507 _getch=getch2-os2.c
1508 _need_shmem=no
1509 _priority=yes
1510 def_dos_paths="#define HAVE_DOS_PATHS 1"
1511 def_priority="#define CONFIG_PRIORITY 1"
1514 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1515 test "$I" && break
1516 done
1519 TMPLOG="configure.log"
1520 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1521 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1522 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1523 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1524 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1526 rm -f "$TMPLOG"
1527 echo configuration: $_configuration > "$TMPLOG"
1528 echo >> "$TMPLOG"
1531 # Checking CC version...
1532 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1533 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1534 echocheck "$_cc version"
1535 cc_vendor=intel
1536 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1537 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1538 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1539 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1540 # TODO verify older icc/ecc compatibility
1541 case $cc_version in
1543 cc_version="v. ?.??, bad"
1544 cc_fail=yes
1546 10.1|11.0|11.1)
1547 cc_version="$cc_version, ok"
1550 cc_version="$cc_version, bad"
1551 cc_fail=yes
1553 esac
1554 echores "$cc_version"
1555 else
1556 for _cc in "$_cc" cc gcc ; do
1557 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1558 if test "$cc_name_tmp" = "gcc"; then
1559 cc_name=$cc_name_tmp
1560 echocheck "$_cc version"
1561 cc_vendor=gnu
1562 cc_version=$($_cc -dumpversion 2>&1)
1563 case $cc_version in
1564 2.96*)
1565 cc_fail=yes
1568 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1569 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1570 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1572 esac
1573 echores "$cc_version"
1574 break
1576 done
1577 fi # icc
1578 test "$cc_fail" = yes && die "unsupported compiler version"
1580 echocheck "host cc"
1581 test "$_host_cc" || _host_cc=$_cc
1582 echores $_host_cc
1584 echocheck "cross compilation"
1585 if test $_cross_compile = auto ; then
1586 cat > $TMPC << EOF
1587 int main(void) { return 0; }
1589 _cross_compile=yes
1590 cc_check && "$TMPEXE" && _cross_compile=no
1592 echores $_cross_compile
1594 if test $_cross_compile = yes; then
1595 tmp_run() {
1596 return 0
1600 # ---
1602 # now that we know what compiler should be used for compilation, try to find
1603 # out which assembler is used by the $_cc compiler
1604 if test "$_as" = auto ; then
1605 _as=$($_cc -print-prog-name=as)
1606 test -z "$_as" && _as=as
1609 if test "$_nm" = auto ; then
1610 _nm=$($_cc -print-prog-name=nm)
1611 test -z "$_nm" && _nm=nm
1614 # XXX: this should be ok..
1615 _cpuinfo="echo"
1617 if test "$_runtime_cpudetection" = no ; then
1619 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1620 # FIXME: Remove the cygwin check once AMD CPUs are supported
1621 if test -r /proc/cpuinfo && ! cygwin; then
1622 # Linux with /proc mounted, extract CPU information from it
1623 _cpuinfo="cat /proc/cpuinfo"
1624 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1625 # FreeBSD with Linux emulation /proc mounted,
1626 # extract CPU information from it
1627 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1628 elif darwin && ! x86 ; then
1629 # use hostinfo on Darwin
1630 _cpuinfo="hostinfo"
1631 elif aix; then
1632 # use 'lsattr' on AIX
1633 _cpuinfo="lsattr -E -l proc0 -a type"
1634 elif x86; then
1635 # all other OSes try to extract CPU information from a small helper
1636 # program cpuinfo instead
1637 $_cc -o cpuinfo$_exesuf cpuinfo.c
1638 _cpuinfo="./cpuinfo$_exesuf"
1641 if x86 ; then
1642 # gather more CPU information
1643 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1644 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1645 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1646 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1647 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1649 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1651 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1652 -e s/xmm/sse/ -e s/kni/sse/)
1654 for ext in $pparam ; do
1655 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1656 done
1658 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1659 test $_sse = kernel_check && _mmxext=kernel_check
1661 echocheck "CPU vendor"
1662 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1664 echocheck "CPU type"
1665 echores "$pname"
1668 fi # test "$_runtime_cpudetection" = no
1670 if x86 && test "$_runtime_cpudetection" = no ; then
1671 extcheck() {
1672 if test "$1" = kernel_check ; then
1673 echocheck "kernel support of $2"
1674 cat > $TMPC <<EOF
1675 #include <stdlib.h>
1676 #include <signal.h>
1677 void catch() { exit(1); }
1678 int main(void) {
1679 signal(SIGILL, catch);
1680 __asm__ volatile ("$3":::"memory"); return 0;
1684 if cc_check && tmp_run ; then
1685 eval _$2=yes
1686 echores "yes"
1687 _optimizing="$_optimizing $2"
1688 return 0
1689 else
1690 eval _$2=no
1691 echores "failed"
1692 echo "It seems that your kernel does not correctly support $2."
1693 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1694 return 1
1697 return 0
1700 extcheck $_mmx "mmx" "emms"
1701 extcheck $_mmxext "mmxext" "sfence"
1702 extcheck $_3dnow "3dnow" "femms"
1703 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1704 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1705 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1706 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1707 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1709 echocheck "mtrr support"
1710 if test "$_mtrr" = kernel_check ; then
1711 _mtrr="yes"
1712 _optimizing="$_optimizing mtrr"
1714 echores "$_mtrr"
1716 if test "$_gcc3_ext" != ""; then
1717 # if we had to disable sse/sse2 because the active kernel does not
1718 # support this instruction set extension, we also have to tell
1719 # gcc3 to not generate sse/sse2 instructions for normal C code
1720 cat > $TMPC << EOF
1721 int main(void) { return 0; }
1723 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1729 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1730 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1731 _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'
1732 case "$host_arch" in
1733 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1734 _arch='X86 X86_32'
1735 _target_arch="ARCH_X86 = yes"
1736 _target_subarch="ARCH_X86_32 = yes"
1737 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1738 iproc=486
1739 proc=i486
1742 if test "$_runtime_cpudetection" = no ; then
1743 case "$pvendor" in
1744 AuthenticAMD)
1745 case "$pfamily" in
1746 3) proc=i386 iproc=386 ;;
1747 4) proc=i486 iproc=486 ;;
1748 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1749 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1750 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1751 proc=k6-3
1752 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1753 proc=geode
1754 elif test "$pmodel" -ge 8; then
1755 proc=k6-2
1756 elif test "$pmodel" -ge 6; then
1757 proc=k6
1758 else
1759 proc=i586
1762 6) iproc=686
1763 # It's a bit difficult to determine the correct type of Family 6
1764 # AMD CPUs just from their signature. Instead, we check directly
1765 # whether it supports SSE.
1766 if test "$_sse" = yes; then
1767 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1768 proc=athlon-xp
1769 else
1770 # Again, gcc treats athlon and athlon-tbird similarly.
1771 proc=athlon
1774 15) iproc=686
1775 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1776 # caught and remedied in the optimization tests below.
1777 proc=k8
1780 *) proc=k8 iproc=686 ;;
1781 esac
1783 GenuineIntel)
1784 case "$pfamily" in
1785 3) proc=i386 iproc=386 ;;
1786 4) proc=i486 iproc=486 ;;
1787 5) iproc=586
1788 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1789 proc=pentium-mmx # 4 is desktop, 8 is mobile
1790 else
1791 proc=i586
1794 6) iproc=686
1795 if test "$pmodel" -ge 15; then
1796 proc=core2
1797 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1798 proc=pentium-m
1799 elif test "$pmodel" -ge 7; then
1800 proc=pentium3
1801 elif test "$pmodel" -ge 3; then
1802 proc=pentium2
1803 else
1804 proc=i686
1807 15) iproc=686
1808 # A nocona in 32-bit mode has no more capabilities than a prescott.
1809 if test "$pmodel" -ge 3; then
1810 proc=prescott
1811 else
1812 proc=pentium4
1814 test $_fast_cmov = "auto" && _fast_cmov=no
1816 *) proc=prescott iproc=686 ;;
1817 esac
1819 CentaurHauls)
1820 case "$pfamily" in
1821 5) iproc=586
1822 if test "$pmodel" -ge 8; then
1823 proc=winchip2
1824 elif test "$pmodel" -ge 4; then
1825 proc=winchip-c6
1826 else
1827 proc=i586
1830 6) iproc=686
1831 if test "$pmodel" -ge 9; then
1832 proc=c3-2
1833 else
1834 proc=c3
1835 iproc=586
1838 *) proc=i686 iproc=i686 ;;
1839 esac
1841 unknown)
1842 case "$pfamily" in
1843 3) proc=i386 iproc=386 ;;
1844 4) proc=i486 iproc=486 ;;
1845 *) proc=i586 iproc=586 ;;
1846 esac
1849 proc=i586 iproc=586 ;;
1850 esac
1851 fi # test "$_runtime_cpudetection" = no
1854 # check that gcc supports our CPU, if not, fall back to earlier ones
1855 # LGB: check -mcpu and -march swithing step by step with enabling
1856 # to fall back till 386.
1858 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1860 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1861 cpuopt=-mtune
1862 else
1863 cpuopt=-mcpu
1866 echocheck "GCC & CPU optimization abilities"
1867 cat > $TMPC << EOF
1868 int main(void) { return 0; }
1870 if test "$_runtime_cpudetection" = no ; then
1871 cc_check -march=native && proc=native
1872 if test "$proc" = "k8"; then
1873 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1875 if test "$proc" = "athlon-xp"; then
1876 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1878 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1879 cc_check -march=$proc $cpuopt=$proc || proc=k6
1881 if test "$proc" = "k6" || test "$proc" = "c3"; then
1882 if ! cc_check -march=$proc $cpuopt=$proc; then
1883 if cc_check -march=i586 $cpuopt=i686; then
1884 proc=i586-i686
1885 else
1886 proc=i586
1890 if test "$proc" = "prescott" ; then
1891 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1893 if test "$proc" = "core2" ; then
1894 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1896 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
1897 cc_check -march=$proc $cpuopt=$proc || proc=i686
1899 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1900 cc_check -march=$proc $cpuopt=$proc || proc=i586
1902 if test "$proc" = "i586"; then
1903 cc_check -march=$proc $cpuopt=$proc || proc=i486
1905 if test "$proc" = "i486" ; then
1906 cc_check -march=$proc $cpuopt=$proc || proc=i386
1908 if test "$proc" = "i386" ; then
1909 cc_check -march=$proc $cpuopt=$proc || proc=error
1911 if test "$proc" = "error" ; then
1912 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1913 _mcpu=""
1914 _march=""
1915 _optimizing=""
1916 elif test "$proc" = "i586-i686"; then
1917 _march="-march=i586"
1918 _mcpu="$cpuopt=i686"
1919 _optimizing="$proc"
1920 else
1921 _march="-march=$proc"
1922 _mcpu="$cpuopt=$proc"
1923 _optimizing="$proc"
1925 else # if test "$_runtime_cpudetection" = no
1926 _mcpu="$cpuopt=generic"
1927 # at least i486 required, for bswap instruction
1928 _march="-march=i486"
1929 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1930 cc_check $_mcpu || _mcpu=""
1931 cc_check $_march $_mcpu || _march=""
1934 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1935 ## autodetected mcpu/march parameters
1936 if test "$_target" ; then
1937 # TODO: it may be a good idea to check GCC and fall back in all cases
1938 if test "$host_arch" = "i586-i686"; then
1939 _march="-march=i586"
1940 _mcpu="$cpuopt=i686"
1941 else
1942 _march="-march=$host_arch"
1943 _mcpu="$cpuopt=$host_arch"
1946 proc="$host_arch"
1948 case "$proc" in
1949 i386) iproc=386 ;;
1950 i486) iproc=486 ;;
1951 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1952 i686|athlon*|pentium*) iproc=686 ;;
1953 *) iproc=586 ;;
1954 esac
1957 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1958 _fast_cmov="yes"
1959 else
1960 _fast_cmov="no"
1963 echores "$proc"
1966 ia64)
1967 _arch='IA64'
1968 _target_arch='ARCH_IA64 = yes'
1969 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1970 iproc='ia64'
1973 x86_64|amd64)
1974 _arch='X86 X86_64'
1975 _target_subarch='ARCH_X86_64 = yes'
1976 _target_arch="ARCH_X86 = yes"
1977 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1978 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1979 iproc='x86_64'
1981 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1982 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1983 cpuopt=-mtune
1984 else
1985 cpuopt=-mcpu
1987 test $_fast_cmov = "auto" && _fast_cmov=yes
1988 if test "$_runtime_cpudetection" = no ; then
1989 case "$pvendor" in
1990 AuthenticAMD)
1991 proc=k8;;
1992 GenuineIntel)
1993 case "$pfamily" in
1994 6) proc=core2;;
1996 # 64-bit prescotts exist, but as far as GCC is concerned they
1997 # have the same capabilities as a nocona.
1998 proc=nocona
2000 esac
2003 proc=error;;
2004 esac
2005 fi # test "$_runtime_cpudetection" = no
2007 echocheck "GCC & CPU optimization abilities"
2008 cat > $TMPC << EOF
2009 int main(void) { return 0; }
2011 # This is a stripped-down version of the i386 fallback.
2012 if test "$_runtime_cpudetection" = no ; then
2013 cc_check -march=native && proc=native
2014 # --- AMD processors ---
2015 if test "$proc" = "k8"; then
2016 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2018 # This will fail if gcc version < 3.3, which is ok because earlier
2019 # versions don't really support 64-bit on amd64.
2020 # Is this a valid assumption? -Corey
2021 if test "$proc" = "athlon-xp"; then
2022 cc_check -march=$proc $cpuopt=$proc || proc=error
2024 # --- Intel processors ---
2025 if test "$proc" = "core2"; then
2026 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2028 if test "$proc" = "nocona"; then
2029 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2031 if test "$proc" = "pentium4"; then
2032 cc_check -march=$proc $cpuopt=$proc || proc=error
2035 _march="-march=$proc"
2036 _mcpu="$cpuopt=$proc"
2037 if test "$proc" = "error" ; then
2038 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2039 _mcpu=""
2040 _march=""
2042 else # if test "$_runtime_cpudetection" = no
2043 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2044 _march="-march=x86-64"
2045 _mcpu="$cpuopt=generic"
2046 cc_check $_mcpu || _mcpu="x86-64"
2047 cc_check $_mcpu || _mcpu=""
2048 cc_check $_march $_mcpu || _march=""
2051 _optimizing=""
2053 echores "$proc"
2056 sparc|sparc64)
2057 _arch='SPARC'
2058 _target_arch='ARCH_SPARC = yes'
2059 iproc='sparc'
2060 if test "$host_arch" = "sparc64" ; then
2061 _vis='yes'
2062 proc='ultrasparc'
2063 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2064 elif sunos ; then
2065 echocheck "CPU type"
2066 karch=$(uname -m)
2067 case "$(echo $karch)" in
2068 sun4) proc=v7 ;;
2069 sun4c) proc=v7 ;;
2070 sun4d) proc=v8 ;;
2071 sun4m) proc=v8 ;;
2072 sun4u) proc=ultrasparc _vis='yes' ;;
2073 sun4v) proc=v9 ;;
2074 *) proc=v8 ;;
2075 esac
2076 echores "$proc"
2077 else
2078 proc=v8
2080 _mcpu="-mcpu=$proc"
2081 _optimizing="$proc"
2084 arm|armv4l|armv5tel)
2085 _arch='ARM'
2086 _target_arch='ARCH_ARM = yes'
2087 iproc='arm'
2090 avr32)
2091 _arch='AVR32'
2092 _target_arch='ARCH_AVR32 = yes'
2093 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2094 iproc='avr32'
2097 sh|sh4)
2098 _arch='SH4'
2099 _target_arch='ARCH_SH4 = yes'
2100 iproc='sh4'
2103 ppc|ppc64|powerpc|powerpc64)
2104 _arch='PPC'
2105 def_dcbzl='#define HAVE_DCBZL 0'
2106 _target_arch='ARCH_PPC = yes'
2107 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2108 iproc='ppc'
2110 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2111 _arch='PPC PPC64'
2112 _target_subarch='ARCH_PPC64 = yes'
2113 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2115 echocheck "CPU type"
2116 case $system_name in
2117 Linux)
2118 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2119 if test -n "$($_cpuinfo | grep altivec)"; then
2120 test $_altivec = auto && _altivec=yes
2123 Darwin)
2124 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2125 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2126 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2127 test $_altivec = auto && _altivec=yes
2130 NetBSD)
2131 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2132 case $cc_version in
2133 2*|3.0*|3.1*|3.2*|3.3*)
2136 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2137 test $_altivec = auto && _altivec=yes
2140 esac
2142 AIX)
2143 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2145 esac
2146 if test "$_altivec" = yes; then
2147 echores "$proc altivec"
2148 else
2149 _altivec=no
2150 echores "$proc"
2153 echocheck "GCC & CPU optimization abilities"
2155 if test -n "$proc"; then
2156 case "$proc" in
2157 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2158 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2159 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2160 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2161 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2162 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2163 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2164 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2165 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2166 *) ;;
2167 esac
2168 # gcc 3.1(.1) and up supports 7400 and 7450
2169 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2170 case "$proc" in
2171 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2172 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2173 *) ;;
2174 esac
2176 # gcc 3.2 and up supports 970
2177 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2178 case "$proc" in
2179 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2180 def_dcbzl='#define HAVE_DCBZL 1' ;;
2181 *) ;;
2182 esac
2184 # gcc 3.3 and up supports POWER4
2185 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2186 case "$proc" in
2187 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2188 *) ;;
2189 esac
2191 # gcc 3.4 and up supports 440*
2192 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2193 case "$proc" in
2194 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2195 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2196 *) ;;
2197 esac
2199 # gcc 4.0 and up supports POWER5
2200 if test "$_cc_major" -ge "4"; then
2201 case "$proc" in
2202 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2203 *) ;;
2204 esac
2208 if test -n "$_mcpu"; then
2209 _optimizing=$(echo $_mcpu | cut -c 8-)
2210 echores "$_optimizing"
2211 else
2212 echores "none"
2217 alpha*)
2218 _arch='ALPHA'
2219 _target_arch='ARCH_ALPHA = yes'
2220 iproc='alpha'
2222 echocheck "CPU type"
2223 cat > $TMPC << EOF
2224 int main(void) {
2225 unsigned long ver, mask;
2226 __asm__ ("implver %0" : "=r" (ver));
2227 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2228 printf("%ld-%x\n", ver, ~mask);
2229 return 0;
2232 $_cc -o "$TMPEXE" "$TMPC"
2233 case $("$TMPEXE") in
2235 0-0) proc="ev4"; _mvi="0";;
2236 1-0) proc="ev5"; _mvi="0";;
2237 1-1) proc="ev56"; _mvi="0";;
2238 1-101) proc="pca56"; _mvi="1";;
2239 2-303) proc="ev6"; _mvi="1";;
2240 2-307) proc="ev67"; _mvi="1";;
2241 2-1307) proc="ev68"; _mvi="1";;
2242 esac
2243 echores "$proc"
2245 echocheck "GCC & CPU optimization abilities"
2246 if test "$proc" = "ev68" ; then
2247 cc_check -mcpu=$proc || proc=ev67
2249 if test "$proc" = "ev67" ; then
2250 cc_check -mcpu=$proc || proc=ev6
2252 _mcpu="-mcpu=$proc"
2253 echores "$proc"
2255 _optimizing="$proc"
2258 mips)
2259 _arch='SGI_MIPS'
2260 _target_arch='ARCH_SGI_MIPS = yes'
2261 iproc='sgi-mips'
2263 if irix ; then
2264 echocheck "CPU type"
2265 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2266 case "$(echo $proc)" in
2267 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2268 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2269 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2270 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2271 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2272 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2273 esac
2274 # gcc < 3.x does not support -mtune.
2275 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2276 _mcpu=''
2278 echores "$proc"
2283 hppa)
2284 _arch='PA_RISC'
2285 _target_arch='ARCH_PA_RISC = yes'
2286 iproc='PA-RISC'
2289 s390)
2290 _arch='S390'
2291 _target_arch='ARCH_S390 = yes'
2292 iproc='390'
2295 s390x)
2296 _arch='S390X'
2297 _target_arch='ARCH_S390X = yes'
2298 iproc='390x'
2301 vax)
2302 _arch='VAX'
2303 _target_arch='ARCH_VAX = yes'
2304 iproc='vax'
2307 xtensa)
2308 _arch='XTENSA'
2309 _target_arch='ARCH_XTENSA = yes'
2310 iproc='xtensa'
2313 generic)
2314 _arch='GENERIC'
2315 _target_arch='ARCH_GENERIC = yes'
2319 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2320 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2321 die "unsupported architecture $host_arch"
2323 esac # case "$host_arch" in
2325 if test "$_runtime_cpudetection" = yes ; then
2326 if x86 ; then
2327 test "$_cmov" != no && _cmov=yes
2328 x86_32 && _cmov=no
2329 test "$_mmx" != no && _mmx=yes
2330 test "$_3dnow" != no && _3dnow=yes
2331 test "$_3dnowext" != no && _3dnowext=yes
2332 test "$_mmxext" != no && _mmxext=yes
2333 test "$_sse" != no && _sse=yes
2334 test "$_sse2" != no && _sse2=yes
2335 test "$_ssse3" != no && _ssse3=yes
2336 test "$_mtrr" != no && _mtrr=yes
2338 if ppc; then
2339 _altivec=yes
2344 # endian testing
2345 echocheck "byte order"
2346 if test "$_big_endian" = auto ; then
2347 cat > $TMPC <<EOF
2348 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2349 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2350 int main(void) { return (int)ascii_name; }
2352 if cc_check ; then
2353 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2354 _big_endian=yes
2355 else
2356 _big_endian=no
2358 else
2359 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2362 if test "$_big_endian" = yes ; then
2363 _byte_order='big-endian'
2364 def_words_endian='#define WORDS_BIGENDIAN 1'
2365 else
2366 _byte_order='little-endian'
2367 def_words_endian='#undef WORDS_BIGENDIAN'
2369 echores "$_byte_order"
2372 echocheck "extern symbol prefix"
2373 cat > $TMPC << EOF
2374 int ff_extern;
2376 cc_check -c || die "Symbol mangling check failed."
2377 sym=$($_nm -P -g $TMPEXE)
2378 extern_prefix=${sym%%ff_extern*}
2379 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2380 echores $extern_prefix
2383 echocheck "assembler support of -pipe option"
2384 cat > $TMPC << EOF
2385 int main(void) { return 0; }
2387 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2390 echocheck "compiler support of named assembler arguments"
2391 _named_asm_args=yes
2392 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2393 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2394 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2395 _named_asm_args=no
2396 def_named_asm_args="#undef NAMED_ASM_ARGS"
2398 echores $_named_asm_args
2401 if darwin && test "$cc_vendor" = "gnu" ; then
2402 echocheck "GCC support of -mstackrealign"
2403 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2404 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2405 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2406 # wrong code with this flag, but this can be worked around by adding
2407 # -fno-unit-at-a-time as described in the blog post at
2408 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2409 cat > $TMPC << EOF
2410 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2411 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2413 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2414 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2415 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2416 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2417 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2420 # Checking for CFLAGS
2421 _install_strip="-s"
2422 if test "$_profile" != "" || test "$_debug" != "" ; then
2423 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2424 _install_strip=
2425 elif test -z "$CFLAGS" ; then
2426 if test "$cc_vendor" = "intel" ; then
2427 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2428 elif test "$cc_vendor" != "gnu" ; then
2429 CFLAGS="-O2 $_march $_mcpu $_pipe"
2430 else
2431 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2432 extra_ldflags="$extra_ldflags -ffast-math"
2434 else
2435 _warn_CFLAGS=yes
2438 cat > $TMPC << EOF
2439 int main(void) { return 0; }
2441 if test "$cc_vendor" = "gnu" ; then
2442 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2443 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2444 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2445 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2446 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2447 else
2448 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2451 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2454 if test -n "$LDFLAGS" ; then
2455 extra_ldflags="$extra_ldflags $LDFLAGS"
2456 _warn_CFLAGS=yes
2457 elif test "$cc_vendor" = "intel" ; then
2458 extra_ldflags="$extra_ldflags -i-static"
2460 if test -n "$CPPFLAGS" ; then
2461 extra_cflags="$extra_cflags $CPPFLAGS"
2462 _warn_CFLAGS=yes
2467 if x86_32 ; then
2468 # Checking assembler (_as) compatibility...
2469 # Added workaround for older as that reads from stdin by default - atmos
2470 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2471 echocheck "assembler ($_as $as_version)"
2473 _pref_as_version='2.9.1'
2474 echo 'nop' > $TMPS
2475 if test "$_mmx" = yes ; then
2476 echo 'emms' >> $TMPS
2478 if test "$_3dnow" = yes ; then
2479 _pref_as_version='2.10.1'
2480 echo 'femms' >> $TMPS
2482 if test "$_3dnowext" = yes ; then
2483 _pref_as_version='2.10.1'
2484 echo 'pswapd %mm0, %mm0' >> $TMPS
2486 if test "$_mmxext" = yes ; then
2487 _pref_as_version='2.10.1'
2488 echo 'movntq %mm0, (%eax)' >> $TMPS
2490 if test "$_sse" = yes ; then
2491 _pref_as_version='2.10.1'
2492 echo 'xorps %xmm0, %xmm0' >> $TMPS
2494 #if test "$_sse2" = yes ; then
2495 # _pref_as_version='2.11'
2496 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2498 if test "$_cmov" = yes ; then
2499 _pref_as_version='2.10.1'
2500 echo 'cmovb %eax, %ebx' >> $TMPS
2502 if test "$_ssse3" = yes ; then
2503 _pref_as_version='2.16.92'
2504 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2506 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2508 if test "$as_verc_fail" != yes ; then
2509 echores "ok"
2510 else
2511 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2512 echores "failed"
2513 die "obsolete binutils version"
2516 fi #if x86_32
2518 echocheck ".align is a power of two"
2519 if test "$_asmalign_pot" = auto ; then
2520 _asmalign_pot=no
2521 cat > $TMPC << EOF
2522 int main(void) { __asm__ (".align 3"); return 0; }
2524 cc_check && _asmalign_pot=yes
2526 if test "$_asmalign_pot" = "yes" ; then
2527 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2528 else
2529 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2531 echores $_asmalign_pot
2533 if x86 ; then
2534 echocheck "10 assembler operands"
2535 ten_operands=no
2536 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2537 cat > $TMPC << EOF
2538 int main(void) {
2539 int x=0;
2540 __asm__ volatile(
2542 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2544 return 0;
2547 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2548 echores $ten_operands
2550 echocheck "yasm"
2551 if test -z "$YASMFLAGS" ; then
2552 if darwin ; then
2553 x86_64 && objformat="macho64" || objformat="macho"
2554 elif win32 ; then
2555 objformat="win32"
2556 else
2557 objformat="elf"
2559 # currently tested for Linux x86, x86_64
2560 YASMFLAGS="-f $objformat"
2561 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2562 case "$objformat" in
2563 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2564 macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
2565 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2566 esac
2567 else
2568 _warn_CFLAGS=yes
2571 echo "pabsw xmm0, xmm0" > $TMPS
2572 yasm_check || _yasm=""
2573 if test $_yasm ; then
2574 test "$_mmx" = "yes" && fft_mmx="yes"
2575 def_yasm='#define HAVE_YASM 1'
2576 _have_yasm="yes"
2577 echores "$_yasm"
2578 else
2579 def_yasm='#define HAVE_YASM 0'
2580 fft_mmx="no"
2581 _have_yasm="no"
2582 echores "no"
2585 echocheck "bswap"
2586 def_bswap='#define HAVE_BSWAP 0'
2587 echo 'bswap %eax' > $TMPS
2588 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2589 echores "$bswap"
2590 fi #if x86
2593 #FIXME: This should happen before the check for CFLAGS..
2594 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2595 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2597 # check if AltiVec is supported by the compiler, and how to enable it
2598 echocheck "GCC AltiVec flags"
2599 cat > $TMPC << EOF
2600 int main(void) { return 0; }
2602 if $(cc_check -maltivec -mabi=altivec) ; then
2603 _altivec_gcc_flags="-maltivec -mabi=altivec"
2604 # check if <altivec.h> should be included
2605 cat > $TMPC << EOF
2606 #include <altivec.h>
2607 int main(void) { return 0; }
2609 if $(cc_check $_altivec_gcc_flags) ; then
2610 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2611 inc_altivec_h='#include <altivec.h>'
2612 else
2613 cat > $TMPC << EOF
2614 int main(void) { return 0; }
2616 if $(cc_check -faltivec) ; then
2617 _altivec_gcc_flags="-faltivec"
2618 else
2619 _altivec=no
2620 _altivec_gcc_flags="none, AltiVec disabled"
2624 echores "$_altivec_gcc_flags"
2626 # check if the compiler supports braces for vector declarations
2627 cat > $TMPC << EOF
2628 $inc_altivec_h
2629 int main(void) { (vector int) {1}; return 0; }
2631 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2633 # Disable runtime cpudetection if we cannot generate AltiVec code or
2634 # AltiVec is disabled by the user.
2635 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2636 && _runtime_cpudetection=no
2638 # Show that we are optimizing for AltiVec (if enabled and supported).
2639 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2640 && _optimizing="$_optimizing altivec"
2642 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2643 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2646 if ppc ; then
2647 def_xform_asm='#define HAVE_XFORM_ASM 0'
2648 xform_asm=no
2649 echocheck "XFORM ASM support"
2650 cat > $TMPC << EOF
2651 int main(void) { __asm__ volatile ("lwzx 0, %y0" :: "Z"(*(int*)0)); return 0; }
2653 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2654 echores "$xform_asm"
2657 if arm ; then
2658 echocheck "ARM pld instruction"
2659 cat > $TMPC << EOF
2660 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2662 pld=no
2663 cc_check && pld=yes
2664 echores "$pld"
2666 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2667 if test $_armv5te = "auto" ; then
2668 cat > $TMPC << EOF
2669 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2671 _armv5te=no
2672 cc_check && _armv5te=yes
2674 echores "$_armv5te"
2676 echocheck "ARMv6 (SIMD instructions)"
2677 if test $_armv6 = "auto" ; then
2678 cat > $TMPC << EOF
2679 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2681 _armv6=no
2682 cc_check && _armv6=yes
2684 echores "$_armv6"
2686 echocheck "ARMv6t2 (SIMD instructions)"
2687 if test $_armv6t2 = "auto" ; then
2688 cat > $TMPC << EOF
2689 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2691 _armv6t2=no
2692 cc_check && _armv6t2=yes
2694 echores "$_armv6"
2696 echocheck "ARM VFP"
2697 if test $_armvfp = "auto" ; then
2698 cat > $TMPC << EOF
2699 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2701 _armvfp=no
2702 cc_check && _armvfp=yes
2704 echores "$_armvfp"
2706 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2707 if test $_iwmmxt = "auto" ; then
2708 cat > $TMPC << EOF
2709 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2711 _iwmmxt=no
2712 cc_check && _iwmmxt=yes
2714 echores "$_iwmmxt"
2717 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI'
2718 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2719 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2720 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2721 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2722 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2723 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2724 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2725 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2726 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2727 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2728 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2729 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2730 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2731 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2732 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2733 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2734 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2735 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2737 # Checking kernel version...
2738 if x86_32 && linux ; then
2739 _k_verc_problem=no
2740 kernel_version=$(uname -r 2>&1)
2741 echocheck "$system_name kernel version"
2742 case "$kernel_version" in
2743 '') kernel_version="?.??"; _k_verc_fail=yes;;
2744 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2745 _k_verc_problem=yes;;
2746 esac
2747 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2748 _k_verc_fail=yes
2750 if test "$_k_verc_fail" ; then
2751 echores "$kernel_version, fail"
2752 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2753 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2754 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2755 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2756 echo "2.2.x you must upgrade it to get SSE support!"
2757 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2758 else
2759 echores "$kernel_version, ok"
2763 ######################
2764 # MAIN TESTS GO HERE #
2765 ######################
2768 echocheck "-lposix"
2769 cat > $TMPC <<EOF
2770 int main(void) { return 0; }
2772 if cc_check -lposix ; then
2773 extra_ldflags="$extra_ldflags -lposix"
2774 echores "yes"
2775 else
2776 echores "no"
2779 echocheck "-lm"
2780 cat > $TMPC <<EOF
2781 int main(void) { return 0; }
2783 if cc_check -lm ; then
2784 _ld_lm="-lm"
2785 echores "yes"
2786 else
2787 _ld_lm=""
2788 echores "no"
2792 echocheck "langinfo"
2793 if test "$_langinfo" = auto ; then
2794 cat > $TMPC <<EOF
2795 #include <langinfo.h>
2796 int main(void) { nl_langinfo(CODESET); return 0; }
2798 _langinfo=no
2799 cc_check && _langinfo=yes
2801 if test "$_langinfo" = yes ; then
2802 def_langinfo='#define HAVE_LANGINFO 1'
2803 else
2804 def_langinfo='#undef HAVE_LANGINFO'
2806 echores "$_langinfo"
2809 echocheck "language"
2810 # Set preferred languages, "all" uses English as main language.
2811 test -z "$language" && language=$LINGUAS
2812 test -z "$language_doc" && language_doc=$language
2813 test -z "$language_man" && language_man=$language
2814 test -z "$language_msg" && language_msg=$language
2815 language_doc=$(echo $language_doc | tr , " ")
2816 language_man=$(echo $language_man | tr , " ")
2817 language_msg=$(echo $language_msg | tr , " ")
2819 test "$language_doc" = "all" && language_doc=$doc_lang_all
2820 test "$language_man" = "all" && language_man=$man_lang_all
2821 test "$language_msg" = "all" && language_msg=en
2823 # Prune non-existing translations from language lists.
2824 # Set message translation to the first available language.
2825 # Fall back on English.
2826 for lang in $language_doc ; do
2827 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2828 done
2829 language_doc=$tmp_language_doc
2830 test -z "$language_doc" && language_doc=en
2832 for lang in $language_man ; do
2833 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2834 done
2835 language_man=$tmp_language_man
2836 test -z "$language_man" && language_man=en
2838 for lang in $language_msg ; do
2839 test -f "help/help_mp-${lang}.h" && language_msg=$lang && break
2840 done
2841 test -z "$language_msg" && language_msg=en
2842 _mp_help="help/help_mp-${language_msg}.h"
2843 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2846 echocheck "enable sighandler"
2847 if test "$_sighandler" = yes ; then
2848 def_sighandler='#define CONFIG_SIGHANDLER 1'
2849 else
2850 def_sighandler='#undef CONFIG_SIGHANDLER'
2852 echores "$_sighandler"
2854 echocheck "runtime cpudetection"
2855 if test "$_runtime_cpudetection" = yes ; then
2856 _optimizing="Runtime CPU-Detection enabled"
2857 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2858 else
2859 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2861 echores "$_runtime_cpudetection"
2864 echocheck "restrict keyword"
2865 for restrict_keyword in restrict __restrict __restrict__ ; do
2866 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2867 if cc_check; then
2868 def_restrict_keyword=$restrict_keyword
2869 break;
2871 done
2872 if [ -n "$def_restrict_keyword" ]; then
2873 echores "$def_restrict_keyword"
2874 else
2875 echores "none"
2877 # Avoid infinite recursion loop ("#define restrict restrict")
2878 if [ "$def_restrict_keyword" != "restrict" ]; then
2879 def_restrict_keyword="#define restrict $def_restrict_keyword"
2880 else
2881 def_restrict_keyword=""
2885 echocheck "__builtin_expect"
2886 # GCC branch prediction hint
2887 cat > $TMPC << EOF
2888 int foo(int a) {
2889 a = __builtin_expect(a, 10);
2890 return a == 10 ? 0 : 1;
2892 int main(void) { return foo(10) && foo(0); }
2894 _builtin_expect=no
2895 cc_check && _builtin_expect=yes
2896 if test "$_builtin_expect" = yes ; then
2897 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2898 else
2899 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2901 echores "$_builtin_expect"
2904 echocheck "kstat"
2905 cat > $TMPC << EOF
2906 #include <kstat.h>
2907 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2909 _kstat=no
2910 cc_check -lkstat && _kstat=yes
2911 if test "$_kstat" = yes ; then
2912 def_kstat="#define HAVE_LIBKSTAT 1"
2913 extra_ldflags="$extra_ldflags -lkstat"
2914 else
2915 def_kstat="#undef HAVE_LIBKSTAT"
2917 echores "$_kstat"
2920 echocheck "posix4"
2921 # required for nanosleep on some systems
2922 cat > $TMPC << EOF
2923 #include <time.h>
2924 int main(void) { (void) nanosleep(0, 0); return 0; }
2926 _posix4=no
2927 cc_check -lposix4 && _posix4=yes
2928 if test "$_posix4" = yes ; then
2929 extra_ldflags="$extra_ldflags -lposix4"
2931 echores "$_posix4"
2933 for func in llrint lrint lrintf round roundf truncf; do
2934 echocheck $func
2935 cat > $TMPC << EOF
2936 #include <math.h>
2937 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2939 eval _$func=no
2940 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2941 if eval test "x\$_$func" = "xyes"; then
2942 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2943 echores yes
2944 else
2945 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2946 echores no
2948 done
2951 echocheck "mkstemp"
2952 cat > $TMPC << EOF
2953 #include <stdlib.h>
2954 int main(void) { char a; mkstemp(&a); return 0; }
2956 _mkstemp=no
2957 cc_check && _mkstemp=yes
2958 if test "$_mkstemp" = yes ; then
2959 def_mkstemp='#define HAVE_MKSTEMP 1'
2960 else
2961 def_mkstemp='#undef HAVE_MKSTEMP'
2963 echores "$_mkstemp"
2966 echocheck "nanosleep"
2967 # also check for nanosleep
2968 cat > $TMPC << EOF
2969 #include <time.h>
2970 int main(void) { (void) nanosleep(0, 0); return 0; }
2972 _nanosleep=no
2973 cc_check && _nanosleep=yes
2974 if test "$_nanosleep" = yes ; then
2975 def_nanosleep='#define HAVE_NANOSLEEP 1'
2976 else
2977 def_nanosleep='#undef HAVE_NANOSLEEP'
2979 echores "$_nanosleep"
2982 echocheck "socklib"
2983 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2984 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2985 cat > $TMPC << EOF
2986 #include <netdb.h>
2987 #include <sys/socket.h>
2988 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2990 _socklib=no
2991 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2992 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2993 done
2994 if test $_winsock2_h = auto && ! cygwin ; then
2995 _winsock2_h=no
2996 cat > $TMPC << EOF
2997 #include <winsock2.h>
2998 int main(void) { (void) gethostbyname(0); return 0; }
3000 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3002 test "$_ld_sock" && _res_comment="using $_ld_sock"
3003 echores "$_socklib"
3006 if test $_winsock2_h = yes ; then
3007 _ld_sock="-lws2_32"
3008 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3009 else
3010 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3014 echocheck "arpa/inet.h"
3015 arpa_inet_h=no
3016 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3017 cat > $TMPC << EOF
3018 #include <arpa/inet.h>
3019 int main(void) { return 0; }
3021 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3022 echores "$arpa_inet_h"
3025 echocheck "inet_pton()"
3026 def_inet_pton='#define HAVE_INET_PTON 0'
3027 inet_pton=no
3028 cat > $TMPC << EOF
3029 #include <sys/types.h>
3030 #include <sys/socket.h>
3031 #include <arpa/inet.h>
3032 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3034 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3035 cc_check $_ld_tmp && inet_pton=yes && break
3036 done
3037 if test $inet_pton = yes ; then
3038 test $_ld_tmp && _res_comment="using $_ld_tmp"
3039 def_inet_pton='#define HAVE_INET_PTON 1'
3041 echores "$inet_pton"
3044 echocheck "inet_aton()"
3045 def_inet_aton='#define HAVE_INET_ATON 0'
3046 inet_aton=no
3047 cat > $TMPC << EOF
3048 #include <sys/types.h>
3049 #include <sys/socket.h>
3050 #include <arpa/inet.h>
3051 int main(void) { (void) inet_aton(0, 0); return 0; }
3053 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3054 cc_check $_ld_tmp && inet_aton=yes && break
3055 done
3056 if test $inet_aton = yes ; then
3057 test $_ld_tmp && _res_comment="using $_ld_tmp"
3058 def_inet_aton='#define HAVE_INET_ATON 1'
3060 echores "$inet_aton"
3063 echocheck "socklen_t"
3064 _socklen_t=no
3065 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3066 cat > $TMPC << EOF
3067 #include <$header>
3068 int main(void) { socklen_t v = 0; return v; }
3070 cc_check && _socklen_t=yes && break
3071 done
3072 if test "$_socklen_t" = yes ; then
3073 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3074 else
3075 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3077 echores "$_socklen_t"
3080 echocheck "closesocket()"
3081 _closesocket=no
3082 cat > $TMPC << EOF
3083 #include <winsock2.h>
3084 int main(void) { closesocket(~0); return 0; }
3086 cc_check $_ld_sock && _closesocket=yes
3087 if test "$_closesocket" = yes ; then
3088 def_closesocket='#define HAVE_CLOSESOCKET 1'
3089 else
3090 def_closesocket='#define HAVE_CLOSESOCKET 0'
3092 echores "$_closesocket"
3095 echocheck "network"
3096 test $_winsock2_h = no && test $inet_pton = no &&
3097 test $inet_aton = no && _network=no
3098 if test "$_network" = yes ; then
3099 def_network='#define CONFIG_NETWORK 1'
3100 extra_ldflags="$extra_ldflags $_ld_sock"
3101 _inputmodules="network $_inputmodules"
3102 else
3103 _noinputmodules="network $_noinputmodules"
3104 def_network='#undef CONFIG_NETWORK'
3105 _ftp=no
3107 echores "$_network"
3110 echocheck "inet6"
3111 if test "$_inet6" = auto ; then
3112 cat > $TMPC << EOF
3113 #include <sys/types.h>
3114 #if !defined(_WIN32) || defined(__CYGWIN__)
3115 #include <sys/socket.h>
3116 #include <netinet/in.h>
3117 #else
3118 #include <ws2tcpip.h>
3119 #endif
3120 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3122 _inet6=no
3123 if cc_check $_ld_sock ; then
3124 _inet6=yes
3127 if test "$_inet6" = yes ; then
3128 def_inet6='#define HAVE_AF_INET6 1'
3129 else
3130 def_inet6='#undef HAVE_AF_INET6'
3132 echores "$_inet6"
3135 echocheck "gethostbyname2"
3136 if test "$_gethostbyname2" = auto ; then
3137 cat > $TMPC << EOF
3138 #include <sys/types.h>
3139 #include <sys/socket.h>
3140 #include <netdb.h>
3141 int main(void) { gethostbyname2("", AF_INET); return 0; }
3143 _gethostbyname2=no
3144 if cc_check ; then
3145 _gethostbyname2=yes
3148 if test "$_gethostbyname2" = yes ; then
3149 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3150 else
3151 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3153 echores "$_gethostbyname2"
3156 echocheck "inttypes.h (required)"
3157 cat > $TMPC << EOF
3158 #include <inttypes.h>
3159 int main(void) { return 0; }
3161 _inttypes=no
3162 cc_check && _inttypes=yes
3163 echores "$_inttypes"
3165 if test "$_inttypes" = no ; then
3166 echocheck "bitypes.h (inttypes.h predecessor)"
3167 cat > $TMPC << EOF
3168 #include <sys/bitypes.h>
3169 int main(void) { return 0; }
3171 cc_check && _inttypes=yes
3172 if test "$_inttypes" = yes ; then
3173 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."
3174 else
3175 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3180 echocheck "int_fastXY_t in inttypes.h"
3181 cat > $TMPC << EOF
3182 #include <inttypes.h>
3183 int main(void) {
3184 volatile int_fast16_t v= 0;
3185 return v; }
3187 _fast_inttypes=no
3188 cc_check && _fast_inttypes=yes
3189 if test "$_fast_inttypes" = no ; then
3190 def_fast_inttypes='
3191 typedef signed char int_fast8_t;
3192 typedef signed int int_fast16_t;
3193 typedef signed int int_fast32_t;
3194 typedef signed long long int_fast64_t;
3195 typedef unsigned char uint_fast8_t;
3196 typedef unsigned int uint_fast16_t;
3197 typedef unsigned int uint_fast32_t;
3198 typedef unsigned long long uint_fast64_t;'
3200 echores "$_fast_inttypes"
3203 echocheck "malloc.h"
3204 cat > $TMPC << EOF
3205 #include <malloc.h>
3206 int main(void) { (void) malloc(0); return 0; }
3208 _malloc=no
3209 cc_check && _malloc=yes
3210 if test "$_malloc" = yes ; then
3211 def_malloc_h='#define HAVE_MALLOC_H 1'
3212 else
3213 def_malloc_h='#define HAVE_MALLOC_H 0'
3215 # malloc.h emits a warning in FreeBSD and OpenBSD
3216 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3217 echores "$_malloc"
3220 echocheck "memalign()"
3221 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3222 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3223 cat > $TMPC << EOF
3224 #include <malloc.h>
3225 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3227 _memalign=no
3228 cc_check && _memalign=yes
3229 if test "$_memalign" = yes ; then
3230 def_memalign='#define HAVE_MEMALIGN 1'
3231 else
3232 def_memalign='#define HAVE_MEMALIGN 0'
3233 def_map_memalign='#define memalign(a,b) malloc(b)'
3234 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3236 echores "$_memalign"
3239 echocheck "posix_memalign()"
3240 posix_memalign=no
3241 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3242 cat > $TMPC << EOF
3243 #define _XOPEN_SOURCE 600
3244 #include <stdlib.h>
3245 int main(void) { posix_memalign(NULL, 0, 0); }
3247 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3248 echores "$posix_memalign"
3251 echocheck "alloca.h"
3252 cat > $TMPC << EOF
3253 #include <alloca.h>
3254 int main(void) { (void) alloca(0); return 0; }
3256 _alloca=no
3257 cc_check && _alloca=yes
3258 if cc_check ; then
3259 def_alloca_h='#define HAVE_ALLOCA_H 1'
3260 else
3261 def_alloca_h='#undef HAVE_ALLOCA_H'
3263 echores "$_alloca"
3266 echocheck "fastmemcpy"
3267 if test "$_fastmemcpy" = yes ; then
3268 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3269 else
3270 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3272 echores "$_fastmemcpy"
3275 echocheck "mman.h"
3276 cat > $TMPC << EOF
3277 #include <sys/types.h>
3278 #include <sys/mman.h>
3279 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3281 _mman=no
3282 cc_check && _mman=yes
3283 if test "$_mman" = yes ; then
3284 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3285 else
3286 def_mman_h='#undef HAVE_SYS_MMAN_H'
3287 os2 && _need_mmap=yes
3289 echores "$_mman"
3291 cat > $TMPC << EOF
3292 #include <sys/types.h>
3293 #include <sys/mman.h>
3294 int main(void) { void *p = MAP_FAILED; return 0; }
3296 _mman_has_map_failed=no
3297 cc_check && _mman_has_map_failed=yes
3298 if test "$_mman_has_map_failed" = yes ; then
3299 def_mman_has_map_failed=''
3300 else
3301 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3304 echocheck "dynamic loader"
3305 cat > $TMPC << EOF
3306 #include <stddef.h>
3307 #include <dlfcn.h>
3308 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3310 _dl=no
3311 for _ld_tmp in "" "-ldl" ; do
3312 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3313 done
3314 if test "$_dl" = yes ; then
3315 def_dl='#define HAVE_LIBDL 1'
3316 else
3317 def_dl='#undef HAVE_LIBDL'
3319 echores "$_dl"
3322 echocheck "dynamic a/v plugins support"
3323 if test "$_dl" = no ; then
3324 _dynamic_plugins=no
3326 if test "$_dynamic_plugins" = yes ; then
3327 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3328 else
3329 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3331 echores "$_dynamic_plugins"
3334 def_threads='#define HAVE_THREADS 0'
3336 echocheck "pthread"
3337 if linux ; then
3338 THREAD_CFLAGS=-D_REENTRANT
3339 elif freebsd || netbsd || openbsd || bsdos ; then
3340 THREAD_CFLAGS=-D_THREAD_SAFE
3342 if test "$_pthreads" = auto ; then
3343 cat > $TMPC << EOF
3344 #include <pthread.h>
3345 void* func(void *arg) { return arg; }
3346 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3348 _pthreads=no
3349 if ! hpux ; then
3350 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3351 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3352 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3353 done
3356 if test "$_pthreads" = yes ; then
3357 test $_ld_pthread && _res_comment="using $_ld_pthread"
3358 def_pthreads='#define HAVE_PTHREADS 1'
3359 def_threads='#define HAVE_THREADS 1'
3360 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3361 else
3362 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3363 def_pthreads='#undef HAVE_PTHREADS'
3364 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3365 mingw32 || _win32dll=no
3367 echores "$_pthreads"
3369 if cygwin ; then
3370 if test "$_pthreads" = yes ; then
3371 def_pthread_cache="#define PTHREAD_CACHE 1"
3372 else
3373 _stream_cache=no
3374 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3378 echocheck "w32threads"
3379 if test "$_pthreads" = yes ; then
3380 _res_comment="using pthread instead"
3381 _w32threads=no
3383 if test "$_w32threads" = auto ; then
3384 _w32threads=no
3385 mingw32 && _w32threads=yes
3387 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3388 echores "$_w32threads"
3390 echocheck "rpath"
3391 netbsd &&_rpath=yes
3392 if test "$_rpath" = yes ; then
3393 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3394 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3395 done
3396 extra_ldflags=$tmp
3398 echores "$_rpath"
3400 echocheck "iconv"
3401 if test "$_iconv" = auto ; then
3402 cat > $TMPC << EOF
3403 #include <stdio.h>
3404 #include <unistd.h>
3405 #include <iconv.h>
3406 #define INBUFSIZE 1024
3407 #define OUTBUFSIZE 4096
3409 char inbuffer[INBUFSIZE];
3410 char outbuffer[OUTBUFSIZE];
3412 int main(void) {
3413 size_t numread;
3414 iconv_t icdsc;
3415 char *tocode="UTF-8";
3416 char *fromcode="cp1250";
3417 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3418 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3419 char *iptr=inbuffer;
3420 char *optr=outbuffer;
3421 size_t inleft=numread;
3422 size_t outleft=OUTBUFSIZE;
3423 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3424 != (size_t)(-1)) {
3425 write(1, outbuffer, OUTBUFSIZE - outleft);
3428 if (iconv_close(icdsc) == -1)
3431 return 0;
3434 _iconv=no
3435 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3436 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3437 _iconv=yes && break
3438 done
3440 if test "$_iconv" = yes ; then
3441 def_iconv='#define CONFIG_ICONV 1'
3442 else
3443 def_iconv='#undef CONFIG_ICONV'
3445 echores "$_iconv"
3448 echocheck "soundcard.h"
3449 _soundcard_h=no
3450 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3451 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3452 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3453 cat > $TMPC << EOF
3454 #include <$_soundcard_header>
3455 int main(void) { return 0; }
3457 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3458 done
3460 if test "$_soundcard_h" = yes ; then
3461 if test $_soundcard_header = "sys/soundcard.h"; then
3462 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3463 else
3464 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3467 echores "$_soundcard_h"
3470 echocheck "sys/dvdio.h"
3471 cat > $TMPC << EOF
3472 #include <unistd.h>
3473 #include <sys/dvdio.h>
3474 int main(void) { return 0; }
3476 _dvdio=no
3477 cc_check && _dvdio=yes
3478 if test "$_dvdio" = yes ; then
3479 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3480 else
3481 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3483 echores "$_dvdio"
3486 echocheck "sys/cdio.h"
3487 cat > $TMPC << EOF
3488 #include <unistd.h>
3489 #include <sys/cdio.h>
3490 int main(void) { return 0; }
3492 _cdio=no
3493 cc_check && _cdio=yes
3494 if test "$_cdio" = yes ; then
3495 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3496 else
3497 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3499 echores "$_cdio"
3502 echocheck "linux/cdrom.h"
3503 cat > $TMPC << EOF
3504 #include <sys/types.h>
3505 #include <linux/cdrom.h>
3506 int main(void) { return 0; }
3508 _cdrom=no
3509 cc_check && _cdrom=yes
3510 if test "$_cdrom" = yes ; then
3511 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3512 else
3513 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3515 echores "$_cdrom"
3518 echocheck "dvd.h"
3519 cat > $TMPC << EOF
3520 #include <dvd.h>
3521 int main(void) { return 0; }
3523 _dvd=no
3524 cc_check && _dvd=yes
3525 if test "$_dvd" = yes ; then
3526 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3527 else
3528 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3530 echores "$_dvd"
3533 if bsdos; then
3534 echocheck "BSDI dvd.h"
3535 cat > $TMPC << EOF
3536 #include <dvd.h>
3537 int main(void) { return 0; }
3539 _bsdi_dvd=no
3540 cc_check && _bsdi_dvd=yes
3541 if test "$_bsdi_dvd" = yes ; then
3542 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3543 else
3544 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3546 echores "$_bsdi_dvd"
3547 fi #if bsdos
3550 if hpux; then
3551 # also used by AIX, but AIX does not support VCD and/or libdvdread
3552 echocheck "HP-UX SCSI header"
3553 cat > $TMPC << EOF
3554 #include <sys/scsi.h>
3555 int main(void) { return 0; }
3557 _hpux_scsi_h=no
3558 cc_check && _hpux_scsi_h=yes
3559 if test "$_hpux_scsi_h" = yes ; then
3560 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3561 else
3562 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3564 echores "$_hpux_scsi_h"
3565 fi #if hpux
3568 if sunos; then
3569 echocheck "userspace SCSI headers (Solaris)"
3570 cat > $TMPC << EOF
3571 #include <unistd.h>
3572 #include <stropts.h>
3573 #include <sys/scsi/scsi_types.h>
3574 #include <sys/scsi/impl/uscsi.h>
3575 int main(void) { return 0; }
3577 _sol_scsi_h=no
3578 cc_check && _sol_scsi_h=yes
3579 if test "$_sol_scsi_h" = yes ; then
3580 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3581 else
3582 def_sol_scsi_h='#undef SOLARIS_USCSI'
3584 echores "$_sol_scsi_h"
3585 fi #if sunos
3588 echocheck "termcap"
3589 if test "$_termcap" = auto ; then
3590 cat > $TMPC <<EOF
3591 #include <stddef.h>
3592 #include <term.h>
3593 int main(void) { tgetent(NULL, NULL); return 0; }
3595 _termcap=no
3596 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3597 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3598 && _termcap=yes && break
3599 done
3601 if test "$_termcap" = yes ; then
3602 def_termcap='#define HAVE_TERMCAP 1'
3603 test $_ld_tmp && _res_comment="using $_ld_tmp"
3604 else
3605 def_termcap='#undef HAVE_TERMCAP'
3607 echores "$_termcap"
3610 echocheck "termios"
3611 def_termios='#undef HAVE_TERMIOS'
3612 def_termios_h='#undef HAVE_TERMIOS_H'
3613 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3614 if test "$_termios" = auto ; then
3615 _termios=no
3616 for _termios_header in "sys/termios.h" "termios.h"; do
3617 cat > $TMPC <<EOF
3618 #include <$_termios_header>
3619 int main(void) { return 0; }
3621 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3622 done
3625 if test "$_termios" = yes ; then
3626 def_termios='#define HAVE_TERMIOS 1'
3627 if test "$_termios_header" = "termios.h" ; then
3628 def_termios_h='#define HAVE_TERMIOS_H 1'
3629 else
3630 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3633 echores "$_termios"
3636 echocheck "shm"
3637 if test "$_shm" = auto ; then
3638 cat > $TMPC << EOF
3639 #include <sys/types.h>
3640 #include <sys/shm.h>
3641 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3643 _shm=no
3644 cc_check && _shm=yes
3646 if test "$_shm" = yes ; then
3647 def_shm='#define HAVE_SHM 1'
3648 else
3649 def_shm='#undef HAVE_SHM'
3651 echores "$_shm"
3654 echocheck "strsep()"
3655 cat > $TMPC << EOF
3656 #include <string.h>
3657 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3659 _strsep=no
3660 cc_check && _strsep=yes
3661 if test "$_strsep" = yes ; then
3662 def_strsep='#define HAVE_STRSEP 1'
3663 _need_strsep=no
3664 else
3665 def_strsep='#undef HAVE_STRSEP'
3666 _need_strsep=yes
3668 echores "$_strsep"
3671 echocheck "vsscanf()"
3672 cat > $TMPC << EOF
3673 #define _ISOC99_SOURCE
3674 #include <stdarg.h>
3675 #include <stdio.h>
3676 int main(void) { vsscanf(0, 0, 0); return 0; }
3678 _vsscanf=no
3679 cc_check && _vsscanf=yes
3680 if test "$_vsscanf" = yes ; then
3681 def_vsscanf='#define HAVE_VSSCANF 1'
3682 _need_vsscanf=no
3683 else
3684 def_vsscanf='#undef HAVE_VSSCANF'
3685 _need_vsscanf=yes
3687 echores "$_vsscanf"
3690 echocheck "swab()"
3691 cat > $TMPC << EOF
3692 #define _XOPEN_SOURCE 600
3693 #include <unistd.h>
3694 int main(void) { swab(0, 0, 0); return 0; }
3696 _swab=no
3697 cc_check && _swab=yes
3698 if test "$_swab" = yes ; then
3699 def_swab='#define HAVE_SWAB 1'
3700 _need_swab=no
3701 else
3702 def_swab='#undef HAVE_SWAB'
3703 _need_swab=yes
3705 echores "$_swab"
3707 echocheck "POSIX select()"
3708 cat > $TMPC << EOF
3709 #include <stdio.h>
3710 #include <stdlib.h>
3711 #include <sys/types.h>
3712 #include <string.h>
3713 #include <sys/time.h>
3714 #include <unistd.h>
3715 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3717 _posix_select=no
3718 def_posix_select='#undef HAVE_POSIX_SELECT'
3719 #select() of kLIBC (OS/2) supports socket only
3720 ! os2 && cc_check && _posix_select=yes \
3721 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3722 echores "$_posix_select"
3725 echocheck "audio select()"
3726 if test "$_select" = no ; then
3727 def_select='#undef HAVE_AUDIO_SELECT'
3728 elif test "$_select" = yes ; then
3729 def_select='#define HAVE_AUDIO_SELECT 1'
3731 echores "$_select"
3734 echocheck "gettimeofday()"
3735 cat > $TMPC << EOF
3736 #include <stdio.h>
3737 #include <sys/time.h>
3738 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3740 _gettimeofday=no
3741 cc_check && _gettimeofday=yes
3742 if test "$_gettimeofday" = yes ; then
3743 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3744 _need_gettimeofday=no
3745 else
3746 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3747 _need_gettimeofday=yes
3749 echores "$_gettimeofday"
3752 echocheck "glob()"
3753 cat > $TMPC << EOF
3754 #include <stdio.h>
3755 #include <glob.h>
3756 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3758 _glob=no
3759 cc_check && _glob=yes
3760 if test "$_glob" = yes ; then
3761 def_glob='#define HAVE_GLOB 1'
3762 _need_glob=no
3763 else
3764 def_glob='#undef HAVE_GLOB'
3765 _need_glob=yes
3767 echores "$_glob"
3770 echocheck "setenv()"
3771 cat > $TMPC << EOF
3772 #include <stdlib.h>
3773 int main(void) { setenv("","",0); return 0; }
3775 _setenv=no
3776 cc_check && _setenv=yes
3777 if test "$_setenv" = yes ; then
3778 def_setenv='#define HAVE_SETENV 1'
3779 _need_setenv=no
3780 else
3781 def_setenv='#undef HAVE_SETENV'
3782 _need_setenv=yes
3784 echores "$_setenv"
3787 if sunos; then
3788 echocheck "sysi86()"
3789 cat > $TMPC << EOF
3790 #include <sys/sysi86.h>
3791 int main(void) { sysi86(0); return 0; }
3793 _sysi86=no
3794 cc_check && _sysi86=yes
3795 if test "$_sysi86" = yes ; then
3796 def_sysi86='#define HAVE_SYSI86 1'
3797 cat > $TMPC << EOF
3798 #include <sys/sysi86.h>
3799 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3801 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3802 else
3803 def_sysi86='#undef HAVE_SYSI86'
3805 echores "$_sysi86"
3806 fi #if sunos
3809 echocheck "sys/sysinfo.h"
3810 cat > $TMPC << EOF
3811 #include <sys/sysinfo.h>
3812 int main(void) {
3813 struct sysinfo s_info;
3814 sysinfo(&s_info);
3815 return 0;
3818 _sys_sysinfo=no
3819 cc_check && _sys_sysinfo=yes
3820 if test "$_sys_sysinfo" = yes ; then
3821 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3822 else
3823 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3825 echores "$_sys_sysinfo"
3828 if darwin; then
3830 echocheck "Mac OS X Finder Support"
3831 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3832 if test "$_macosx_finder" = yes ; then
3833 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3834 extra_ldflags="$extra_ldflags -framework Carbon"
3836 echores "$_macosx_finder"
3838 echocheck "Mac OS X Bundle file locations"
3839 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3840 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3841 if test "$_macosx_bundle" = yes ; then
3842 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3843 extra_ldflags="$extra_ldflags -framework Carbon"
3845 echores "$_macosx_bundle"
3847 echocheck "Apple Remote"
3848 if test "$_apple_remote" = auto ; then
3849 _apple_remote=no
3850 cat > $TMPC <<EOF
3851 #include <stdio.h>
3852 #include <IOKit/IOCFPlugIn.h>
3853 int main(void) {
3854 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3855 CFMutableDictionaryRef hidMatchDictionary;
3856 IOReturn ioReturnValue;
3858 // Set up a matching dictionary to search the I/O Registry by class.
3859 // name for all HID class devices
3860 hidMatchDictionary = IOServiceMatching("AppleIRController");
3862 // Now search I/O Registry for matching devices.
3863 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3864 hidMatchDictionary, &hidObjectIterator);
3866 // If search is unsuccessful, return nonzero.
3867 if (ioReturnValue != kIOReturnSuccess ||
3868 !IOIteratorIsValid(hidObjectIterator)) {
3869 return 1;
3871 return 0;
3874 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3876 if test "$_apple_remote" = yes ; then
3877 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3878 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3879 else
3880 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3882 echores "$_apple_remote"
3884 fi #if darwin
3886 if linux; then
3888 echocheck "Apple IR"
3889 if test "$_apple_ir" = auto ; then
3890 _apple_ir=no
3891 cat > $TMPC <<EOF
3892 #include <linux/types.h>
3893 #include <linux/input.h>
3894 int main(void) {
3895 struct input_event ev;
3896 struct input_id id;
3897 return 0;
3900 cc_check && tmp_run && _apple_ir=yes
3902 if test "$_apple_ir" = yes ; then
3903 def_apple_ir='#define CONFIG_APPLE_IR 1'
3904 else
3905 def_apple_ir='#undef CONFIG_APPLE_IR'
3907 echores "$_apple_ir"
3908 fi #if linux
3910 echocheck "pkg-config"
3911 _pkg_config=pkg-config
3912 if $($_pkg_config --version > /dev/null 2>&1); then
3913 if test "$_ld_static"; then
3914 _pkg_config="$_pkg_config --static"
3916 echores "yes"
3917 else
3918 _pkg_config=false
3919 echores "no"
3923 echocheck "Samba support (libsmbclient)"
3924 if test "$_smb" = yes; then
3925 extra_ldflags="$extra_ldflags -lsmbclient"
3927 if test "$_smb" = auto; then
3928 _smb=no
3929 cat > $TMPC << EOF
3930 #include <libsmbclient.h>
3931 int main(void) { smbc_opendir("smb://"); return 0; }
3933 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3934 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3935 _smb=yes && break
3936 done
3939 if test "$_smb" = yes; then
3940 def_smb="#define CONFIG_LIBSMBCLIENT"
3941 _inputmodules="smb $_inputmodules"
3942 else
3943 def_smb="#undef CONFIG_LIBSMBCLIENT"
3944 _noinputmodules="smb $_noinputmodules"
3946 echores "$_smb"
3949 #########
3950 # VIDEO #
3951 #########
3954 echocheck "tdfxfb"
3955 if test "$_tdfxfb" = yes ; then
3956 def_tdfxfb='#define CONFIG_TDFXFB 1'
3957 _vomodules="tdfxfb $_vomodules"
3958 else
3959 def_tdfxfb='#undef CONFIG_TDFXFB'
3960 _novomodules="tdfxfb $_novomodules"
3962 echores "$_tdfxfb"
3964 echocheck "s3fb"
3965 if test "$_s3fb" = yes ; then
3966 def_s3fb='#define CONFIG_S3FB 1'
3967 _vomodules="s3fb $_vomodules"
3968 else
3969 def_s3fb='#undef CONFIG_S3FB'
3970 _novomodules="s3fb $_novomodules"
3972 echores "$_s3fb"
3974 echocheck "wii"
3975 if test "$_wii" = yes ; then
3976 def_wii='#define CONFIG_WII 1'
3977 _vomodules="wii $_vomodules"
3978 else
3979 def_wii='#undef CONFIG_WII'
3980 _novomodules="wii $_novomodules"
3982 echores "$_wii"
3984 echocheck "tdfxvid"
3985 if test "$_tdfxvid" = yes ; then
3986 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3987 _vomodules="tdfx_vid $_vomodules"
3988 else
3989 def_tdfxvid='#undef CONFIG_TDFX_VID'
3990 _novomodules="tdfx_vid $_novomodules"
3992 echores "$_tdfxvid"
3994 echocheck "xvr100"
3995 if test "$_xvr100" = auto ; then
3996 cat > $TMPC << EOF
3997 #include <unistd.h>
3998 #include <sys/fbio.h>
3999 #include <sys/visual_io.h>
4000 int main(void) {
4001 struct vis_identifier ident;
4002 struct fbgattr attr;
4003 ioctl(0, VIS_GETIDENTIFIER, &ident);
4004 ioctl(0, FBIOGATTR, &attr);
4005 return 0;
4008 _xvr100=no
4009 cc_check && _xvr100=yes
4011 if test "$_xvr100" = yes ; then
4012 def_xvr100='#define CONFIG_XVR100 1'
4013 _vomodules="xvr100 $_vomodules"
4014 else
4015 def_tdfxvid='#undef CONFIG_XVR100'
4016 _novomodules="xvr100 $_novomodules"
4018 echores "$_xvr100"
4020 echocheck "tga"
4021 if test "$_tga" = yes ; then
4022 def_tga='#define CONFIG_TGA 1'
4023 _vomodules="tga $_vomodules"
4024 else
4025 def_tga='#undef CONFIG_TGA'
4026 _novomodules="tga $_novomodules"
4028 echores "$_tga"
4031 echocheck "md5sum support"
4032 if test "$_md5sum" = yes; then
4033 def_md5sum="#define CONFIG_MD5SUM"
4034 _vomodules="md5sum $_vomodules"
4035 else
4036 def_md5sum="#undef CONFIG_MD5SUM"
4037 _novomodules="md5sum $_novomodules"
4039 echores "$_md5sum"
4042 echocheck "yuv4mpeg support"
4043 if test "$_yuv4mpeg" = yes; then
4044 def_yuv4mpeg="#define CONFIG_YUV4MPEG"
4045 _vomodules="yuv4mpeg $_vomodules"
4046 else
4047 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4048 _novomodules="yuv4mpeg $_novomodules"
4050 echores "$_yuv4mpeg"
4053 echocheck "bl"
4054 if test "$_bl" = yes ; then
4055 def_bl='#define CONFIG_BL 1'
4056 _vomodules="bl $_vomodules"
4057 else
4058 def_bl='#undef CONFIG_BL'
4059 _novomodules="bl $_novomodules"
4061 echores "$_bl"
4064 echocheck "DirectFB"
4065 if test "$_directfb" = auto ; then
4066 _directfb=no
4067 cat > $TMPC <<EOF
4068 #include <directfb.h>
4069 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4071 for _inc_tmp in "" -I/usr/local/include/directfb \
4072 -I/usr/include/directfb -I/usr/local/include; do
4073 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4074 extra_cflags="$extra_cflags $_inc_tmp" && break
4075 done
4078 dfb_version() {
4079 expr $1 \* 65536 + $2 \* 256 + $3
4082 if test "$_directfb" = yes; then
4083 cat > $TMPC << EOF
4084 #include <directfb_version.h>
4086 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4089 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4090 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4091 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4092 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4093 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4094 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4095 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4096 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4097 _res_comment="$_directfb_version"
4098 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4099 else
4100 def_directfb_version='#undef DIRECTFBVERSION'
4101 _directfb=no
4102 _res_comment="version >=0.9.13 required"
4104 else
4105 _directfb=no
4106 _res_comment="failed to get version"
4109 echores "$_directfb"
4111 if test "$_directfb" = yes ; then
4112 def_directfb='#define CONFIG_DIRECTFB 1'
4113 _vomodules="directfb $_vomodules"
4114 libs_mplayer="$libs_mplayer -ldirectfb"
4115 else
4116 def_directfb='#undef CONFIG_DIRECTFB'
4117 _novomodules="directfb $_novomodules"
4119 if test "$_dfbmga" = yes; then
4120 _vomodules="dfbmga $_vomodules"
4121 def_dfbmga='#define CONFIG_DFBMGA 1'
4122 else
4123 _novomodules="dfbmga $_novomodules"
4124 def_dfbmga='#undef CONFIG_DFBMGA'
4128 echocheck "X11 headers presence"
4129 _x11_headers="no"
4130 _res_comment="check if the dev(el) packages are installed"
4131 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4132 if test -f "$I/X11/Xlib.h" ; then
4133 _x11_headers="yes"
4134 _res_comment=""
4135 break
4137 done
4138 if test $_cross_compile = no; then
4139 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4140 /usr/include/X11R6 /usr/openwin/include ; do
4141 if test -f "$I/X11/Xlib.h" ; then
4142 extra_cflags="$extra_cflags -I$I"
4143 _x11_headers="yes"
4144 _res_comment="using $I"
4145 break
4147 done
4149 echores "$_x11_headers"
4152 echocheck "X11"
4153 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4154 cat > $TMPC <<EOF
4155 #include <X11/Xlib.h>
4156 #include <X11/Xutil.h>
4157 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4159 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4160 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4161 -L/usr/lib ; do
4162 if netbsd; then
4163 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4164 else
4165 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4167 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4168 && _x11=yes && break
4169 done
4171 if test "$_x11" = yes ; then
4172 def_x11='#define CONFIG_X11 1'
4173 _vomodules="x11 xover $_vomodules"
4174 else
4175 _x11=no
4176 def_x11='#undef CONFIG_X11'
4177 _novomodules="x11 $_novomodules"
4178 _res_comment="check if the dev(el) packages are installed"
4179 # disable stuff that depends on X
4180 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4182 echores "$_x11"
4184 echocheck "Xss screensaver extensions"
4185 if test "$_xss" = auto ; then
4186 cat > $TMPC << EOF
4187 #include <X11/Xlib.h>
4188 #include <X11/extensions/scrnsaver.h>
4189 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4191 _xss=no
4192 cc_check -lXss && _xss=yes
4194 if test "$_xss" = yes ; then
4195 def_xss='#define CONFIG_XSS 1'
4196 libs_mplayer="$libs_mplayer -lXss"
4197 else
4198 def_xss='#undef CONFIG_XSS'
4200 echores "$_xss"
4202 echocheck "DPMS"
4203 _xdpms3=no
4204 _xdpms4=no
4205 if test "$_x11" = yes ; then
4206 cat > $TMPC <<EOF
4207 #include <X11/Xmd.h>
4208 #include <X11/Xlib.h>
4209 #include <X11/Xutil.h>
4210 #include <X11/Xatom.h>
4211 #include <X11/extensions/dpms.h>
4212 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4214 cc_check -lXdpms && _xdpms3=yes
4215 cat > $TMPC <<EOF
4216 #include <X11/Xlib.h>
4217 #include <X11/extensions/dpms.h>
4218 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4220 cc_check -lXext && _xdpms4=yes
4222 if test "$_xdpms4" = yes ; then
4223 def_xdpms='#define CONFIG_XDPMS 1'
4224 _res_comment="using Xdpms 4"
4225 echores "yes"
4226 elif test "$_xdpms3" = yes ; then
4227 def_xdpms='#define CONFIG_XDPMS 1'
4228 libs_mplayer="$libs_mplayer -lXdpms"
4229 _res_comment="using Xdpms 3"
4230 echores "yes"
4231 else
4232 def_xdpms='#undef CONFIG_XDPMS'
4233 echores "no"
4237 echocheck "Xv"
4238 if test "$_xv" = auto ; then
4239 cat > $TMPC <<EOF
4240 #include <X11/Xlib.h>
4241 #include <X11/extensions/Xvlib.h>
4242 int main(void) {
4243 (void) XvGetPortAttribute(0, 0, 0, 0);
4244 (void) XvQueryPortAttributes(0, 0, 0);
4245 return 0; }
4247 _xv=no
4248 cc_check -lXv && _xv=yes
4251 if test "$_xv" = yes ; then
4252 def_xv='#define CONFIG_XV 1'
4253 libs_mplayer="$libs_mplayer -lXv"
4254 _vomodules="xv $_vomodules"
4255 else
4256 def_xv='#undef CONFIG_XV'
4257 _novomodules="xv $_novomodules"
4259 echores "$_xv"
4262 echocheck "XvMC"
4263 if test "$_xv" = yes && test "$_xvmc" != no ; then
4264 _xvmc=no
4265 cat > $TMPC <<EOF
4266 #include <X11/Xlib.h>
4267 #include <X11/extensions/Xvlib.h>
4268 #include <X11/extensions/XvMClib.h>
4269 int main(void) {
4270 (void) XvMCQueryExtension(0,0,0);
4271 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4272 return 0; }
4274 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4275 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4276 done
4278 if test "$_xvmc" = yes ; then
4279 def_xvmc='#define CONFIG_XVMC 1'
4280 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4281 _vomodules="xvmc $_vomodules"
4282 _res_comment="using $_xvmclib"
4283 else
4284 def_xvmc='#define CONFIG_XVMC 0'
4285 _novomodules="xvmc $_novomodules"
4286 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4288 echores "$_xvmc"
4291 echocheck "VDPAU"
4292 if test "$_vdpau" = auto ; then
4293 _vdpau=no
4294 if test "$_dl" = yes ; then
4295 cat > $TMPC <<EOF
4296 #include <vdpau/vdpau_x11.h>
4297 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4299 cc_check && _vdpau=yes
4302 if test "$_vdpau" = yes ; then
4303 def_vdpau='#define CONFIG_VDPAU 1'
4304 _vomodules="vdpau $_vomodules"
4305 else
4306 def_vdpau='#define CONFIG_VDPAU 0'
4307 _novomodules="vdpau $_novomodules"
4308 _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//)
4310 echores "$_vdpau"
4313 echocheck "Xinerama"
4314 if test "$_xinerama" = auto ; then
4315 cat > $TMPC <<EOF
4316 #include <X11/Xlib.h>
4317 #include <X11/extensions/Xinerama.h>
4318 int main(void) { (void) XineramaIsActive(0); return 0; }
4320 _xinerama=no
4321 cc_check -lXinerama && _xinerama=yes
4324 if test "$_xinerama" = yes ; then
4325 def_xinerama='#define CONFIG_XINERAMA 1'
4326 libs_mplayer="$libs_mplayer -lXinerama"
4327 else
4328 def_xinerama='#undef CONFIG_XINERAMA'
4330 echores "$_xinerama"
4333 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4334 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4335 # named 'X extensions' or something similar.
4336 # This check may be useful for future mplayer versions (to change resolution)
4337 # If you run into problems, remove '-lXxf86vm'.
4338 echocheck "Xxf86vm"
4339 if test "$_vm" = auto ; then
4340 cat > $TMPC <<EOF
4341 #include <X11/Xlib.h>
4342 #include <X11/extensions/xf86vmode.h>
4343 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4345 _vm=no
4346 cc_check -lXxf86vm && _vm=yes
4348 if test "$_vm" = yes ; then
4349 def_vm='#define CONFIG_XF86VM 1'
4350 libs_mplayer="$libs_mplayer -lXxf86vm"
4351 else
4352 def_vm='#undef CONFIG_XF86VM'
4354 echores "$_vm"
4356 # Check for the presence of special keycodes, like audio control buttons
4357 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4358 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4359 # have these new keycodes.
4360 echocheck "XF86keysym"
4361 if test "$_xf86keysym" = auto; then
4362 _xf86keysym=no
4363 cat > $TMPC <<EOF
4364 #include <X11/Xlib.h>
4365 #include <X11/XF86keysym.h>
4366 int main(void) { return XF86XK_AudioPause; }
4368 cc_check && _xf86keysym=yes
4370 if test "$_xf86keysym" = yes ; then
4371 def_xf86keysym='#define CONFIG_XF86XK 1'
4372 else
4373 def_xf86keysym='#undef CONFIG_XF86XK'
4375 echores "$_xf86keysym"
4377 echocheck "DGA"
4378 if test "$_dga2" = auto && test "$_x11" = yes ; then
4379 cat > $TMPC << EOF
4380 #include <X11/Xlib.h>
4381 #include <X11/extensions/xf86dga.h>
4382 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4384 _dga2=no
4385 cc_check -lXxf86dga && _dga2=yes
4387 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4388 cat > $TMPC << EOF
4389 #include <X11/Xlib.h>
4390 #include <X11/extensions/xf86dga.h>
4391 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4393 _dga1=no
4394 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4397 _dga=no
4398 def_dga='#undef CONFIG_DGA'
4399 def_dga1='#undef CONFIG_DGA1'
4400 def_dga2='#undef CONFIG_DGA2'
4401 if test "$_dga1" = yes ; then
4402 _dga=yes
4403 def_dga1='#define CONFIG_DGA1 1'
4404 _res_comment="using DGA 1.0"
4405 elif test "$_dga2" = yes ; then
4406 _dga=yes
4407 def_dga2='#define CONFIG_DGA2 1'
4408 _res_comment="using DGA 2.0"
4410 if test "$_dga" = yes ; then
4411 def_dga='#define CONFIG_DGA 1'
4412 libs_mplayer="$libs_mplayer -lXxf86dga"
4413 _vomodules="dga $_vomodules"
4414 else
4415 _novomodules="dga $_novomodules"
4417 echores "$_dga"
4420 echocheck "3dfx"
4421 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4422 def_3dfx='#define CONFIG_3DFX 1'
4423 _vomodules="3dfx $_vomodules"
4424 else
4425 def_3dfx='#undef CONFIG_3DFX'
4426 _novomodules="3dfx $_novomodules"
4428 echores "$_3dfx"
4431 echocheck "OpenGL"
4432 #Note: this test is run even with --enable-gl since we autodetect linker flags
4433 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4434 cat > $TMPC << EOF
4435 #ifdef GL_WIN32
4436 #include <windows.h>
4437 #include <GL/gl.h>
4438 #else
4439 #include <GL/gl.h>
4440 #include <X11/Xlib.h>
4441 #include <GL/glx.h>
4442 #endif
4443 int main(void) {
4444 #ifdef GL_WIN32
4445 HDC dc;
4446 wglCreateContext(dc);
4447 #else
4448 glXCreateContext(NULL, NULL, NULL, True);
4449 #endif
4450 glFinish();
4451 return 0;
4454 _gl=no
4455 if cc_check -lGL $_ld_lm ; then
4456 _gl=yes
4457 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4458 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4459 _gl=yes
4460 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4461 elif cc_check -DGL_WIN32 -lopengl32 ; then
4462 _gl=yes
4463 _gl_win32=yes
4464 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4466 else
4467 _gl=no
4469 if test "$_gl" = yes ; then
4470 def_gl='#define CONFIG_GL 1'
4471 if test "$_gl_win32" = yes ; then
4472 def_gl_win32='#define GL_WIN32 1'
4473 _res_comment="win32 version"
4475 _vomodules="opengl $_vomodules"
4476 else
4477 def_gl='#undef CONFIG_GL'
4478 def_gl_win32='#undef GL_WIN32'
4479 _novomodules="opengl $_novomodules"
4481 echores "$_gl"
4484 echocheck "VIDIX"
4485 def_vidix='#undef CONFIG_VIDIX'
4486 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4487 _vidix_drv_cyberblade=no
4488 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4489 _vidix_drv_ivtv=no
4490 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4491 _vidix_drv_ivtv=no
4492 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4493 _vidix_drv_mach64=no
4494 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4495 _vidix_drv_mga=no
4496 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4497 _vidix_drv_mga_crtc2=no
4498 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4499 _vidix_drv_nvidia=no
4500 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4501 _vidix_drv_pm2=no
4502 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4503 _vidix_drv_pm3=no
4504 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4505 _vidix_drv_radeon=no
4506 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4507 _vidix_drv_rage128=no
4508 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4509 _vidix_drv_s3=no
4510 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4511 _vidix_drv_sh_veu=no
4512 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4513 _vidix_drv_sis=no
4514 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4515 _vidix_drv_unichrome=no
4516 if test "$_vidix" = auto ; then
4517 _vidix=no
4518 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4519 && _vidix=yes
4520 (ppc || alpha) && linux && _vidix=yes
4522 echores "$_vidix"
4524 if test "$_vidix" = yes ; then
4525 def_vidix='#define CONFIG_VIDIX 1'
4526 _vomodules="cvidix $_vomodules"
4527 test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4528 test $_ivtv = "yes" || _vidix_drivers=$(echo $_vidix_drivers | sed s/ivtv//)
4530 # some vidix drivers are architecture and os specific, discard them elsewhere
4531 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4532 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4534 for driver in $_vidix_drivers ; do
4535 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4536 eval _vidix_drv_${driver}=yes
4537 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4538 done
4540 echocheck "VIDIX PCI device name database"
4541 echores "$_vidix_pcidb"
4542 if test "$_vidix_pcidb" = yes ; then
4543 _vidix_pcidb_val=1
4544 else
4545 _vidix_pcidb_val=0
4548 echocheck "VIDIX dhahelper support"
4549 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4550 echores "$_dhahelper"
4552 echocheck "VIDIX svgalib_helper support"
4553 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4554 echores "$_svgalib_helper"
4556 else
4557 _novomodules="cvidix $_novomodules"
4560 if test "$_vidix" = yes && win32; then
4561 winvidix=yes
4562 _vomodules="winvidix $_vomodules"
4563 libs_mplayer="$libs_mplayer -lgdi32"
4564 else
4565 _novomodules="winvidix $_novomodules"
4567 if test "$_vidix" = yes && test "$_x11" = yes; then
4568 xvidix=yes
4569 _vomodules="xvidix $_vomodules"
4570 else
4571 _novomodules="xvidix $_novomodules"
4574 echocheck "/dev/mga_vid"
4575 if test "$_mga" = auto ; then
4576 _mga=no
4577 test -c /dev/mga_vid && _mga=yes
4579 if test "$_mga" = yes ; then
4580 def_mga='#define CONFIG_MGA 1'
4581 _vomodules="mga $_vomodules"
4582 else
4583 def_mga='#undef CONFIG_MGA'
4584 _novomodules="mga $_novomodules"
4586 echores "$_mga"
4589 echocheck "xmga"
4590 if test "$_xmga" = auto ; then
4591 _xmga=no
4592 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4594 if test "$_xmga" = yes ; then
4595 def_xmga='#define CONFIG_XMGA 1'
4596 _vomodules="xmga $_vomodules"
4597 else
4598 def_xmga='#undef CONFIG_XMGA'
4599 _novomodules="xmga $_novomodules"
4601 echores "$_xmga"
4604 echocheck "GGI"
4605 if test "$_ggi" = auto ; then
4606 cat > $TMPC << EOF
4607 #include <ggi/ggi.h>
4608 int main(void) { ggiInit(); return 0; }
4610 _ggi=no
4611 cc_check -lggi && _ggi=yes
4613 if test "$_ggi" = yes ; then
4614 def_ggi='#define CONFIG_GGI 1'
4615 libs_mplayer="$libs_mplayer -lggi"
4616 _vomodules="ggi $_vomodules"
4617 else
4618 def_ggi='#undef CONFIG_GGI'
4619 _novomodules="ggi $_novomodules"
4621 echores "$_ggi"
4623 echocheck "GGI extension: libggiwmh"
4624 if test "$_ggiwmh" = auto ; then
4625 _ggiwmh=no
4626 cat > $TMPC << EOF
4627 #include <ggi/ggi.h>
4628 #include <ggi/wmh.h>
4629 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4631 cc_check -lggi -lggiwmh && _ggiwmh=yes
4633 # needed to get right output on obscure combination
4634 # like --disable-ggi --enable-ggiwmh
4635 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4636 def_ggiwmh='#define CONFIG_GGIWMH 1'
4637 libs_mplayer="$libs_mplayer -lggiwmh"
4638 else
4639 _ggiwmh=no
4640 def_ggiwmh='#undef CONFIG_GGIWMH'
4642 echores "$_ggiwmh"
4645 echocheck "AA"
4646 if test "$_aa" = auto ; then
4647 cat > $TMPC << EOF
4648 #include <aalib.h>
4649 extern struct aa_hardware_params aa_defparams;
4650 extern struct aa_renderparams aa_defrenderparams;
4651 int main(void) {
4652 aa_context *c;
4653 aa_renderparams *p;
4654 (void) aa_init(0, 0, 0);
4655 c = aa_autoinit(&aa_defparams);
4656 p = aa_getrenderparams();
4657 aa_autoinitkbd(c,0);
4658 return 0; }
4660 _aa=no
4661 for _ld_tmp in "-laa" ; do
4662 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4663 done
4665 if test "$_aa" = yes ; then
4666 def_aa='#define CONFIG_AA 1'
4667 if cygwin ; then
4668 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4670 _vomodules="aa $_vomodules"
4671 else
4672 def_aa='#undef CONFIG_AA'
4673 _novomodules="aa $_novomodules"
4675 echores "$_aa"
4678 echocheck "CACA"
4679 if test "$_caca" = auto ; then
4680 _caca=no
4681 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4682 cat > $TMPC << EOF
4683 #include <caca.h>
4684 #ifdef CACA_API_VERSION_1
4685 #include <caca0.h>
4686 #endif
4687 int main(void) { (void) caca_init(); return 0; }
4689 cc_check $(caca-config --libs) && _caca=yes
4692 if test "$_caca" = yes ; then
4693 def_caca='#define CONFIG_CACA 1'
4694 extra_cflags="$extra_cflags $(caca-config --cflags)"
4695 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4696 _vomodules="caca $_vomodules"
4697 else
4698 def_caca='#undef CONFIG_CACA'
4699 _novomodules="caca $_novomodules"
4701 echores "$_caca"
4704 echocheck "SVGAlib"
4705 if test "$_svga" = auto ; then
4706 cat > $TMPC << EOF
4707 #include <vga.h>
4708 int main(void) { return 0; }
4710 _svga=no
4711 cc_check -lvga $_ld_lm && _svga=yes
4713 if test "$_svga" = yes ; then
4714 def_svga='#define CONFIG_SVGALIB 1'
4715 libs_mplayer="$libs_mplayer -lvga"
4716 _vomodules="svga $_vomodules"
4717 else
4718 def_svga='#undef CONFIG_SVGALIB'
4719 _novomodules="svga $_novomodules"
4721 echores "$_svga"
4724 echocheck "FBDev"
4725 if test "$_fbdev" = auto ; then
4726 _fbdev=no
4727 linux && _fbdev=yes
4729 if test "$_fbdev" = yes ; then
4730 def_fbdev='#define CONFIG_FBDEV 1'
4731 _vomodules="fbdev $_vomodules"
4732 else
4733 def_fbdev='#undef CONFIG_FBDEV'
4734 _novomodules="fbdev $_novomodules"
4736 echores "$_fbdev"
4740 echocheck "DVB"
4741 if test "$_dvb" = auto ; then
4742 _dvb=no
4743 cat >$TMPC << EOF
4744 #include <poll.h>
4745 #include <sys/ioctl.h>
4746 #include <stdio.h>
4747 #include <time.h>
4748 #include <unistd.h>
4749 #include <ost/dmx.h>
4750 #include <ost/frontend.h>
4751 #include <ost/sec.h>
4752 #include <ost/video.h>
4753 #include <ost/audio.h>
4754 int main(void) {return 0;}
4756 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4757 cc_check $_inc_tmp && _dvb=yes && \
4758 extra_cflags="$extra_cflags $_inc_tmp" && break
4759 done
4761 echores "$_dvb"
4762 if test "$_dvb" = yes ; then
4763 def_dvb='#define CONFIG_DVB 1'
4764 def_dvbin='#define CONFIG_DVBIN 1'
4765 _aomodules="mpegpes(dvb) $_aomodules"
4766 _vomodules="mpegpes(dvb) $_vomodules"
4769 echocheck "DVB HEAD"
4770 if test "$_dvbhead" = auto ; then
4771 _dvbhead=no
4773 cat >$TMPC << EOF
4774 #include <poll.h>
4775 #include <sys/ioctl.h>
4776 #include <stdio.h>
4777 #include <time.h>
4778 #include <unistd.h>
4779 #include <linux/dvb/dmx.h>
4780 #include <linux/dvb/frontend.h>
4781 #include <linux/dvb/video.h>
4782 #include <linux/dvb/audio.h>
4783 int main(void) {return 0;}
4785 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4786 cc_check $_inc_tmp && _dvbhead=yes && \
4787 extra_cflags="$extra_cflags $_inc_tmp" && break
4788 done
4790 echores "$_dvbhead"
4791 if test "$_dvbhead" = yes ; then
4792 def_dvb='#define CONFIG_DVB 1'
4793 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4794 def_dvbin='#define CONFIG_DVBIN 1'
4795 _aomodules="mpegpes(dvb) $_aomodules"
4796 _vomodules="mpegpes(dvb) $_vomodules"
4799 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4800 def_dvb='#undef CONFIG_DVB'
4801 def_dvb_head='#undef CONFIG_DVB_HEAD'
4802 def_dvbin='#undef CONFIG_DVBIN '
4803 _aomodules="mpegpes(file) $_aomodules"
4804 _vomodules="mpegpes(file) $_vomodules"
4807 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4808 _dvbin=yes
4809 _inputmodules="dvb $_inputmodules"
4810 else
4811 _dvbin=no
4812 _noinputmodules="dvb $_noinputmodules"
4816 if darwin; then
4818 echocheck "Quartz"
4819 if test "$_quartz" = auto ; then
4820 cat > $TMPC <<EOF
4821 #include <Carbon/Carbon.h>
4822 #include <QuickTime/QuickTime.h>
4823 int main(void) {
4824 EnterMovies();
4825 ExitMovies();
4826 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4827 return 0;
4830 _quartz=no
4831 cc_check -framework Carbon -framework QuickTime && _quartz=yes
4833 if test "$_quartz" = yes ; then
4834 libs_mplayer="$libs_mplayer -framework Carbon -framework QuickTime"
4835 def_quartz='#define CONFIG_QUARTZ 1'
4836 _vomodules="quartz $_vomodules"
4837 else
4838 def_quartz='#undef CONFIG_QUARTZ'
4839 _novomodules="quartz $_novomodules"
4841 echores $_quartz
4843 echocheck "CoreVideo"
4844 if test "$_corevideo" = auto ; then
4845 cat > $TMPC <<EOF
4846 #include <Carbon/Carbon.h>
4847 #include <CoreServices/CoreServices.h>
4848 #include <OpenGL/OpenGL.h>
4849 #include <QuartzCore/CoreVideo.h>
4850 int main(void) { return 0; }
4852 _corevideo=no
4853 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4855 if test "$_corevideo" = yes ; then
4856 _vomodules="corevideo $_vomodules"
4857 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4858 def_corevideo='#define CONFIG_COREVIDEO 1'
4859 else
4860 _novomodules="corevideo $_novomodules"
4861 def_corevideo='#undef CONFIG_COREVIDEO'
4863 echores "$_corevideo"
4865 fi #if darwin
4868 echocheck "PNG support"
4869 if test "$_png" = auto ; then
4870 _png=no
4871 if irix ; then
4872 # Don't check for -lpng on irix since it has its own libpng
4873 # incompatible with the GNU libpng
4874 _res_comment="disabled on irix (not GNU libpng)"
4875 else
4876 cat > $TMPC << EOF
4877 #include <png.h>
4878 #include <string.h>
4879 int main(void) {
4880 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4881 printf("libpng: %s\n", png_libpng_ver);
4882 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4885 if cc_check -lpng -lz $_ld_lm ; then
4886 if tmp_run ; then
4887 _png=yes
4888 else
4889 _res_comment="mismatch of library and header versions"
4894 echores "$_png"
4895 if test "$_png" = yes ; then
4896 def_png='#define CONFIG_PNG 1'
4897 extra_ldflags="$extra_ldflags -lpng -lz"
4898 _vomodules="png $_vomodules"
4899 else
4900 def_png='#undef CONFIG_PNG'
4901 _novomodules="png $_novomodules"
4904 echocheck "MNG support"
4905 if test "$_mng" = auto ; then
4906 _mng=no
4907 cat > $TMPC << EOF
4908 #include <libmng.h>
4909 int main(void) {
4910 const char * p_ver = mng_version_text();
4911 return !p_ver || p_ver[0] == 0;
4914 if cc_check -lmng -lz $_ld_lm ; then
4915 _mng=yes
4918 echores "$_mng"
4919 if test "$_mng" = yes ; then
4920 def_mng='#define CONFIG_MNG 1'
4921 extra_ldflags="$extra_ldflags -lmng -lz"
4922 else
4923 def_mng='#undef CONFIG_MNG'
4926 echocheck "JPEG support"
4927 if test "$_jpeg" = auto ; then
4928 _jpeg=no
4929 cat > $TMPC << EOF
4930 #include <stdio.h>
4931 #include <stdlib.h>
4932 #include <setjmp.h>
4933 #include <string.h>
4934 #include <jpeglib.h>
4935 int main(void) { return 0; }
4937 if cc_check -ljpeg $_ld_lm ; then
4938 if tmp_run ; then
4939 _jpeg=yes
4943 echores "$_jpeg"
4945 if test "$_jpeg" = yes ; then
4946 def_jpeg='#define CONFIG_JPEG 1'
4947 _vomodules="jpeg $_vomodules"
4948 extra_ldflags="$extra_ldflags -ljpeg"
4949 else
4950 def_jpeg='#undef CONFIG_JPEG'
4951 _novomodules="jpeg $_novomodules"
4956 echocheck "PNM support"
4957 if test "$_pnm" = yes; then
4958 def_pnm="#define CONFIG_PNM 1"
4959 _vomodules="pnm $_vomodules"
4960 else
4961 def_pnm="#undef CONFIG_PNM"
4962 _novomodules="pnm $_novomodules"
4964 echores "$_pnm"
4968 echocheck "GIF support"
4969 # This is to appease people who want to force gif support.
4970 # If it is forced to yes, then we still do checks to determine
4971 # which gif library to use.
4972 if test "$_gif" = yes ; then
4973 _force_gif=yes
4974 _gif=auto
4977 if test "$_gif" = auto ; then
4978 _gif=no
4979 cat > $TMPC << EOF
4980 #include <gif_lib.h>
4981 int main(void) { return 0; }
4983 for _ld_gif in "-lungif" "-lgif" ; do
4984 cc_check $_ld_gif && tmp_run && _gif=yes && break
4985 done
4988 # If no library was found, and the user wants support forced,
4989 # then we force it on with libgif, as this is the safest
4990 # assumption IMHO. (libungif & libregif both create symbolic
4991 # links to libgif. We also assume that no x11 support is needed,
4992 # because if you are forcing this, then you _should_ know what
4993 # you are doing. [ Besides, package maintainers should never
4994 # have compiled x11 deps into libungif in the first place. ] )
4995 # </rant>
4996 # --Joey
4997 if test "$_force_gif" = yes && test "$_gif" = no ; then
4998 _gif=yes
4999 _ld_gif="-lgif"
5002 if test "$_gif" = yes ; then
5003 def_gif='#define CONFIG_GIF 1'
5004 _codecmodules="gif $_codecmodules"
5005 _vomodules="gif89a $_vomodules"
5006 _res_comment="old version, some encoding functions disabled"
5007 def_gif_4='#undef CONFIG_GIF_4'
5008 extra_ldflags="$extra_ldflags $_ld_gif"
5010 cat > $TMPC << EOF
5011 #include <signal.h>
5012 #include <gif_lib.h>
5013 void catch() { exit(1); }
5014 int main(void) {
5015 signal(SIGSEGV, catch); // catch segfault
5016 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5017 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5018 return 0;
5021 if cc_check "$_ld_gif" && tmp_run ; then
5022 def_gif_4='#define CONFIG_GIF_4 1'
5023 _res_comment=""
5025 else
5026 def_gif='#undef CONFIG_GIF'
5027 def_gif_4='#undef CONFIG_GIF_4'
5028 _novomodules="gif89a $_novomodules"
5029 _nocodecmodules="gif $_nocodecmodules"
5031 echores "$_gif"
5034 case "$_gif" in yes*)
5035 echocheck "broken giflib workaround"
5036 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5038 cat > $TMPC << EOF
5039 #include <gif_lib.h>
5040 int main(void) {
5041 GifFileType gif;
5042 printf("UserData is at address %p\n", gif.UserData);
5043 return 0;
5046 if cc_check "$_ld_gif" && tmp_run ; then
5047 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5048 echores "disabled"
5049 else
5050 echores "enabled"
5053 esac
5056 echocheck "VESA support"
5057 if test "$_vesa" = auto ; then
5058 cat > $TMPC << EOF
5059 #include <vbe.h>
5060 int main(void) { vbeVersion(); return 0; }
5062 _vesa=no
5063 cc_check -lvbe -llrmi && _vesa=yes
5065 if test "$_vesa" = yes ; then
5066 def_vesa='#define CONFIG_VESA 1'
5067 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5068 _vomodules="vesa $_vomodules"
5069 else
5070 def_vesa='#undef CONFIG_VESA'
5071 _novomodules="vesa $_novomodules"
5073 echores "$_vesa"
5075 #################
5076 # VIDEO + AUDIO #
5077 #################
5080 echocheck "SDL"
5081 if test -z "$_sdlconfig" ; then
5082 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5083 _sdlconfig="sdl-config"
5084 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5085 _sdlconfig="sdl11-config"
5086 else
5087 _sdlconfig=false
5090 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5091 cat > $TMPC << EOF
5092 #include <SDL.h>
5093 int main(int argc, char *argv[]) {
5094 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5095 return 0;
5098 _sdl=no
5099 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5100 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5101 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5102 if test "$_sdlversion" -gt 116 ; then
5103 if test "$_sdlversion" -lt 121 ; then
5104 def_sdlbuggy='#define BUGGY_SDL'
5105 else
5106 def_sdlbuggy='#undef BUGGY_SDL'
5108 _sdl=yes
5113 if test "$_sdl" = yes ; then
5114 def_sdl='#define CONFIG_SDL 1'
5115 if cygwin ; then
5116 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5117 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5118 elif mingw32 ; then
5119 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5120 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5121 else
5122 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5123 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5125 _vomodules="sdl $_vomodules"
5126 _aomodules="sdl $_aomodules"
5127 _res_comment="using $_sdlconfig"
5128 else
5129 def_sdl='#undef CONFIG_SDL'
5130 _novomodules="sdl $_novomodules"
5131 _noaomodules="sdl $_noaomodules"
5133 echores "$_sdl"
5136 if os2 ; then
5137 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5138 if test "$_kva" = auto; then
5139 cat > $TMPC << EOF
5140 #include <os2.h>
5141 #include <kva.h>
5142 int main( void ) { return 0; }
5144 _kva=no;
5145 cc_check -lkva && _kva=yes
5147 if test "$_kva" = yes ; then
5148 def_kva='#define CONFIG_KVA 1'
5149 libs_mplayer="$libs_mplayer -lkva"
5150 _vomodules="kva $_vomodules"
5151 else
5152 def_kva='#undef CONFIG_KVA'
5153 _novomodules="kva $_novomodules"
5155 echores "$_kva"
5156 fi #if os2
5159 if win32; then
5161 echocheck "Windows waveout"
5162 if test "$_win32waveout" = auto ; then
5163 cat > $TMPC << EOF
5164 #include <windows.h>
5165 #include <mmsystem.h>
5166 int main(void) { return 0; }
5168 _win32waveout=no
5169 cc_check -lwinmm && _win32waveout=yes
5171 if test "$_win32waveout" = yes ; then
5172 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5173 libs_mplayer="$libs_mplayer -lwinmm"
5174 _aomodules="win32 $_aomodules"
5175 else
5176 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5177 _noaomodules="win32 $_noaomodules"
5179 echores "$_win32waveout"
5181 echocheck "Direct3D"
5182 if test "$_direct3d" = auto ; then
5183 cat > $TMPC << EOF
5184 #include <windows.h>
5185 #include <d3d9.h>
5186 int main(void) { return 0; }
5188 _direct3d=no
5189 cc_check -ld3d9 && _direct3d=yes
5191 if test "$_direct3d" = yes ; then
5192 def_direct3d='#define CONFIG_DIRECT3D 1'
5193 libs_mplayer="$libs_mplayer -ld3d9"
5194 _vomodules="direct3d $_vomodules"
5195 else
5196 def_direct3d='#undef CONFIG_DIRECT3D'
5197 _novomodules="direct3d $_novomodules"
5199 echores "$_direct3d"
5201 echocheck "Directx"
5202 if test "$_directx" = auto ; then
5203 cat > $TMPC << EOF
5204 #include <windows.h>
5205 #include <ddraw.h>
5206 #include <dsound.h>
5207 int main(void) { return 0; }
5209 _directx=no
5210 cc_check -lgdi32 && _directx=yes
5212 if test "$_directx" = yes ; then
5213 def_directx='#define CONFIG_DIRECTX 1'
5214 libs_mplayer="$libs_mplayer -lgdi32"
5215 _vomodules="directx $_vomodules"
5216 _aomodules="dsound $_aomodules"
5217 else
5218 def_directx='#undef CONFIG_DIRECTX'
5219 _novomodules="directx $_novomodules"
5220 _noaomodules="dsound $_noaomodules"
5222 echores "$_directx"
5224 fi #if win32; then
5227 echocheck "DXR2"
5228 if test "$_dxr2" = auto; then
5229 _dxr2=no
5230 cat > $TMPC << EOF
5231 #include <dxr2ioctl.h>
5232 int main(void) { return 0; }
5234 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5235 cc_check $_inc_tmp && _dxr2=yes && \
5236 extra_cflags="$extra_cflags $_inc_tmp" && break
5237 done
5239 if test "$_dxr2" = yes; then
5240 def_dxr2='#define CONFIG_DXR2 1'
5241 _aomodules="dxr2 $_aomodules"
5242 _vomodules="dxr2 $_vomodules"
5243 else
5244 def_dxr2='#undef CONFIG_DXR2'
5245 _noaomodules="dxr2 $_noaomodules"
5246 _novomodules="dxr2 $_novomodules"
5248 echores "$_dxr2"
5250 echocheck "DXR3/H+"
5251 if test "$_dxr3" = auto ; then
5252 cat > $TMPC << EOF
5253 #include <linux/em8300.h>
5254 int main(void) { return 0; }
5256 _dxr3=no
5257 cc_check && _dxr3=yes
5259 if test "$_dxr3" = yes ; then
5260 def_dxr3='#define CONFIG_DXR3 1'
5261 _vomodules="dxr3 $_vomodules"
5262 else
5263 def_dxr3='#undef CONFIG_DXR3'
5264 _novomodules="dxr3 $_novomodules"
5266 echores "$_dxr3"
5269 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5270 if test "$_ivtv" = auto ; then
5271 cat > $TMPC << EOF
5272 #include <stdlib.h>
5273 #include <inttypes.h>
5274 #include <linux/types.h>
5275 #include <linux/videodev2.h>
5276 #include <linux/ivtv.h>
5277 #include <sys/ioctl.h>
5278 int main(void) {
5279 struct ivtv_cfg_stop_decode sd;
5280 struct ivtv_cfg_start_decode sd1;
5281 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5282 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5283 return 0; }
5285 _ivtv=no
5286 cc_check && _ivtv=yes
5288 if test "$_ivtv" = yes ; then
5289 def_ivtv='#define CONFIG_IVTV 1'
5290 _vomodules="ivtv $_vomodules"
5291 _aomodules="ivtv $_aomodules"
5292 else
5293 def_ivtv='#undef CONFIG_IVTV'
5294 _novomodules="ivtv $_novomodules"
5295 _noaomodules="ivtv $_noaomodules"
5297 echores "$_ivtv"
5300 echocheck "V4L2 MPEG Decoder"
5301 if test "$_v4l2" = auto ; then
5302 cat > $TMPC << EOF
5303 #include <stdlib.h>
5304 #include <inttypes.h>
5305 #include <linux/types.h>
5306 #include <linux/videodev2.h>
5307 #include <linux/version.h>
5308 int main(void) {
5309 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5310 #error kernel headers too old, need 2.6.22
5311 bad_kernel_version();
5312 #endif
5313 struct v4l2_ext_controls ctrls;
5314 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5315 return 0;
5318 _v4l2=no
5319 cc_check && _v4l2=yes
5321 if test "$_v4l2" = yes ; then
5322 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5323 _vomodules="v4l2 $_vomodules"
5324 _aomodules="v4l2 $_aomodules"
5325 else
5326 def_v4l2='#undef CONFIG_V4L2_DECODER'
5327 _novomodules="v4l2 $_novomodules"
5328 _noaomodules="v4l2 $_noaomodules"
5330 echores "$_v4l2"
5334 #########
5335 # AUDIO #
5336 #########
5339 echocheck "OSS Audio"
5340 if test "$_ossaudio" = auto ; then
5341 cat > $TMPC << EOF
5342 #include <sys/ioctl.h>
5343 #include <$_soundcard_header>
5344 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5346 _ossaudio=no
5347 cc_check && _ossaudio=yes
5349 if test "$_ossaudio" = yes ; then
5350 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5351 _aomodules="oss $_aomodules"
5352 if test "$_linux_devfs" = yes; then
5353 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5354 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5355 else
5356 cat > $TMPC << EOF
5357 #include <sys/ioctl.h>
5358 #include <$_soundcard_header>
5359 #ifdef OPEN_SOUND_SYSTEM
5360 int main(void) { return 0; }
5361 #else
5362 #error Not the real thing
5363 #endif
5365 _real_ossaudio=no
5366 cc_check && _real_ossaudio=yes
5367 if test "$_real_ossaudio" = yes; then
5368 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5369 elif netbsd || openbsd ; then
5370 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5371 extra_ldflags="$extra_ldflags -lossaudio"
5372 else
5373 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5375 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5377 else
5378 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5379 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5380 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5381 _noaomodules="oss $_noaomodules"
5383 echores "$_ossaudio"
5386 echocheck "aRts"
5387 if test "$_arts" = auto ; then
5388 _arts=no
5389 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5391 cat > $TMPC << EOF
5392 #include <artsc.h>
5393 int main(void) { return 0; }
5395 cc_check $(artsc-config --libs) $(artsc-config --cflags) && tmp_run && _arts=yes
5400 if test "$_arts" = yes ; then
5401 def_arts='#define CONFIG_ARTS 1'
5402 _aomodules="arts $_aomodules"
5403 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5404 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5405 else
5406 _noaomodules="arts $_noaomodules"
5408 echores "$_arts"
5411 echocheck "EsounD"
5412 if test "$_esd" = auto ; then
5413 _esd=no
5414 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5416 cat > $TMPC << EOF
5417 #include <esd.h>
5418 int main(void) { int fd = esd_open_sound("test"); return fd; }
5420 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5424 echores "$_esd"
5426 if test "$_esd" = yes ; then
5427 def_esd='#define CONFIG_ESD 1'
5428 _aomodules="esd $_aomodules"
5429 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5430 extra_cflags="$extra_cflags $(esd-config --cflags)"
5432 echocheck "esd_get_latency()"
5433 cat > $TMPC << EOF
5434 #include <esd.h>
5435 int main(void) { return esd_get_latency(0); }
5437 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY'
5438 echores "$_esd_latency"
5439 else
5440 def_esd='#undef CONFIG_ESD'
5441 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5442 _noaomodules="esd $_noaomodules"
5446 echocheck "NAS"
5447 if test "$_nas" = auto ; then
5448 cat > $TMPC << EOF
5449 #include <audio/audiolib.h>
5450 int main(void) { return 0; }
5452 _nas=no
5453 cc_check $_ld_lm -laudio -lXt && _nas=yes
5455 if test "$_nas" = yes ; then
5456 def_nas='#define CONFIG_NAS 1'
5457 libs_mplayer="$libs_mplayer -laudio -lXt"
5458 _aomodules="nas $_aomodules"
5459 else
5460 _noaomodules="nas $_noaomodules"
5461 def_nas='#undef CONFIG_NAS'
5463 echores "$_nas"
5466 echocheck "pulse"
5467 if test "$_pulse" = auto ; then
5468 _pulse=no
5469 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5471 cat > $TMPC << EOF
5472 #include <pulse/pulseaudio.h>
5473 int main(void) { return 0; }
5475 cc_check $($_pkg_config --libs --cflags libpulse) && tmp_run && _pulse=yes
5479 echores "$_pulse"
5481 if test "$_pulse" = yes ; then
5482 def_pulse='#define CONFIG_PULSE 1'
5483 _aomodules="pulse $_aomodules"
5484 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5485 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5486 else
5487 def_pulse='#undef CONFIG_PULSE'
5488 _noaomodules="pulse $_noaomodules"
5492 echocheck "JACK"
5493 if test "$_jack" = auto ; then
5494 _jack=yes
5496 cat > $TMPC << EOF
5497 #include <jack/jack.h>
5498 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5500 if cc_check -ljack ; then
5501 libs_mplayer="$libs_mplayer -ljack"
5502 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5503 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5504 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5505 else
5506 _jack=no
5510 if test "$_jack" = yes ; then
5511 def_jack='#define CONFIG_JACK 1'
5512 _aomodules="jack $_aomodules"
5513 else
5514 _noaomodules="jack $_noaomodules"
5516 echores "$_jack"
5518 echocheck "OpenAL"
5519 if test "$_openal" = auto ; then
5520 _openal=no
5521 cat > $TMPC << EOF
5522 #ifdef OPENAL_AL_H
5523 #include <OpenAL/al.h>
5524 #else
5525 #include <AL/al.h>
5526 #endif
5527 int main(void) {
5528 alSourceQueueBuffers(0, 0, 0);
5529 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5530 return 0;
5533 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5534 cc_check $I && _openal=yes && break
5535 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5536 done
5537 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5539 if test "$_openal" = yes ; then
5540 def_openal='#define CONFIG_OPENAL 1'
5541 _aomodules="openal $_aomodules"
5542 else
5543 _noaomodules="openal $_noaomodules"
5545 echores "$_openal"
5547 echocheck "ALSA audio"
5548 if test "$_alloca" != yes ; then
5549 _alsa=no
5550 _res_comment="alloca missing"
5552 if test "$_alsa" != no ; then
5553 _alsa=no
5554 cat > $TMPC << EOF
5555 #include <sys/time.h>
5556 #include <sys/asoundlib.h>
5557 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5558 #error "alsa version != 0.5.x"
5559 #endif
5560 int main(void) { return 0; }
5562 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5564 cat > $TMPC << EOF
5565 #include <sys/time.h>
5566 #include <sys/asoundlib.h>
5567 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5568 #error "alsa version != 0.9.x"
5569 #endif
5570 int main(void) { return 0; }
5572 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5573 cat > $TMPC << EOF
5574 #include <sys/time.h>
5575 #include <alsa/asoundlib.h>
5576 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5577 #error "alsa version != 0.9.x"
5578 #endif
5579 int main(void) { return 0; }
5581 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5583 cat > $TMPC << EOF
5584 #include <sys/time.h>
5585 #include <sys/asoundlib.h>
5586 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5587 #error "alsa version != 1.0.x"
5588 #endif
5589 int main(void) { return 0; }
5591 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5592 cat > $TMPC << EOF
5593 #include <sys/time.h>
5594 #include <alsa/asoundlib.h>
5595 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5596 #error "alsa version != 1.0.x"
5597 #endif
5598 int main(void) { return 0; }
5600 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5602 def_alsa='#undef CONFIG_ALSA'
5603 def_alsa5='#undef CONFIG_ALSA5'
5604 def_alsa9='#undef CONFIG_ALSA9'
5605 def_alsa1x='#undef CONFIG_ALSA1X'
5606 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5607 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5608 if test "$_alsaver" ; then
5609 _alsa=yes
5610 if test "$_alsaver" = '0.5.x' ; then
5611 _alsa5=yes
5612 _aomodules="alsa5 $_aomodules"
5613 def_alsa5='#define CONFIG_ALSA5 1'
5614 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5615 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5616 elif test "$_alsaver" = '0.9.x-sys' ; then
5617 _alsa9=yes
5618 _aomodules="alsa $_aomodules"
5619 def_alsa='#define CONFIG_ALSA 1'
5620 def_alsa9='#define CONFIG_ALSA9 1'
5621 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5622 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5623 elif test "$_alsaver" = '0.9.x-alsa' ; then
5624 _alsa9=yes
5625 _aomodules="alsa $_aomodules"
5626 def_alsa='#define CONFIG_ALSA 1'
5627 def_alsa9='#define CONFIG_ALSA9 1'
5628 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5629 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5630 elif test "$_alsaver" = '1.0.x-sys' ; then
5631 _alsa1x=yes
5632 _aomodules="alsa $_aomodules"
5633 def_alsa='#define CONFIG_ALSA 1'
5634 def_alsa1x="#define CONFIG_ALSA1X 1"
5635 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5636 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5637 elif test "$_alsaver" = '1.0.x-alsa' ; then
5638 _alsa1x=yes
5639 _aomodules="alsa $_aomodules"
5640 def_alsa='#define CONFIG_ALSA 1'
5641 def_alsa1x="#define CONFIG_ALSA1X 1"
5642 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5643 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5644 else
5645 _alsa=no
5646 _res_comment="unknown version"
5648 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5649 else
5650 _noaomodules="alsa $_noaomodules"
5652 echores "$_alsa"
5655 echocheck "Sun audio"
5656 if test "$_sunaudio" = auto ; then
5657 cat > $TMPC << EOF
5658 #include <sys/types.h>
5659 #include <sys/audioio.h>
5660 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5662 _sunaudio=no
5663 cc_check && _sunaudio=yes
5665 if test "$_sunaudio" = yes ; then
5666 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5667 _aomodules="sun $_aomodules"
5668 else
5669 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5670 _noaomodules="sun $_noaomodules"
5672 echores "$_sunaudio"
5675 def_mlib='#define CONFIG_MLIB 0'
5676 if sunos; then
5677 echocheck "Sun mediaLib"
5678 if test "$_mlib" = auto ; then
5679 _mlib=no
5680 cat > $TMPC << EOF
5681 #include <mlib.h>
5682 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5684 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5686 echores "$_mlib"
5687 fi #if sunos
5690 if darwin; then
5691 echocheck "CoreAudio"
5692 if test "$_coreaudio" = auto ; then
5693 cat > $TMPC <<EOF
5694 #include <CoreAudio/CoreAudio.h>
5695 #include <AudioToolbox/AudioToolbox.h>
5696 #include <AudioUnit/AudioUnit.h>
5697 int main(void) { return 0; }
5699 _coreaudio=no
5700 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5702 if test "$_coreaudio" = yes ; then
5703 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5704 def_coreaudio='#define CONFIG_COREAUDIO 1'
5705 _aomodules="coreaudio $_aomodules"
5706 else
5707 def_coreaudio='#undef CONFIG_COREAUDIO'
5708 _noaomodules="coreaudio $_noaomodules"
5710 echores $_coreaudio
5711 fi #if darwin
5714 if irix; then
5715 echocheck "SGI audio"
5716 if test "$_sgiaudio" = auto ; then
5717 # check for SGI audio
5718 cat > $TMPC << EOF
5719 #include <dmedia/audio.h>
5720 int main(void) { return 0; }
5722 _sgiaudio=no
5723 cc_check && _sgiaudio=yes
5725 if test "$_sgiaudio" = "yes" ; then
5726 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5727 libs_mplayer="$libs_mplayer -laudio"
5728 _aomodules="sgi $_aomodules"
5729 else
5730 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5731 _noaomodules="sgi $_noaomodules"
5733 echores "$_sgiaudio"
5734 fi #if irix
5737 if os2 ; then
5738 echocheck "DART"
5739 if test "$_dart" = auto; then
5740 cat > $TMPC << EOF
5741 #include <os2.h>
5742 #include <dart.h>
5743 int main( void ) { return 0; }
5745 _dart=no;
5746 cc_check -ldart && _dart=yes
5748 if test "$_dart" = yes ; then
5749 def_dart='#define CONFIG_DART 1'
5750 libs_mplayer="$libs_mplayer -ldart"
5751 _aomodules="dart $_aomodules"
5752 else
5753 def_dart='#undef CONFIG_DART'
5754 _noaomodules="dart $_noaomodules"
5756 echores "$_dart"
5757 fi #if os2
5760 # set default CD/DVD devices
5761 if win32 || os2 ; then
5762 default_cdrom_device="D:"
5763 elif darwin ; then
5764 default_cdrom_device="/dev/disk1"
5765 elif dragonfly ; then
5766 default_cdrom_device="/dev/cd0"
5767 elif freebsd ; then
5768 default_cdrom_device="/dev/acd0"
5769 elif openbsd ; then
5770 default_cdrom_device="/dev/rcd0a"
5771 elif sunos ; then
5772 default_cdrom_device="/vol/dev/aliases/cdrom0"
5773 elif amigaos ; then
5774 default_cdrom_device="a1ide.device:2"
5775 else
5776 default_cdrom_device="/dev/cdrom"
5779 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5780 default_dvd_device=$default_cdrom_device
5781 elif darwin ; then
5782 default_dvd_device="/dev/rdiskN"
5783 else
5784 default_dvd_device="/dev/dvd"
5788 echocheck "VCD support"
5789 if test "$_vcd" = auto; then
5790 _vcd=no
5791 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5792 _vcd=yes
5793 elif mingw32; then
5794 cat > $TMPC << EOF
5795 #include <ddk/ntddcdrm.h>
5796 int main(void) { return 0; }
5798 cc_check && _vcd=yes
5801 if test "$_vcd" = yes; then
5802 _inputmodules="vcd $_inputmodules"
5803 def_vcd='#define CONFIG_VCD 1'
5804 else
5805 def_vcd='#undef CONFIG_VCD'
5806 _noinputmodules="vcd $_noinputmodules"
5807 _res_comment="not supported on this OS"
5809 echores "$_vcd"
5813 echocheck "dvdread"
5814 if test "$_dvdread_internal" = auto ; then
5815 _dvdread_internal=no
5816 _dvdread=no
5817 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5818 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5819 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5820 || darwin || win32 || os2; then
5821 _dvdread_internal=yes
5822 _dvdread=yes
5823 extra_cflags="-Ilibdvdread4 $extra_cflags"
5825 elif test "$_dvdread" = auto ; then
5826 _dvdread=no
5827 if test "$_dl" = yes; then
5828 cat > $TMPC << EOF
5829 #include <inttypes.h>
5830 #include <dvdread/dvd_reader.h>
5831 #include <dvdread/ifo_types.h>
5832 #include <dvdread/ifo_read.h>
5833 #include <dvdread/nav_read.h>
5834 int main(void) { return 0; }
5836 _dvdreadcflags=$($_dvdreadconfig --cflags)
5837 _dvdreadlibs=$($_dvdreadconfig --libs)
5838 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5839 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5840 _dvdread=yes
5841 extra_cflags="$extra_cflags $_dvdreadcflags"
5842 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5843 _res_comment="external"
5848 if test "$_dvdread_internal" = yes; then
5849 def_dvdread='#define CONFIG_DVDREAD 1'
5850 _inputmodules="dvdread(internal) $_inputmodules"
5851 _largefiles=yes
5852 _res_comment="internal"
5853 elif test "$_dvdread" = yes; then
5854 def_dvdread='#define CONFIG_DVDREAD 1'
5855 _largefiles=yes
5856 extra_ldflags="$extra_ldflags -ldvdread"
5857 _inputmodules="dvdread(external) $_inputmodules"
5858 _res_comment="external"
5859 else
5860 def_dvdread='#undef CONFIG_DVDREAD'
5861 _noinputmodules="dvdread $_noinputmodules"
5863 echores "$_dvdread"
5866 echocheck "internal libdvdcss"
5867 if test "$_libdvdcss_internal" = auto ; then
5868 _libdvdcss_internal=no
5869 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5870 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5872 if test "$_libdvdcss_internal" = yes ; then
5873 if linux || netbsd || openbsd || bsdos ; then
5874 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5875 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5876 elif freebsd || dragonfly ; then
5877 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5878 elif darwin ; then
5879 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5880 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5881 elif cygwin ; then
5882 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5883 elif beos ; then
5884 cflags_libdvdcss="-DSYS_BEOS"
5885 elif os2 ; then
5886 cflags_libdvdcss="-DSYS_OS2"
5888 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5889 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5890 _inputmodules="libdvdcss(internal) $_inputmodules"
5891 _largefiles=yes
5892 else
5893 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5895 echores "$_libdvdcss_internal"
5898 echocheck "cdparanoia"
5899 if test "$_cdparanoia" = auto ; then
5900 cat > $TMPC <<EOF
5901 #include <cdda_interface.h>
5902 #include <cdda_paranoia.h>
5903 // This need a better test. How ?
5904 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5906 _cdparanoia=no
5907 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5908 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5909 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5910 done
5912 if test "$_cdparanoia" = yes ; then
5913 _cdda='yes'
5914 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5915 openbsd && extra_ldflags="$extra_ldflags -lutil"
5917 echores "$_cdparanoia"
5920 echocheck "libcdio"
5921 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5922 cat > $TMPC << EOF
5923 #include <stdio.h>
5924 #include <cdio/version.h>
5925 #include <cdio/cdda.h>
5926 #include <cdio/paranoia.h>
5927 int main(void) {
5928 void *test = cdda_verbose_set;
5929 printf("%s\n", CDIO_VERSION);
5930 return test == (void *)1;
5933 _libcdio=no
5934 for _ld_tmp in "" "-lwinmm" ; do
5935 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5936 cc_check $_ld_tmp $_ld_lm \
5937 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5938 done
5939 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5940 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5941 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5942 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5943 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5946 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5947 _cdda='yes'
5948 def_libcdio='#define CONFIG_LIBCDIO'
5949 def_havelibcdio='yes'
5950 else
5951 if test "$_cdparanoia" = yes ; then
5952 _res_comment="using cdparanoia"
5954 def_libcdio='#undef CONFIG_LIBCDIO'
5955 def_havelibcdio='no'
5957 echores "$_libcdio"
5959 if test "$_cdda" = yes ; then
5960 test $_cddb = auto && test $_network = yes && _cddb=yes
5961 def_cdparanoia='#define CONFIG_CDDA'
5962 _inputmodules="cdda $_inputmodules"
5963 else
5964 def_cdparanoia='#undef CONFIG_CDDA'
5965 _noinputmodules="cdda $_noinputmodules"
5968 if test "$_cddb" = yes ; then
5969 def_cddb='#define CONFIG_CDDB'
5970 _inputmodules="cddb $_inputmodules"
5971 else
5972 _cddb=no
5973 def_cddb='#undef CONFIG_CDDB'
5974 _noinputmodules="cddb $_noinputmodules"
5977 echocheck "bitmap font support"
5978 if test "$_bitmap_font" = yes ; then
5979 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5980 else
5981 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5983 echores "$_bitmap_font"
5986 echocheck "freetype >= 2.0.9"
5988 # freetype depends on iconv
5989 if test "$_iconv" = no ; then
5990 _freetype=no
5991 _res_comment="iconv support needed"
5994 if test "$_freetype" = auto ; then
5995 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5996 cat > $TMPC << EOF
5997 #include <stdio.h>
5998 #include <ft2build.h>
5999 #include FT_FREETYPE_H
6000 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6001 #error "Need FreeType 2.0.9 or newer"
6002 #endif
6003 int main(void) {
6004 FT_Library library;
6005 FT_Int major=-1,minor=-1,patch=-1;
6006 int err=FT_Init_FreeType(&library);
6007 if (err) {
6008 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
6009 exit(err);
6011 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
6012 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
6013 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
6014 (int)major,(int)minor,(int)patch );
6015 if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) {
6016 printf("Library and header version mismatch! Fix it in your distribution!\n");
6017 exit(1);
6019 return 0;
6022 _freetype=no
6023 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _freetype=yes
6024 else
6025 _freetype=no
6028 if test "$_freetype" = yes ; then
6029 def_freetype='#define CONFIG_FREETYPE'
6030 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6031 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6032 else
6033 def_freetype='#undef CONFIG_FREETYPE'
6035 echores "$_freetype"
6037 if test "$_freetype" = no ; then
6038 _fontconfig=no
6039 _res_comment="FreeType support needed"
6041 echocheck "fontconfig"
6042 if test "$_fontconfig" = auto ; then
6043 cat > $TMPC << EOF
6044 #include <stdio.h>
6045 #include <stdlib.h>
6046 #include <fontconfig/fontconfig.h>
6047 int main(void) {
6048 int err = FcInit();
6049 if (err == FcFalse) {
6050 printf("Couldn't initialize fontconfig lib\n");
6051 exit(err);
6053 return 0;
6056 _fontconfig=no
6057 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6058 _ld_tmp="-lfontconfig $_ld_tmp"
6059 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6060 done
6061 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6062 _inc_tmp=$($_pkg_config --cflags fontconfig)
6063 _ld_tmp=$($_pkg_config --libs fontconfig)
6064 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6065 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6068 if test "$_fontconfig" = yes ; then
6069 def_fontconfig='#define CONFIG_FONTCONFIG'
6070 else
6071 def_fontconfig='#undef CONFIG_FONTCONFIG'
6073 echores "$_fontconfig"
6076 echocheck "SSA/ASS support"
6077 # libass depends on FreeType
6078 if test "$_freetype" = no ; then
6079 _ass=no
6080 _res_comment="FreeType support needed"
6083 if test "$_ass" = auto ; then
6084 cat > $TMPC << EOF
6085 #include <ft2build.h>
6086 #include FT_FREETYPE_H
6087 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6088 #error "Need FreeType 2.1.8 or newer"
6089 #endif
6090 int main(void) { return 0; }
6092 _ass=no
6093 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _ass=yes
6094 if test "$_ass" = no ; then
6095 _res_comment="FreeType >= 2.1.8 needed"
6098 if test "$_ass" = yes ; then
6099 def_ass='#define CONFIG_ASS'
6100 else
6101 def_ass='#undef CONFIG_ASS'
6103 echores "$_ass"
6106 echocheck "fribidi with charsets"
6107 if test "$_fribidi" = auto ; then
6108 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6109 cat > $TMPC << EOF
6110 #include <stdio.h>
6111 /* workaround for fribidi 0.10.4 and below */
6112 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6113 #include <fribidi/fribidi.h>
6114 int main(void) {
6115 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6116 printf("Fribidi headers are not consistents with the library!\n");
6117 exit(1);
6119 return 0;
6122 _fribidi=no
6123 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && tmp_run && _fribidi=yes
6124 else
6125 _fribidi=no
6128 if test "$_fribidi" = yes ; then
6129 def_fribidi='#define CONFIG_FRIBIDI'
6130 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6131 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6132 else
6133 def_fribidi='#undef CONFIG_FRIBIDI'
6135 echores "$_fribidi"
6138 echocheck "ENCA"
6139 if test "$_enca" = auto ; then
6140 cat > $TMPC << EOF
6141 #include <sys/types.h>
6142 #include <enca.h>
6143 int main(void) {
6144 const char **langs;
6145 size_t langcnt;
6146 langs = enca_get_languages(&langcnt);
6147 return 0;
6150 _enca=no
6151 cc_check -lenca $_ld_lm && _enca=yes
6153 if test "$_enca" = yes ; then
6154 def_enca='#define CONFIG_ENCA 1'
6155 extra_ldflags="$extra_ldflags -lenca"
6156 else
6157 def_enca='#undef CONFIG_ENCA'
6159 echores "$_enca"
6162 echocheck "zlib"
6163 cat > $TMPC << EOF
6164 #include <zlib.h>
6165 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6167 _zlib=no
6168 cc_check -lz && _zlib=yes
6169 if test "$_zlib" = yes ; then
6170 def_zlib='#define CONFIG_ZLIB 1'
6171 extra_ldflags="$extra_ldflags -lz"
6172 else
6173 def_zlib='#define CONFIG_ZLIB 0'
6174 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6175 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER//)
6177 echores "$_zlib"
6180 echocheck "bzlib"
6181 bzlib=no
6182 def_bzlib='#define CONFIG_BZLIB 0'
6183 cat > $TMPC << EOF
6184 #include <bzlib.h>
6185 int main(void) { BZ2_bzlibVersion(); return 0; }
6187 cc_check -lbz2 && bzlib=yes
6188 if test "$bzlib" = yes ; then
6189 def_bzlib='#define CONFIG_BZLIB 1'
6190 extra_ldflags="$extra_ldflags -lbz2"
6192 echores "$bzlib"
6195 echocheck "RTC"
6196 if test "$_rtc" = auto ; then
6197 cat > $TMPC << EOF
6198 #include <sys/ioctl.h>
6199 #ifdef __linux__
6200 #include <linux/rtc.h>
6201 #else
6202 #include <rtc.h>
6203 #define RTC_PIE_ON RTCIO_PIE_ON
6204 #endif
6205 int main(void) { return RTC_PIE_ON; }
6207 _rtc=no
6208 cc_check && _rtc=yes
6209 ppc && _rtc=no
6211 if test "$_rtc" = yes ; then
6212 def_rtc='#define HAVE_RTC 1'
6213 else
6214 def_rtc='#undef HAVE_RTC'
6216 echores "$_rtc"
6219 echocheck "liblzo2 support"
6220 if test "$_liblzo" = auto ; then
6221 _liblzo=no
6222 cat > $TMPC << EOF
6223 #include <lzo/lzo1x.h>
6224 int main(void) { lzo_init();return 0; }
6226 cc_check -llzo2 && _liblzo=yes
6228 if test "$_liblzo" = yes ; then
6229 def_liblzo='#define CONFIG_LIBLZO 1'
6230 extra_ldflags="$extra_ldflags -llzo2"
6231 _codecmodules="liblzo $_codecmodules"
6232 else
6233 def_liblzo='#undef CONFIG_LIBLZO'
6234 _nocodecmodules="liblzo $_nocodecmodules"
6236 echores "$_liblzo"
6239 echocheck "mad support"
6240 if test "$_mad" = auto ; then
6241 _mad=no
6242 cat > $TMPC << EOF
6243 #include <mad.h>
6244 int main(void) { return 0; }
6246 cc_check -lmad && _mad=yes
6248 if test "$_mad" = yes ; then
6249 def_mad='#define CONFIG_LIBMAD 1'
6250 extra_ldflags="$extra_ldflags -lmad"
6251 _codecmodules="libmad $_codecmodules"
6252 else
6253 def_mad='#undef CONFIG_LIBMAD'
6254 _nocodecmodules="libmad $_nocodecmodules"
6256 echores "$_mad"
6258 echocheck "Twolame"
6259 if test "$_twolame" = auto ; then
6260 cat > $TMPC <<EOF
6261 #include <twolame.h>
6262 int main(void) { twolame_init(); return 0; }
6264 _twolame=no
6265 cc_check -ltwolame $_ld_lm && _twolame=yes
6267 if test "$_twolame" = yes ; then
6268 def_twolame='#define CONFIG_TWOLAME 1'
6269 libs_mencoder="$libs_mencoder -ltwolame"
6270 _codecmodules="twolame $_codecmodules"
6271 else
6272 def_twolame='#undef CONFIG_TWOLAME'
6273 _nocodecmodules="twolame $_nocodecmodules"
6275 echores "$_twolame"
6277 echocheck "Toolame"
6278 if test "$_toolame" = auto ; then
6279 _toolame=no
6280 if test "$_twolame" = yes ; then
6281 _res_comment="disabled by twolame"
6282 else
6283 cat > $TMPC <<EOF
6284 #include <toolame.h>
6285 int main(void) { toolame_init(); return 0; }
6287 cc_check -ltoolame $_ld_lm && _toolame=yes
6290 if test "$_toolame" = yes ; then
6291 def_toolame='#define CONFIG_TOOLAME 1'
6292 libs_mencoder="$libs_mencoder -ltoolame"
6293 _codecmodules="toolame $_codecmodules"
6294 else
6295 def_toolame='#undef CONFIG_TOOLAME'
6296 _nocodecmodules="toolame $_nocodecmodules"
6298 if test "$_toolamedir" ; then
6299 _res_comment="using $_toolamedir"
6301 echores "$_toolame"
6303 echocheck "OggVorbis support"
6304 if test "$_tremor_internal" = yes; then
6305 _libvorbis=no
6306 elif test "$_tremor" = auto; then
6307 _tremor=no
6308 cat > $TMPC << EOF
6309 #include <tremor/ivorbiscodec.h>
6310 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6312 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6314 if test "$_libvorbis" = auto; then
6315 _libvorbis=no
6316 cat > $TMPC << EOF
6317 #include <vorbis/codec.h>
6318 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6320 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6322 if test "$_tremor_internal" = yes ; then
6323 _vorbis=yes
6324 def_vorbis='#define CONFIG_OGGVORBIS 1'
6325 def_tremor='#define CONFIG_TREMOR 1'
6326 _codecmodules="tremor(internal) $_codecmodules"
6327 _res_comment="internal Tremor"
6328 if test "$_tremor_low" = yes ; then
6329 cflags_tremor_low="-D_LOW_ACCURACY_"
6330 _res_comment="internal low accuracy Tremor"
6332 elif test "$_tremor" = yes ; then
6333 _vorbis=yes
6334 def_vorbis='#define CONFIG_OGGVORBIS 1'
6335 def_tremor='#define CONFIG_TREMOR 1'
6336 _codecmodules="tremor(external) $_codecmodules"
6337 _res_comment="external Tremor"
6338 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6339 elif test "$_libvorbis" = yes ; then
6340 _vorbis=yes
6341 def_vorbis='#define CONFIG_OGGVORBIS 1'
6342 _codecmodules="libvorbis $_codecmodules"
6343 _res_comment="libvorbis"
6344 extra_ldflags="$extra_ldflags -lvorbis -logg"
6345 else
6346 _vorbis=no
6347 _nocodecmodules="libvorbis $_nocodecmodules"
6349 echores "$_vorbis"
6351 echocheck "libspeex (version >= 1.1 required)"
6352 if test "$_speex" = auto ; then
6353 _speex=no
6354 cat > $TMPC << EOF
6355 #include <speex/speex.h>
6356 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6358 cc_check -lspeex $_ld_lm && _speex=yes
6360 if test "$_speex" = yes ; then
6361 def_speex='#define CONFIG_SPEEX 1'
6362 extra_ldflags="$extra_ldflags -lspeex"
6363 _codecmodules="speex $_codecmodules"
6364 else
6365 def_speex='#undef CONFIG_SPEEX'
6366 _nocodecmodules="speex $_nocodecmodules"
6368 echores "$_speex"
6370 echocheck "OggTheora support"
6371 if test "$_theora" = auto ; then
6372 _theora=no
6373 cat > $TMPC << EOF
6374 #include <theora/theora.h>
6375 #include <string.h>
6376 int main(void) {
6377 /* Theora is in flux, make sure that all interface routines and datatypes
6378 * exist and work the way we expect it, so we don't break MPlayer. */
6379 ogg_packet op;
6380 theora_comment tc;
6381 theora_info inf;
6382 theora_state st;
6383 yuv_buffer yuv;
6384 int r;
6385 double t;
6387 theora_info_init(&inf);
6388 theora_comment_init(&tc);
6390 return 0;
6392 /* we don't want to execute this kind of nonsense; just for making sure
6393 * that compilation works... */
6394 memset(&op, 0, sizeof(op));
6395 r = theora_decode_header(&inf, &tc, &op);
6396 r = theora_decode_init(&st, &inf);
6397 t = theora_granule_time(&st, op.granulepos);
6398 r = theora_decode_packetin(&st, &op);
6399 r = theora_decode_YUVout(&st, &yuv);
6400 theora_clear(&st);
6402 return 0;
6405 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6406 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6407 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6408 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6409 if test _theora = no; then
6410 _ld_theora="-ltheora -logg"
6411 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6413 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6414 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6415 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6416 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6417 extra_ldflags="$extra_ldflags $_ld_theora" &&
6418 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6419 if test _theora = no; then
6420 _ld_theora="-ltheora -logg"
6421 cc_check tremor/bitwise.c $_ld_theora &&
6422 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6426 if test "$_theora" = yes ; then
6427 def_theora='#define CONFIG_OGGTHEORA 1'
6428 _codecmodules="libtheora $_codecmodules"
6429 # when --enable-theora is forced, we'd better provide a probably sane
6430 # $_ld_theora than nothing
6431 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6432 else
6433 def_theora='#undef CONFIG_OGGTHEORA'
6434 _nocodecmodules="libtheora $_nocodecmodules"
6436 echores "$_theora"
6438 echocheck "internal mp3lib support"
6439 if test "$_mp3lib" = auto ; then
6440 test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes
6442 if test "$_mp3lib" = yes ; then
6443 def_mp3lib='#define CONFIG_MP3LIB 1'
6444 _codecmodules="mp3lib(internal) $_codecmodules"
6445 else
6446 def_mp3lib='#undef CONFIG_MP3LIB'
6447 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6449 echores "$_mp3lib"
6451 echocheck "liba52 support"
6452 if test "$_liba52_internal" = auto ; then
6453 test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes
6455 def_liba52='#undef CONFIG_LIBA52'
6456 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6457 if test "$_liba52_internal" = yes ; then
6458 _liba52=yes
6459 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6460 _res_comment="internal"
6461 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6462 _liba52=no
6463 cat > $TMPC << EOF
6464 #include <inttypes.h>
6465 #include <a52dec/a52.h>
6466 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6468 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6470 if test "$_liba52" = yes ; then
6471 def_liba52='#define CONFIG_LIBA52 1'
6472 _codecmodules="liba52($_res_comment) $_codecmodules"
6473 else
6474 _nocodecmodules="liba52 $_nocodecmodules"
6476 echores "$_liba52"
6478 echocheck "internal libmpeg2 support"
6479 if test "$_libmpeg2" = auto ; then
6480 _libmpeg2=yes
6481 if alpha && test cc_vendor=gnu; then
6482 case $cc_version in
6483 2*|3.0*|3.1*) # cannot compile MVI instructions
6484 _libmpeg2=no
6485 _res_comment="broken gcc"
6487 esac
6490 if test "$_libmpeg2" = yes ; then
6491 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6492 _codecmodules="libmpeg2(internal) $_codecmodules"
6493 else
6494 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6495 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6497 echores "$_libmpeg2"
6499 echocheck "libdca support"
6500 if test "$_libdca" = auto ; then
6501 _libdca=no
6502 cat > $TMPC << EOF
6503 #include <inttypes.h>
6504 #include <dts.h>
6505 int main(void) { dts_init(0); return 0; }
6507 for _ld_dca in -ldts -ldca ; do
6508 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6509 && _libdca=yes && break
6510 done
6512 if test "$_libdca" = yes ; then
6513 def_libdca='#define CONFIG_LIBDCA 1'
6514 _codecmodules="libdca $_codecmodules"
6515 else
6516 def_libdca='#undef CONFIG_LIBDCA'
6517 _nocodecmodules="libdca $_nocodecmodules"
6519 echores "$_libdca"
6521 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6522 if test "$_musepack" = auto ; then
6523 _musepack=no
6524 cat > $TMPC << EOF
6525 #include <stddef.h>
6526 #include <mpcdec/mpcdec.h>
6527 int main(void) {
6528 mpc_streaminfo info;
6529 mpc_decoder decoder;
6530 mpc_decoder_set_streaminfo(&decoder, &info);
6531 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6532 return 0;
6535 cc_check -lmpcdec $_ld_lm && _musepack=yes
6537 if test "$_musepack" = yes ; then
6538 def_musepack='#define CONFIG_MUSEPACK 1'
6539 extra_ldflags="$extra_ldflags -lmpcdec"
6540 _codecmodules="musepack $_codecmodules"
6541 else
6542 def_musepack='#undef CONFIG_MUSEPACK'
6543 _nocodecmodules="musepack $_nocodecmodules"
6545 echores "$_musepack"
6548 echocheck "FAAC support"
6549 if test "$_faac" = auto ; then
6550 cat > $TMPC <<EOF
6551 #include <inttypes.h>
6552 #include <faac.h>
6553 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6555 _faac=no
6556 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6557 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6558 done
6560 if test "$_faac" = yes ; then
6561 def_faac="#define CONFIG_FAAC 1"
6562 test "$_faac_lavc" = auto && _faac_lavc=yes
6563 if test "$_faac_lavc" = yes ; then
6564 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6565 libs_mplayer="$libs_mplayer $_ld_faac"
6566 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6568 _codecmodules="faac $_codecmodules"
6569 else
6570 _faac_lavc=no
6571 def_faac="#undef CONFIG_FAAC"
6572 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6573 _nocodecmodules="faac $_nocodecmodules"
6575 _res_comment="in libavcodec: $_faac_lavc"
6576 echores "$_faac"
6579 echocheck "FAAD2 support"
6580 if test "$_faad_internal" = auto ; then
6581 if x86_32 && test cc_vendor=gnu; then
6582 case $cc_version in
6583 3.1*|3.2) # ICE/insn with these versions
6584 _faad_internal=no
6585 _res_comment="broken gcc"
6588 _faad=yes
6589 _faad_internal=yes
6591 esac
6592 else
6593 _faad=yes
6594 _faad_internal=yes
6597 if test "$_faad" = auto ; then
6598 cat > $TMPC << EOF
6599 #include <faad.h>
6600 #ifndef FAAD_MIN_STREAMSIZE
6601 #error Too old version
6602 #endif
6603 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6604 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6606 cc_check -lfaad $_ld_lm && _faad=yes
6609 def_faad='#undef CONFIG_FAAD'
6610 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6611 if test "$_faad_internal" = yes ; then
6612 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6613 _res_comment="internal floating-point"
6614 if test "$_faad_fixed" = yes ; then
6615 # The FIXED_POINT implementation of FAAD2 improves performance
6616 # on some platforms, especially for SBR files.
6617 cflags_faad_fixed="-DFIXED_POINT"
6618 _res_comment="internal fixed-point"
6620 elif test "$_faad" = yes ; then
6621 extra_ldflags="$extra_ldflags -lfaad"
6624 if test "$_faad" = yes ; then
6625 def_faad='#define CONFIG_FAAD 1'
6626 if test "$_faad_internal" = yes ; then
6627 _codecmodules="faad2(internal) $_codecmodules"
6628 else
6629 _codecmodules="faad2 $_codecmodules"
6631 else
6632 _faad=no
6633 _nocodecmodules="faad2 $_nocodecmodules"
6635 echores "$_faad"
6638 echocheck "LADSPA plugin support"
6639 if test "$_ladspa" = auto ; then
6640 cat > $TMPC <<EOF
6641 #include <stdio.h>
6642 #include <ladspa.h>
6643 int main(void) {
6644 const LADSPA_Descriptor *ld = NULL;
6645 return 0;
6648 _ladspa=no
6649 cc_check && _ladspa=yes
6651 if test "$_ladspa" = yes; then
6652 def_ladspa="#define CONFIG_LADSPA"
6653 else
6654 def_ladspa="#undef CONFIG_LADSPA"
6656 echores "$_ladspa"
6659 echocheck "libbs2b audio filter support"
6660 if test "$_libbs2b" = auto ; then
6661 cat > $TMPC <<EOF
6662 #include <bs2b.h>
6663 #if BS2B_VERSION_MAJOR < 3
6664 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6665 #endif
6666 int main(void) {
6667 t_bs2bdp filter;
6668 filter=bs2b_open();
6669 bs2b_close(filter);
6670 return 0;
6673 _libbs2b=no
6674 if $_pkg_config --exists libbs2b ; then
6675 _inc_tmp=$($_pkg_config --cflags libbs2b)
6676 _ld_tmp=$($_pkg_config --libs libbs2b)
6677 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6678 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6679 else
6680 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6681 -I/usr/local/include/bs2b ; do
6682 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6683 extra_ldflags="$extra_ldflags -lbs2b"
6684 extra_cflags="$extra_cflags $_inc_tmp"
6685 _libbs2b=yes
6686 break
6688 done
6691 def_libbs2b="#undef CONFIG_LIBBS2B"
6692 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B"
6693 echores "$_libbs2b"
6696 if test -z "$_codecsdir" ; then
6697 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6698 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6699 if test -d "$dir" ; then
6700 _codecsdir="$dir"
6701 break;
6703 done
6705 # Fall back on default directory.
6706 if test -z "$_codecsdir" ; then
6707 _codecsdir="$_libdir/codecs"
6708 mingw32 && _codecsdir="codecs"
6709 os2 && _codecsdir="codecs"
6713 echocheck "Win32 codecs"
6714 if test "$_win32dll" = auto ; then
6715 _win32dll=no
6716 if x86_32 && ! qnx; then
6717 _win32dll=yes
6720 if test "$_win32dll" = yes ; then
6721 def_win32dll='#define CONFIG_WIN32DLL 1'
6722 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6723 _res_comment="using $_win32codecsdir"
6724 if ! win32 ; then
6725 def_win32_loader='#define WIN32_LOADER 1'
6726 _win32_emulation=yes
6727 else
6728 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6729 _res_comment="using native windows"
6731 _codecmodules="win32 $_codecmodules"
6732 else
6733 def_win32dll='#undef CONFIG_WIN32DLL'
6734 def_win32_loader='#undef WIN32_LOADER'
6735 _nocodecmodules="win32 $_nocodecmodules"
6737 echores "$_win32dll"
6740 echocheck "XAnim codecs"
6741 if test "$_xanim" = auto ; then
6742 _xanim=no
6743 _res_comment="dynamic loader support needed"
6744 if test "$_dl" = yes ; then
6745 _xanim=yes
6748 if test "$_xanim" = yes ; then
6749 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6750 def_xanim='#define CONFIG_XANIM 1'
6751 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6752 _codecmodules="xanim $_codecmodules"
6753 _res_comment="using $_xanimcodecsdir"
6754 else
6755 def_xanim='#undef CONFIG_XANIM'
6756 def_xanim_path='#undef XACODEC_PATH'
6757 _nocodecmodules="xanim $_nocodecmodules"
6759 echores "$_xanim"
6762 echocheck "RealPlayer codecs"
6763 if test "$_real" = auto ; then
6764 _real=no
6765 _res_comment="dynamic loader support needed"
6766 if test "$_dl" = yes || test "$_win32dll" = yes &&
6767 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6768 _real=yes
6771 if test "$_real" = yes ; then
6772 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6773 def_real='#define CONFIG_REALCODECS 1'
6774 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6775 _codecmodules="real $_codecmodules"
6776 _res_comment="using $_realcodecsdir"
6777 else
6778 def_real='#undef CONFIG_REALCODECS'
6779 def_real_path="#undef REALCODEC_PATH"
6780 _nocodecmodules="real $_nocodecmodules"
6782 echores "$_real"
6785 echocheck "QuickTime codecs"
6786 _qtx_emulation=no
6787 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6788 def_quicktime='#undef CONFIG_QUICKTIME'
6789 if test "$_qtx" = auto ; then
6790 test "$_win32dll" = yes || darwin && _qtx=yes
6792 if test "$_qtx" = yes ; then
6793 darwin && extra_ldflags="$extra_ldflags -framework QuickTime" && def_quicktime='#define CONFIG_QUICKTIME 1'
6794 def_qtx='#define CONFIG_QTX_CODECS 1'
6795 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6796 _codecmodules="qtx $_codecmodules"
6797 darwin || win32 || _qtx_emulation=yes
6798 else
6799 def_qtx='#undef CONFIG_QTX_CODECS'
6800 _nocodecmodules="qtx $_nocodecmodules"
6802 echores "$_qtx"
6804 echocheck "Nemesi Streaming Media libraries"
6805 if test "$_nemesi" = auto && test "$_network" = yes ; then
6806 _nemesi=no
6807 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6808 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6809 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6810 _nemesi=yes
6813 if test "$_nemesi" = yes; then
6814 _native_rtsp=no
6815 def_nemesi='#define CONFIG_LIBNEMESI 1'
6816 _inputmodules="nemesi $_inputmodules"
6817 else
6818 _native_rtsp="$_network"
6819 _nemesi=no
6820 def_nemesi='#undef CONFIG_LIBNEMESI'
6821 _noinputmodules="nemesi $_noinputmodules"
6823 echores "$_nemesi"
6825 echocheck "LIVE555 Streaming Media libraries"
6826 if test "$_live" = auto && test "$_network" = yes ; then
6827 cat > $TMPCPP << EOF
6828 #include <liveMedia.hh>
6829 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6830 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6831 #endif
6832 int main(void) { return 0; }
6835 _live=no
6836 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
6837 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6838 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6839 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6840 $_livelibdir/groupsock/libgroupsock.a \
6841 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6842 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6843 $extra_ldflags -lstdc++" \
6844 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6845 -I$_livelibdir/UsageEnvironment/include \
6846 -I$_livelibdir/BasicUsageEnvironment/include \
6847 -I$_livelibdir/groupsock/include" && \
6848 _live=yes && break
6849 done
6850 if test "$_live" != yes ; then
6851 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6852 _live_dist=yes
6856 if test "$_live" = yes && test "$_network" = yes; then
6857 test $_livelibdir && _res_comment="using $_livelibdir"
6858 def_live='#define CONFIG_LIVE555 1'
6859 _inputmodules="live555 $_inputmodules"
6860 elif test "$_live_dist" = yes && test "$_network" = yes; then
6861 _res_comment="using distribution version"
6862 _live="yes"
6863 def_live='#define CONFIG_LIVE555 1'
6864 extra_ldflags="$extra_ldflags -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6865 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6866 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6867 _inputmodules="live555 $_inputmodules"
6868 else
6869 _live=no
6870 def_live='#undef CONFIG_LIVE555'
6871 _noinputmodules="live555 $_noinputmodules"
6873 echores "$_live"
6876 echocheck "FFmpeg libavutil"
6877 if test "$_libavutil_a" = auto ; then
6878 if test -d libavutil ; then
6879 _libavutil_a=yes
6880 _res_comment="static"
6881 else
6882 die "MPlayer will not compile without libavutil in the source tree."
6884 elif test "$_libavutil_so" = auto ; then
6885 _libavutil_so=no
6886 cat > $TMPC << EOF
6887 #include <libavutil/common.h>
6888 int main(void) { av_gcd(1,1); return 0; }
6890 if $_pkg_config --exists libavutil ; then
6891 _inc_libavutil=$($_pkg_config --cflags libavutil)
6892 _ld_tmp=$($_pkg_config --libs libavutil)
6893 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6894 && _libavutil_so=yes
6895 elif cc_check -lavutil $_ld_lm ; then
6896 extra_ldflags="$extra_ldflags -lavutil"
6897 _libavutil_so=yes
6898 _res_comment="using libavutil.so, but static libavutil is recommended"
6901 _libavutil=no
6902 def_libavutil='#undef CONFIG_LIBAVUTIL'
6903 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6904 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6905 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6906 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6907 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6908 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6909 # neither static nor shared libavutil is available, but it is mandatory ...
6910 if test "$_libavutil" = no ; then
6911 die "You need static or shared libavutil, MPlayer will not compile without!"
6913 echores "$_libavutil"
6915 echocheck "FFmpeg libavcodec"
6916 if test "$_libavcodec_a" = auto ; then
6917 _libavcodec_a=no
6918 if test -d libavcodec && test -f libavcodec/utils.c ; then
6919 _libavcodec_a="yes"
6920 _res_comment="static"
6922 elif test "$_libavcodec_so" = auto ; then
6923 _libavcodec_so=no
6924 _res_comment="libavcodec.so is discouraged over static libavcodec"
6925 cat > $TMPC << EOF
6926 #include <libavcodec/avcodec.h>
6927 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6929 if $_pkg_config --exists libavcodec ; then
6930 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6931 _ld_tmp=$($_pkg_config --libs libavcodec)
6932 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6933 && _libavcodec_so=yes
6934 elif cc_check -lavcodec $_ld_lm ; then
6935 extra_ldflags="$extra_ldflags -lavcodec"
6936 _libavcodec_so=yes
6937 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6940 _libavcodec=no
6941 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6942 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
6943 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
6944 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6945 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6946 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
6947 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
6948 test "$_libavcodec_mpegaudio_hp" = yes \
6949 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6950 if test "$_libavcodec_a" = yes ; then
6951 _codecmodules="libavcodec(internal) $_codecmodules"
6952 elif test "$_libavcodec_so" = yes ; then
6953 _codecmodules="libavcodec.so $_codecmodules"
6954 else
6955 _nocodecmodules="libavcodec $_nocodecmodules"
6957 echores "$_libavcodec"
6959 echocheck "FFmpeg libavformat"
6960 if test "$_libavformat_a" = auto ; then
6961 _libavformat_a=no
6962 if test -d libavformat && test -f libavformat/utils.c ; then
6963 _libavformat_a=yes
6964 _res_comment="static"
6966 elif test "$_libavformat_so" = auto ; then
6967 _libavformat_so=no
6968 cat > $TMPC <<EOF
6969 #include <libavformat/avformat.h>
6970 #include <libavcodec/opt.h>
6971 int main(void) { av_alloc_format_context(); return 0; }
6973 if $_pkg_config --exists libavformat ; then
6974 _inc_libavformat=$($_pkg_config --cflags libavformat)
6975 _ld_tmp=$($_pkg_config --libs libavformat)
6976 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6977 && _libavformat_so=yes
6978 elif cc_check $_ld_lm -lavformat ; then
6979 extra_ldflags="$extra_ldflags -lavformat"
6980 _libavformat_so=yes
6981 _res_comment="using libavformat.so, but static libavformat is recommended"
6984 _libavformat=no
6985 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6986 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
6987 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
6988 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
6989 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6990 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
6991 test "$_libavformat_so" = yes \
6992 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
6993 echores "$_libavformat"
6995 echocheck "FFmpeg libpostproc"
6996 if test "$_libpostproc_a" = auto ; then
6997 _libpostproc_a=no
6998 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
6999 _libpostproc_a='yes'
7000 _res_comment="static"
7002 elif test "$_libpostproc_so" = auto ; then
7003 _libpostproc_so=no
7004 cat > $TMPC << EOF
7005 #include <inttypes.h>
7006 #include <libpostproc/postprocess.h>
7007 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7009 if cc_check -lpostproc $_ld_lm ; then
7010 extra_ldflags="$extra_ldflags -lpostproc"
7011 _libpostproc_so=yes
7012 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7015 _libpostproc=no
7016 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7017 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7018 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7019 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7020 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7021 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7022 test "$_libpostproc_so" = yes \
7023 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7024 echores "$_libpostproc"
7026 echocheck "FFmpeg libswscale"
7027 if test "$_libswscale_a" = auto ; then
7028 _libswscale_a=no
7029 if test -d libswscale && test -f libswscale/swscale.h ; then
7030 _libswscale_a='yes'
7031 _res_comment="static"
7033 elif test "$_libswscale_so" = auto ; then
7034 _libswscale_so=no
7035 _res_comment="using libswscale.so, but static libswscale is recommended"
7036 cat > $TMPC << EOF
7037 #include <libswscale/swscale.h>
7038 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7040 if $_pkg_config --exists libswscale ; then
7041 _inc_libswscale=$($_pkg_config --cflags libswscale)
7042 _ld_tmp=$($_pkg_config --libs libswscale)
7043 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7044 && _libswscale_so=yes
7045 elif cc_check -lswscale ; then
7046 extra_ldflags="$extra_ldflags -lswscale"
7047 _libswscale_so=yes
7050 _libswscale=no
7051 def_libswscale='#undef CONFIG_LIBSWSCALE'
7052 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7053 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7054 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7055 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7056 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7057 test "$_libswscale_so" = yes \
7058 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7059 echores "$_libswscale"
7061 echocheck "libamr narrowband"
7062 if test "$_libamr_nb" = auto ; then
7063 _libamr_nb=no
7064 cat > $TMPC << EOF
7065 #include <amrnb/sp_dec.h>
7066 int main(void) { Speech_Decode_Frame_init(); return 0; }
7068 cc_check -lamrnb && _libamr_nb=yes
7069 if test "$_libavcodec_a" != yes ; then
7070 _libamr_nb=no
7071 _res_comment="libavcodec (static) is required by libamr_nb, sorry"
7074 if test "$_libamr_nb" = yes ; then
7075 _libamr=yes
7076 extra_ldflags="$extra_ldflags -lamrnb"
7077 def_libamr='#define CONFIG_LIBAMR 1'
7078 def_libamr_nb='#define CONFIG_LIBAMR_NB 1'
7079 _libavdecoders="$_libavdecoders LIBAMR_NB_DECODER"
7080 _libavencoders="$_libavencoders LIBAMR_NB_ENCODER"
7081 _codecmodules="libamr_nb $_codecmodules"
7082 else
7083 def_libamr_nb='#define CONFIG_LIBAMR_NB 0'
7084 _nocodecmodules="libamr_nb $_nocodecmodules"
7086 echores "$_libamr_nb"
7089 echocheck "libamr wideband"
7090 if test "$_libamr_wb" = auto ; then
7091 _libamr_wb=no
7092 cat > $TMPC << EOF
7093 #include <amrwb/dec_if.h>
7094 int main(void) { D_IF_init(); return 0; }
7096 cc_check -lamrwb && _libamr_wb=yes
7097 if test "$_libavcodec_a" != yes ; then
7098 _libamr_wb=no
7099 _res_comment="libavcodec (static) is required by libamr_wb, sorry"
7102 if test "$_libamr_wb" = yes ; then
7103 _libamr=yes
7104 extra_ldflags="$extra_ldflags -lamrwb"
7105 def_libamr='#define CONFIG_LIBAMR 1'
7106 def_libamr_wb='#define CONFIG_LIBAMR_WB 1'
7107 _libavdecoders="$_libavdecoders LIBAMR_WB_DECODER"
7108 _libavencoders="$_libavencoders LIBAMR_WB_ENCODER"
7109 _codecmodules="libamr_wb $_codecmodules"
7110 else
7111 def_libamr_wb='#define CONFIG_LIBAMR_WB 0'
7112 _nocodecmodules="libamr_wb $_nocodecmodules"
7114 echores "$_libamr_wb"
7116 echocheck "libdv-0.9.5+"
7117 if test "$_libdv" = auto ; then
7118 _libdv=no
7119 cat > $TMPC <<EOF
7120 #include <libdv/dv.h>
7121 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7123 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7125 if test "$_libdv" = yes ; then
7126 def_libdv='#define CONFIG_LIBDV095 1'
7127 extra_ldflags="$extra_ldflags -ldv"
7128 _codecmodules="libdv $_codecmodules"
7129 else
7130 def_libdv='#undef CONFIG_LIBDV095'
7131 _nocodecmodules="libdv $_nocodecmodules"
7133 echores "$_libdv"
7136 echocheck "Xvid"
7137 if test "$_xvid" = auto ; then
7138 _xvid=no
7139 cat > $TMPC << EOF
7140 #include <xvid.h>
7141 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7143 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7144 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7145 done
7148 if test "$_xvid" = yes ; then
7149 def_xvid='#define CONFIG_XVID4 1'
7150 _codecmodules="xvid $_codecmodules"
7151 else
7152 def_xvid='#undef CONFIG_XVID4'
7153 _nocodecmodules="xvid $_nocodecmodules"
7155 echores "$_xvid"
7157 echocheck "Xvid two pass plugin"
7158 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7159 cat > $TMPC << EOF
7160 #include <xvid.h>
7161 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7163 cc_check && _xvid_lavc=yes
7165 if test "$_xvid_lavc" = yes ; then
7166 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7167 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7168 else
7169 _xvid_lavc=no
7170 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7172 echores "$_xvid_lavc"
7175 echocheck "x264"
7176 if test "$_x264" = auto ; then
7177 cat > $TMPC << EOF
7178 #include <inttypes.h>
7179 #include <x264.h>
7180 #if X264_BUILD < 65
7181 #error We do not support old versions of x264. Get the latest from SVN.
7182 #endif
7183 int main(void) { x264_encoder_open((void*)0); return 0; }
7185 _x264=no
7186 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7187 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7188 done
7191 if test "$_x264" = yes ; then
7192 def_x264='#define CONFIG_X264 1'
7193 _codecmodules="x264 $_codecmodules"
7194 test "$_x264_lavc" = auto && _x264_lavc=yes
7195 if test "$_x264_lavc" = yes ; then
7196 def_x264_lavc='#define CONFIG_LIBX264 1'
7197 libs_mplayer="$libs_mplayer $_ld_x264"
7198 _libavencoders="$_libavencoders LIBX264_ENCODER"
7200 else
7201 _x264_lavc=no
7202 def_x264='#undef CONFIG_X264'
7203 def_x264_lavc='#define CONFIG_LIBX264 0'
7204 _nocodecmodules="x264 $_nocodecmodules"
7206 _res_comment="in libavcodec: $_x264_lavc"
7207 echores "$_x264"
7210 echocheck "libdirac"
7211 if test "$_libdirac_lavc" = auto; then
7212 _libdirac_lavc=no
7213 if test "$_libavcodec_a" != yes; then
7214 _res_comment="libavcodec (static) is required by libdirac, sorry"
7215 else
7216 cat > $TMPC << EOF
7217 #include <libdirac_encoder/dirac_encoder.h>
7218 #include <libdirac_decoder/dirac_parser.h>
7219 int main(void)
7221 dirac_encoder_context_t enc_ctx;
7222 dirac_decoder_t *dec_handle;
7223 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7224 dec_handle = dirac_decoder_init(0);
7225 if (dec_handle)
7226 dirac_decoder_close(dec_handle);
7227 return 0;
7230 if $_pkg_config --exists dirac ; then
7231 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7232 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7233 cc_check $_inc_dirac $_ld_dirac &&
7234 _libdirac_lavc=yes &&
7235 extra_cflags="$extra_cflags $_inc_dirac" &&
7236 extra_ldflags="$extra_ldflags $_ld_dirac"
7240 if test "$_libdirac_lavc" = yes ; then
7241 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7242 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7243 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7244 _codecmodules="libdirac $_codecmodules"
7245 else
7246 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7247 _nocodecmodules="libdirac $_nocodecmodules"
7249 echores "$_libdirac_lavc"
7252 echocheck "libschroedinger"
7253 if test "$_libschroedinger_lavc" = auto ; then
7254 _libschroedinger_lavc=no
7255 if test "$_libavcodec_a" != yes; then
7256 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7257 else
7258 cat > $TMPC << EOF
7259 #include <schroedinger/schro.h>
7260 int main(void) { schro_init(); return 0; }
7262 if $_pkg_config --exists schroedinger-1.0 ; then
7263 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7264 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7265 cc_check $_inc_schroedinger $_ld_schroedinger &&
7266 _libschroedinger_lavc=yes &&
7267 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7268 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7272 if test "$_libschroedinger_lavc" = yes ; then
7273 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7274 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7275 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7276 _codecmodules="libschroedinger $_codecmodules"
7277 else
7278 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7279 _nocodecmodules="libschroedinger $_nocodecmodules"
7281 echores "$_libschroedinger_lavc"
7283 echocheck "libnut"
7284 if test "$_libnut" = auto ; then
7285 cat > $TMPC << EOF
7286 #include <stdio.h>
7287 #include <stdlib.h>
7288 #include <inttypes.h>
7289 #include <libnut.h>
7290 nut_context_tt * nut;
7291 int main(void) { (void)nut_error(0); return 0; }
7293 _libnut=no
7294 cc_check -lnut && _libnut=yes
7297 if test "$_libnut" = yes ; then
7298 def_libnut='#define CONFIG_LIBNUT 1'
7299 extra_ldflags="$extra_ldflags -lnut"
7300 else
7301 def_libnut='#undef CONFIG_LIBNUT'
7303 echores "$_libnut"
7305 #check must be done after libavcodec one
7306 echocheck "zr"
7307 if test "$_zr" = auto ; then
7308 #36067's seem to identify themselves as 36057PQC's, so the line
7309 #below should work for 36067's and 36057's.
7310 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7311 _zr=yes
7312 else
7313 _zr=no
7316 if test "$_zr" = yes ; then
7317 if test "$_libavcodec_a" = yes ; then
7318 def_zr='#define CONFIG_ZR 1'
7319 _vomodules="zr zr2 $_vomodules"
7320 else
7321 _res_comment="libavcodec (static) is required by zr, sorry"
7322 _novomodules="zr $_novomodules"
7323 def_zr='#undef CONFIG_ZR'
7325 else
7326 def_zr='#undef CONFIG_ZR'
7327 _novomodules="zr zr2 $_novomodules"
7329 echores "$_zr"
7331 # mencoder requires (optional) those libs: libmp3lame
7332 if test "$_mencoder" != no ; then
7334 echocheck "libmp3lame"
7335 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7336 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7337 if test "$_mp3lame" = auto ; then
7338 _mp3lame=no
7339 cat > $TMPC <<EOF
7340 #include <lame/lame.h>
7341 int main(void) { lame_version_t lv; (void) lame_init();
7342 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7343 return 0; }
7345 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
7347 if test "$_mp3lame" = yes ; then
7348 def_mp3lame="#define CONFIG_MP3LAME"
7349 _ld_mp3lame=-lmp3lame
7350 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7351 cat > $TMPC << EOF
7352 #include <lame/lame.h>
7353 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7355 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET"
7356 cat > $TMPC << EOF
7357 #include <lame/lame.h>
7358 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7360 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM"
7361 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7362 if test "$_mp3lame_lavc" = yes ; then
7363 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7364 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7365 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7367 else
7368 _mp3lame_lavc=no
7369 def_mp3lame='#undef CONFIG_MP3LAME'
7370 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7372 _res_comment="in libavcodec: $_mp3lame_lavc"
7373 echores "$_mp3lame"
7375 fi # test "$_mencoder" != no
7377 echocheck "mencoder"
7378 if test "$_mencoder" = yes ; then
7379 def_muxers='#define CONFIG_MUXERS 1'
7380 else
7381 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7382 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7383 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7384 _libavmuxers=""
7385 def_muxers='#define CONFIG_MUXERS 0'
7387 echores "$_mencoder"
7390 echocheck "UnRAR executable"
7391 if test "$_unrar_exec" = auto ; then
7392 _unrar_exec="yes"
7393 mingw32 && _unrar_exec="no"
7395 if test "$_unrar_exec" = yes ; then
7396 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7397 else
7398 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7400 echores "$_unrar_exec"
7402 echocheck "TV interface"
7403 if test "$_tv" = yes ; then
7404 def_tv='#define CONFIG_TV 1'
7405 _inputmodules="tv $_inputmodules"
7406 else
7407 _noinputmodules="tv $_noinputmodules"
7408 def_tv='#undef CONFIG_TV'
7410 echores "$_tv"
7413 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7414 echocheck "*BSD BT848 bt8xx header"
7415 _ioctl_bt848_h=no
7416 for file in "machine/ioctl_bt848.h" \
7417 "dev/bktr/ioctl_bt848.h" \
7418 "dev/video/bktr/ioctl_bt848.h" \
7419 "dev/ic/bt8xx.h" ; do
7420 cat > $TMPC <<EOF
7421 #include <sys/types.h>
7422 #include <sys/ioctl.h>
7423 #include <$file>
7424 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7426 if cc_check ; then
7427 _ioctl_bt848_h=yes
7428 _ioctl_bt848_h_name="$file"
7429 break;
7431 done
7432 if test "$_ioctl_bt848_h" = yes ; then
7433 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7434 _res_comment="using $_ioctl_bt848_h_name"
7435 else
7436 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7438 echores "$_ioctl_bt848_h"
7440 echocheck "*BSD ioctl_meteor.h"
7441 _ioctl_meteor_h=no
7442 for file in "machine/ioctl_meteor.h" \
7443 "dev/bktr/ioctl_meteor.h" \
7444 "dev/video/bktr/ioctl_meteor.h" ; do
7445 cat > $TMPC <<EOF
7446 #include <sys/types.h>
7447 #include <$file>
7448 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7450 if cc_check ; then
7451 _ioctl_meteor_h=yes
7452 _ioctl_meteor_h_name="$file"
7453 break;
7455 done
7456 if test "$_ioctl_meteor_h" = yes ; then
7457 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7458 _res_comment="using $_ioctl_meteor_h_name"
7459 else
7460 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7462 echores "$_ioctl_meteor_h"
7464 echocheck "*BSD BrookTree 848 TV interface"
7465 if test "$_tv_bsdbt848" = auto ; then
7466 _tv_bsdbt848=no
7467 if test "$_tv" = yes ; then
7468 cat > $TMPC <<EOF
7469 #include <sys/types.h>
7470 $def_ioctl_meteor_h_name
7471 $def_ioctl_bt848_h_name
7472 #ifdef IOCTL_METEOR_H_NAME
7473 #include IOCTL_METEOR_H_NAME
7474 #endif
7475 #ifdef IOCTL_BT848_H_NAME
7476 #include IOCTL_BT848_H_NAME
7477 #endif
7478 int main(void) {
7479 ioctl(0, METEORSINPUT, 0);
7480 ioctl(0, TVTUNER_GETFREQ, 0);
7481 return 0;
7484 cc_check && _tv_bsdbt848=yes
7487 if test "$_tv_bsdbt848" = yes ; then
7488 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7489 _inputmodules="tv-bsdbt848 $_inputmodules"
7490 else
7491 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7492 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7494 echores "$_tv_bsdbt848"
7495 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7498 echocheck "DirectShow TV interface"
7499 if test "$_tv_dshow" = auto ; then
7500 _tv_dshow=no
7501 if test "$_tv" = yes && win32 ; then
7502 cat > $TMPC <<EOF
7503 #include <ole2.h>
7504 int main(void) {
7505 void* p;
7506 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7507 return 0;
7510 cc_check -lole32 -luuid && _tv_dshow=yes
7513 if test "$_tv_dshow" = yes ; then
7514 _inputmodules="tv-dshow $_inputmodules"
7515 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7516 extra_ldflags="$extra_ldflags -lole32 -luuid"
7517 else
7518 _noinputmodules="tv-dshow $_noinputmodules"
7519 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7521 echores "$_tv_dshow"
7524 echocheck "Video 4 Linux TV interface"
7525 if test "$_tv_v4l1" = auto ; then
7526 _tv_v4l1=no
7527 if test "$_tv" = yes && linux ; then
7528 cat > $TMPC <<EOF
7529 #include <stdlib.h>
7530 #include <linux/videodev.h>
7531 int main(void) { return 0; }
7533 cc_check && _tv_v4l1=yes
7536 if test "$_tv_v4l1" = yes ; then
7537 _audio_input=yes
7538 _tv_v4l=yes
7539 def_tv_v4l='#define CONFIG_TV_V4L 1'
7540 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7541 _inputmodules="tv-v4l $_inputmodules"
7542 else
7543 _noinputmodules="tv-v4l1 $_noinputmodules"
7544 def_tv_v4l='#undef CONFIG_TV_V4L'
7546 echores "$_tv_v4l1"
7549 echocheck "Video 4 Linux 2 TV interface"
7550 if test "$_tv_v4l2" = auto ; then
7551 _tv_v4l2=no
7552 if test "$_tv" = yes && linux ; then
7553 cat > $TMPC <<EOF
7554 #include <stdlib.h>
7555 #include <linux/types.h>
7556 #include <linux/videodev2.h>
7557 int main(void) { return 0; }
7559 cc_check && _tv_v4l2=yes
7562 if test "$_tv_v4l2" = yes ; then
7563 _audio_input=yes
7564 _tv_v4l=yes
7565 def_tv_v4l='#define CONFIG_TV_V4L 1'
7566 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7567 _inputmodules="tv-v4l2 $_inputmodules"
7568 else
7569 _noinputmodules="tv-v4l2 $_noinputmodules"
7570 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7572 echores "$_tv_v4l2"
7575 echocheck "TV teletext interface"
7576 if test "$_tv_teletext" = auto ; then
7577 _tv_teletext=no
7578 if test "$_freetype" = yes && test "$_pthreads" = yes; then
7579 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
7580 _tv_teletext=yes
7584 if test "$_tv_teletext" = yes ; then
7585 def_tv_teletext='#define CONFIG_TV_TELETEXT 1'
7586 _inputmodules="tv-teletext $_inputmodules"
7587 else
7588 _noinputmodules="tv-teletext $_noinputmodules"
7589 def_tv_teletext='#undef CONFIG_TV_TELETEXT'
7591 echores "$_tv_teletext"
7594 echocheck "Radio interface"
7595 if test "$_radio" = yes ; then
7596 def_radio='#define CONFIG_RADIO 1'
7597 _inputmodules="radio $_inputmodules"
7598 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7599 _radio_capture=no
7601 if test "$_radio_capture" = yes ; then
7602 _audio_input=yes
7603 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7604 else
7605 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7607 else
7608 _noinputmodules="radio $_noinputmodules"
7609 def_radio='#undef CONFIG_RADIO'
7610 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7611 _radio_capture=no
7613 echores "$_radio"
7614 echocheck "Capture for Radio interface"
7615 echores "$_radio_capture"
7617 echocheck "Video 4 Linux 2 Radio interface"
7618 if test "$_radio_v4l2" = auto ; then
7619 _radio_v4l2=no
7620 if test "$_radio" = yes && linux ; then
7621 cat > $TMPC <<EOF
7622 #include <stdlib.h>
7623 #include <linux/types.h>
7624 #include <linux/videodev2.h>
7625 int main(void) { return 0; }
7627 cc_check && _radio_v4l2=yes
7630 if test "$_radio_v4l2" = yes ; then
7631 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7632 else
7633 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7635 echores "$_radio_v4l2"
7637 echocheck "Video 4 Linux Radio interface"
7638 if test "$_radio_v4l" = auto ; then
7639 _radio_v4l=no
7640 if test "$_radio" = yes && linux ; then
7641 cat > $TMPC <<EOF
7642 #include <stdlib.h>
7643 #include <linux/videodev.h>
7644 int main(void) { return 0; }
7646 cc_check && _radio_v4l=yes
7649 if test "$_radio_v4l" = yes ; then
7650 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7651 else
7652 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7654 echores "$_radio_v4l"
7656 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7657 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7658 echocheck "*BSD BrookTree 848 Radio interface"
7659 _radio_bsdbt848=no
7660 cat > $TMPC <<EOF
7661 #include <sys/types.h>
7662 $def_ioctl_bt848_h_name
7663 #ifdef IOCTL_BT848_H_NAME
7664 #include IOCTL_BT848_H_NAME
7665 #endif
7666 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7668 cc_check && _radio_bsdbt848=yes
7669 echores "$_radio_bsdbt848"
7670 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7672 if test "$_radio_bsdbt848" = yes ; then
7673 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7674 else
7675 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7678 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7679 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7680 die "Radio driver requires BSD BT848, V4L or V4L2!"
7683 echocheck "Video 4 Linux 2 MPEG PVR interface"
7684 if test "$_pvr" = auto ; then
7685 _pvr=no
7686 if test "$_tv_v4l2" = yes && linux ; then
7687 cat > $TMPC <<EOF
7688 #include <stdlib.h>
7689 #include <inttypes.h>
7690 #include <linux/types.h>
7691 #include <linux/videodev2.h>
7692 int main(void) { struct v4l2_ext_controls ext; return 0; }
7694 cc_check && _pvr=yes
7697 if test "$_pvr" = yes ; then
7698 def_pvr='#define CONFIG_PVR 1'
7699 _inputmodules="pvr $_inputmodules"
7700 else
7701 _noinputmodules="pvr $_noinputmodules"
7702 def_pvr='#undef CONFIG_PVR'
7704 echores "$_pvr"
7707 echocheck "ftp"
7708 if ! beos && test "$_ftp" = yes ; then
7709 def_ftp='#define CONFIG_FTP 1'
7710 _inputmodules="ftp $_inputmodules"
7711 else
7712 _noinputmodules="ftp $_noinputmodules"
7713 def_ftp='#undef CONFIG_FTP'
7715 echores "$_ftp"
7717 echocheck "vstream client"
7718 if test "$_vstream" = auto ; then
7719 _vstream=no
7720 cat > $TMPC <<EOF
7721 #include <vstream-client.h>
7722 void vstream_error(const char *format, ... ) {}
7723 int main(void) { vstream_start(); return 0; }
7725 cc_check -lvstream-client && _vstream=yes
7727 if test "$_vstream" = yes ; then
7728 def_vstream='#define CONFIG_VSTREAM 1'
7729 _inputmodules="vstream $_inputmodules"
7730 extra_ldflags="$extra_ldflags -lvstream-client"
7731 else
7732 _noinputmodules="vstream $_noinputmodules"
7733 def_vstream='#undef CONFIG_VSTREAM'
7735 echores "$_vstream"
7738 echocheck "OSD menu"
7739 if test "$_menu" = yes ; then
7740 def_menu='#define CONFIG_MENU 1'
7741 test $_dvbin = "yes" && _menu_dvbin=yes
7742 else
7743 def_menu='#undef CONFIG_MENU'
7744 _menu_dvbin=no
7746 echores "$_menu"
7749 echocheck "Subtitles sorting"
7750 if test "$_sortsub" = yes ; then
7751 def_sortsub='#define CONFIG_SORTSUB 1'
7752 else
7753 def_sortsub='#undef CONFIG_SORTSUB'
7755 echores "$_sortsub"
7758 echocheck "XMMS inputplugin support"
7759 if test "$_xmms" = yes ; then
7760 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7761 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7762 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7763 else
7764 _xmmsplugindir=/usr/lib/xmms/Input
7765 _xmmslibdir=/usr/lib
7768 def_xmms='#define CONFIG_XMMS 1'
7769 if darwin ; then
7770 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7771 else
7772 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7774 else
7775 def_xmms='#undef CONFIG_XMMS'
7777 echores "$_xmms"
7780 # --------------- GUI specific tests begin -------------------
7781 echocheck "GUI"
7782 echo "$_gui"
7783 if test "$_gui" = yes ; then
7785 # Required libraries
7786 if test "$_libavcodec" != yes ||
7787 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7788 die "The GUI requires libavcodec with PNG support (needs zlib)."
7790 test "$_freetype" = no && test "$_bitmap_font" = no && \
7791 die "The GUI requires either FreeType or bitmap font support."
7792 if ! win32 ; then
7793 _gui_gtk=yes
7794 test "$_x11" != yes && die "X11 support required for GUI compilation."
7796 echocheck "XShape extension"
7797 if test "$_xshape" = auto ; then
7798 _xshape=no
7799 cat > $TMPC << EOF
7800 #include <X11/Xlib.h>
7801 #include <X11/Xproto.h>
7802 #include <X11/Xutil.h>
7803 #include <X11/extensions/shape.h>
7804 #include <stdlib.h>
7805 int main(void) {
7806 char *name = ":0.0";
7807 Display *wsDisplay;
7808 int exitvar = 0;
7809 int eventbase, errorbase;
7810 if (getenv("DISPLAY"))
7811 name=getenv("DISPLAY");
7812 wsDisplay=XOpenDisplay(name);
7813 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7814 exitvar=1;
7815 XCloseDisplay(wsDisplay);
7816 return exitvar;
7819 cc_check -lXext && _xshape=yes
7821 if test "$_xshape" = yes ; then
7822 def_xshape='#define CONFIG_XSHAPE 1'
7823 else
7824 die "The GUI requires the X11 extension XShape (which was not found)."
7826 echores "$_xshape"
7828 #Check for GTK
7829 if test "$_gtk1" = no ; then
7830 #Check for GTK2 :
7831 echocheck "GTK+ version"
7833 if $_pkg_config gtk+-2.0 --exists ; then
7834 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7835 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7836 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7837 echores "$_gtk"
7839 # Check for GLIB2
7840 if $_pkg_config glib-2.0 --exists ; then
7841 echocheck "glib version"
7842 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7843 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7844 echores "$_glib"
7846 def_gui='#define CONFIG_GUI 1'
7847 def_gtk2='#define CONFIG_GTK2 1'
7848 else
7849 _gtk1=yes
7850 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7852 else
7853 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7854 _gtk1=yes
7858 if test "$_gtk1" = yes ; then
7859 # Check for old GTK (1.2.x)
7860 echocheck "GTK version"
7861 if test -z "$_gtkconfig" ; then
7862 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7863 _gtkconfig="gtk-config"
7864 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7865 _gtkconfig="gtk12-config"
7866 else
7867 die "The GUI requires GTK devel packages (which were not found)."
7870 _gtk=$($_gtkconfig --version 2>&1)
7871 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7872 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7873 echores "$_gtk (using $_gtkconfig)"
7875 # Check for GLIB
7876 echocheck "glib version"
7877 if test -z "$_glibconfig" ; then
7878 if ( glib-config --version ) >/dev/null 2>&1 ; then
7879 _glibconfig="glib-config"
7880 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7881 _glibconfig="glib12-config"
7882 else
7883 die "The GUI requires GLIB devel packages (which were not found)"
7886 _glib=$($_glibconfig --version 2>&1)
7887 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7888 echores "$_glib (using $_glibconfig)"
7890 def_gui='#define CONFIG_GUI 1'
7891 def_gtk2='#undef CONFIG_GTK2'
7894 else #if ! win32
7895 _gui_win32=yes
7896 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7897 def_gui='#define CONFIG_GUI 1'
7898 def_gtk2='#undef CONFIG_GTK2'
7899 fi #if ! win32
7901 else #if test "$_gui"
7902 def_gui='#undef CONFIG_GUI'
7903 def_gtk2='#undef CONFIG_GTK2'
7904 fi #if test "$_gui"
7905 # --------------- GUI specific tests end -------------------
7908 if test "$_charset" != "noconv" ; then
7909 def_charset="#define MSG_CHARSET \"$_charset\""
7910 else
7911 def_charset="#undef MSG_CHARSET"
7912 _charset="UTF-8"
7915 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7916 echocheck "iconv program"
7917 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7918 if test "$?" -ne 0 ; then
7919 echores "no"
7920 echo "No working iconv program found, use "
7921 echo "--charset=UTF-8 to continue anyway."
7922 echo "If you also have problems with iconv library functions use --charset=noconv."
7923 echo "Messages in the GTK-2 interface will be broken then."
7924 exit 1
7925 else
7926 echores "yes"
7930 #############################################################################
7932 echocheck "automatic gdb attach"
7933 if test "$_crash_debug" = yes ; then
7934 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7935 else
7936 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7937 _crash_debug=no
7939 echores "$_crash_debug"
7941 echocheck "compiler support for noexecstack"
7942 cat > $TMPC <<EOF
7943 int main(void) { return 0; }
7945 if cc_check -Wl,-z,noexecstack ; then
7946 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7947 echores "yes"
7948 else
7949 echores "no"
7953 # Dynamic linking flags
7954 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7955 _ld_dl_dynamic=''
7956 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7957 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 ; then
7958 _ld_dl_dynamic='-rdynamic'
7961 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7962 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7963 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7965 def_debug='#undef MP_DEBUG'
7966 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7969 echocheck "joystick"
7970 def_joystick='#undef CONFIG_JOYSTICK'
7971 if test "$_joystick" = yes ; then
7972 if linux ; then
7973 # TODO add some check
7974 def_joystick='#define CONFIG_JOYSTICK 1'
7975 else
7976 _joystick="no"
7977 _res_comment="unsupported under $system_name"
7980 echores "$_joystick"
7982 echocheck "lirc"
7983 if test "$_lirc" = auto ; then
7984 _lirc=no
7985 cat > $TMPC <<EOF
7986 #include <lirc/lirc_client.h>
7987 int main(void) { return 0; }
7989 cc_check -llirc_client && _lirc=yes
7991 if test "$_lirc" = yes ; then
7992 def_lirc='#define CONFIG_LIRC 1'
7993 libs_mplayer="$libs_mplayer -llirc_client"
7994 else
7995 def_lirc='#undef CONFIG_LIRC'
7997 echores "$_lirc"
7999 echocheck "lircc"
8000 if test "$_lircc" = auto ; then
8001 _lircc=no
8002 cat > $TMPC <<EOF
8003 #include <lirc/lircc.h>
8004 int main(void) { return 0; }
8006 cc_check -llircc && _lircc=yes
8008 if test "$_lircc" = yes ; then
8009 def_lircc='#define CONFIG_LIRCC 1'
8010 libs_mplayer="$libs_mplayer -llircc"
8011 else
8012 def_lircc='#undef CONFIG_LIRCC'
8014 echores "$_lircc"
8016 if arm; then
8017 # Detect maemo development platform libraries availability (http://www.maemo.org),
8018 # they are used when run on Nokia 770|8x0
8019 echocheck "maemo (Nokia 770|8x0)"
8020 if test "$_maemo" = auto ; then
8021 _maemo=no
8022 cat > $TMPC << EOF
8023 #include <libosso.h>
8024 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8026 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8028 if test "$_maemo" = yes ; then
8029 def_maemo='#define CONFIG_MAEMO 1'
8030 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8031 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8032 else
8033 def_maemo='#undef CONFIG_MAEMO'
8035 echores "$_maemo"
8038 #############################################################################
8040 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8041 # the OMF format needs to come after the 'extern symbol prefix' check, which
8042 # uses nm.
8043 if os2 ; then
8044 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8047 # linker paths should be the same for mencoder and mplayer
8048 _ld_tmp=""
8049 for I in $libs_mplayer ; do
8050 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8051 if test -z "$_tmp" ; then
8052 extra_ldflags="$extra_ldflags $I"
8053 else
8054 _ld_tmp="$_ld_tmp $I"
8056 done
8057 libs_mplayer=$_ld_tmp
8060 #############################################################################
8061 # 64 bit file offsets?
8062 if test "$_largefiles" = yes || freebsd ; then
8063 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8064 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8065 # dvdread support requires this (for off64_t)
8066 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8070 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8072 # This must be the last test to be performed. Any other tests following it
8073 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8074 # against libdvdread (to permit MPlayer to use its own copy of the library).
8075 # So any compilation using the flags added here but not linking against
8076 # libdvdread can fail.
8077 echocheck "DVD support (libdvdnav)"
8078 dvdnav_internal=no
8079 if test "$_dvdnav" = auto ; then
8080 if test "$_dvdread_internal" = yes ; then
8081 _dvdnav=yes
8082 dvdnav_internal=yes
8083 _res_comment="internal"
8084 else
8085 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8088 if test "$_dvdnav" = auto ; then
8089 cat > $TMPC <<EOF
8090 #include <inttypes.h>
8091 #include <dvdnav/dvdnav.h>
8092 int main(void) { dvdnav_t *dvd=0; return 0; }
8094 _dvdnav=no
8095 _dvdnavdir=$($_dvdnavconfig --cflags)
8096 _dvdnavlibs=$($_dvdnavconfig --libs)
8097 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8099 if test "$_dvdnav" = yes ; then
8100 _largefiles=yes
8101 def_dvdnav='#define CONFIG_DVDNAV 1'
8102 if test "$dvdnav_internal" = yes ; then
8103 cflags_libdvdnav="-Ilibdvdnav"
8104 _inputmodules="dvdnav(internal) $_inputmodules"
8105 else
8106 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8107 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8108 _inputmodules="dvdnav $_inputmodules"
8110 else
8111 def_dvdnav='#undef CONFIG_DVDNAV'
8112 _noinputmodules="dvdnav $_noinputmodules"
8114 echores "$_dvdnav"
8116 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8117 # Read dvdnav comment above.
8119 #############################################################################
8120 echo "Creating config.mak"
8121 cat > config.mak << EOF
8122 # -------- Generated by configure -----------
8124 # Ensure that locale settings do not interfere with shell commands.
8125 export LC_ALL = C
8127 CONFIGURATION = $_configuration
8129 CHARSET = $_charset
8130 DOC_LANGS = $doc_langs
8131 DOC_LANG_ALL = $doc_lang_all
8132 MAN_LANGS = $man_langs
8133 MAN_LANG_ALL = $man_lang_all
8135 prefix = \$(DESTDIR)$_prefix
8136 BINDIR = \$(DESTDIR)$_bindir
8137 DATADIR = \$(DESTDIR)$_datadir
8138 LIBDIR = \$(DESTDIR)$_libdir
8139 MANDIR = \$(DESTDIR)$_mandir
8140 CONFDIR = \$(DESTDIR)$_confdir
8142 AR = $_ar
8143 AS = $_cc
8144 CC = $_cc
8145 CXX = $_cc
8146 HOST_CC = $_host_cc
8147 YASM = $_yasm
8148 INSTALL = $_install
8149 INSTALLSTRIP = $_install_strip
8150 RANLIB = $_ranlib
8151 WINDRES = $_windres
8153 CFLAGS = $CFLAGS $extra_cflags
8154 OPTFLAGS = $CFLAGS $extra_cflags
8155 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8156 CFLAGS_DHAHELPER = $cflags_dhahelper
8157 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8158 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8159 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8160 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8161 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8162 CFLAGS_STACKREALIGN = $cflags_stackrealign
8163 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8164 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8165 YASMFLAGS = $YASMFLAGS
8167 EXTRALIBS = $extra_libs
8168 EXTRA_LIB = $extra_ldflags $_ld_static $_ld_lm
8169 EXTRALIBS_MPLAYER = $libs_mplayer
8170 EXTRALIBS_MENCODER = $libs_mencoder
8172 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8174 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 &,"
8175 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 &,"
8177 GETCH = $_getch
8178 HELP_FILE = $_mp_help
8179 TIMER = $_timer
8181 EXESUF = $_exesuf
8182 EXESUFS_ALL = .exe
8184 $_target_arch
8185 $_target_subarch
8186 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8188 MENCODER = $_mencoder
8189 MPLAYER = $_mplayer
8191 NEED_GETTIMEOFDAY = $_need_gettimeofday
8192 NEED_GLOB = $_need_glob
8193 NEED_MMAP = $_need_mmap
8194 NEED_SETENV = $_need_setenv
8195 NEED_SHMEM = $_need_shmem
8196 NEED_STRSEP = $_need_strsep
8197 NEED_SWAB = $_need_swab
8198 NEED_VSSCANF = $_need_vsscanf
8200 # features
8201 3DFX = $_3dfx
8202 AA = $_aa
8203 ALSA1X = $_alsa1x
8204 ALSA9 = $_alsa9
8205 ALSA5 = $_alsa5
8206 APPLE_IR = $_apple_ir
8207 APPLE_REMOTE = $_apple_remote
8208 ARTS = $_arts
8209 AUDIO_INPUT = $_audio_input
8210 BITMAP_FONT = $_bitmap_font
8211 BL = $_bl
8212 CACA = $_caca
8213 CDDA = $_cdda
8214 CDDB = $_cddb
8215 COREAUDIO = $_coreaudio
8216 COREVIDEO = $_corevideo
8217 DART = $_dart
8218 DFBMGA = $_dfbmga
8219 DGA = $_dga
8220 DIRECT3D = $_direct3d
8221 DIRECTFB = $_directfb
8222 DIRECTX = $_directx
8223 DVBIN = $_dvbin
8224 DVDNAV = $_dvdnav
8225 DVDNAV_INTERNAL = $dvdnav_internal
8226 DVDREAD = $_dvdread
8227 DVDREAD_INTERNAL = $_dvdread_internal
8228 DXR2 = $_dxr2
8229 DXR3 = $_dxr3
8230 ESD = $_esd
8231 FAAC=$_faac
8232 FAAD = $_faad
8233 FAAD_INTERNAL = $_faad_internal
8234 FASTMEMCPY = $_fastmemcpy
8235 FBDEV = $_fbdev
8236 FREETYPE = $_freetype
8237 FTP = $_ftp
8238 GIF = $_gif
8239 GGI = $_ggi
8240 GL = $_gl
8241 GL_WIN32 = $_gl_win32
8242 GUI = $_gui
8243 GUI_GTK = $_gui_gtk
8244 GUI_WIN32 = $_gui_win32
8245 HAVE_POSIX_SELECT = $_posix_select
8246 HAVE_SYS_MMAN_H = $_mman
8247 IVTV = $_ivtv
8248 JACK = $_jack
8249 JOYSTICK = $_joystick
8250 JPEG = $_jpeg
8251 KVA = $_kva
8252 LADSPA = $_ladspa
8253 LIBA52 = $_liba52
8254 LIBA52_INTERNAL = $_liba52_internal
8255 LIBASS = $_ass
8256 LIBBS2B = $_libbs2b
8257 LIBDCA = $_libdca
8258 LIBDV = $_libdv
8259 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8260 LIBLZO = $_liblzo
8261 LIBMAD = $_mad
8262 LIBMENU = $_menu
8263 LIBMENU_DVBIN = $_menu_dvbin
8264 LIBMPEG2 = $_libmpeg2
8265 LIBNEMESI = $_nemesi
8266 LIBNUT = $_libnut
8267 LIBSMBCLIENT = $_smb
8268 LIBTHEORA = $_theora
8269 LIRC = $_lirc
8270 LIVE555 = $_live
8271 MACOSX_BUNDLE = $_macosx_bundle
8272 MACOSX_FINDER = $_macosx_finder
8273 MD5SUM = $_md5sum
8274 MGA = $_mga
8275 MNG = $_mng
8276 MP3LAME = $_mp3lame
8277 MP3LIB = $_mp3lib
8278 MUSEPACK = $_musepack
8279 NAS = $_nas
8280 NATIVE_RTSP = $_native_rtsp
8281 NETWORK = $_network
8282 OPENAL = $_openal
8283 OSS = $_ossaudio
8284 PE_EXECUTABLE = $_pe_executable
8285 PNG = $_png
8286 PNM = $_pnm
8287 PRIORITY = $_priority
8288 PULSE = $_pulse
8289 PVR = $_pvr
8290 QTX_CODECS = $_qtx
8291 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8292 QTX_EMULATION = $_qtx_emulation
8293 QUARTZ = $_quartz
8294 RADIO=$_radio
8295 RADIO_CAPTURE=$_radio_capture
8296 REAL_CODECS = $_real
8297 S3FB = $_s3fb
8298 SDL = $_sdl
8299 SPEEX = $_speex
8300 STREAM_CACHE = $_stream_cache
8301 SGIAUDIO = $_sgiaudio
8302 SUNAUDIO = $_sunaudio
8303 SVGA = $_svga
8304 TDFXFB = $_tdfxfb
8305 TDFXVID = $_tdfxvid
8306 TGA = $_tga
8307 TOOLAME=$_toolame
8308 TREMOR_INTERNAL = $_tremor_internal
8309 TV = $_tv
8310 TV_BSDBT848 = $_tv_bsdbt848
8311 TV_DSHOW = $_tv_dshow
8312 TV_TELETEXT = $_tv_teletext
8313 TV_V4L = $_tv_v4l
8314 TV_V4L1 = $_tv_v4l1
8315 TV_V4L2 = $_tv_v4l2
8316 TWOLAME=$_twolame
8317 UNRAR_EXEC = $_unrar_exec
8318 V4L2 = $_v4l2
8319 VCD = $_vcd
8320 VDPAU = $_vdpau
8321 VESA = $_vesa
8322 VIDIX = $_vidix
8323 VIDIX_PCIDB = $_vidix_pcidb_val
8324 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8325 VIDIX_IVTV=$_vidix_drv_ivtv
8326 VIDIX_MACH64=$_vidix_drv_mach64
8327 VIDIX_MGA=$_vidix_drv_mga
8328 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8329 VIDIX_NVIDIA=$_vidix_drv_nvidia
8330 VIDIX_PM2=$_vidix_drv_pm2
8331 VIDIX_PM3=$_vidix_drv_pm3
8332 VIDIX_RADEON=$_vidix_drv_radeon
8333 VIDIX_RAGE128=$_vidix_drv_rage128
8334 VIDIX_S3=$_vidix_drv_s3
8335 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8336 VIDIX_SIS=$_vidix_drv_sis
8337 VIDIX_UNICHROME=$_vidix_drv_unichrome
8338 VORBIS = $_vorbis
8339 VSTREAM = $_vstream
8340 WII = $_wii
8341 WIN32DLL = $_win32dll
8342 WIN32WAVEOUT = $_win32waveout
8343 WIN32_EMULATION = $_win32_emulation
8344 WINVIDIX = $winvidix
8345 X11 = $_x11
8346 X264 = $_x264
8347 XANIM_CODECS = $_xanim
8348 XMGA = $_xmga
8349 XMMS_PLUGINS = $_xmms
8350 XV = $_xv
8351 XVID4 = $_xvid
8352 XVIDIX = $xvidix
8353 XVMC = $_xvmc
8354 XVR100 = $_xvr100
8355 YUV4MPEG = $_yuv4mpeg
8356 ZR = $_zr
8358 # FFmpeg
8359 LIBAVUTIL = $_libavutil
8360 LIBAVUTIL_A = $_libavutil_a
8361 LIBAVUTIL_SO = $_libavutil_so
8362 LIBAVCODEC = $_libavcodec
8363 LIBAVCODEC_A = $_libavcodec_a
8364 LIBAVCODEC_SO = $_libavcodec_so
8365 LIBAVFORMAT = $_libavformat
8366 LIBAVFORMAT_A = $_libavformat_a
8367 LIBAVFORMAT_SO = $_libavformat_so
8368 LIBPOSTPROC = $_libpostproc
8369 LIBPOSTPROC_A = $_libpostproc_a
8370 LIBPOSTPROC_SO = $_libpostproc_so
8371 LIBSWSCALE = $_libswscale
8372 LIBSWSCALE_A = $_libswscale_a
8373 LIBSWSCALE_SO = $_libswscale_so
8375 BUILD_STATIC=yes
8376 SRC_PATH=..
8377 BUILD_ROOT=..
8378 LIBPREF=lib
8379 LIBSUF=.a
8380 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8382 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8383 CONFIG_AANDCT=yes
8384 CONFIG_FFT=yes
8385 CONFIG_FFT_MMX=$fft_mmx
8386 CONFIG_GOLOMB=yes
8387 CONFIG_MDCT=yes
8388 CONFIG_RDFT=yes
8390 CONFIG_BZLIB=$bzlib
8391 CONFIG_ENCODERS=yes
8392 CONFIG_GPL=yes
8393 CONFIG_LIBAMR=$_libamr
8394 CONFIG_LIBAMR_NB=$_libamr_nb
8395 CONFIG_LIBAMR_WB=$_libamr_wb
8396 CONFIG_LIBDIRAC=$_libdirac_lavc
8397 CONFIG_LIBFAAC=$_faac_lavc
8398 CONFIG_LIBMP3LAME=$_mp3lame_lavc
8399 CONFIG_LIBSCHROEDINGER=$_libschroedinger_lavc
8400 CONFIG_LIBVORBIS=$_libvorbis
8401 CONFIG_LIBX264=$_x264_lavc
8402 CONFIG_LIBXVID=$_xvid_lavc
8403 CONFIG_MLIB = $_mlib
8404 CONFIG_MUXERS=$_mencoder
8405 CONFIG_POSTPROC = yes
8406 # Prevent building libavcodec/imgresample.c with conflicting symbols
8407 CONFIG_SWSCALE=yes
8408 CONFIG_VDPAU=$_vdpau
8409 CONFIG_XVMC=$_xvmc
8410 CONFIG_ZLIB=$_zlib
8412 HAVE_PTHREADS = $_pthreads
8413 HAVE_W32THREADS = $_w32threads
8414 HAVE_YASM = $_have_yasm
8416 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8417 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8418 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8419 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8420 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8421 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8424 #############################################################################
8426 ff_config_enable () {
8427 _nprefix=$3;
8428 test -z "$_nprefix" && _nprefix='CONFIG'
8429 for part in $1; do
8430 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8431 echo "#define ${_nprefix}_$part 1"
8432 else
8433 echo "#define ${_nprefix}_$part 0"
8435 done
8438 echo "Creating config.h"
8439 cat > $TMPH << EOF
8440 /*----------------------------------------------------------------------------
8441 ** This file has been automatically generated by configure any changes in it
8442 ** will be lost when you run configure again.
8443 ** Instead of modifying definitions here, use the --enable/--disable options
8444 ** of the configure script! See ./configure --help for details.
8445 *---------------------------------------------------------------------------*/
8447 #ifndef MPLAYER_CONFIG_H
8448 #define MPLAYER_CONFIG_H
8450 /* Undefine this if you do not want to select mono audio (left or right)
8451 with a stereo MPEG layer 2/3 audio stream. The command line option
8452 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8453 right-only), with 0 being the default.
8455 #define CONFIG_FAKE_MONO 1
8457 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8458 #define MAX_OUTBURST 65536
8460 /* set up audio OUTBURST. Do not change this! */
8461 #define OUTBURST 512
8463 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8464 #undef FAST_OSD
8465 #undef FAST_OSD_TABLE
8467 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8468 #define MPEG12_POSTPROC 1
8469 #define ATTRIBUTE_ALIGNED_MAX 16
8473 #define CONFIGURATION "$_configuration"
8475 #define MPLAYER_DATADIR "$_datadir"
8476 #define MPLAYER_CONFDIR "$_confdir"
8477 #define MPLAYER_LIBDIR "$_libdir"
8479 /* definitions needed by included libraries */
8480 #define HAVE_INTTYPES_H 1
8481 /* libmpeg2 + FFmpeg */
8482 $def_fast_inttypes
8483 /* libdvdcss */
8484 #define HAVE_ERRNO_H 1
8485 /* libdvdcss + libdvdread */
8486 #define HAVE_LIMITS_H 1
8487 /* libdvdcss + libfaad2 */
8488 #define HAVE_UNISTD_H 1
8489 /* libfaad2 + libdvdread */
8490 #define STDC_HEADERS 1
8491 #define HAVE_MEMCPY 1
8492 /* libfaad2 */
8493 #define HAVE_STRING_H 1
8494 #define HAVE_STRINGS_H 1
8495 #define HAVE_SYS_STAT_H 1
8496 #define HAVE_SYS_TYPES_H 1
8497 /* libdvdnav */
8498 #define READ_CACHE_TRACE 0
8499 /* libdvdread */
8500 #define HAVE_DLFCN_H 1
8501 $def_dvdcss
8504 /* system headers */
8505 $def_alloca_h
8506 $def_alsa_asoundlib_h
8507 $def_altivec_h
8508 $def_malloc_h
8509 $def_mman_h
8510 $def_mman_has_map_failed
8511 $def_soundcard_h
8512 $def_sys_asoundlib_h
8513 $def_sys_soundcard_h
8514 $def_sys_sysinfo_h
8515 $def_termios_h
8516 $def_termios_sys_h
8517 $def_winsock2_h
8520 /* system functions */
8521 $def_gethostbyname2
8522 $def_gettimeofday
8523 $def_glob
8524 $def_langinfo
8525 $def_llrint
8526 $def_lrint
8527 $def_lrintf
8528 $def_map_memalign
8529 $def_memalign
8530 $def_nanosleep
8531 $def_posix_select
8532 $def_round
8533 $def_roundf
8534 $def_select
8535 $def_setenv
8536 $def_shm
8537 $def_strsep
8538 $def_swab
8539 $def_sysi86
8540 $def_sysi86_iv
8541 $def_termcap
8542 $def_termios
8543 $def_truncf
8544 $def_vsscanf
8547 /* system-specific features */
8548 $def_asmalign_pot
8549 $def_builtin_expect
8550 $def_dl
8551 $def_extern_prefix
8552 $def_iconv
8553 $def_kstat
8554 $def_macosx_bundle
8555 $def_macosx_finder
8556 $def_maemo
8557 $def_named_asm_args
8558 $def_priority
8559 $def_quicktime
8560 $def_restrict_keyword
8561 $def_rtc
8562 $def_unrar_exec
8565 /* configurable options */
8566 $def_charset
8567 $def_crash_debug
8568 $def_debug
8569 $def_dynamic_plugins
8570 $def_fastmemcpy
8571 $def_menu
8572 $def_runtime_cpudetection
8573 $def_sighandler
8574 $def_sortsub
8575 $def_stream_cache
8576 $def_pthread_cache
8579 /* CPU stuff */
8580 #define __CPU__ $iproc
8581 $def_words_endian
8582 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8583 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8586 /* DVD/VCD/CD */
8587 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8588 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8589 $def_bsdi_dvd
8590 $def_cddb
8591 $def_cdio
8592 $def_cdparanoia
8593 $def_cdrom
8594 $def_dvd
8595 $def_dvd_bsd
8596 $def_dvd_darwin
8597 $def_dvd_linux
8598 $def_dvd_openbsd
8599 $def_dvdio
8600 $def_dvdnav
8601 $def_dvdread
8602 $def_hpux_scsi_h
8603 $def_libcdio
8604 $def_sol_scsi_h
8605 $def_vcd
8608 /* codec libraries */
8609 $def_faac
8610 $def_faad
8611 $def_faad_internal
8612 $def_liba52
8613 $def_liba52_internal
8614 $def_libdca
8615 $def_libdv
8616 $def_liblzo
8617 $def_libmpeg2
8618 $def_mad
8619 $def_mp3lame
8620 $def_mp3lame_preset
8621 $def_mp3lame_preset_medium
8622 $def_mp3lib
8623 $def_musepack
8624 $def_speex
8625 $def_theora
8626 $def_toolame
8627 $def_tremor
8628 $def_twolame
8629 $def_vorbis
8630 $def_x264
8631 $def_xvid
8632 $def_zlib
8634 $def_libnut
8637 /* binary codecs */
8638 $def_qtx
8639 $def_qtx_win32
8640 $def_real
8641 $def_real_path
8642 $def_win32_loader
8643 $def_win32dll
8644 #define WIN32_PATH "$_win32codecsdir"
8645 $def_xanim
8646 $def_xanim_path
8647 $def_xmms
8648 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8651 /* GUI */
8652 $def_gtk2
8653 $def_gui
8654 $def_xshape
8657 /* Audio output drivers */
8658 $def_alsa
8659 $def_alsa1x
8660 $def_alsa5
8661 $def_alsa9
8662 $def_arts
8663 $def_coreaudio
8664 $def_dart
8665 $def_esd
8666 $def_esd_latency
8667 $def_jack
8668 $def_nas
8669 $def_openal
8670 $def_openal_h
8671 $def_ossaudio
8672 $def_ossaudio_devdsp
8673 $def_ossaudio_devmixer
8674 $def_pulse
8675 $def_sgiaudio
8676 $def_sunaudio
8677 $def_win32waveout
8679 $def_ladspa
8680 $def_libbs2b
8683 /* input */
8684 $def_apple_ir
8685 $def_apple_remote
8686 $def_ioctl_bt848_h_name
8687 $def_ioctl_meteor_h_name
8688 $def_joystick
8689 $def_lirc
8690 $def_lircc
8691 $def_pvr
8692 $def_radio
8693 $def_radio_bsdbt848
8694 $def_radio_capture
8695 $def_radio_v4l
8696 $def_radio_v4l2
8697 $def_tv
8698 $def_tv_bsdbt848
8699 $def_tv_dshow
8700 $def_tv_teletext
8701 $def_tv_v4l
8702 $def_tv_v4l1
8703 $def_tv_v4l2
8706 /* font stuff */
8707 $def_ass
8708 $def_bitmap_font
8709 $def_enca
8710 $def_fontconfig
8711 $def_freetype
8712 $def_fribidi
8715 /* networking */
8716 $def_closesocket
8717 $def_ftp
8718 $def_inet6
8719 $def_inet_aton
8720 $def_inet_pton
8721 $def_live
8722 $def_nemesi
8723 $def_network
8724 $def_smb
8725 $def_socklen_t
8726 $def_vstream
8729 /* libvo options */
8730 $def_3dfx
8731 $def_aa
8732 $def_bl
8733 $def_caca
8734 $def_corevideo
8735 $def_dfbmga
8736 $def_dga
8737 $def_dga1
8738 $def_dga2
8739 $def_direct3d
8740 $def_directfb
8741 $def_directfb_version
8742 $def_directx
8743 $def_dvb
8744 $def_dvb_head
8745 $def_dvbin
8746 $def_dxr2
8747 $def_dxr3
8748 $def_fbdev
8749 $def_ggi
8750 $def_ggiwmh
8751 $def_gif
8752 $def_gif_4
8753 $def_gif_tvt_hack
8754 $def_gl
8755 $def_gl_win32
8756 $def_ivtv
8757 $def_jpeg
8758 $def_kva
8759 $def_md5sum
8760 $def_mga
8761 $def_mng
8762 $def_png
8763 $def_pnm
8764 $def_quartz
8765 $def_s3fb
8766 $def_sdl
8767 $def_sdlbuggy
8768 $def_svga
8769 $def_tdfxfb
8770 $def_tdfxvid
8771 $def_tga
8772 $def_v4l2
8773 $def_vdpau
8774 $def_vesa
8775 $def_vidix
8776 $def_vidix_drv_cyberblade
8777 $def_vidix_drv_ivtv
8778 $def_vidix_drv_mach64
8779 $def_vidix_drv_mga
8780 $def_vidix_drv_mga_crtc2
8781 $def_vidix_drv_nvidia
8782 $def_vidix_drv_pm3
8783 $def_vidix_drv_radeon
8784 $def_vidix_drv_rage128
8785 $def_vidix_drv_s3
8786 $def_vidix_drv_sh_veu
8787 $def_vidix_drv_sis
8788 $def_vidix_drv_unichrome
8789 $def_vidix_pfx
8790 $def_vm
8791 $def_wii
8792 $def_x11
8793 $def_xdpms
8794 $def_xf86keysym
8795 $def_xinerama
8796 $def_xmga
8797 $def_xss
8798 $def_xv
8799 $def_xvmc
8800 $def_xvr100
8801 $def_yuv4mpeg
8802 $def_zr
8805 /* FFmpeg */
8806 $def_libavcodec
8807 $def_libavcodec_a
8808 $def_libavcodec_so
8809 $def_libavformat
8810 $def_libavformat_a
8811 $def_libavformat_so
8812 $def_libavutil
8813 $def_libavutil_a
8814 $def_libavutil_so
8815 $def_libpostproc
8816 $def_libpostproc_a
8817 $def_libpostproc_so
8818 $def_libswscale
8819 $def_libswscale_a
8820 $def_libswscale_so
8822 #define CONFIG_DECODERS 1
8823 #define CONFIG_ENCODERS 1
8824 #define CONFIG_DEMUXERS 1
8825 $def_muxers
8827 $def_arpa_inet_h
8828 $def_bswap
8829 $def_bzlib
8830 $def_dcbzl
8831 $def_dos_paths
8832 $def_fast_64bit
8833 $def_fast_unaligned
8834 $def_libavcodec_mpegaudio_hp
8835 $def_memalign_hack
8836 $def_mlib
8837 $def_mkstemp
8838 $def_posix_memalign
8839 $def_pthreads
8840 $def_ten_operands
8841 $def_threads
8842 $def_xform_asm
8843 $def_yasm
8845 #define CONFIG_FASTDIV 0
8846 #define CONFIG_FFSERVER 0
8847 #define CONFIG_GPL 1
8848 #define CONFIG_GRAY 0
8849 #define CONFIG_HARDCODED_TABLES 0
8850 #define CONFIG_LIBAMR_NB_FIXED 0
8851 #define CONFIG_LIBVORBIS 0
8852 #define CONFIG_POWERPC_PERF 0
8853 #define CONFIG_SMALL 0
8854 #define CONFIG_SWSCALE 1
8855 #define CONFIG_SWSCALE_ALPHA 1
8857 #define HAVE_GETHRTIME 0
8858 #define HAVE_INLINE_ASM 0
8859 #define HAVE_LDBRX 0
8860 #define HAVE_POLL_H 1
8861 #define HAVE_PPC4XX 0
8862 #define HAVE_VIRTUALALLOC 0
8864 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8865 #define CONFIG_AANDCT 1
8866 #define CONFIG_FFT 1
8867 #define CONFIG_GOLOMB 1
8868 #define CONFIG_MDCT 1
8869 #define CONFIG_RDFT 1
8871 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8872 #define HAVE_EBX_AVAILABLE 1
8873 #ifndef MP_DEBUG
8874 #define HAVE_EBP_AVAILABLE 1
8875 #else
8876 #define HAVE_EBP_AVAILABLE 0
8877 #endif
8879 /* External libraries used through libavcodec. */
8880 $def_faac_lavc
8881 $def_libamr
8882 $def_libamr_nb
8883 $def_libamr_wb
8884 $def_libdirac_lavc
8885 $def_libschroedinger_lavc
8886 $def_mp3lame_lavc
8887 $def_x264_lavc
8888 $def_xvid_lavc
8890 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8891 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8892 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8893 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8894 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8895 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8896 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8898 #define CONFIG_H263_VAAPI_HWACCEL 0
8899 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8900 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8901 #define CONFIG_H264_VAAPI_HWACCEL 0
8902 #define CONFIG_VC1_VAAPI_HWACCEL 0
8903 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8905 #endif /* MPLAYER_CONFIG_H */
8908 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8909 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8911 #############################################################################
8913 cat << EOF
8915 Config files successfully generated by ./configure $_configuration !
8917 Install prefix: $_prefix
8918 Data directory: $_datadir
8919 Config direct.: $_confdir
8921 Byte order: $_byte_order
8922 Optimizing for: $_optimizing
8924 Languages:
8925 Messages/GUI: $language_msg
8926 Manual pages: $language_man
8927 Documentation: $language_doc
8929 Enabled optional drivers:
8930 Input: $_inputmodules
8931 Codecs: $_codecmodules
8932 Audio output: $_aomodules
8933 Video output: $_vomodules
8935 Disabled optional drivers:
8936 Input: $_noinputmodules
8937 Codecs: $_nocodecmodules
8938 Audio output: $_noaomodules
8939 Video output: $_novomodules
8941 'config.h' and 'config.mak' contain your configuration options.
8942 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8943 compile *** DO NOT REPORT BUGS if you tweak these files ***
8945 'make' will now compile MPlayer and 'make install' will install it.
8946 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8951 if test "$_mtrr" = yes ; then
8952 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8953 echo
8956 if ! x86_32; then
8957 cat <<EOF
8958 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8959 operating system ($system_name). You may encounter a few files that cannot
8960 be played due to missing open source video/audio codec support.
8966 cat <<EOF
8967 Check $TMPLOG if you wonder why an autodetection failed (make sure
8968 development headers/packages are installed).
8970 NOTE: The --enable-* parameters unconditionally force options on, completely
8971 skipping autodetection. This behavior is unlike what you may be used to from
8972 autoconf-based configure scripts that can decide to override you. This greater
8973 level of control comes at a price. You may have to provide the correct compiler
8974 and linker flags yourself.
8975 If you used one of these options (except --enable-gui and similar ones that
8976 turn on internal features) and experience a compilation or linking failure,
8977 make sure you have passed the necessary compiler/linker flags to configure.
8979 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8983 if test "$_warn_CFLAGS" = yes; then
8984 cat <<EOF
8986 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8987 but:
8989 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8991 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8992 To do so, execute 'CFLAGS= ./configure <options>'
8997 # Last move:
8998 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"