Do not dynamically load libvdpau.so.1, but link at compile time.
[mplayer/glamo.git] / configure
blob809d3f9250f4120fe8c3af0c0a0319fd46086e48
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
284 --enable-rpath enable runtime linker path for extra libs [disabled]
286 Codecs:
287 --enable-gif enable GIF support [autodetect]
288 --enable-png enable PNG input/output support [autodetect]
289 --enable-mng enable MNG input support [autodetect]
290 --enable-jpeg enable JPEG input/output support [autodetect]
291 --enable-libcdio enable libcdio support [autodetect]
292 --enable-liblzo enable liblzo support [autodetect]
293 --disable-win32dll disable Win32 DLL support [enabled]
294 --disable-qtx disable QuickTime codecs support [enabled]
295 --disable-xanim disable XAnim codecs support [enabled]
296 --disable-real disable RealPlayer codecs support [enabled]
297 --disable-xvid disable Xvid [autodetect]
298 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
299 --disable-x264 disable x264 [autodetect]
300 --disable-x264-lavc disable x264 in libavcodec [autodetect]
301 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
302 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
303 decoder) [autodetect]
304 --disable-libnut disable libnut [autodetect]
305 --disable-libavutil_a disable static libavutil [autodetect]
306 --disable-libavcodec_a disable static libavcodec [autodetect]
307 --disable-libavformat_a disable static libavformat [autodetect]
308 --disable-libpostproc_a disable static libpostproc [autodetect]
309 --disable-libswscale_a disable static libswscale [autodetect]
310 --disable-libavutil_so disable shared libavutil [autodetect]
311 --disable-libavcodec_so disable shared libavcodec [autodetect]
312 --disable-libavformat_so disable shared libavformat [autodetect]
313 --disable-libpostproc_so disable shared libpostproc [autodetect]
314 --disable-libswscale_so disable shared libswscale [autodetect]
315 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
316 in libavcodec [enabled]
317 --disable-tremor-internal disable internal Tremor [enabled]
318 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
319 --enable-tremor enable external Tremor [autodetect]
320 --disable-libvorbis disable libvorbis support [autodetect]
321 --disable-speex disable Speex support [autodetect]
322 --enable-theora enable OggTheora libraries [autodetect]
323 --enable-faad enable external FAAD2 (AAC) [autodetect]
324 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
325 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
326 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
327 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
328 --disable-ladspa disable LADSPA plugin support [autodetect]
329 --disable-libbs2b disable libbs2b audio filter support [autodetect]
330 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
331 --disable-mad disable libmad (MPEG audio) support [autodetect]
332 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
333 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
334 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
335 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
336 --enable-xmms enable XMMS input plugin support [disabled]
337 --enable-libdca enable libdca support [autodetect]
338 --disable-mp3lib disable builtin mp3lib [autodetect]
339 --disable-liba52 disable liba52 [autodetect]
340 --disable-liba52-internal disable builtin liba52 [autodetect]
341 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
342 --disable-musepack disable musepack support [autodetect]
343 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
344 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
345 --disable-decoder=DECODER disable specified FFmpeg decoder
346 --enable-decoder=DECODER enable specified FFmpeg decoder
347 --disable-encoder=ENCODER disable specified FFmpeg encoder
348 --enable-encoder=ENCODER enable specified FFmpeg encoder
349 --disable-parser=PARSER disable specified FFmpeg parser
350 --enable-parser=PARSER enable specified FFmpeg parser
351 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
352 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
353 --disable-muxer=MUXER disable specified FFmpeg muxer
354 --enable-muxer=MUXER enable specified FFmpeg muxer
356 Video output:
357 --disable-vidix disable VIDIX [for x86 *nix]
358 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
359 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
360 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
361 --disable-vidix-pcidb disable VIDIX PCI device name database
362 --enable-dhahelper enable VIDIX dhahelper support
363 --enable-svgalib_helper enable VIDIX svgalib_helper support
364 --enable-gl enable OpenGL video output [autodetect]
365 --enable-dga2 enable DGA 2 support [autodetect]
366 --enable-dga1 enable DGA 1 support [autodetect]
367 --enable-vesa enable VESA video output [autodetect]
368 --enable-svga enable SVGAlib video output [autodetect]
369 --enable-sdl enable SDL video output [autodetect]
370 --enable-kva enable KVA video output [autodetect]
371 --enable-aa enable AAlib video output [autodetect]
372 --enable-caca enable CACA video output [autodetect]
373 --enable-ggi enable GGI video output [autodetect]
374 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
375 --enable-direct3d enable Direct3D video output [autodetect]
376 --enable-directx enable DirectX video output [autodetect]
377 --enable-dxr2 enable DXR2 video output [autodetect]
378 --enable-dxr3 enable DXR3/H+ video output [autodetect]
379 --enable-ivtv enable IVTV TV-Out video output [autodetect]
380 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
381 --enable-dvb enable DVB video output [autodetect]
382 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
383 --enable-mga enable mga_vid video output [autodetect]
384 --enable-xmga enable mga_vid X11 video output [autodetect]
385 --enable-xv enable Xv video output [autodetect]
386 --enable-xvmc enable XvMC acceleration [disable]
387 --enable-vdpau enable VDPAU acceleration [autodetect]
388 --enable-vm enable XF86VidMode support [autodetect]
389 --enable-xinerama enable Xinerama support [autodetect]
390 --enable-x11 enable X11 video output [autodetect]
391 --enable-xshape enable XShape support [autodetect]
392 --disable-xss disable screensaver support via xss [autodetect]
393 --enable-fbdev enable FBDev video output [autodetect]
394 --enable-mlib enable mediaLib video output (Solaris) [disable]
395 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
396 --enable-tdfxfb enable tdfxfb video output [disable]
397 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
398 --enable-wii enable Nintendo Wii/GameCube video output [disable]
399 --enable-directfb enable DirectFB video output [autodetect]
400 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
401 --enable-bl enable Blinkenlights video output [disable]
402 --enable-tdfxvid enable tdfx_vid video output [disable]
403 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
404 --disable-tga disable Targa video output [enable]
405 --disable-pnm disable PNM video output [enable]
406 --disable-md5sum disable md5sum video output [enable]
407 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
408 --disable-corevideo disable CoreVideo video output [autodetect]
409 --disable-quartz disable Quartz video output [autodetect]
411 Audio output:
412 --disable-alsa disable ALSA audio output [autodetect]
413 --disable-ossaudio disable OSS audio output [autodetect]
414 --disable-arts disable aRts audio output [autodetect]
415 --disable-esd disable esd audio output [autodetect]
416 --disable-pulse disable Pulseaudio audio output [autodetect]
417 --disable-jack disable JACK audio output [autodetect]
418 --disable-openal disable OpenAL audio output [autodetect]
419 --disable-nas disable NAS audio output [autodetect]
420 --disable-sgiaudio disable SGI audio output [autodetect]
421 --disable-sunaudio disable Sun audio output [autodetect]
422 --disable-dart disable DART audio output [autodetect]
423 --disable-win32waveout disable Windows waveout audio output [autodetect]
424 --disable-coreaudio disable CoreAudio audio output [autodetect]
425 --disable-select disable using select() on the audio device [enable]
427 Language options:
428 --charset=charset convert the console messages to this character set
429 --language-doc=lang language to use for the documentation [en]
430 --language-man=lang language to use for the man pages [en]
431 --language-msg=lang language to use for the messages and the GUI [en]
432 --language=lang default language to use [en]
433 Specific options override --language. You can pass a list of languages separated
434 by whitespace or commas instead of a single language. Nonexisting translations
435 will be dropped from each list. All documentation and man page translations
436 available in the list will be installed, for the messages the first available
437 translation will be used. The value "all" will activate all translations. The
438 LINGUAS environment variable is honored. In all cases the fallback is English.
439 Available values are: all $msg_lang_all
441 Miscellaneous options:
442 --enable-runtime-cpudetection enable runtime CPU detection [disable]
443 --enable-cross-compile enable cross-compilation [autodetect]
444 --cc=COMPILER C compiler to build MPlayer [gcc]
445 --host-cc=COMPILER C compiler for tools needed while building [gcc]
446 --as=ASSEMBLER assembler to build MPlayer [as]
447 --nm=NM nm tool to build MPlayer [nm]
448 --yasm=YASM Yasm assembler to build MPlayer [yasm]
449 --ar=AR librarian to build MPlayer [ar]
450 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
451 --windres=WINDRES windres to build MPlayer [windres]
452 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
453 --enable-static build a statically linked binary
454 --with-install=PATH path to a custom install program
456 Advanced options:
457 --enable-mmx enable MMX [autodetect]
458 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
459 --enable-3dnow enable 3DNow! [autodetect]
460 --enable-3dnowext enable extended 3DNow! [autodetect]
461 --enable-sse enable SSE [autodetect]
462 --enable-sse2 enable SSE2 [autodetect]
463 --enable-ssse3 enable SSSE3 [autodetect]
464 --enable-shm enable shm [autodetect]
465 --enable-altivec enable AltiVec (PowerPC) [autodetect]
466 --enable-armv5te enable DSP extensions (ARM) [autodetect]
467 --enable-armv6 enable ARMv6 (ARM) [autodetect]
468 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
469 --enable-armvfp enable ARM VFP (ARM) [autodetect]
470 --enable-neon enable NEON (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 neon=auto
521 _iwmmxt=auto
522 _mtrr=auto
523 _altivec=auto
524 _install=install
525 _ranlib=ranlib
526 _windres=windres
527 _cc=cc
528 _ar=ar
529 test "$CC" && _cc="$CC"
530 _as=auto
531 _nm=auto
532 _yasm=yasm
533 _runtime_cpudetection=no
534 _cross_compile=auto
535 _prefix="/usr/local"
536 _libavutil_a=auto
537 _libavutil_so=auto
538 _libavcodec_a=auto
539 _libopencore_amrnb=auto
540 _libopencore_amrwb=auto
541 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
542 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
543 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
544 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
545 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
546 _libavparsers=$_libavparsers_all
547 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
548 _libavbsfs=$_libavbsfs_all
549 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
550 _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//)
551 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
552 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
553 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
554 _libavcodec_so=auto
555 _libavformat_a=auto
556 _libavformat_so=auto
557 _libpostproc_a=auto
558 _libpostproc_so=auto
559 _libswscale_a=auto
560 _libswscale_so=auto
561 _libavcodec_mpegaudio_hp=yes
562 _mencoder=yes
563 _mplayer=yes
564 _x11=auto
565 _xshape=auto
566 _xss=auto
567 _dga1=auto
568 _dga2=auto
569 _xv=auto
570 _xvmc=no #auto when complete
571 _vdpau=auto
572 _sdl=auto
573 _kva=auto
574 _direct3d=auto
575 _directx=auto
576 _win32waveout=auto
577 _nas=auto
578 _png=auto
579 _mng=auto
580 _jpeg=auto
581 _pnm=yes
582 _md5sum=yes
583 _yuv4mpeg=yes
584 _gif=auto
585 _gl=auto
586 _ggi=auto
587 _ggiwmh=auto
588 _aa=auto
589 _caca=auto
590 _svga=auto
591 _vesa=auto
592 _fbdev=auto
593 _dvb=auto
594 _dvbhead=auto
595 _dxr2=auto
596 _dxr3=auto
597 _ivtv=auto
598 _v4l2=auto
599 _iconv=auto
600 _langinfo=auto
601 _rtc=auto
602 _ossaudio=auto
603 _arts=auto
604 _esd=auto
605 _pulse=auto
606 _jack=auto
607 _dart=auto
608 _openal=auto
609 _libcdio=auto
610 _liblzo=auto
611 _mad=auto
612 _mp3lame=auto
613 _mp3lame_lavc=auto
614 _toolame=auto
615 _twolame=auto
616 _tremor=auto
617 _tremor_internal=yes
618 _tremor_low=no
619 _libvorbis=auto
620 _speex=auto
621 _theora=auto
622 _mp3lib=auto
623 _liba52=auto
624 _liba52_internal=auto
625 _libdca=auto
626 _libmpeg2=auto
627 _faad=auto
628 _faad_internal=auto
629 _faad_fixed=no
630 _faac=auto
631 _faac_lavc=auto
632 _ladspa=auto
633 _libbs2b=auto
634 _xmms=no
635 _vcd=auto
636 _dvdnav=auto
637 _dvdnavconfig=dvdnav-config
638 _dvdreadconfig=dvdread-config
639 _dvdread=auto
640 _dvdread_internal=auto
641 _libdvdcss_internal=auto
642 _xanim=auto
643 _real=auto
644 _live=auto
645 _nemesi=auto
646 _native_rtsp=yes
647 _xinerama=auto
648 _mga=auto
649 _xmga=auto
650 _vm=auto
651 _xf86keysym=auto
652 _mlib=no #broken, thus disabled
653 _sgiaudio=auto
654 _sunaudio=auto
655 _alsa=auto
656 _fastmemcpy=yes
657 _unrar_exec=auto
658 _win32dll=auto
659 _select=yes
660 _radio=no
661 _radio_capture=no
662 _radio_v4l=auto
663 _radio_v4l2=auto
664 _radio_bsdbt848=auto
665 _tv=yes
666 _tv_v4l1=auto
667 _tv_v4l2=auto
668 _tv_bsdbt848=auto
669 _tv_dshow=auto
670 _pvr=auto
671 _network=yes
672 _winsock2_h=auto
673 _smb=auto
674 _vidix=auto
675 _vidix_pcidb=yes
676 _dhahelper=no
677 _svgalib_helper=no
678 _joystick=no
679 _xvid=auto
680 _xvid_lavc=auto
681 _x264=auto
682 _x264_lavc=auto
683 _libdirac_lavc=auto
684 _libschroedinger_lavc=auto
685 _libnut=auto
686 _lirc=auto
687 _lircc=auto
688 _apple_remote=auto
689 _apple_ir=auto
690 _gui=no
691 _gtk1=no
692 _termcap=auto
693 _termios=auto
694 _3dfx=no
695 _s3fb=no
696 _wii=no
697 _tdfxfb=no
698 _tdfxvid=no
699 _xvr100=auto
700 _tga=yes
701 _directfb=auto
702 _zr=auto
703 _bl=no
704 _largefiles=yes
705 #language=en
706 _shm=auto
707 _linux_devfs=no
708 _charset="UTF-8"
709 _dynamic_plugins=no
710 _crash_debug=no
711 _sighandler=yes
712 _libdv=auto
713 _cdparanoia=auto
714 _cddb=auto
715 _big_endian=auto
716 _bitmap_font=yes
717 _freetype=auto
718 _fontconfig=auto
719 _menu=no
720 _qtx=auto
721 _maemo=auto
722 _coreaudio=auto
723 _corevideo=auto
724 _quartz=auto
725 quicktime=auto
726 _macosx_finder=no
727 _macosx_bundle=auto
728 _sortsub=yes
729 _freetypeconfig='freetype-config'
730 _fribidi=auto
731 _fribidiconfig='fribidi-config'
732 _enca=auto
733 _inet6=auto
734 _gethostbyname2=auto
735 _ftp=yes
736 _musepack=auto
737 _vstream=auto
738 _pthreads=auto
739 _w32threads=auto
740 _ass=auto
741 _rpath=no
742 _asmalign_pot=auto
743 _stream_cache=yes
744 _priority=no
745 def_dos_paths="#define HAVE_DOS_PATHS 0"
746 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
747 def_priority="#undef CONFIG_PRIORITY"
748 def_pthread_cache="#undef PTHREAD_CACHE"
749 _need_shmem=yes
750 for ac_option do
751 case "$ac_option" in
752 --help|-help|-h)
753 show_help
755 --prefix=*)
756 _prefix=$(echo $ac_option | cut -d '=' -f 2)
758 --bindir=*)
759 _bindir=$(echo $ac_option | cut -d '=' -f 2)
761 --datadir=*)
762 _datadir=$(echo $ac_option | cut -d '=' -f 2)
764 --mandir=*)
765 _mandir=$(echo $ac_option | cut -d '=' -f 2)
767 --confdir=*)
768 _confdir=$(echo $ac_option | cut -d '=' -f 2)
770 --libdir=*)
771 _libdir=$(echo $ac_option | cut -d '=' -f 2)
773 --codecsdir=*)
774 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
776 --win32codecsdir=*)
777 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
779 --xanimcodecsdir=*)
780 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
782 --realcodecsdir=*)
783 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
786 --with-install=*)
787 _install=$(echo $ac_option | cut -d '=' -f 2 )
789 --with-xvmclib=*)
790 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
793 --with-sdl-config=*)
794 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
796 --with-freetype-config=*)
797 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
799 --with-fribidi-config=*)
800 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
802 --with-gtk-config=*)
803 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
805 --with-glib-config=*)
806 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
808 --with-dvdnav-config=*)
809 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
811 --with-dvdread-config=*)
812 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
815 --extra-cflags=*)
816 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
818 --extra-ldflags=*)
819 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
821 --extra-libs=*)
822 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
824 --extra-libs-mplayer=*)
825 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
827 --extra-libs-mencoder=*)
828 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
831 --target=*)
832 _target=$(echo $ac_option | cut -d '=' -f 2)
834 --cc=*)
835 _cc=$(echo $ac_option | cut -d '=' -f 2)
837 --host-cc=*)
838 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
840 --as=*)
841 _as=$(echo $ac_option | cut -d '=' -f 2)
843 --nm=*)
844 _nm=$(echo $ac_option | cut -d '=' -f 2)
846 --yasm=*)
847 _yasm=$(echo $ac_option | cut -d '=' -f 2)
849 --ar=*)
850 _ar=$(echo $ac_option | cut -d '=' -f 2)
852 --ranlib=*)
853 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
855 --windres=*)
856 _windres=$(echo $ac_option | cut -d '=' -f 2)
858 --charset=*)
859 _charset=$(echo $ac_option | cut -d '=' -f 2)
861 --language-doc=*)
862 language_doc=$(echo $ac_option | cut -d '=' -f 2)
864 --language-man=*)
865 language_man=$(echo $ac_option | cut -d '=' -f 2)
867 --language-msg=*)
868 language_msg=$(echo $ac_option | cut -d '=' -f 2)
870 --language=*)
871 language=$(echo $ac_option | cut -d '=' -f 2)
874 --enable-static)
875 _ld_static='-static'
877 --disable-static)
878 _ld_static=''
880 --enable-profile)
881 _profile='-p'
883 --disable-profile)
884 _profile=
886 --enable-debug)
887 _debug='-g'
889 --enable-debug=*)
890 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
892 --disable-debug)
893 _debug=
895 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
896 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
897 --enable-cross-compile) _cross_compile=yes ;;
898 --disable-cross-compile) _cross_compile=no ;;
899 --enable-mencoder) _mencoder=yes ;;
900 --disable-mencoder) _mencoder=no ;;
901 --enable-mplayer) _mplayer=yes ;;
902 --disable-mplayer) _mplayer=no ;;
903 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
904 --disable-dynamic-plugins) _dynamic_plugins=no ;;
905 --enable-x11) _x11=yes ;;
906 --disable-x11) _x11=no ;;
907 --enable-xshape) _xshape=yes ;;
908 --disable-xshape) _xshape=no ;;
909 --enable-xss) _xss=yes ;;
910 --disable-xss) _xss=no ;;
911 --enable-xv) _xv=yes ;;
912 --disable-xv) _xv=no ;;
913 --enable-xvmc) _xvmc=yes ;;
914 --disable-xvmc) _xvmc=no ;;
915 --enable-vdpau) _vdpau=yes ;;
916 --disable-vdpau) _vdpau=no ;;
917 --enable-sdl) _sdl=yes ;;
918 --disable-sdl) _sdl=no ;;
919 --enable-kva) _kva=yes ;;
920 --disable-kva) _kva=no ;;
921 --enable-direct3d) _direct3d=yes ;;
922 --disable-direct3d) _direct3d=no ;;
923 --enable-directx) _directx=yes ;;
924 --disable-directx) _directx=no ;;
925 --enable-win32waveout) _win32waveout=yes ;;
926 --disable-win32waveout) _win32waveout=no ;;
927 --enable-nas) _nas=yes ;;
928 --disable-nas) _nas=no ;;
929 --enable-png) _png=yes ;;
930 --disable-png) _png=no ;;
931 --enable-mng) _mng=yes ;;
932 --disable-mng) _mng=no ;;
933 --enable-jpeg) _jpeg=yes ;;
934 --disable-jpeg) _jpeg=no ;;
935 --enable-pnm) _pnm=yes ;;
936 --disable-pnm) _pnm=no ;;
937 --enable-md5sum) _md5sum=yes ;;
938 --disable-md5sum) _md5sum=no ;;
939 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
940 --disable-yuv4mpeg) _yuv4mpeg=no ;;
941 --enable-gif) _gif=yes ;;
942 --disable-gif) _gif=no ;;
943 --enable-gl) _gl=yes ;;
944 --disable-gl) _gl=no ;;
945 --enable-ggi) _ggi=yes ;;
946 --disable-ggi) _ggi=no ;;
947 --enable-ggiwmh) _ggiwmh=yes ;;
948 --disable-ggiwmh) _ggiwmh=no ;;
949 --enable-aa) _aa=yes ;;
950 --disable-aa) _aa=no ;;
951 --enable-caca) _caca=yes ;;
952 --disable-caca) _caca=no ;;
953 --enable-svga) _svga=yes ;;
954 --disable-svga) _svga=no ;;
955 --enable-vesa) _vesa=yes ;;
956 --disable-vesa) _vesa=no ;;
957 --enable-fbdev) _fbdev=yes ;;
958 --disable-fbdev) _fbdev=no ;;
959 --enable-dvb) _dvb=yes ;;
960 --disable-dvb) _dvb=no ;;
961 --enable-dvbhead) _dvbhead=yes ;;
962 --disable-dvbhead) _dvbhead=no ;;
963 --enable-dxr2) _dxr2=yes ;;
964 --disable-dxr2) _dxr2=no ;;
965 --enable-dxr3) _dxr3=yes ;;
966 --disable-dxr3) _dxr3=no ;;
967 --enable-ivtv) _ivtv=yes ;;
968 --disable-ivtv) _ivtv=no ;;
969 --enable-v4l2) _v4l2=yes ;;
970 --disable-v4l2) _v4l2=no ;;
971 --enable-iconv) _iconv=yes ;;
972 --disable-iconv) _iconv=no ;;
973 --enable-langinfo) _langinfo=yes ;;
974 --disable-langinfo) _langinfo=no ;;
975 --enable-rtc) _rtc=yes ;;
976 --disable-rtc) _rtc=no ;;
977 --enable-libdv) _libdv=yes ;;
978 --disable-libdv) _libdv=no ;;
979 --enable-ossaudio) _ossaudio=yes ;;
980 --disable-ossaudio) _ossaudio=no ;;
981 --enable-arts) _arts=yes ;;
982 --disable-arts) _arts=no ;;
983 --enable-esd) _esd=yes ;;
984 --disable-esd) _esd=no ;;
985 --enable-pulse) _pulse=yes ;;
986 --disable-pulse) _pulse=no ;;
987 --enable-jack) _jack=yes ;;
988 --disable-jack) _jack=no ;;
989 --enable-openal) _openal=yes ;;
990 --disable-openal) _openal=no ;;
991 --enable-dart) _dart=yes ;;
992 --disable-dart) _dart=no ;;
993 --enable-mad) _mad=yes ;;
994 --disable-mad) _mad=no ;;
995 --enable-mp3lame) _mp3lame=yes ;;
996 --disable-mp3lame) _mp3lame=no ;;
997 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
998 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
999 --enable-toolame) _toolame=yes ;;
1000 --disable-toolame) _toolame=no ;;
1001 --enable-twolame) _twolame=yes ;;
1002 --disable-twolame) _twolame=no ;;
1003 --enable-libcdio) _libcdio=yes ;;
1004 --disable-libcdio) _libcdio=no ;;
1005 --enable-liblzo) _liblzo=yes ;;
1006 --disable-liblzo) _liblzo=no ;;
1007 --enable-libvorbis) _libvorbis=yes ;;
1008 --disable-libvorbis) _libvorbis=no ;;
1009 --enable-speex) _speex=yes ;;
1010 --disable-speex) _speex=no ;;
1011 --enable-tremor) _tremor=yes ;;
1012 --disable-tremor) _tremor=no ;;
1013 --enable-tremor-internal) _tremor_internal=yes ;;
1014 --disable-tremor-internal) _tremor_internal=no ;;
1015 --enable-tremor-low) _tremor_low=yes ;;
1016 --disable-tremor-low) _tremor_low=no ;;
1017 --enable-theora) _theora=yes ;;
1018 --disable-theora) _theora=no ;;
1019 --enable-mp3lib) _mp3lib=yes ;;
1020 --disable-mp3lib) _mp3lib=no ;;
1021 --enable-liba52-internal) _liba52_internal=yes ;;
1022 --disable-liba52-internal) _liba52_internal=no ;;
1023 --enable-liba52) _liba52=yes ;;
1024 --disable-liba52) _liba52=no ;;
1025 --enable-libdca) _libdca=yes ;;
1026 --disable-libdca) _libdca=no ;;
1027 --enable-libmpeg2) _libmpeg2=yes ;;
1028 --disable-libmpeg2) _libmpeg2=no ;;
1029 --enable-musepack) _musepack=yes ;;
1030 --disable-musepack) _musepack=no ;;
1031 --enable-faad) _faad=yes ;;
1032 --disable-faad) _faad=no ;;
1033 --enable-faad-internal) _faad_internal=yes ;;
1034 --disable-faad-internal) _faad_internal=no ;;
1035 --enable-faad-fixed) _faad_fixed=yes ;;
1036 --disable-faad-fixed) _faad_fixed=no ;;
1037 --enable-faac) _faac=yes ;;
1038 --disable-faac) _faac=no ;;
1039 --enable-faac-lavc) _faac_lavc=yes ;;
1040 --disable-faac-lavc) _faac_lavc=no ;;
1041 --enable-ladspa) _ladspa=yes ;;
1042 --disable-ladspa) _ladspa=no ;;
1043 --enable-libbs2b) _libbs2b=yes ;;
1044 --disable-libbs2b) _libbs2b=no ;;
1045 --enable-xmms) _xmms=yes ;;
1046 --disable-xmms) _xmms=no ;;
1047 --enable-vcd) _vcd=yes ;;
1048 --disable-vcd) _vcd=no ;;
1049 --enable-dvdread) _dvdread=yes ;;
1050 --disable-dvdread) _dvdread=no ;;
1051 --enable-dvdread-internal) _dvdread_internal=yes ;;
1052 --disable-dvdread-internal) _dvdread_internal=no ;;
1053 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1054 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1055 --enable-dvdnav) _dvdnav=yes ;;
1056 --disable-dvdnav) _dvdnav=no ;;
1057 --enable-xanim) _xanim=yes ;;
1058 --disable-xanim) _xanim=no ;;
1059 --enable-real) _real=yes ;;
1060 --disable-real) _real=no ;;
1061 --enable-live) _live=yes ;;
1062 --disable-live) _live=no ;;
1063 --enable-nemesi) _nemesi=yes ;;
1064 --disable-nemesi) _nemesi=no ;;
1065 --enable-xinerama) _xinerama=yes ;;
1066 --disable-xinerama) _xinerama=no ;;
1067 --enable-mga) _mga=yes ;;
1068 --disable-mga) _mga=no ;;
1069 --enable-xmga) _xmga=yes ;;
1070 --disable-xmga) _xmga=no ;;
1071 --enable-vm) _vm=yes ;;
1072 --disable-vm) _vm=no ;;
1073 --enable-xf86keysym) _xf86keysym=yes ;;
1074 --disable-xf86keysym) _xf86keysym=no ;;
1075 --enable-mlib) _mlib=yes ;;
1076 --disable-mlib) _mlib=no ;;
1077 --enable-sunaudio) _sunaudio=yes ;;
1078 --disable-sunaudio) _sunaudio=no ;;
1079 --enable-sgiaudio) _sgiaudio=yes ;;
1080 --disable-sgiaudio) _sgiaudio=no ;;
1081 --enable-alsa) _alsa=yes ;;
1082 --disable-alsa) _alsa=no ;;
1083 --enable-tv) _tv=yes ;;
1084 --disable-tv) _tv=no ;;
1085 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1086 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1087 --enable-tv-v4l1) _tv_v4l1=yes ;;
1088 --disable-tv-v4l1) _tv_v4l1=no ;;
1089 --enable-tv-v4l2) _tv_v4l2=yes ;;
1090 --disable-tv-v4l2) _tv_v4l2=no ;;
1091 --enable-tv-dshow) _tv_dshow=yes ;;
1092 --disable-tv-dshow) _tv_dshow=no ;;
1093 --enable-radio) _radio=yes ;;
1094 --enable-radio-capture) _radio_capture=yes ;;
1095 --disable-radio-capture) _radio_capture=no ;;
1096 --disable-radio) _radio=no ;;
1097 --enable-radio-v4l) _radio_v4l=yes ;;
1098 --disable-radio-v4l) _radio_v4l=no ;;
1099 --enable-radio-v4l2) _radio_v4l2=yes ;;
1100 --disable-radio-v4l2) _radio_v4l2=no ;;
1101 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1102 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1103 --enable-pvr) _pvr=yes ;;
1104 --disable-pvr) _pvr=no ;;
1105 --enable-fastmemcpy) _fastmemcpy=yes ;;
1106 --disable-fastmemcpy) _fastmemcpy=no ;;
1107 --enable-network) _network=yes ;;
1108 --disable-network) _network=no ;;
1109 --enable-winsock2_h) _winsock2_h=yes ;;
1110 --disable-winsock2_h) _winsock2_h=no ;;
1111 --enable-smb) _smb=yes ;;
1112 --disable-smb) _smb=no ;;
1113 --enable-vidix) _vidix=yes ;;
1114 --disable-vidix) _vidix=no ;;
1115 --with-vidix-drivers=*)
1116 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1118 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1119 --enable-dhahelper) _dhahelper=yes ;;
1120 --disable-dhahelper) _dhahelper=no ;;
1121 --enable-svgalib_helper) _svgalib_helper=yes ;;
1122 --disable-svgalib_helper) _svgalib_helper=no ;;
1123 --enable-joystick) _joystick=yes ;;
1124 --disable-joystick) _joystick=no ;;
1125 --enable-xvid) _xvid=yes ;;
1126 --disable-xvid) _xvid=no ;;
1127 --enable-xvid-lavc) _xvid_lavc=yes ;;
1128 --disable-xvid-lavc) _xvid_lavc=no ;;
1129 --enable-x264) _x264=yes ;;
1130 --disable-x264) _x264=no ;;
1131 --enable-x264-lavc) _x264_lavc=yes ;;
1132 --disable-x264-lavc) _x264_lavc=no ;;
1133 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1134 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1135 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1136 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1137 --enable-libnut) _libnut=yes ;;
1138 --disable-libnut) _libnut=no ;;
1139 --enable-libavutil_a) _libavutil_a=yes ;;
1140 --disable-libavutil_a) _libavutil_a=no ;;
1141 --enable-libavutil_so) _libavutil_so=yes ;;
1142 --disable-libavutil_so) _libavutil_so=no ;;
1143 --enable-libavcodec_a) _libavcodec_a=yes ;;
1144 --disable-libavcodec_a) _libavcodec_a=no ;;
1145 --enable-libavcodec_so) _libavcodec_so=yes ;;
1146 --disable-libavcodec_so) _libavcodec_so=no ;;
1147 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1148 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1149 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1150 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1151 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1152 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1153 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1154 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1155 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1156 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1157 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1158 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1159 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1160 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1161 --enable-libavformat_a) _libavformat_a=yes ;;
1162 --disable-libavformat_a) _libavformat_a=no ;;
1163 --enable-libavformat_so) _libavformat_so=yes ;;
1164 --disable-libavformat_so) _libavformat_so=no ;;
1165 --enable-libpostproc_a) _libpostproc_a=yes ;;
1166 --disable-libpostproc_a) _libpostproc_a=no ;;
1167 --enable-libpostproc_so) _libpostproc_so=yes ;;
1168 --disable-libpostproc_so) _libpostproc_so=no ;;
1169 --enable-libswscale_a) _libswscale_a=yes ;;
1170 --disable-libswscale_a) _libswscale_a=no ;;
1171 --enable-libswscale_so) _libswscale_so=yes ;;
1172 --disable-libswscale_so) _libswscale_so=no ;;
1173 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1174 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1176 --enable-lirc) _lirc=yes ;;
1177 --disable-lirc) _lirc=no ;;
1178 --enable-lircc) _lircc=yes ;;
1179 --disable-lircc) _lircc=no ;;
1180 --enable-apple-remote) _apple_remote=yes ;;
1181 --disable-apple-remote) _apple_remote=no ;;
1182 --enable-apple-ir) _apple_ir=yes ;;
1183 --disable-apple-ir) _apple_ir=no ;;
1184 --enable-gui) _gui=yes ;;
1185 --disable-gui) _gui=no ;;
1186 --enable-gtk1) _gtk1=yes ;;
1187 --disable-gtk1) _gtk1=no ;;
1188 --enable-termcap) _termcap=yes ;;
1189 --disable-termcap) _termcap=no ;;
1190 --enable-termios) _termios=yes ;;
1191 --disable-termios) _termios=no ;;
1192 --enable-3dfx) _3dfx=yes ;;
1193 --disable-3dfx) _3dfx=no ;;
1194 --enable-s3fb) _s3fb=yes ;;
1195 --disable-s3fb) _s3fb=no ;;
1196 --enable-wii) _wii=yes ;;
1197 --disable-wii) _wii=no ;;
1198 --enable-tdfxfb) _tdfxfb=yes ;;
1199 --disable-tdfxfb) _tdfxfb=no ;;
1200 --disable-tdfxvid) _tdfxvid=no ;;
1201 --enable-tdfxvid) _tdfxvid=yes ;;
1202 --disable-xvr100) _xvr100=no ;;
1203 --enable-xvr100) _xvr100=yes ;;
1204 --disable-tga) _tga=no ;;
1205 --enable-tga) _tga=yes ;;
1206 --enable-directfb) _directfb=yes ;;
1207 --disable-directfb) _directfb=no ;;
1208 --enable-zr) _zr=yes ;;
1209 --disable-zr) _zr=no ;;
1210 --enable-bl) _bl=yes ;;
1211 --disable-bl) _bl=no ;;
1212 --enable-mtrr) _mtrr=yes ;;
1213 --disable-mtrr) _mtrr=no ;;
1214 --enable-largefiles) _largefiles=yes ;;
1215 --disable-largefiles) _largefiles=no ;;
1216 --enable-shm) _shm=yes ;;
1217 --disable-shm) _shm=no ;;
1218 --enable-select) _select=yes ;;
1219 --disable-select) _select=no ;;
1220 --enable-linux-devfs) _linux_devfs=yes ;;
1221 --disable-linux-devfs) _linux_devfs=no ;;
1222 --enable-cdparanoia) _cdparanoia=yes ;;
1223 --disable-cdparanoia) _cdparanoia=no ;;
1224 --enable-cddb) _cddb=yes ;;
1225 --disable-cddb) _cddb=no ;;
1226 --enable-big-endian) _big_endian=yes ;;
1227 --disable-big-endian) _big_endian=no ;;
1228 --enable-bitmap-font) _bitmap_font=yes ;;
1229 --disable-bitmap-font) _bitmap_font=no ;;
1230 --enable-freetype) _freetype=yes ;;
1231 --disable-freetype) _freetype=no ;;
1232 --enable-fontconfig) _fontconfig=yes ;;
1233 --disable-fontconfig) _fontconfig=no ;;
1234 --enable-unrarexec) _unrar_exec=yes ;;
1235 --disable-unrarexec) _unrar_exec=no ;;
1236 --enable-ftp) _ftp=yes ;;
1237 --disable-ftp) _ftp=no ;;
1238 --enable-vstream) _vstream=yes ;;
1239 --disable-vstream) _vstream=no ;;
1240 --enable-pthreads) _pthreads=yes ;;
1241 --disable-pthreads) _pthreads=no ;;
1242 --enable-w32threads) _w32threads=yes ;;
1243 --disable-w32threads) _w32threads=no ;;
1244 --enable-ass) _ass=yes ;;
1245 --disable-ass) _ass=no ;;
1246 --enable-rpath) _rpath=yes ;;
1247 --disable-rpath) _rpath=no ;;
1249 --enable-fribidi) _fribidi=yes ;;
1250 --disable-fribidi) _fribidi=no ;;
1252 --enable-enca) _enca=yes ;;
1253 --disable-enca) _enca=no ;;
1255 --enable-inet6) _inet6=yes ;;
1256 --disable-inet6) _inet6=no ;;
1258 --enable-gethostbyname2) _gethostbyname2=yes ;;
1259 --disable-gethostbyname2) _gethostbyname2=no ;;
1261 --enable-dga1) _dga1=yes ;;
1262 --disable-dga1) _dga1=no ;;
1263 --enable-dga2) _dga2=yes ;;
1264 --disable-dga2) _dga2=no ;;
1266 --enable-menu) _menu=yes ;;
1267 --disable-menu) _menu=no ;;
1269 --enable-qtx) _qtx=yes ;;
1270 --disable-qtx) _qtx=no ;;
1272 --enable-coreaudio) _coreaudio=yes ;;
1273 --disable-coreaudio) _coreaudio=no ;;
1274 --enable-corevideo) _corevideo=yes ;;
1275 --disable-corevideo) _corevideo=no ;;
1276 --enable-quartz) _quartz=yes ;;
1277 --disable-quartz) _quartz=no ;;
1278 --enable-macosx-finder) _macosx_finder=yes ;;
1279 --disable-macosx-finder) _macosx_finder=no ;;
1280 --enable-macosx-bundle) _macosx_bundle=yes;;
1281 --disable-macosx-bundle) _macosx_bundle=no;;
1283 --enable-maemo) _maemo=yes ;;
1284 --disable-maemo) _maemo=no ;;
1286 --enable-sortsub) _sortsub=yes ;;
1287 --disable-sortsub) _sortsub=no ;;
1289 --enable-crash-debug) _crash_debug=yes ;;
1290 --disable-crash-debug) _crash_debug=no ;;
1291 --enable-sighandler) _sighandler=yes ;;
1292 --disable-sighandler) _sighandler=no ;;
1293 --enable-win32dll) _win32dll=yes ;;
1294 --disable-win32dll) _win32dll=no ;;
1296 --enable-sse) _sse=yes ;;
1297 --disable-sse) _sse=no ;;
1298 --enable-sse2) _sse2=yes ;;
1299 --disable-sse2) _sse2=no ;;
1300 --enable-ssse3) _ssse3=yes ;;
1301 --disable-ssse3) _ssse3=no ;;
1302 --enable-mmxext) _mmxext=yes ;;
1303 --disable-mmxext) _mmxext=no ;;
1304 --enable-3dnow) _3dnow=yes ;;
1305 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1306 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1307 --disable-3dnowext) _3dnowext=no ;;
1308 --enable-cmov) _cmov=yes ;;
1309 --disable-cmov) _cmov=no ;;
1310 --enable-fast-cmov) _fast_cmov=yes ;;
1311 --disable-fast-cmov) _fast_cmov=no ;;
1312 --enable-altivec) _altivec=yes ;;
1313 --disable-altivec) _altivec=no ;;
1314 --enable-armv5te) _armv5te=yes ;;
1315 --disable-armv5te) _armv5te=no ;;
1316 --enable-armv6) _armv6=yes ;;
1317 --disable-armv6) _armv6=no ;;
1318 --enable-armv6t2) _armv6t2=yes ;;
1319 --disable-armv6t2) _armv6t2=no ;;
1320 --enable-armvfp) _armvfp=yes ;;
1321 --disable-armvfp) _armvfp=no ;;
1322 --enable-neon) neon=yes ;;
1323 --disable-neon) neon=no ;;
1324 --enable-iwmmxt) _iwmmxt=yes ;;
1325 --disable-iwmmxt) _iwmmxt=no ;;
1326 --enable-mmx) _mmx=yes ;;
1327 --disable-mmx) # 3Dnow! and MMX2 require MMX
1328 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1331 echo "Unknown parameter: $ac_option"
1332 exit 1
1335 esac
1336 done
1338 # Atmos: moved this here, to be correct, if --prefix is specified
1339 test -z "$_bindir" && _bindir="$_prefix/bin"
1340 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1341 test -z "$_mandir" && _mandir="$_prefix/share/man"
1342 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1343 test -z "$_libdir" && _libdir="$_prefix/lib"
1345 # Determine our OS name and CPU architecture
1346 if test -z "$_target" ; then
1347 # OS name
1348 system_name=$(uname -s 2>&1)
1349 case "$system_name" in
1350 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1352 Haiku)
1353 system_name=BeOS
1355 IRIX*)
1356 system_name=IRIX
1358 GNU/kFreeBSD)
1359 system_name=FreeBSD
1361 HP-UX*)
1362 system_name=HP-UX
1364 [cC][yY][gG][wW][iI][nN]*)
1365 system_name=CYGWIN
1367 MINGW32*)
1368 system_name=MINGW32
1370 OS/2*)
1371 system_name=OS/2
1374 system_name="$system_name-UNKNOWN"
1376 esac
1379 # host's CPU/instruction set
1380 host_arch=$(uname -p 2>&1)
1381 case "$host_arch" in
1382 i386|sparc|ppc|alpha|arm|mips|vax)
1384 powerpc) # Darwin returns 'powerpc'
1385 host_arch=ppc
1387 *) # uname -p on Linux returns 'unknown' for the processor type,
1388 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1390 # Maybe uname -m (machine hardware name) returns something we
1391 # recognize.
1393 # x86/x86pc is used by QNX
1394 case "$(uname -m 2>&1)" in
1395 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1396 ia64) host_arch=ia64 ;;
1397 macppc|ppc) host_arch=ppc ;;
1398 ppc64) host_arch=ppc64 ;;
1399 alpha) host_arch=alpha ;;
1400 sparc) host_arch=sparc ;;
1401 sparc64) host_arch=sparc64 ;;
1402 parisc*|hppa*|9000*) host_arch=hppa ;;
1403 arm*|zaurus|cats) host_arch=arm ;;
1404 sh3|sh4|sh4a) host_arch=sh ;;
1405 s390) host_arch=s390 ;;
1406 s390x) host_arch=s390x ;;
1407 *mips*) host_arch=mips ;;
1408 vax) host_arch=vax ;;
1409 xtensa*) host_arch=xtensa ;;
1410 *) host_arch=UNKNOWN ;;
1411 esac
1413 esac
1414 else # if test -z "$_target"
1415 system_name=$(echo $_target | cut -d '-' -f 2)
1416 case "$(echo $system_name | tr A-Z a-z)" in
1417 linux) system_name=Linux ;;
1418 freebsd) system_name=FreeBSD ;;
1419 gnu/kfreebsd) system_name=FreeBSD ;;
1420 netbsd) system_name=NetBSD ;;
1421 bsd/os) system_name=BSD/OS ;;
1422 openbsd) system_name=OpenBSD ;;
1423 dragonfly) system_name=DragonFly ;;
1424 sunos) system_name=SunOS ;;
1425 qnx) system_name=QNX ;;
1426 morphos) system_name=MorphOS ;;
1427 amigaos) system_name=AmigaOS ;;
1428 mingw32msvc) system_name=MINGW32 ;;
1429 esac
1430 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1431 host_arch=$(echo $_target | cut -d '-' -f 1)
1432 if test $(echo $host_arch) != "x86_64" ; then
1433 host_arch=$(echo $host_arch | tr '_' '-')
1437 extra_cflags="-I. $extra_cflags"
1438 _timer=timer-linux.c
1439 _getch=getch2.c
1440 if freebsd ; then
1441 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1442 extra_cflags="$extra_cflags -I/usr/local/include"
1445 if netbsd || dragonfly ; then
1446 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1447 extra_cflags="$extra_cflags -I/usr/pkg/include"
1450 if darwin; then
1451 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1452 _timer=timer-darwin.c
1455 if aix ; then
1456 extra_ldflags="$extra_ldflags -lC"
1459 if irix ; then
1460 _ranlib='ar -r'
1461 elif linux ; then
1462 _ranlib='true'
1465 if win32 ; then
1466 _exesuf=".exe"
1467 # -lwinmm is always needed for osdep/timer-win2.c
1468 extra_ldflags="$extra_ldflags -lwinmm"
1469 _pe_executable=yes
1470 _timer=timer-win2.c
1471 _priority=yes
1472 def_dos_paths="#define HAVE_DOS_PATHS 1"
1473 def_priority="#define CONFIG_PRIORITY 1"
1476 if mingw32 ; then
1477 _getch=getch2-win.c
1478 _need_shmem=no
1481 if amigaos ; then
1482 _select=no
1483 _sighandler=no
1484 _stream_cache=no
1485 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1486 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1489 if qnx ; then
1490 extra_ldflags="$extra_ldflags -lph"
1493 if os2 ; then
1494 _exesuf=".exe"
1495 _getch=getch2-os2.c
1496 _need_shmem=no
1497 _priority=yes
1498 def_dos_paths="#define HAVE_DOS_PATHS 1"
1499 def_priority="#define CONFIG_PRIORITY 1"
1502 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1503 test "$I" && break
1504 done
1507 TMPLOG="configure.log"
1508 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1509 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1510 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1511 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1512 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1514 rm -f "$TMPLOG"
1515 echo configuration: $_configuration > "$TMPLOG"
1516 echo >> "$TMPLOG"
1519 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1520 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1524 # Checking CC version...
1525 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1526 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1527 echocheck "$_cc version"
1528 cc_vendor=intel
1529 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1530 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1531 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1532 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1533 # TODO verify older icc/ecc compatibility
1534 case $cc_version in
1536 cc_version="v. ?.??, bad"
1537 cc_fail=yes
1539 10.1|11.0|11.1)
1540 cc_version="$cc_version, ok"
1543 cc_version="$cc_version, bad"
1544 cc_fail=yes
1546 esac
1547 echores "$cc_version"
1548 else
1549 for _cc in "$_cc" cc gcc ; do
1550 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1551 if test "$cc_name_tmp" = "gcc"; then
1552 cc_name=$cc_name_tmp
1553 echocheck "$_cc version"
1554 cc_vendor=gnu
1555 cc_version=$($_cc -dumpversion 2>&1)
1556 case $cc_version in
1557 2.96*)
1558 cc_fail=yes
1561 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1562 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1563 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1565 esac
1566 echores "$cc_version"
1567 break
1569 done
1570 fi # icc
1571 test "$cc_fail" = yes && die "unsupported compiler version"
1573 if test -z "$_target" && x86 ; then
1574 cat > $TMPC << EOF
1575 int main(void) {
1576 int test[(int)sizeof(char *)-7];
1577 return 0;
1580 cc_check && host_arch=x86_64 || host_arch=i386
1583 echo "Detected operating system: $system_name"
1584 echo "Detected host architecture: $host_arch"
1586 echocheck "host cc"
1587 test "$_host_cc" || _host_cc=$_cc
1588 echores $_host_cc
1590 echocheck "cross compilation"
1591 if test $_cross_compile = auto ; then
1592 cat > $TMPC << EOF
1593 int main(void) { return 0; }
1595 _cross_compile=yes
1596 cc_check && "$TMPEXE" && _cross_compile=no
1598 echores $_cross_compile
1600 if test $_cross_compile = yes; then
1601 tmp_run() {
1602 return 0
1606 # ---
1608 # now that we know what compiler should be used for compilation, try to find
1609 # out which assembler is used by the $_cc compiler
1610 if test "$_as" = auto ; then
1611 _as=$($_cc -print-prog-name=as)
1612 test -z "$_as" && _as=as
1615 if test "$_nm" = auto ; then
1616 _nm=$($_cc -print-prog-name=nm)
1617 test -z "$_nm" && _nm=nm
1620 # XXX: this should be ok..
1621 _cpuinfo="echo"
1623 if test "$_runtime_cpudetection" = no ; then
1625 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1626 # FIXME: Remove the cygwin check once AMD CPUs are supported
1627 if test -r /proc/cpuinfo && ! cygwin; then
1628 # Linux with /proc mounted, extract CPU information from it
1629 _cpuinfo="cat /proc/cpuinfo"
1630 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1631 # FreeBSD with Linux emulation /proc mounted,
1632 # extract CPU information from it
1633 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1634 elif darwin && ! x86 ; then
1635 # use hostinfo on Darwin
1636 _cpuinfo="hostinfo"
1637 elif aix; then
1638 # use 'lsattr' on AIX
1639 _cpuinfo="lsattr -E -l proc0 -a type"
1640 elif x86; then
1641 # all other OSes try to extract CPU information from a small helper
1642 # program cpuinfo instead
1643 $_cc -o cpuinfo$_exesuf cpuinfo.c
1644 _cpuinfo="./cpuinfo$_exesuf"
1647 if x86 ; then
1648 # gather more CPU information
1649 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1650 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1651 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1652 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1653 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1655 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1657 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1658 -e s/xmm/sse/ -e s/kni/sse/)
1660 for ext in $pparam ; do
1661 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1662 done
1664 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1665 test $_sse = kernel_check && _mmxext=kernel_check
1667 echocheck "CPU vendor"
1668 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1670 echocheck "CPU type"
1671 echores "$pname"
1674 fi # test "$_runtime_cpudetection" = no
1676 if x86 && test "$_runtime_cpudetection" = no ; then
1677 extcheck() {
1678 if test "$1" = kernel_check ; then
1679 echocheck "kernel support of $2"
1680 cat > $TMPC <<EOF
1681 #include <stdlib.h>
1682 #include <signal.h>
1683 void catch() { exit(1); }
1684 int main(void) {
1685 signal(SIGILL, catch);
1686 __asm__ volatile ("$3":::"memory"); return 0;
1690 if cc_check && tmp_run ; then
1691 eval _$2=yes
1692 echores "yes"
1693 _optimizing="$_optimizing $2"
1694 return 0
1695 else
1696 eval _$2=no
1697 echores "failed"
1698 echo "It seems that your kernel does not correctly support $2."
1699 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1700 return 1
1703 return 0
1706 extcheck $_mmx "mmx" "emms"
1707 extcheck $_mmxext "mmxext" "sfence"
1708 extcheck $_3dnow "3dnow" "femms"
1709 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1710 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1711 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1712 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1713 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1715 echocheck "mtrr support"
1716 if test "$_mtrr" = kernel_check ; then
1717 _mtrr="yes"
1718 _optimizing="$_optimizing mtrr"
1720 echores "$_mtrr"
1722 if test "$_gcc3_ext" != ""; then
1723 # if we had to disable sse/sse2 because the active kernel does not
1724 # support this instruction set extension, we also have to tell
1725 # gcc3 to not generate sse/sse2 instructions for normal C code
1726 cat > $TMPC << EOF
1727 int main(void) { return 0; }
1729 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1735 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1736 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1737 _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'
1738 case "$host_arch" in
1739 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1740 _arch='X86 X86_32'
1741 _target_arch="ARCH_X86 = yes"
1742 _target_subarch="ARCH_X86_32 = yes"
1743 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1744 iproc=486
1745 proc=i486
1748 if test "$_runtime_cpudetection" = no ; then
1749 case "$pvendor" in
1750 AuthenticAMD)
1751 case "$pfamily" in
1752 3) proc=i386 iproc=386 ;;
1753 4) proc=i486 iproc=486 ;;
1754 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1755 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1756 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1757 proc=k6-3
1758 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1759 proc=geode
1760 elif test "$pmodel" -ge 8; then
1761 proc=k6-2
1762 elif test "$pmodel" -ge 6; then
1763 proc=k6
1764 else
1765 proc=i586
1768 6) iproc=686
1769 # It's a bit difficult to determine the correct type of Family 6
1770 # AMD CPUs just from their signature. Instead, we check directly
1771 # whether it supports SSE.
1772 if test "$_sse" = yes; then
1773 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1774 proc=athlon-xp
1775 else
1776 # Again, gcc treats athlon and athlon-tbird similarly.
1777 proc=athlon
1780 15) iproc=686
1781 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1782 # caught and remedied in the optimization tests below.
1783 proc=k8
1786 *) proc=k8 iproc=686 ;;
1787 esac
1789 GenuineIntel)
1790 case "$pfamily" in
1791 3) proc=i386 iproc=386 ;;
1792 4) proc=i486 iproc=486 ;;
1793 5) iproc=586
1794 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1795 proc=pentium-mmx # 4 is desktop, 8 is mobile
1796 else
1797 proc=i586
1800 6) iproc=686
1801 if test "$pmodel" -ge 15; then
1802 proc=core2
1803 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1804 proc=pentium-m
1805 elif test "$pmodel" -ge 7; then
1806 proc=pentium3
1807 elif test "$pmodel" -ge 3; then
1808 proc=pentium2
1809 else
1810 proc=i686
1813 15) iproc=686
1814 # A nocona in 32-bit mode has no more capabilities than a prescott.
1815 if test "$pmodel" -ge 3; then
1816 proc=prescott
1817 else
1818 proc=pentium4
1820 test $_fast_cmov = "auto" && _fast_cmov=no
1822 *) proc=prescott iproc=686 ;;
1823 esac
1825 CentaurHauls)
1826 case "$pfamily" in
1827 5) iproc=586
1828 if test "$pmodel" -ge 8; then
1829 proc=winchip2
1830 elif test "$pmodel" -ge 4; then
1831 proc=winchip-c6
1832 else
1833 proc=i586
1836 6) iproc=686
1837 if test "$pmodel" -ge 9; then
1838 proc=c3-2
1839 else
1840 proc=c3
1841 iproc=586
1844 *) proc=i686 iproc=i686 ;;
1845 esac
1847 unknown)
1848 case "$pfamily" in
1849 3) proc=i386 iproc=386 ;;
1850 4) proc=i486 iproc=486 ;;
1851 *) proc=i586 iproc=586 ;;
1852 esac
1855 proc=i586 iproc=586 ;;
1856 esac
1857 fi # test "$_runtime_cpudetection" = no
1860 # check that gcc supports our CPU, if not, fall back to earlier ones
1861 # LGB: check -mcpu and -march swithing step by step with enabling
1862 # to fall back till 386.
1864 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1866 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1867 cpuopt=-mtune
1868 else
1869 cpuopt=-mcpu
1872 echocheck "GCC & CPU optimization abilities"
1873 cat > $TMPC << EOF
1874 int main(void) { return 0; }
1876 if test "$_runtime_cpudetection" = no ; then
1877 cc_check -march=native && proc=native
1878 if test "$proc" = "k8"; then
1879 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1881 if test "$proc" = "athlon-xp"; then
1882 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1884 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1885 cc_check -march=$proc $cpuopt=$proc || proc=k6
1887 if test "$proc" = "k6" || test "$proc" = "c3"; then
1888 if ! cc_check -march=$proc $cpuopt=$proc; then
1889 if cc_check -march=i586 $cpuopt=i686; then
1890 proc=i586-i686
1891 else
1892 proc=i586
1896 if test "$proc" = "prescott" ; then
1897 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1899 if test "$proc" = "core2" ; then
1900 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1902 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
1903 cc_check -march=$proc $cpuopt=$proc || proc=i686
1905 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1906 cc_check -march=$proc $cpuopt=$proc || proc=i586
1908 if test "$proc" = "i586"; then
1909 cc_check -march=$proc $cpuopt=$proc || proc=i486
1911 if test "$proc" = "i486" ; then
1912 cc_check -march=$proc $cpuopt=$proc || proc=i386
1914 if test "$proc" = "i386" ; then
1915 cc_check -march=$proc $cpuopt=$proc || proc=error
1917 if test "$proc" = "error" ; then
1918 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1919 _mcpu=""
1920 _march=""
1921 _optimizing=""
1922 elif test "$proc" = "i586-i686"; then
1923 _march="-march=i586"
1924 _mcpu="$cpuopt=i686"
1925 _optimizing="$proc"
1926 else
1927 _march="-march=$proc"
1928 _mcpu="$cpuopt=$proc"
1929 _optimizing="$proc"
1931 else # if test "$_runtime_cpudetection" = no
1932 _mcpu="$cpuopt=generic"
1933 # at least i486 required, for bswap instruction
1934 _march="-march=i486"
1935 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1936 cc_check $_mcpu || _mcpu=""
1937 cc_check $_march $_mcpu || _march=""
1940 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1941 ## autodetected mcpu/march parameters
1942 if test "$_target" ; then
1943 # TODO: it may be a good idea to check GCC and fall back in all cases
1944 if test "$host_arch" = "i586-i686"; then
1945 _march="-march=i586"
1946 _mcpu="$cpuopt=i686"
1947 else
1948 _march="-march=$host_arch"
1949 _mcpu="$cpuopt=$host_arch"
1952 proc="$host_arch"
1954 case "$proc" in
1955 i386) iproc=386 ;;
1956 i486) iproc=486 ;;
1957 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1958 i686|athlon*|pentium*) iproc=686 ;;
1959 *) iproc=586 ;;
1960 esac
1963 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1964 _fast_cmov="yes"
1965 else
1966 _fast_cmov="no"
1969 echores "$proc"
1972 ia64)
1973 _arch='IA64'
1974 _target_arch='ARCH_IA64 = yes'
1975 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1976 iproc='ia64'
1979 x86_64|amd64)
1980 _arch='X86 X86_64'
1981 _target_subarch='ARCH_X86_64 = yes'
1982 _target_arch="ARCH_X86 = yes"
1983 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1984 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1985 iproc='x86_64'
1987 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1988 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1989 cpuopt=-mtune
1990 else
1991 cpuopt=-mcpu
1993 test $_fast_cmov = "auto" && _fast_cmov=yes
1994 if test "$_runtime_cpudetection" = no ; then
1995 case "$pvendor" in
1996 AuthenticAMD)
1997 proc=k8;;
1998 GenuineIntel)
1999 case "$pfamily" in
2000 6) proc=core2;;
2002 # 64-bit prescotts exist, but as far as GCC is concerned they
2003 # have the same capabilities as a nocona.
2004 proc=nocona
2006 esac
2009 proc=error;;
2010 esac
2011 fi # test "$_runtime_cpudetection" = no
2013 echocheck "GCC & CPU optimization abilities"
2014 cat > $TMPC << EOF
2015 int main(void) { return 0; }
2017 # This is a stripped-down version of the i386 fallback.
2018 if test "$_runtime_cpudetection" = no ; then
2019 cc_check -march=native && proc=native
2020 # --- AMD processors ---
2021 if test "$proc" = "k8"; then
2022 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2024 # This will fail if gcc version < 3.3, which is ok because earlier
2025 # versions don't really support 64-bit on amd64.
2026 # Is this a valid assumption? -Corey
2027 if test "$proc" = "athlon-xp"; then
2028 cc_check -march=$proc $cpuopt=$proc || proc=error
2030 # --- Intel processors ---
2031 if test "$proc" = "core2"; then
2032 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2034 if test "$proc" = "nocona"; then
2035 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2037 if test "$proc" = "pentium4"; then
2038 cc_check -march=$proc $cpuopt=$proc || proc=error
2041 _march="-march=$proc"
2042 _mcpu="$cpuopt=$proc"
2043 if test "$proc" = "error" ; then
2044 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2045 _mcpu=""
2046 _march=""
2048 else # if test "$_runtime_cpudetection" = no
2049 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2050 _march="-march=x86-64"
2051 _mcpu="$cpuopt=generic"
2052 cc_check $_mcpu || _mcpu="x86-64"
2053 cc_check $_mcpu || _mcpu=""
2054 cc_check $_march $_mcpu || _march=""
2057 _optimizing=""
2059 echores "$proc"
2062 sparc|sparc64)
2063 _arch='SPARC'
2064 _target_arch='ARCH_SPARC = yes'
2065 iproc='sparc'
2066 if test "$host_arch" = "sparc64" ; then
2067 _vis='yes'
2068 proc='ultrasparc'
2069 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2070 elif sunos ; then
2071 echocheck "CPU type"
2072 karch=$(uname -m)
2073 case "$(echo $karch)" in
2074 sun4) proc=v7 ;;
2075 sun4c) proc=v7 ;;
2076 sun4d) proc=v8 ;;
2077 sun4m) proc=v8 ;;
2078 sun4u) proc=ultrasparc _vis='yes' ;;
2079 sun4v) proc=v9 ;;
2080 *) proc=v8 ;;
2081 esac
2082 echores "$proc"
2083 else
2084 proc=v8
2086 _mcpu="-mcpu=$proc"
2087 _optimizing="$proc"
2090 arm|armv4l|armv5tel)
2091 _arch='ARM'
2092 _target_arch='ARCH_ARM = yes'
2093 iproc='arm'
2096 avr32)
2097 _arch='AVR32'
2098 _target_arch='ARCH_AVR32 = yes'
2099 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2100 iproc='avr32'
2103 sh|sh4)
2104 _arch='SH4'
2105 _target_arch='ARCH_SH4 = yes'
2106 iproc='sh4'
2109 ppc|ppc64|powerpc|powerpc64)
2110 _arch='PPC'
2111 def_dcbzl='#define HAVE_DCBZL 0'
2112 _target_arch='ARCH_PPC = yes'
2113 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2114 iproc='ppc'
2116 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2117 _arch='PPC PPC64'
2118 _target_subarch='ARCH_PPC64 = yes'
2119 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2121 echocheck "CPU type"
2122 case $system_name in
2123 Linux)
2124 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2125 if test -n "$($_cpuinfo | grep altivec)"; then
2126 test $_altivec = auto && _altivec=yes
2129 Darwin)
2130 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2131 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2132 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2133 test $_altivec = auto && _altivec=yes
2136 NetBSD)
2137 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2138 case $cc_version in
2139 2*|3.0*|3.1*|3.2*|3.3*)
2142 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2143 test $_altivec = auto && _altivec=yes
2146 esac
2148 AIX)
2149 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2151 esac
2152 if test "$_altivec" = yes; then
2153 echores "$proc altivec"
2154 else
2155 _altivec=no
2156 echores "$proc"
2159 echocheck "GCC & CPU optimization abilities"
2161 if test -n "$proc"; then
2162 case "$proc" in
2163 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2164 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2165 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2166 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2167 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2168 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2169 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2170 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2171 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2172 *) ;;
2173 esac
2174 # gcc 3.1(.1) and up supports 7400 and 7450
2175 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2176 case "$proc" in
2177 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2178 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2179 *) ;;
2180 esac
2182 # gcc 3.2 and up supports 970
2183 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2184 case "$proc" in
2185 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2186 def_dcbzl='#define HAVE_DCBZL 1' ;;
2187 *) ;;
2188 esac
2190 # gcc 3.3 and up supports POWER4
2191 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2192 case "$proc" in
2193 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2194 *) ;;
2195 esac
2197 # gcc 3.4 and up supports 440*
2198 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2199 case "$proc" in
2200 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2201 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2202 *) ;;
2203 esac
2205 # gcc 4.0 and up supports POWER5
2206 if test "$_cc_major" -ge "4"; then
2207 case "$proc" in
2208 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2209 *) ;;
2210 esac
2214 if test -n "$_mcpu"; then
2215 _optimizing=$(echo $_mcpu | cut -c 8-)
2216 echores "$_optimizing"
2217 else
2218 echores "none"
2223 alpha*)
2224 _arch='ALPHA'
2225 _target_arch='ARCH_ALPHA = yes'
2226 iproc='alpha'
2228 echocheck "CPU type"
2229 cat > $TMPC << EOF
2230 int main(void) {
2231 unsigned long ver, mask;
2232 __asm__ ("implver %0" : "=r" (ver));
2233 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2234 printf("%ld-%x\n", ver, ~mask);
2235 return 0;
2238 $_cc -o "$TMPEXE" "$TMPC"
2239 case $("$TMPEXE") in
2241 0-0) proc="ev4"; _mvi="0";;
2242 1-0) proc="ev5"; _mvi="0";;
2243 1-1) proc="ev56"; _mvi="0";;
2244 1-101) proc="pca56"; _mvi="1";;
2245 2-303) proc="ev6"; _mvi="1";;
2246 2-307) proc="ev67"; _mvi="1";;
2247 2-1307) proc="ev68"; _mvi="1";;
2248 esac
2249 echores "$proc"
2251 echocheck "GCC & CPU optimization abilities"
2252 if test "$proc" = "ev68" ; then
2253 cc_check -mcpu=$proc || proc=ev67
2255 if test "$proc" = "ev67" ; then
2256 cc_check -mcpu=$proc || proc=ev6
2258 _mcpu="-mcpu=$proc"
2259 echores "$proc"
2261 _optimizing="$proc"
2264 mips)
2265 _arch='SGI_MIPS'
2266 _target_arch='ARCH_SGI_MIPS = yes'
2267 iproc='sgi-mips'
2269 if irix ; then
2270 echocheck "CPU type"
2271 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2272 case "$(echo $proc)" in
2273 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2274 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2275 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2276 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2277 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2278 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2279 esac
2280 # gcc < 3.x does not support -mtune.
2281 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2282 _mcpu=''
2284 echores "$proc"
2289 hppa)
2290 _arch='PA_RISC'
2291 _target_arch='ARCH_PA_RISC = yes'
2292 iproc='PA-RISC'
2295 s390)
2296 _arch='S390'
2297 _target_arch='ARCH_S390 = yes'
2298 iproc='390'
2301 s390x)
2302 _arch='S390X'
2303 _target_arch='ARCH_S390X = yes'
2304 iproc='390x'
2307 vax)
2308 _arch='VAX'
2309 _target_arch='ARCH_VAX = yes'
2310 iproc='vax'
2313 xtensa)
2314 _arch='XTENSA'
2315 _target_arch='ARCH_XTENSA = yes'
2316 iproc='xtensa'
2319 generic)
2320 _arch='GENERIC'
2321 _target_arch='ARCH_GENERIC = yes'
2325 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2326 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2327 die "unsupported architecture $host_arch"
2329 esac # case "$host_arch" in
2331 if test "$_runtime_cpudetection" = yes ; then
2332 if x86 ; then
2333 test "$_cmov" != no && _cmov=yes
2334 x86_32 && _cmov=no
2335 test "$_mmx" != no && _mmx=yes
2336 test "$_3dnow" != no && _3dnow=yes
2337 test "$_3dnowext" != no && _3dnowext=yes
2338 test "$_mmxext" != no && _mmxext=yes
2339 test "$_sse" != no && _sse=yes
2340 test "$_sse2" != no && _sse2=yes
2341 test "$_ssse3" != no && _ssse3=yes
2342 test "$_mtrr" != no && _mtrr=yes
2344 if ppc; then
2345 _altivec=yes
2350 # endian testing
2351 echocheck "byte order"
2352 if test "$_big_endian" = auto ; then
2353 cat > $TMPC <<EOF
2354 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2355 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2356 int main(void) { return (int)ascii_name; }
2358 if cc_check ; then
2359 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2360 _big_endian=yes
2361 else
2362 _big_endian=no
2364 else
2365 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2368 if test "$_big_endian" = yes ; then
2369 _byte_order='big-endian'
2370 def_words_endian='#define WORDS_BIGENDIAN 1'
2371 def_bigendian='#define HAVE_BIGENDIAN 1'
2372 else
2373 _byte_order='little-endian'
2374 def_words_endian='#undef WORDS_BIGENDIAN'
2375 def_bigendian='#define HAVE_BIGENDIAN 0'
2377 echores "$_byte_order"
2380 echocheck "extern symbol prefix"
2381 cat > $TMPC << EOF
2382 int ff_extern;
2384 cc_check -c || die "Symbol mangling check failed."
2385 sym=$($_nm -P -g $TMPEXE)
2386 extern_prefix=${sym%%ff_extern*}
2387 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2388 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2389 echores $extern_prefix
2392 echocheck "assembler support of -pipe option"
2393 cat > $TMPC << EOF
2394 int main(void) { return 0; }
2396 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2399 echocheck "compiler support of named assembler arguments"
2400 _named_asm_args=yes
2401 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2402 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2403 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2404 _named_asm_args=no
2405 def_named_asm_args="#undef NAMED_ASM_ARGS"
2407 echores $_named_asm_args
2410 if darwin && test "$cc_vendor" = "gnu" ; then
2411 echocheck "GCC support of -mstackrealign"
2412 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2413 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2414 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2415 # wrong code with this flag, but this can be worked around by adding
2416 # -fno-unit-at-a-time as described in the blog post at
2417 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2418 cat > $TMPC << EOF
2419 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2420 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2422 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2423 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2424 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2425 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2426 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2429 # Checking for CFLAGS
2430 _install_strip="-s"
2431 if test "$_profile" != "" || test "$_debug" != "" ; then
2432 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2433 _install_strip=
2434 elif test -z "$CFLAGS" ; then
2435 if test "$cc_vendor" = "intel" ; then
2436 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2437 elif test "$cc_vendor" != "gnu" ; then
2438 CFLAGS="-O2 $_march $_mcpu $_pipe"
2439 else
2440 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2441 extra_ldflags="$extra_ldflags -ffast-math"
2443 else
2444 _warn_CFLAGS=yes
2447 cat > $TMPC << EOF
2448 int main(void) { return 0; }
2450 if test "$cc_vendor" = "gnu" ; then
2451 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2452 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2453 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2454 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2455 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2456 else
2457 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2460 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2463 if test -n "$LDFLAGS" ; then
2464 extra_ldflags="$extra_ldflags $LDFLAGS"
2465 _warn_CFLAGS=yes
2466 elif test "$cc_vendor" = "intel" ; then
2467 extra_ldflags="$extra_ldflags -i-static"
2469 if test -n "$CPPFLAGS" ; then
2470 extra_cflags="$extra_cflags $CPPFLAGS"
2471 _warn_CFLAGS=yes
2476 if x86_32 ; then
2477 # Checking assembler (_as) compatibility...
2478 # Added workaround for older as that reads from stdin by default - atmos
2479 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2480 echocheck "assembler ($_as $as_version)"
2482 _pref_as_version='2.9.1'
2483 echo 'nop' > $TMPS
2484 if test "$_mmx" = yes ; then
2485 echo 'emms' >> $TMPS
2487 if test "$_3dnow" = yes ; then
2488 _pref_as_version='2.10.1'
2489 echo 'femms' >> $TMPS
2491 if test "$_3dnowext" = yes ; then
2492 _pref_as_version='2.10.1'
2493 echo 'pswapd %mm0, %mm0' >> $TMPS
2495 if test "$_mmxext" = yes ; then
2496 _pref_as_version='2.10.1'
2497 echo 'movntq %mm0, (%eax)' >> $TMPS
2499 if test "$_sse" = yes ; then
2500 _pref_as_version='2.10.1'
2501 echo 'xorps %xmm0, %xmm0' >> $TMPS
2503 #if test "$_sse2" = yes ; then
2504 # _pref_as_version='2.11'
2505 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2507 if test "$_cmov" = yes ; then
2508 _pref_as_version='2.10.1'
2509 echo 'cmovb %eax, %ebx' >> $TMPS
2511 if test "$_ssse3" = yes ; then
2512 _pref_as_version='2.16.92'
2513 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2515 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2517 if test "$as_verc_fail" != yes ; then
2518 echores "ok"
2519 else
2520 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2521 echores "failed"
2522 die "obsolete binutils version"
2525 fi #if x86_32
2527 echocheck ".align is a power of two"
2528 if test "$_asmalign_pot" = auto ; then
2529 _asmalign_pot=no
2530 cat > $TMPC << EOF
2531 int main(void) { __asm__ (".align 3"); return 0; }
2533 cc_check && _asmalign_pot=yes
2535 if test "$_asmalign_pot" = "yes" ; then
2536 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2537 else
2538 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2540 echores $_asmalign_pot
2542 if x86 ; then
2543 echocheck "10 assembler operands"
2544 ten_operands=no
2545 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2546 cat > $TMPC << EOF
2547 int main(void) {
2548 int x=0;
2549 __asm__ volatile(
2551 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2553 return 0;
2556 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2557 echores $ten_operands
2559 echocheck "ebx availability"
2560 ebx_available=no
2561 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2562 cat > $TMPC << EOF
2563 int main(void) {
2564 int x;
2565 __asm__ volatile(
2566 "xor %0, %0"
2567 :"=b"(x)
2568 // just adding ebx to clobber list seems unreliable with some
2569 // compilers, e.g. Haiku's gcc 2.95
2571 // and the above check does not work for OSX 64 bit...
2572 __asm__ volatile("":::"%ebx");
2573 return 0;
2576 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2577 echores $ebx_available
2579 echocheck "PIC"
2580 pic=no
2581 cat > $TMPC << EOF
2582 int main(void) {
2583 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2584 #error PIC not enabled
2585 #endif
2586 return 0;
2589 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2590 echores $pic
2592 echocheck "yasm"
2593 if test -z "$YASMFLAGS" ; then
2594 if darwin ; then
2595 x86_64 && objformat="macho64" || objformat="macho"
2596 elif win32 ; then
2597 objformat="win32"
2598 else
2599 objformat="elf"
2601 # currently tested for Linux x86, x86_64
2602 YASMFLAGS="-f $objformat"
2603 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2604 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2605 case "$objformat" in
2606 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2607 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2608 esac
2609 else
2610 _warn_CFLAGS=yes
2613 echo "pabsw xmm0, xmm0" > $TMPS
2614 yasm_check || _yasm=""
2615 if test $_yasm ; then
2616 test "$_mmx" = "yes" && fft_mmx="yes"
2617 def_yasm='#define HAVE_YASM 1'
2618 _have_yasm="yes"
2619 echores "$_yasm"
2620 else
2621 def_yasm='#define HAVE_YASM 0'
2622 fft_mmx="no"
2623 _have_yasm="no"
2624 echores "no"
2627 echocheck "bswap"
2628 def_bswap='#define HAVE_BSWAP 0'
2629 echo 'bswap %eax' > $TMPS
2630 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2631 echores "$bswap"
2632 fi #if x86
2635 #FIXME: This should happen before the check for CFLAGS..
2636 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2637 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2639 # check if AltiVec is supported by the compiler, and how to enable it
2640 echocheck "GCC AltiVec flags"
2641 cat > $TMPC << EOF
2642 int main(void) { return 0; }
2644 if $(cc_check -maltivec -mabi=altivec) ; then
2645 _altivec_gcc_flags="-maltivec -mabi=altivec"
2646 # check if <altivec.h> should be included
2647 cat > $TMPC << EOF
2648 #include <altivec.h>
2649 int main(void) { return 0; }
2651 if $(cc_check $_altivec_gcc_flags) ; then
2652 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2653 inc_altivec_h='#include <altivec.h>'
2654 else
2655 cat > $TMPC << EOF
2656 int main(void) { return 0; }
2658 if $(cc_check -faltivec) ; then
2659 _altivec_gcc_flags="-faltivec"
2660 else
2661 _altivec=no
2662 _altivec_gcc_flags="none, AltiVec disabled"
2666 echores "$_altivec_gcc_flags"
2668 # check if the compiler supports braces for vector declarations
2669 cat > $TMPC << EOF
2670 $inc_altivec_h
2671 int main(void) { (vector int) {1}; return 0; }
2673 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2675 # Disable runtime cpudetection if we cannot generate AltiVec code or
2676 # AltiVec is disabled by the user.
2677 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2678 && _runtime_cpudetection=no
2680 # Show that we are optimizing for AltiVec (if enabled and supported).
2681 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2682 && _optimizing="$_optimizing altivec"
2684 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2685 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2688 if ppc ; then
2689 def_xform_asm='#define HAVE_XFORM_ASM 0'
2690 xform_asm=no
2691 echocheck "XFORM ASM support"
2692 cat > $TMPC << EOF
2693 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2695 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2696 echores "$xform_asm"
2699 if arm ; then
2700 echocheck "ARM pld instruction"
2701 cat > $TMPC << EOF
2702 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2704 pld=no
2705 cc_check && pld=yes
2706 echores "$pld"
2708 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2709 if test $_armv5te = "auto" ; then
2710 cat > $TMPC << EOF
2711 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2713 _armv5te=no
2714 cc_check && _armv5te=yes
2716 echores "$_armv5te"
2718 echocheck "ARMv6 (SIMD instructions)"
2719 if test $_armv6 = "auto" ; then
2720 cat > $TMPC << EOF
2721 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2723 _armv6=no
2724 cc_check && _armv6=yes
2726 echores "$_armv6"
2728 echocheck "ARMv6t2 (SIMD instructions)"
2729 if test $_armv6t2 = "auto" ; then
2730 cat > $TMPC << EOF
2731 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2733 _armv6t2=no
2734 cc_check && _armv6t2=yes
2736 echores "$_armv6"
2738 echocheck "ARM VFP"
2739 if test $_armvfp = "auto" ; then
2740 cat > $TMPC << EOF
2741 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2743 _armvfp=no
2744 cc_check && _armvfp=yes
2746 echores "$_armvfp"
2748 echocheck "ARM NEON"
2749 if test $neon = "auto" ; then
2750 cat > $TMPC << EOF
2751 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2753 neon=no
2754 cc_check && neon=yes
2756 echores "$neon"
2758 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2759 if test $_iwmmxt = "auto" ; then
2760 cat > $TMPC << EOF
2761 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2763 _iwmmxt=no
2764 cc_check && _iwmmxt=yes
2766 echores "$_iwmmxt"
2769 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2770 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2771 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2772 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2773 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2774 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2775 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2776 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2777 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2778 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2779 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2780 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2781 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2782 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2783 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2784 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2785 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2786 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2787 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2788 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2790 # Checking kernel version...
2791 if x86_32 && linux ; then
2792 _k_verc_problem=no
2793 kernel_version=$(uname -r 2>&1)
2794 echocheck "$system_name kernel version"
2795 case "$kernel_version" in
2796 '') kernel_version="?.??"; _k_verc_fail=yes;;
2797 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2798 _k_verc_problem=yes;;
2799 esac
2800 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2801 _k_verc_fail=yes
2803 if test "$_k_verc_fail" ; then
2804 echores "$kernel_version, fail"
2805 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2806 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2807 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2808 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2809 echo "2.2.x you must upgrade it to get SSE support!"
2810 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2811 else
2812 echores "$kernel_version, ok"
2816 ######################
2817 # MAIN TESTS GO HERE #
2818 ######################
2821 echocheck "-lposix"
2822 cat > $TMPC <<EOF
2823 int main(void) { return 0; }
2825 if cc_check -lposix ; then
2826 extra_ldflags="$extra_ldflags -lposix"
2827 echores "yes"
2828 else
2829 echores "no"
2832 echocheck "-lm"
2833 cat > $TMPC <<EOF
2834 int main(void) { return 0; }
2836 if cc_check -lm ; then
2837 _ld_lm="-lm"
2838 echores "yes"
2839 else
2840 _ld_lm=""
2841 echores "no"
2845 echocheck "langinfo"
2846 if test "$_langinfo" = auto ; then
2847 cat > $TMPC <<EOF
2848 #include <langinfo.h>
2849 int main(void) { nl_langinfo(CODESET); return 0; }
2851 _langinfo=no
2852 cc_check && _langinfo=yes
2854 if test "$_langinfo" = yes ; then
2855 def_langinfo='#define HAVE_LANGINFO 1'
2856 else
2857 def_langinfo='#undef HAVE_LANGINFO'
2859 echores "$_langinfo"
2862 echocheck "language"
2863 # Set preferred languages, "all" uses English as main language.
2864 test -z "$language" && language=$LINGUAS
2865 test -z "$language_doc" && language_doc=$language
2866 test -z "$language_man" && language_man=$language
2867 test -z "$language_msg" && language_msg=$language
2868 language_doc=$(echo $language_doc | tr , " ")
2869 language_man=$(echo $language_man | tr , " ")
2870 language_msg=$(echo $language_msg | tr , " ")
2872 test "$language_doc" = "all" && language_doc=$doc_lang_all
2873 test "$language_man" = "all" && language_man=$man_lang_all
2874 test "$language_msg" = "all" && language_msg=en
2876 # Prune non-existing translations from language lists.
2877 # Set message translation to the first available language.
2878 # Fall back on English.
2879 for lang in $language_doc ; do
2880 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2881 done
2882 language_doc=$tmp_language_doc
2883 test -z "$language_doc" && language_doc=en
2885 for lang in $language_man ; do
2886 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2887 done
2888 language_man=$tmp_language_man
2889 test -z "$language_man" && language_man=en
2891 for lang in $language_msg ; do
2892 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2893 done
2894 language_msg=$tmp_language_msg
2895 test -z "$language_msg" && language_msg=en
2896 _mp_help="help/help_mp-${language_msg}.h"
2897 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2900 echocheck "enable sighandler"
2901 if test "$_sighandler" = yes ; then
2902 def_sighandler='#define CONFIG_SIGHANDLER 1'
2903 else
2904 def_sighandler='#undef CONFIG_SIGHANDLER'
2906 echores "$_sighandler"
2908 echocheck "runtime cpudetection"
2909 if test "$_runtime_cpudetection" = yes ; then
2910 _optimizing="Runtime CPU-Detection enabled"
2911 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2912 else
2913 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2915 echores "$_runtime_cpudetection"
2918 echocheck "restrict keyword"
2919 for restrict_keyword in restrict __restrict __restrict__ ; do
2920 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2921 if cc_check; then
2922 def_restrict_keyword=$restrict_keyword
2923 break;
2925 done
2926 if [ -n "$def_restrict_keyword" ]; then
2927 echores "$def_restrict_keyword"
2928 else
2929 echores "none"
2931 # Avoid infinite recursion loop ("#define restrict restrict")
2932 if [ "$def_restrict_keyword" != "restrict" ]; then
2933 def_restrict_keyword="#define restrict $def_restrict_keyword"
2934 else
2935 def_restrict_keyword=""
2939 echocheck "__builtin_expect"
2940 # GCC branch prediction hint
2941 cat > $TMPC << EOF
2942 int foo(int a) {
2943 a = __builtin_expect(a, 10);
2944 return a == 10 ? 0 : 1;
2946 int main(void) { return foo(10) && foo(0); }
2948 _builtin_expect=no
2949 cc_check && _builtin_expect=yes
2950 if test "$_builtin_expect" = yes ; then
2951 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2952 else
2953 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2955 echores "$_builtin_expect"
2958 echocheck "kstat"
2959 cat > $TMPC << EOF
2960 #include <kstat.h>
2961 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2963 _kstat=no
2964 cc_check -lkstat && _kstat=yes
2965 if test "$_kstat" = yes ; then
2966 def_kstat="#define HAVE_LIBKSTAT 1"
2967 extra_ldflags="$extra_ldflags -lkstat"
2968 else
2969 def_kstat="#undef HAVE_LIBKSTAT"
2971 echores "$_kstat"
2974 echocheck "posix4"
2975 # required for nanosleep on some systems
2976 cat > $TMPC << EOF
2977 #include <time.h>
2978 int main(void) { (void) nanosleep(0, 0); return 0; }
2980 _posix4=no
2981 cc_check -lposix4 && _posix4=yes
2982 if test "$_posix4" = yes ; then
2983 extra_ldflags="$extra_ldflags -lposix4"
2985 echores "$_posix4"
2987 for func in llrint log2 lrint lrintf round roundf truncf; do
2988 echocheck $func
2989 cat > $TMPC << EOF
2990 #include <math.h>
2991 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2993 eval _$func=no
2994 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2995 if eval test "x\$_$func" = "xyes"; then
2996 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2997 echores yes
2998 else
2999 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3000 echores no
3002 done
3005 echocheck "mkstemp"
3006 cat > $TMPC << EOF
3007 #include <stdlib.h>
3008 int main(void) { char a; mkstemp(&a); return 0; }
3010 _mkstemp=no
3011 cc_check && _mkstemp=yes
3012 if test "$_mkstemp" = yes ; then
3013 def_mkstemp='#define HAVE_MKSTEMP 1'
3014 else
3015 def_mkstemp='#undef HAVE_MKSTEMP'
3017 echores "$_mkstemp"
3020 echocheck "nanosleep"
3021 # also check for nanosleep
3022 cat > $TMPC << EOF
3023 #include <time.h>
3024 int main(void) { (void) nanosleep(0, 0); return 0; }
3026 _nanosleep=no
3027 cc_check && _nanosleep=yes
3028 if test "$_nanosleep" = yes ; then
3029 def_nanosleep='#define HAVE_NANOSLEEP 1'
3030 else
3031 def_nanosleep='#undef HAVE_NANOSLEEP'
3033 echores "$_nanosleep"
3036 echocheck "socklib"
3037 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3038 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3039 cat > $TMPC << EOF
3040 #include <netdb.h>
3041 #include <sys/socket.h>
3042 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3044 _socklib=no
3045 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3046 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3047 done
3048 if test $_winsock2_h = auto && ! cygwin ; then
3049 _winsock2_h=no
3050 cat > $TMPC << EOF
3051 #include <winsock2.h>
3052 int main(void) { (void) gethostbyname(0); return 0; }
3054 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3056 test "$_ld_sock" && _res_comment="using $_ld_sock"
3057 echores "$_socklib"
3060 if test $_winsock2_h = yes ; then
3061 _ld_sock="-lws2_32"
3062 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3063 else
3064 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3068 echocheck "arpa/inet.h"
3069 arpa_inet_h=no
3070 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3071 cat > $TMPC << EOF
3072 #include <arpa/inet.h>
3073 int main(void) { return 0; }
3075 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3076 echores "$arpa_inet_h"
3079 echocheck "inet_pton()"
3080 def_inet_pton='#define HAVE_INET_PTON 0'
3081 inet_pton=no
3082 cat > $TMPC << EOF
3083 #include <sys/types.h>
3084 #include <sys/socket.h>
3085 #include <arpa/inet.h>
3086 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3088 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3089 cc_check $_ld_tmp && inet_pton=yes && break
3090 done
3091 if test $inet_pton = yes ; then
3092 test $_ld_tmp && _res_comment="using $_ld_tmp"
3093 def_inet_pton='#define HAVE_INET_PTON 1'
3095 echores "$inet_pton"
3098 echocheck "inet_aton()"
3099 def_inet_aton='#define HAVE_INET_ATON 0'
3100 inet_aton=no
3101 cat > $TMPC << EOF
3102 #include <sys/types.h>
3103 #include <sys/socket.h>
3104 #include <arpa/inet.h>
3105 int main(void) { (void) inet_aton(0, 0); return 0; }
3107 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3108 cc_check $_ld_tmp && inet_aton=yes && break
3109 done
3110 if test $inet_aton = yes ; then
3111 test $_ld_tmp && _res_comment="using $_ld_tmp"
3112 def_inet_aton='#define HAVE_INET_ATON 1'
3114 echores "$inet_aton"
3117 echocheck "socklen_t"
3118 _socklen_t=no
3119 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3120 cat > $TMPC << EOF
3121 #include <$header>
3122 int main(void) { socklen_t v = 0; return v; }
3124 cc_check && _socklen_t=yes && break
3125 done
3126 if test "$_socklen_t" = yes ; then
3127 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3128 else
3129 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3131 echores "$_socklen_t"
3134 echocheck "closesocket()"
3135 _closesocket=no
3136 cat > $TMPC << EOF
3137 #include <winsock2.h>
3138 int main(void) { closesocket(~0); return 0; }
3140 cc_check $_ld_sock && _closesocket=yes
3141 if test "$_closesocket" = yes ; then
3142 def_closesocket='#define HAVE_CLOSESOCKET 1'
3143 else
3144 def_closesocket='#define HAVE_CLOSESOCKET 0'
3146 echores "$_closesocket"
3149 echocheck "network"
3150 test $_winsock2_h = no && test $inet_pton = no &&
3151 test $inet_aton = no && _network=no
3152 if test "$_network" = yes ; then
3153 def_network='#define CONFIG_NETWORK 1'
3154 extra_ldflags="$extra_ldflags $_ld_sock"
3155 _inputmodules="network $_inputmodules"
3156 else
3157 _noinputmodules="network $_noinputmodules"
3158 def_network='#undef CONFIG_NETWORK'
3159 _ftp=no
3161 echores "$_network"
3164 echocheck "inet6"
3165 if test "$_inet6" = auto ; then
3166 cat > $TMPC << EOF
3167 #include <sys/types.h>
3168 #if !defined(_WIN32) || defined(__CYGWIN__)
3169 #include <sys/socket.h>
3170 #include <netinet/in.h>
3171 #else
3172 #include <ws2tcpip.h>
3173 #endif
3174 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3176 _inet6=no
3177 if cc_check $_ld_sock ; then
3178 _inet6=yes
3181 if test "$_inet6" = yes ; then
3182 def_inet6='#define HAVE_AF_INET6 1'
3183 else
3184 def_inet6='#undef HAVE_AF_INET6'
3186 echores "$_inet6"
3189 echocheck "gethostbyname2"
3190 if test "$_gethostbyname2" = auto ; then
3191 cat > $TMPC << EOF
3192 #include <sys/types.h>
3193 #include <sys/socket.h>
3194 #include <netdb.h>
3195 int main(void) { gethostbyname2("", AF_INET); return 0; }
3197 _gethostbyname2=no
3198 if cc_check ; then
3199 _gethostbyname2=yes
3202 if test "$_gethostbyname2" = yes ; then
3203 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3204 else
3205 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3207 echores "$_gethostbyname2"
3210 echocheck "inttypes.h (required)"
3211 cat > $TMPC << EOF
3212 #include <inttypes.h>
3213 int main(void) { return 0; }
3215 _inttypes=no
3216 cc_check && _inttypes=yes
3217 echores "$_inttypes"
3219 if test "$_inttypes" = no ; then
3220 echocheck "bitypes.h (inttypes.h predecessor)"
3221 cat > $TMPC << EOF
3222 #include <sys/bitypes.h>
3223 int main(void) { return 0; }
3225 cc_check && _inttypes=yes
3226 if test "$_inttypes" = yes ; then
3227 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."
3228 else
3229 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3234 echocheck "int_fastXY_t in inttypes.h"
3235 cat > $TMPC << EOF
3236 #include <inttypes.h>
3237 int main(void) {
3238 volatile int_fast16_t v= 0;
3239 return v; }
3241 _fast_inttypes=no
3242 cc_check && _fast_inttypes=yes
3243 if test "$_fast_inttypes" = no ; then
3244 def_fast_inttypes='
3245 typedef signed char int_fast8_t;
3246 typedef signed int int_fast16_t;
3247 typedef signed int int_fast32_t;
3248 typedef signed long long int_fast64_t;
3249 typedef unsigned char uint_fast8_t;
3250 typedef unsigned int uint_fast16_t;
3251 typedef unsigned int uint_fast32_t;
3252 typedef unsigned long long uint_fast64_t;'
3254 echores "$_fast_inttypes"
3257 echocheck "malloc.h"
3258 cat > $TMPC << EOF
3259 #include <malloc.h>
3260 int main(void) { (void) malloc(0); return 0; }
3262 _malloc=no
3263 cc_check && _malloc=yes
3264 if test "$_malloc" = yes ; then
3265 def_malloc_h='#define HAVE_MALLOC_H 1'
3266 else
3267 def_malloc_h='#define HAVE_MALLOC_H 0'
3269 # malloc.h emits a warning in FreeBSD and OpenBSD
3270 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3271 echores "$_malloc"
3274 echocheck "memalign()"
3275 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3276 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3277 cat > $TMPC << EOF
3278 #include <malloc.h>
3279 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3281 _memalign=no
3282 cc_check && _memalign=yes
3283 if test "$_memalign" = yes ; then
3284 def_memalign='#define HAVE_MEMALIGN 1'
3285 else
3286 def_memalign='#define HAVE_MEMALIGN 0'
3287 def_map_memalign='#define memalign(a,b) malloc(b)'
3288 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3290 echores "$_memalign"
3293 echocheck "posix_memalign()"
3294 posix_memalign=no
3295 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3296 cat > $TMPC << EOF
3297 #define _XOPEN_SOURCE 600
3298 #include <stdlib.h>
3299 int main(void) { posix_memalign(NULL, 0, 0); }
3301 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3302 echores "$posix_memalign"
3305 echocheck "alloca.h"
3306 cat > $TMPC << EOF
3307 #include <alloca.h>
3308 int main(void) { (void) alloca(0); return 0; }
3310 _alloca=no
3311 cc_check && _alloca=yes
3312 if cc_check ; then
3313 def_alloca_h='#define HAVE_ALLOCA_H 1'
3314 else
3315 def_alloca_h='#undef HAVE_ALLOCA_H'
3317 echores "$_alloca"
3320 echocheck "fastmemcpy"
3321 if test "$_fastmemcpy" = yes ; then
3322 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3323 else
3324 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3326 echores "$_fastmemcpy"
3329 echocheck "mman.h"
3330 cat > $TMPC << EOF
3331 #include <sys/types.h>
3332 #include <sys/mman.h>
3333 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3335 _mman=no
3336 cc_check && _mman=yes
3337 if test "$_mman" = yes ; then
3338 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3339 else
3340 def_mman_h='#undef HAVE_SYS_MMAN_H'
3341 os2 && _need_mmap=yes
3343 echores "$_mman"
3345 cat > $TMPC << EOF
3346 #include <sys/types.h>
3347 #include <sys/mman.h>
3348 int main(void) { void *p = MAP_FAILED; return 0; }
3350 _mman_has_map_failed=no
3351 cc_check && _mman_has_map_failed=yes
3352 if test "$_mman_has_map_failed" = yes ; then
3353 def_mman_has_map_failed=''
3354 else
3355 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3358 echocheck "dynamic loader"
3359 cat > $TMPC << EOF
3360 #include <stddef.h>
3361 #include <dlfcn.h>
3362 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3364 _dl=no
3365 for _ld_tmp in "" "-ldl" ; do
3366 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3367 done
3368 if test "$_dl" = yes ; then
3369 def_dl='#define HAVE_LIBDL 1'
3370 else
3371 def_dl='#undef HAVE_LIBDL'
3373 echores "$_dl"
3376 echocheck "dynamic a/v plugins support"
3377 if test "$_dl" = no ; then
3378 _dynamic_plugins=no
3380 if test "$_dynamic_plugins" = yes ; then
3381 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3382 else
3383 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3385 echores "$_dynamic_plugins"
3388 def_threads='#define HAVE_THREADS 0'
3390 echocheck "pthread"
3391 if linux ; then
3392 THREAD_CFLAGS=-D_REENTRANT
3393 elif freebsd || netbsd || openbsd || bsdos ; then
3394 THREAD_CFLAGS=-D_THREAD_SAFE
3396 if test "$_pthreads" = auto ; then
3397 cat > $TMPC << EOF
3398 #include <pthread.h>
3399 void* func(void *arg) { return arg; }
3400 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3402 _pthreads=no
3403 if ! hpux ; then
3404 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3405 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3406 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3407 done
3410 if test "$_pthreads" = yes ; then
3411 test $_ld_pthread && _res_comment="using $_ld_pthread"
3412 def_pthreads='#define HAVE_PTHREADS 1'
3413 def_threads='#define HAVE_THREADS 1'
3414 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3415 else
3416 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3417 def_pthreads='#undef HAVE_PTHREADS'
3418 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3419 mingw32 || _win32dll=no
3421 echores "$_pthreads"
3423 if cygwin ; then
3424 if test "$_pthreads" = yes ; then
3425 def_pthread_cache="#define PTHREAD_CACHE 1"
3426 else
3427 _stream_cache=no
3428 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3432 echocheck "w32threads"
3433 if test "$_pthreads" = yes ; then
3434 _res_comment="using pthread instead"
3435 _w32threads=no
3437 if test "$_w32threads" = auto ; then
3438 _w32threads=no
3439 mingw32 && _w32threads=yes
3441 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3442 echores "$_w32threads"
3444 echocheck "rpath"
3445 netbsd &&_rpath=yes
3446 if test "$_rpath" = yes ; then
3447 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3448 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3449 done
3450 extra_ldflags=$tmp
3452 echores "$_rpath"
3454 echocheck "iconv"
3455 if test "$_iconv" = auto ; then
3456 cat > $TMPC << EOF
3457 #include <stdio.h>
3458 #include <unistd.h>
3459 #include <iconv.h>
3460 #define INBUFSIZE 1024
3461 #define OUTBUFSIZE 4096
3463 char inbuffer[INBUFSIZE];
3464 char outbuffer[OUTBUFSIZE];
3466 int main(void) {
3467 size_t numread;
3468 iconv_t icdsc;
3469 char *tocode="UTF-8";
3470 char *fromcode="cp1250";
3471 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3472 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3473 char *iptr=inbuffer;
3474 char *optr=outbuffer;
3475 size_t inleft=numread;
3476 size_t outleft=OUTBUFSIZE;
3477 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3478 != (size_t)(-1)) {
3479 write(1, outbuffer, OUTBUFSIZE - outleft);
3482 if (iconv_close(icdsc) == -1)
3485 return 0;
3488 _iconv=no
3489 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3490 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3491 _iconv=yes && break
3492 done
3494 if test "$_iconv" = yes ; then
3495 def_iconv='#define CONFIG_ICONV 1'
3496 else
3497 def_iconv='#undef CONFIG_ICONV'
3499 echores "$_iconv"
3502 echocheck "soundcard.h"
3503 _soundcard_h=no
3504 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3505 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3506 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3507 cat > $TMPC << EOF
3508 #include <$_soundcard_header>
3509 int main(void) { return 0; }
3511 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3512 done
3514 if test "$_soundcard_h" = yes ; then
3515 if test $_soundcard_header = "sys/soundcard.h"; then
3516 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3517 else
3518 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3521 echores "$_soundcard_h"
3524 echocheck "sys/dvdio.h"
3525 cat > $TMPC << EOF
3526 #include <unistd.h>
3527 #include <sys/dvdio.h>
3528 int main(void) { return 0; }
3530 _dvdio=no
3531 cc_check && _dvdio=yes
3532 if test "$_dvdio" = yes ; then
3533 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3534 else
3535 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3537 echores "$_dvdio"
3540 echocheck "sys/cdio.h"
3541 cat > $TMPC << EOF
3542 #include <unistd.h>
3543 #include <sys/cdio.h>
3544 int main(void) { return 0; }
3546 _cdio=no
3547 cc_check && _cdio=yes
3548 if test "$_cdio" = yes ; then
3549 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3550 else
3551 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3553 echores "$_cdio"
3556 echocheck "linux/cdrom.h"
3557 cat > $TMPC << EOF
3558 #include <sys/types.h>
3559 #include <linux/cdrom.h>
3560 int main(void) { return 0; }
3562 _cdrom=no
3563 cc_check && _cdrom=yes
3564 if test "$_cdrom" = yes ; then
3565 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3566 else
3567 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3569 echores "$_cdrom"
3572 echocheck "dvd.h"
3573 cat > $TMPC << EOF
3574 #include <dvd.h>
3575 int main(void) { return 0; }
3577 _dvd=no
3578 cc_check && _dvd=yes
3579 if test "$_dvd" = yes ; then
3580 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3581 else
3582 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3584 echores "$_dvd"
3587 if bsdos; then
3588 echocheck "BSDI dvd.h"
3589 cat > $TMPC << EOF
3590 #include <dvd.h>
3591 int main(void) { return 0; }
3593 _bsdi_dvd=no
3594 cc_check && _bsdi_dvd=yes
3595 if test "$_bsdi_dvd" = yes ; then
3596 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3597 else
3598 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3600 echores "$_bsdi_dvd"
3601 fi #if bsdos
3604 if hpux; then
3605 # also used by AIX, but AIX does not support VCD and/or libdvdread
3606 echocheck "HP-UX SCSI header"
3607 cat > $TMPC << EOF
3608 #include <sys/scsi.h>
3609 int main(void) { return 0; }
3611 _hpux_scsi_h=no
3612 cc_check && _hpux_scsi_h=yes
3613 if test "$_hpux_scsi_h" = yes ; then
3614 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3615 else
3616 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3618 echores "$_hpux_scsi_h"
3619 fi #if hpux
3622 if sunos; then
3623 echocheck "userspace SCSI headers (Solaris)"
3624 cat > $TMPC << EOF
3625 #include <unistd.h>
3626 #include <stropts.h>
3627 #include <sys/scsi/scsi_types.h>
3628 #include <sys/scsi/impl/uscsi.h>
3629 int main(void) { return 0; }
3631 _sol_scsi_h=no
3632 cc_check && _sol_scsi_h=yes
3633 if test "$_sol_scsi_h" = yes ; then
3634 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3635 else
3636 def_sol_scsi_h='#undef SOLARIS_USCSI'
3638 echores "$_sol_scsi_h"
3639 fi #if sunos
3642 echocheck "termcap"
3643 if test "$_termcap" = auto ; then
3644 cat > $TMPC <<EOF
3645 #include <stddef.h>
3646 #include <term.h>
3647 int main(void) { tgetent(NULL, NULL); return 0; }
3649 _termcap=no
3650 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3651 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3652 && _termcap=yes && break
3653 done
3655 if test "$_termcap" = yes ; then
3656 def_termcap='#define HAVE_TERMCAP 1'
3657 test $_ld_tmp && _res_comment="using $_ld_tmp"
3658 else
3659 def_termcap='#undef HAVE_TERMCAP'
3661 echores "$_termcap"
3664 echocheck "termios"
3665 def_termios='#undef HAVE_TERMIOS'
3666 def_termios_h='#undef HAVE_TERMIOS_H'
3667 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3668 if test "$_termios" = auto ; then
3669 _termios=no
3670 for _termios_header in "sys/termios.h" "termios.h"; do
3671 cat > $TMPC <<EOF
3672 #include <$_termios_header>
3673 int main(void) { return 0; }
3675 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3676 done
3679 if test "$_termios" = yes ; then
3680 def_termios='#define HAVE_TERMIOS 1'
3681 if test "$_termios_header" = "termios.h" ; then
3682 def_termios_h='#define HAVE_TERMIOS_H 1'
3683 else
3684 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3687 echores "$_termios"
3690 echocheck "shm"
3691 if test "$_shm" = auto ; then
3692 cat > $TMPC << EOF
3693 #include <sys/types.h>
3694 #include <sys/shm.h>
3695 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3697 _shm=no
3698 cc_check && _shm=yes
3700 if test "$_shm" = yes ; then
3701 def_shm='#define HAVE_SHM 1'
3702 else
3703 def_shm='#undef HAVE_SHM'
3705 echores "$_shm"
3708 echocheck "strsep()"
3709 cat > $TMPC << EOF
3710 #include <string.h>
3711 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3713 _strsep=no
3714 cc_check && _strsep=yes
3715 if test "$_strsep" = yes ; then
3716 def_strsep='#define HAVE_STRSEP 1'
3717 _need_strsep=no
3718 else
3719 def_strsep='#undef HAVE_STRSEP'
3720 _need_strsep=yes
3722 echores "$_strsep"
3725 echocheck "vsscanf()"
3726 cat > $TMPC << EOF
3727 #define _ISOC99_SOURCE
3728 #include <stdarg.h>
3729 #include <stdio.h>
3730 int main(void) { vsscanf(0, 0, 0); return 0; }
3732 _vsscanf=no
3733 cc_check && _vsscanf=yes
3734 if test "$_vsscanf" = yes ; then
3735 def_vsscanf='#define HAVE_VSSCANF 1'
3736 _need_vsscanf=no
3737 else
3738 def_vsscanf='#undef HAVE_VSSCANF'
3739 _need_vsscanf=yes
3741 echores "$_vsscanf"
3744 echocheck "swab()"
3745 cat > $TMPC << EOF
3746 #define _XOPEN_SOURCE 600
3747 #include <unistd.h>
3748 int main(void) { swab(0, 0, 0); return 0; }
3750 _swab=no
3751 cc_check && _swab=yes
3752 if test "$_swab" = yes ; then
3753 def_swab='#define HAVE_SWAB 1'
3754 _need_swab=no
3755 else
3756 def_swab='#undef HAVE_SWAB'
3757 _need_swab=yes
3759 echores "$_swab"
3761 echocheck "POSIX select()"
3762 cat > $TMPC << EOF
3763 #include <stdio.h>
3764 #include <stdlib.h>
3765 #include <sys/types.h>
3766 #include <string.h>
3767 #include <sys/time.h>
3768 #include <unistd.h>
3769 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3771 _posix_select=no
3772 def_posix_select='#undef HAVE_POSIX_SELECT'
3773 #select() of kLIBC (OS/2) supports socket only
3774 ! os2 && cc_check && _posix_select=yes \
3775 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3776 echores "$_posix_select"
3779 echocheck "audio select()"
3780 if test "$_select" = no ; then
3781 def_select='#undef HAVE_AUDIO_SELECT'
3782 elif test "$_select" = yes ; then
3783 def_select='#define HAVE_AUDIO_SELECT 1'
3785 echores "$_select"
3788 echocheck "gettimeofday()"
3789 cat > $TMPC << EOF
3790 #include <stdio.h>
3791 #include <sys/time.h>
3792 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3794 _gettimeofday=no
3795 cc_check && _gettimeofday=yes
3796 if test "$_gettimeofday" = yes ; then
3797 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3798 _need_gettimeofday=no
3799 else
3800 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3801 _need_gettimeofday=yes
3803 echores "$_gettimeofday"
3806 echocheck "glob()"
3807 cat > $TMPC << EOF
3808 #include <stdio.h>
3809 #include <glob.h>
3810 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3812 _glob=no
3813 cc_check && _glob=yes
3814 if test "$_glob" = yes ; then
3815 def_glob='#define HAVE_GLOB 1'
3816 _need_glob=no
3817 else
3818 def_glob='#undef HAVE_GLOB'
3819 _need_glob=yes
3821 echores "$_glob"
3824 echocheck "setenv()"
3825 cat > $TMPC << EOF
3826 #include <stdlib.h>
3827 int main(void) { setenv("","",0); return 0; }
3829 _setenv=no
3830 cc_check && _setenv=yes
3831 if test "$_setenv" = yes ; then
3832 def_setenv='#define HAVE_SETENV 1'
3833 _need_setenv=no
3834 else
3835 def_setenv='#undef HAVE_SETENV'
3836 _need_setenv=yes
3838 echores "$_setenv"
3841 if sunos; then
3842 echocheck "sysi86()"
3843 cat > $TMPC << EOF
3844 #include <sys/sysi86.h>
3845 int main(void) { sysi86(0); return 0; }
3847 _sysi86=no
3848 cc_check && _sysi86=yes
3849 if test "$_sysi86" = yes ; then
3850 def_sysi86='#define HAVE_SYSI86 1'
3851 cat > $TMPC << EOF
3852 #include <sys/sysi86.h>
3853 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3855 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3856 else
3857 def_sysi86='#undef HAVE_SYSI86'
3859 echores "$_sysi86"
3860 fi #if sunos
3863 echocheck "sys/sysinfo.h"
3864 cat > $TMPC << EOF
3865 #include <sys/sysinfo.h>
3866 int main(void) {
3867 struct sysinfo s_info;
3868 sysinfo(&s_info);
3869 return 0;
3872 _sys_sysinfo=no
3873 cc_check && _sys_sysinfo=yes
3874 if test "$_sys_sysinfo" = yes ; then
3875 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3876 else
3877 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3879 echores "$_sys_sysinfo"
3882 if darwin; then
3884 echocheck "Mac OS X Finder Support"
3885 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3886 if test "$_macosx_finder" = yes ; then
3887 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3888 extra_ldflags="$extra_ldflags -framework Carbon"
3890 echores "$_macosx_finder"
3892 echocheck "Mac OS X Bundle file locations"
3893 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3894 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3895 if test "$_macosx_bundle" = yes ; then
3896 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3897 extra_ldflags="$extra_ldflags -framework Carbon"
3899 echores "$_macosx_bundle"
3901 echocheck "Apple Remote"
3902 if test "$_apple_remote" = auto ; then
3903 _apple_remote=no
3904 cat > $TMPC <<EOF
3905 #include <stdio.h>
3906 #include <IOKit/IOCFPlugIn.h>
3907 int main(void) {
3908 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3909 CFMutableDictionaryRef hidMatchDictionary;
3910 IOReturn ioReturnValue;
3912 // Set up a matching dictionary to search the I/O Registry by class.
3913 // name for all HID class devices
3914 hidMatchDictionary = IOServiceMatching("AppleIRController");
3916 // Now search I/O Registry for matching devices.
3917 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3918 hidMatchDictionary, &hidObjectIterator);
3920 // If search is unsuccessful, return nonzero.
3921 if (ioReturnValue != kIOReturnSuccess ||
3922 !IOIteratorIsValid(hidObjectIterator)) {
3923 return 1;
3925 return 0;
3928 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3930 if test "$_apple_remote" = yes ; then
3931 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3932 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3933 else
3934 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3936 echores "$_apple_remote"
3938 fi #if darwin
3940 if linux; then
3942 echocheck "Apple IR"
3943 if test "$_apple_ir" = auto ; then
3944 _apple_ir=no
3945 cat > $TMPC <<EOF
3946 #include <linux/types.h>
3947 #include <linux/input.h>
3948 int main(void) {
3949 struct input_event ev;
3950 struct input_id id;
3951 return 0;
3954 cc_check && _apple_ir=yes
3956 if test "$_apple_ir" = yes ; then
3957 def_apple_ir='#define CONFIG_APPLE_IR 1'
3958 else
3959 def_apple_ir='#undef CONFIG_APPLE_IR'
3961 echores "$_apple_ir"
3962 fi #if linux
3964 echocheck "pkg-config"
3965 _pkg_config=pkg-config
3966 if $($_pkg_config --version > /dev/null 2>&1); then
3967 if test "$_ld_static"; then
3968 _pkg_config="$_pkg_config --static"
3970 echores "yes"
3971 else
3972 _pkg_config=false
3973 echores "no"
3977 echocheck "Samba support (libsmbclient)"
3978 if test "$_smb" = yes; then
3979 extra_ldflags="$extra_ldflags -lsmbclient"
3981 if test "$_smb" = auto; then
3982 _smb=no
3983 cat > $TMPC << EOF
3984 #include <libsmbclient.h>
3985 int main(void) { smbc_opendir("smb://"); return 0; }
3987 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3988 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3989 _smb=yes && break
3990 done
3993 if test "$_smb" = yes; then
3994 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3995 _inputmodules="smb $_inputmodules"
3996 else
3997 def_smb="#undef CONFIG_LIBSMBCLIENT"
3998 _noinputmodules="smb $_noinputmodules"
4000 echores "$_smb"
4003 #########
4004 # VIDEO #
4005 #########
4008 echocheck "tdfxfb"
4009 if test "$_tdfxfb" = yes ; then
4010 def_tdfxfb='#define CONFIG_TDFXFB 1'
4011 _vomodules="tdfxfb $_vomodules"
4012 else
4013 def_tdfxfb='#undef CONFIG_TDFXFB'
4014 _novomodules="tdfxfb $_novomodules"
4016 echores "$_tdfxfb"
4018 echocheck "s3fb"
4019 if test "$_s3fb" = yes ; then
4020 def_s3fb='#define CONFIG_S3FB 1'
4021 _vomodules="s3fb $_vomodules"
4022 else
4023 def_s3fb='#undef CONFIG_S3FB'
4024 _novomodules="s3fb $_novomodules"
4026 echores "$_s3fb"
4028 echocheck "wii"
4029 if test "$_wii" = yes ; then
4030 def_wii='#define CONFIG_WII 1'
4031 _vomodules="wii $_vomodules"
4032 else
4033 def_wii='#undef CONFIG_WII'
4034 _novomodules="wii $_novomodules"
4036 echores "$_wii"
4038 echocheck "tdfxvid"
4039 if test "$_tdfxvid" = yes ; then
4040 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4041 _vomodules="tdfx_vid $_vomodules"
4042 else
4043 def_tdfxvid='#undef CONFIG_TDFX_VID'
4044 _novomodules="tdfx_vid $_novomodules"
4046 echores "$_tdfxvid"
4048 echocheck "xvr100"
4049 if test "$_xvr100" = auto ; then
4050 cat > $TMPC << EOF
4051 #include <unistd.h>
4052 #include <sys/fbio.h>
4053 #include <sys/visual_io.h>
4054 int main(void) {
4055 struct vis_identifier ident;
4056 struct fbgattr attr;
4057 ioctl(0, VIS_GETIDENTIFIER, &ident);
4058 ioctl(0, FBIOGATTR, &attr);
4059 return 0;
4062 _xvr100=no
4063 cc_check && _xvr100=yes
4065 if test "$_xvr100" = yes ; then
4066 def_xvr100='#define CONFIG_XVR100 1'
4067 _vomodules="xvr100 $_vomodules"
4068 else
4069 def_tdfxvid='#undef CONFIG_XVR100'
4070 _novomodules="xvr100 $_novomodules"
4072 echores "$_xvr100"
4074 echocheck "tga"
4075 if test "$_tga" = yes ; then
4076 def_tga='#define CONFIG_TGA 1'
4077 _vomodules="tga $_vomodules"
4078 else
4079 def_tga='#undef CONFIG_TGA'
4080 _novomodules="tga $_novomodules"
4082 echores "$_tga"
4085 echocheck "md5sum support"
4086 if test "$_md5sum" = yes; then
4087 def_md5sum="#define CONFIG_MD5SUM 1"
4088 _vomodules="md5sum $_vomodules"
4089 else
4090 def_md5sum="#undef CONFIG_MD5SUM"
4091 _novomodules="md5sum $_novomodules"
4093 echores "$_md5sum"
4096 echocheck "yuv4mpeg support"
4097 if test "$_yuv4mpeg" = yes; then
4098 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4099 _vomodules="yuv4mpeg $_vomodules"
4100 else
4101 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4102 _novomodules="yuv4mpeg $_novomodules"
4104 echores "$_yuv4mpeg"
4107 echocheck "bl"
4108 if test "$_bl" = yes ; then
4109 def_bl='#define CONFIG_BL 1'
4110 _vomodules="bl $_vomodules"
4111 else
4112 def_bl='#undef CONFIG_BL'
4113 _novomodules="bl $_novomodules"
4115 echores "$_bl"
4118 echocheck "DirectFB"
4119 if test "$_directfb" = auto ; then
4120 _directfb=no
4121 cat > $TMPC <<EOF
4122 #include <directfb.h>
4123 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4125 for _inc_tmp in "" -I/usr/local/include/directfb \
4126 -I/usr/include/directfb -I/usr/local/include; do
4127 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4128 extra_cflags="$extra_cflags $_inc_tmp" && break
4129 done
4132 dfb_version() {
4133 expr $1 \* 65536 + $2 \* 256 + $3
4136 if test "$_directfb" = yes; then
4137 cat > $TMPC << EOF
4138 #include <directfb_version.h>
4140 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4143 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4144 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4145 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4146 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4147 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4148 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4149 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4150 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4151 _res_comment="$_directfb_version"
4152 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4153 else
4154 def_directfb_version='#undef DIRECTFBVERSION'
4155 _directfb=no
4156 _res_comment="version >=0.9.13 required"
4158 else
4159 _directfb=no
4160 _res_comment="failed to get version"
4163 echores "$_directfb"
4165 if test "$_directfb" = yes ; then
4166 def_directfb='#define CONFIG_DIRECTFB 1'
4167 _vomodules="directfb $_vomodules"
4168 libs_mplayer="$libs_mplayer -ldirectfb"
4169 else
4170 def_directfb='#undef CONFIG_DIRECTFB'
4171 _novomodules="directfb $_novomodules"
4173 if test "$_dfbmga" = yes; then
4174 _vomodules="dfbmga $_vomodules"
4175 def_dfbmga='#define CONFIG_DFBMGA 1'
4176 else
4177 _novomodules="dfbmga $_novomodules"
4178 def_dfbmga='#undef CONFIG_DFBMGA'
4182 echocheck "X11 headers presence"
4183 _x11_headers="no"
4184 _res_comment="check if the dev(el) packages are installed"
4185 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4186 if test -f "$I/X11/Xlib.h" ; then
4187 _x11_headers="yes"
4188 _res_comment=""
4189 break
4191 done
4192 if test $_cross_compile = no; then
4193 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4194 /usr/include/X11R6 /usr/openwin/include ; do
4195 if test -f "$I/X11/Xlib.h" ; then
4196 extra_cflags="$extra_cflags -I$I"
4197 _x11_headers="yes"
4198 _res_comment="using $I"
4199 break
4201 done
4203 echores "$_x11_headers"
4206 echocheck "X11"
4207 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4208 cat > $TMPC <<EOF
4209 #include <X11/Xlib.h>
4210 #include <X11/Xutil.h>
4211 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4213 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4214 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4215 -L/usr/lib ; do
4216 if netbsd; then
4217 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4218 else
4219 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4221 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4222 && _x11=yes && break
4223 done
4225 if test "$_x11" = yes ; then
4226 def_x11='#define CONFIG_X11 1'
4227 _vomodules="x11 xover $_vomodules"
4228 else
4229 _x11=no
4230 def_x11='#undef CONFIG_X11'
4231 _novomodules="x11 $_novomodules"
4232 _res_comment="check if the dev(el) packages are installed"
4233 # disable stuff that depends on X
4234 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4236 echores "$_x11"
4238 echocheck "Xss screensaver extensions"
4239 if test "$_xss" = auto ; then
4240 cat > $TMPC << EOF
4241 #include <X11/Xlib.h>
4242 #include <X11/extensions/scrnsaver.h>
4243 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4245 _xss=no
4246 cc_check -lXss && _xss=yes
4248 if test "$_xss" = yes ; then
4249 def_xss='#define CONFIG_XSS 1'
4250 libs_mplayer="$libs_mplayer -lXss"
4251 else
4252 def_xss='#undef CONFIG_XSS'
4254 echores "$_xss"
4256 echocheck "DPMS"
4257 _xdpms3=no
4258 _xdpms4=no
4259 if test "$_x11" = yes ; then
4260 cat > $TMPC <<EOF
4261 #include <X11/Xmd.h>
4262 #include <X11/Xlib.h>
4263 #include <X11/Xutil.h>
4264 #include <X11/Xatom.h>
4265 #include <X11/extensions/dpms.h>
4266 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4268 cc_check -lXdpms && _xdpms3=yes
4269 cat > $TMPC <<EOF
4270 #include <X11/Xlib.h>
4271 #include <X11/extensions/dpms.h>
4272 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4274 cc_check -lXext && _xdpms4=yes
4276 if test "$_xdpms4" = yes ; then
4277 def_xdpms='#define CONFIG_XDPMS 1'
4278 _res_comment="using Xdpms 4"
4279 echores "yes"
4280 elif test "$_xdpms3" = yes ; then
4281 def_xdpms='#define CONFIG_XDPMS 1'
4282 libs_mplayer="$libs_mplayer -lXdpms"
4283 _res_comment="using Xdpms 3"
4284 echores "yes"
4285 else
4286 def_xdpms='#undef CONFIG_XDPMS'
4287 echores "no"
4291 echocheck "Xv"
4292 if test "$_xv" = auto ; then
4293 cat > $TMPC <<EOF
4294 #include <X11/Xlib.h>
4295 #include <X11/extensions/Xvlib.h>
4296 int main(void) {
4297 (void) XvGetPortAttribute(0, 0, 0, 0);
4298 (void) XvQueryPortAttributes(0, 0, 0);
4299 return 0; }
4301 _xv=no
4302 cc_check -lXv && _xv=yes
4305 if test "$_xv" = yes ; then
4306 def_xv='#define CONFIG_XV 1'
4307 libs_mplayer="$libs_mplayer -lXv"
4308 _vomodules="xv $_vomodules"
4309 else
4310 def_xv='#undef CONFIG_XV'
4311 _novomodules="xv $_novomodules"
4313 echores "$_xv"
4316 echocheck "XvMC"
4317 if test "$_xv" = yes && test "$_xvmc" != no ; then
4318 _xvmc=no
4319 cat > $TMPC <<EOF
4320 #include <X11/Xlib.h>
4321 #include <X11/extensions/Xvlib.h>
4322 #include <X11/extensions/XvMClib.h>
4323 int main(void) {
4324 (void) XvMCQueryExtension(0,0,0);
4325 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4326 return 0; }
4328 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4329 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4330 done
4332 if test "$_xvmc" = yes ; then
4333 def_xvmc='#define CONFIG_XVMC 1'
4334 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4335 _vomodules="xvmc $_vomodules"
4336 _res_comment="using $_xvmclib"
4337 else
4338 def_xvmc='#define CONFIG_XVMC 0'
4339 _novomodules="xvmc $_novomodules"
4340 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4342 echores "$_xvmc"
4345 echocheck "VDPAU"
4346 if test "$_vdpau" = auto ; then
4347 _vdpau=no
4348 if test "$_dl" = yes ; then
4349 cat > $TMPC <<EOF
4350 #include <vdpau/vdpau_x11.h>
4351 int main(void) {
4352 (void) vdp_device_create_x11(0, 0, 0, 0);
4353 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4355 cc_check -lvdpau && _vdpau=yes
4358 if test "$_vdpau" = yes ; then
4359 def_vdpau='#define CONFIG_VDPAU 1'
4360 libs_mplayer="$libs_mplayer -lvdpau"
4361 _vomodules="vdpau $_vomodules"
4362 else
4363 def_vdpau='#define CONFIG_VDPAU 0'
4364 _novomodules="vdpau $_novomodules"
4365 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4367 echores "$_vdpau"
4370 echocheck "Xinerama"
4371 if test "$_xinerama" = auto ; then
4372 cat > $TMPC <<EOF
4373 #include <X11/Xlib.h>
4374 #include <X11/extensions/Xinerama.h>
4375 int main(void) { (void) XineramaIsActive(0); return 0; }
4377 _xinerama=no
4378 cc_check -lXinerama && _xinerama=yes
4381 if test "$_xinerama" = yes ; then
4382 def_xinerama='#define CONFIG_XINERAMA 1'
4383 libs_mplayer="$libs_mplayer -lXinerama"
4384 else
4385 def_xinerama='#undef CONFIG_XINERAMA'
4387 echores "$_xinerama"
4390 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4391 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4392 # named 'X extensions' or something similar.
4393 # This check may be useful for future mplayer versions (to change resolution)
4394 # If you run into problems, remove '-lXxf86vm'.
4395 echocheck "Xxf86vm"
4396 if test "$_vm" = auto ; then
4397 cat > $TMPC <<EOF
4398 #include <X11/Xlib.h>
4399 #include <X11/extensions/xf86vmode.h>
4400 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4402 _vm=no
4403 cc_check -lXxf86vm && _vm=yes
4405 if test "$_vm" = yes ; then
4406 def_vm='#define CONFIG_XF86VM 1'
4407 libs_mplayer="$libs_mplayer -lXxf86vm"
4408 else
4409 def_vm='#undef CONFIG_XF86VM'
4411 echores "$_vm"
4413 # Check for the presence of special keycodes, like audio control buttons
4414 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4415 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4416 # have these new keycodes.
4417 echocheck "XF86keysym"
4418 if test "$_xf86keysym" = auto; then
4419 _xf86keysym=no
4420 cat > $TMPC <<EOF
4421 #include <X11/Xlib.h>
4422 #include <X11/XF86keysym.h>
4423 int main(void) { return XF86XK_AudioPause; }
4425 cc_check && _xf86keysym=yes
4427 if test "$_xf86keysym" = yes ; then
4428 def_xf86keysym='#define CONFIG_XF86XK 1'
4429 else
4430 def_xf86keysym='#undef CONFIG_XF86XK'
4432 echores "$_xf86keysym"
4434 echocheck "DGA"
4435 if test "$_dga2" = auto && test "$_x11" = yes ; then
4436 cat > $TMPC << EOF
4437 #include <X11/Xlib.h>
4438 #include <X11/extensions/xf86dga.h>
4439 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4441 _dga2=no
4442 cc_check -lXxf86dga && _dga2=yes
4444 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4445 cat > $TMPC << EOF
4446 #include <X11/Xlib.h>
4447 #include <X11/extensions/xf86dga.h>
4448 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4450 _dga1=no
4451 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4454 _dga=no
4455 def_dga='#undef CONFIG_DGA'
4456 def_dga1='#undef CONFIG_DGA1'
4457 def_dga2='#undef CONFIG_DGA2'
4458 if test "$_dga1" = yes ; then
4459 _dga=yes
4460 def_dga1='#define CONFIG_DGA1 1'
4461 _res_comment="using DGA 1.0"
4462 elif test "$_dga2" = yes ; then
4463 _dga=yes
4464 def_dga2='#define CONFIG_DGA2 1'
4465 _res_comment="using DGA 2.0"
4467 if test "$_dga" = yes ; then
4468 def_dga='#define CONFIG_DGA 1'
4469 libs_mplayer="$libs_mplayer -lXxf86dga"
4470 _vomodules="dga $_vomodules"
4471 else
4472 _novomodules="dga $_novomodules"
4474 echores "$_dga"
4477 echocheck "3dfx"
4478 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4479 def_3dfx='#define CONFIG_3DFX 1'
4480 _vomodules="3dfx $_vomodules"
4481 else
4482 def_3dfx='#undef CONFIG_3DFX'
4483 _novomodules="3dfx $_novomodules"
4485 echores "$_3dfx"
4488 echocheck "VIDIX"
4489 def_vidix='#undef CONFIG_VIDIX'
4490 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4491 _vidix_drv_cyberblade=no
4492 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4493 _vidix_drv_ivtv=no
4494 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4495 _vidix_drv_mach64=no
4496 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4497 _vidix_drv_mga=no
4498 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4499 _vidix_drv_mga_crtc2=no
4500 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4501 _vidix_drv_nvidia=no
4502 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4503 _vidix_drv_pm2=no
4504 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4505 _vidix_drv_pm3=no
4506 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4507 _vidix_drv_radeon=no
4508 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4509 _vidix_drv_rage128=no
4510 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4511 _vidix_drv_s3=no
4512 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4513 _vidix_drv_sh_veu=no
4514 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4515 _vidix_drv_sis=no
4516 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4517 _vidix_drv_unichrome=no
4518 if test "$_vidix" = auto ; then
4519 _vidix=no
4520 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4521 && _vidix=yes
4522 (ppc || alpha) && linux && _vidix=yes
4524 echores "$_vidix"
4526 if test "$_vidix" = yes ; then
4527 def_vidix='#define CONFIG_VIDIX 1'
4528 _vomodules="cvidix $_vomodules"
4529 # FIXME: ivtv driver temporarily disabled until we have a proper test
4530 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4531 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4533 # some vidix drivers are architecture and os specific, discard them elsewhere
4534 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4535 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4537 for driver in $_vidix_drivers ; do
4538 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4539 eval _vidix_drv_${driver}=yes
4540 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4541 done
4543 echocheck "VIDIX PCI device name database"
4544 echores "$_vidix_pcidb"
4545 if test "$_vidix_pcidb" = yes ; then
4546 _vidix_pcidb_val=1
4547 else
4548 _vidix_pcidb_val=0
4551 echocheck "VIDIX dhahelper support"
4552 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4553 echores "$_dhahelper"
4555 echocheck "VIDIX svgalib_helper support"
4556 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4557 echores "$_svgalib_helper"
4559 else
4560 _novomodules="cvidix $_novomodules"
4563 if test "$_vidix" = yes && win32; then
4564 winvidix=yes
4565 _vomodules="winvidix $_vomodules"
4566 libs_mplayer="$libs_mplayer -lgdi32"
4567 else
4568 _novomodules="winvidix $_novomodules"
4570 if test "$_vidix" = yes && test "$_x11" = yes; then
4571 xvidix=yes
4572 _vomodules="xvidix $_vomodules"
4573 else
4574 _novomodules="xvidix $_novomodules"
4577 echocheck "/dev/mga_vid"
4578 if test "$_mga" = auto ; then
4579 _mga=no
4580 test -c /dev/mga_vid && _mga=yes
4582 if test "$_mga" = yes ; then
4583 def_mga='#define CONFIG_MGA 1'
4584 _vomodules="mga $_vomodules"
4585 else
4586 def_mga='#undef CONFIG_MGA'
4587 _novomodules="mga $_novomodules"
4589 echores "$_mga"
4592 echocheck "xmga"
4593 if test "$_xmga" = auto ; then
4594 _xmga=no
4595 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4597 if test "$_xmga" = yes ; then
4598 def_xmga='#define CONFIG_XMGA 1'
4599 _vomodules="xmga $_vomodules"
4600 else
4601 def_xmga='#undef CONFIG_XMGA'
4602 _novomodules="xmga $_novomodules"
4604 echores "$_xmga"
4607 echocheck "GGI"
4608 if test "$_ggi" = auto ; then
4609 cat > $TMPC << EOF
4610 #include <ggi/ggi.h>
4611 int main(void) { ggiInit(); return 0; }
4613 _ggi=no
4614 cc_check -lggi && _ggi=yes
4616 if test "$_ggi" = yes ; then
4617 def_ggi='#define CONFIG_GGI 1'
4618 libs_mplayer="$libs_mplayer -lggi"
4619 _vomodules="ggi $_vomodules"
4620 else
4621 def_ggi='#undef CONFIG_GGI'
4622 _novomodules="ggi $_novomodules"
4624 echores "$_ggi"
4626 echocheck "GGI extension: libggiwmh"
4627 if test "$_ggiwmh" = auto ; then
4628 _ggiwmh=no
4629 cat > $TMPC << EOF
4630 #include <ggi/ggi.h>
4631 #include <ggi/wmh.h>
4632 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4634 cc_check -lggi -lggiwmh && _ggiwmh=yes
4636 # needed to get right output on obscure combination
4637 # like --disable-ggi --enable-ggiwmh
4638 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4639 def_ggiwmh='#define CONFIG_GGIWMH 1'
4640 libs_mplayer="$libs_mplayer -lggiwmh"
4641 else
4642 _ggiwmh=no
4643 def_ggiwmh='#undef CONFIG_GGIWMH'
4645 echores "$_ggiwmh"
4648 echocheck "AA"
4649 if test "$_aa" = auto ; then
4650 cat > $TMPC << EOF
4651 #include <aalib.h>
4652 extern struct aa_hardware_params aa_defparams;
4653 extern struct aa_renderparams aa_defrenderparams;
4654 int main(void) {
4655 aa_context *c;
4656 aa_renderparams *p;
4657 (void) aa_init(0, 0, 0);
4658 c = aa_autoinit(&aa_defparams);
4659 p = aa_getrenderparams();
4660 aa_autoinitkbd(c,0);
4661 return 0; }
4663 _aa=no
4664 for _ld_tmp in "-laa" ; do
4665 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4666 done
4668 if test "$_aa" = yes ; then
4669 def_aa='#define CONFIG_AA 1'
4670 if cygwin ; then
4671 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4673 _vomodules="aa $_vomodules"
4674 else
4675 def_aa='#undef CONFIG_AA'
4676 _novomodules="aa $_novomodules"
4678 echores "$_aa"
4681 echocheck "CACA"
4682 if test "$_caca" = auto ; then
4683 _caca=no
4684 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4685 cat > $TMPC << EOF
4686 #include <caca.h>
4687 #ifdef CACA_API_VERSION_1
4688 #include <caca0.h>
4689 #endif
4690 int main(void) { (void) caca_init(); return 0; }
4692 cc_check $(caca-config --libs) && _caca=yes
4695 if test "$_caca" = yes ; then
4696 def_caca='#define CONFIG_CACA 1'
4697 extra_cflags="$extra_cflags $(caca-config --cflags)"
4698 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4699 _vomodules="caca $_vomodules"
4700 else
4701 def_caca='#undef CONFIG_CACA'
4702 _novomodules="caca $_novomodules"
4704 echores "$_caca"
4707 echocheck "SVGAlib"
4708 if test "$_svga" = auto ; then
4709 cat > $TMPC << EOF
4710 #include <vga.h>
4711 int main(void) { return 0; }
4713 _svga=no
4714 cc_check -lvga $_ld_lm && _svga=yes
4716 if test "$_svga" = yes ; then
4717 def_svga='#define CONFIG_SVGALIB 1'
4718 libs_mplayer="$libs_mplayer -lvga"
4719 _vomodules="svga $_vomodules"
4720 else
4721 def_svga='#undef CONFIG_SVGALIB'
4722 _novomodules="svga $_novomodules"
4724 echores "$_svga"
4727 echocheck "FBDev"
4728 if test "$_fbdev" = auto ; then
4729 _fbdev=no
4730 linux && _fbdev=yes
4732 if test "$_fbdev" = yes ; then
4733 def_fbdev='#define CONFIG_FBDEV 1'
4734 _vomodules="fbdev $_vomodules"
4735 else
4736 def_fbdev='#undef CONFIG_FBDEV'
4737 _novomodules="fbdev $_novomodules"
4739 echores "$_fbdev"
4743 echocheck "DVB"
4744 if test "$_dvb" = auto ; then
4745 _dvb=no
4746 cat >$TMPC << EOF
4747 #include <poll.h>
4748 #include <sys/ioctl.h>
4749 #include <stdio.h>
4750 #include <time.h>
4751 #include <unistd.h>
4752 #include <ost/dmx.h>
4753 #include <ost/frontend.h>
4754 #include <ost/sec.h>
4755 #include <ost/video.h>
4756 #include <ost/audio.h>
4757 int main(void) {return 0;}
4759 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4760 cc_check $_inc_tmp && _dvb=yes && \
4761 extra_cflags="$extra_cflags $_inc_tmp" && break
4762 done
4764 echores "$_dvb"
4765 if test "$_dvb" = yes ; then
4766 def_dvb='#define CONFIG_DVB 1'
4767 def_dvbin='#define CONFIG_DVBIN 1'
4768 _aomodules="mpegpes(dvb) $_aomodules"
4769 _vomodules="mpegpes(dvb) $_vomodules"
4772 echocheck "DVB HEAD"
4773 if test "$_dvbhead" = auto ; then
4774 _dvbhead=no
4776 cat >$TMPC << EOF
4777 #include <poll.h>
4778 #include <sys/ioctl.h>
4779 #include <stdio.h>
4780 #include <time.h>
4781 #include <unistd.h>
4782 #include <linux/dvb/dmx.h>
4783 #include <linux/dvb/frontend.h>
4784 #include <linux/dvb/video.h>
4785 #include <linux/dvb/audio.h>
4786 int main(void) {return 0;}
4788 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4789 cc_check $_inc_tmp && _dvbhead=yes && \
4790 extra_cflags="$extra_cflags $_inc_tmp" && break
4791 done
4793 echores "$_dvbhead"
4794 if test "$_dvbhead" = yes ; then
4795 def_dvb='#define CONFIG_DVB 1'
4796 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4797 def_dvbin='#define CONFIG_DVBIN 1'
4798 _aomodules="mpegpes(dvb) $_aomodules"
4799 _vomodules="mpegpes(dvb) $_vomodules"
4802 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4803 def_dvb='#undef CONFIG_DVB'
4804 def_dvb_head='#undef CONFIG_DVB_HEAD'
4805 def_dvbin='#undef CONFIG_DVBIN '
4806 _aomodules="mpegpes(file) $_aomodules"
4807 _vomodules="mpegpes(file) $_vomodules"
4810 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4811 _dvbin=yes
4812 _inputmodules="dvb $_inputmodules"
4813 else
4814 _dvbin=no
4815 _noinputmodules="dvb $_noinputmodules"
4819 if darwin; then
4821 echocheck "QuickTime"
4822 if test "$quicktime" = auto ; then
4823 cat > $TMPC <<EOF
4824 #include <QuickTime/QuickTime.h>
4825 int main(void) {
4826 ImageDescription *desc;
4827 EnterMovies();
4828 ExitMovies();
4829 return 0;
4832 quicktime=no
4833 cc_check -framework QuickTime && quicktime=yes
4835 if test "$quicktime" = yes ; then
4836 extra_ldflags="$extra_ldflags -framework QuickTime"
4837 def_quicktime='#define CONFIG_QUICKTIME 1'
4838 else
4839 def_quicktime='#undef CONFIG_QUICKTIME'
4840 _quartz=no
4842 echores $quicktime
4844 echocheck "Quartz"
4845 if test "$_quartz" = auto ; then
4846 cat > $TMPC <<EOF
4847 #include <Carbon/Carbon.h>
4848 int main(void) {
4849 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4850 return 0;
4853 _quartz=no
4854 cc_check -framework Carbon && _quartz=yes
4856 if test "$_quartz" = yes ; then
4857 libs_mplayer="$libs_mplayer -framework Carbon"
4858 def_quartz='#define CONFIG_QUARTZ 1'
4859 _vomodules="quartz $_vomodules"
4860 else
4861 def_quartz='#undef CONFIG_QUARTZ'
4862 _novomodules="quartz $_novomodules"
4864 echores $_quartz
4866 echocheck "CoreVideo"
4867 if test "$_corevideo" = auto ; then
4868 cat > $TMPC <<EOF
4869 #include <Carbon/Carbon.h>
4870 #include <CoreServices/CoreServices.h>
4871 #include <OpenGL/OpenGL.h>
4872 #include <QuartzCore/CoreVideo.h>
4873 int main(void) { return 0; }
4875 _corevideo=no
4876 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4878 if test "$_corevideo" = yes ; then
4879 _vomodules="corevideo $_vomodules"
4880 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4881 def_corevideo='#define CONFIG_COREVIDEO 1'
4882 else
4883 _novomodules="corevideo $_novomodules"
4884 def_corevideo='#undef CONFIG_COREVIDEO'
4886 echores "$_corevideo"
4888 fi #if darwin
4891 # make sure this stays below CoreVideo to avoid issues due to namespace
4892 # conflicts between -lGL and -framework OpenGL
4893 echocheck "OpenGL"
4894 #Note: this test is run even with --enable-gl since we autodetect linker flags
4895 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4896 cat > $TMPC << EOF
4897 #ifdef GL_WIN32
4898 #include <windows.h>
4899 #include <GL/gl.h>
4900 #else
4901 #include <GL/gl.h>
4902 #include <X11/Xlib.h>
4903 #include <GL/glx.h>
4904 #endif
4905 int main(void) {
4906 #ifdef GL_WIN32
4907 HDC dc;
4908 wglCreateContext(dc);
4909 #else
4910 glXCreateContext(NULL, NULL, NULL, True);
4911 #endif
4912 glFinish();
4913 return 0;
4916 _gl=no
4917 if cc_check -lGL $_ld_lm ; then
4918 _gl=yes
4919 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4920 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4921 _gl=yes
4922 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4923 elif cc_check -DGL_WIN32 -lopengl32 ; then
4924 _gl=yes
4925 _gl_win32=yes
4926 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4928 else
4929 _gl=no
4931 if test "$_gl" = yes ; then
4932 def_gl='#define CONFIG_GL 1'
4933 if test "$_gl_win32" = yes ; then
4934 def_gl_win32='#define GL_WIN32 1'
4935 _res_comment="win32 version"
4937 _vomodules="opengl $_vomodules"
4938 else
4939 def_gl='#undef CONFIG_GL'
4940 def_gl_win32='#undef GL_WIN32'
4941 _novomodules="opengl $_novomodules"
4943 echores "$_gl"
4946 echocheck "PNG support"
4947 if test "$_png" = auto ; then
4948 _png=no
4949 if irix ; then
4950 # Don't check for -lpng on irix since it has its own libpng
4951 # incompatible with the GNU libpng
4952 _res_comment="disabled on irix (not GNU libpng)"
4953 else
4954 cat > $TMPC << EOF
4955 #include <png.h>
4956 #include <string.h>
4957 int main(void) {
4958 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4959 printf("libpng: %s\n", png_libpng_ver);
4960 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4963 cc_check -lpng -lz $_ld_lm && _png=yes
4966 echores "$_png"
4967 if test "$_png" = yes ; then
4968 def_png='#define CONFIG_PNG 1'
4969 extra_ldflags="$extra_ldflags -lpng -lz"
4970 _vomodules="png $_vomodules"
4971 else
4972 def_png='#undef CONFIG_PNG'
4973 _novomodules="png $_novomodules"
4976 echocheck "MNG support"
4977 if test "$_mng" = auto ; then
4978 _mng=no
4979 cat > $TMPC << EOF
4980 #include <libmng.h>
4981 int main(void) {
4982 const char * p_ver = mng_version_text();
4983 return !p_ver || p_ver[0] == 0;
4986 if cc_check -lmng -lz $_ld_lm ; then
4987 _mng=yes
4990 echores "$_mng"
4991 if test "$_mng" = yes ; then
4992 def_mng='#define CONFIG_MNG 1'
4993 extra_ldflags="$extra_ldflags -lmng -lz"
4994 else
4995 def_mng='#undef CONFIG_MNG'
4998 echocheck "JPEG support"
4999 if test "$_jpeg" = auto ; then
5000 _jpeg=no
5001 cat > $TMPC << EOF
5002 #include <stdio.h>
5003 #include <stdlib.h>
5004 #include <setjmp.h>
5005 #include <string.h>
5006 #include <jpeglib.h>
5007 int main(void) { return 0; }
5009 cc_check -ljpeg $_ld_lm && _jpeg=yes
5011 echores "$_jpeg"
5013 if test "$_jpeg" = yes ; then
5014 def_jpeg='#define CONFIG_JPEG 1'
5015 _vomodules="jpeg $_vomodules"
5016 extra_ldflags="$extra_ldflags -ljpeg"
5017 else
5018 def_jpeg='#undef CONFIG_JPEG'
5019 _novomodules="jpeg $_novomodules"
5024 echocheck "PNM support"
5025 if test "$_pnm" = yes; then
5026 def_pnm="#define CONFIG_PNM 1"
5027 _vomodules="pnm $_vomodules"
5028 else
5029 def_pnm="#undef CONFIG_PNM"
5030 _novomodules="pnm $_novomodules"
5032 echores "$_pnm"
5036 echocheck "GIF support"
5037 # This is to appease people who want to force gif support.
5038 # If it is forced to yes, then we still do checks to determine
5039 # which gif library to use.
5040 if test "$_gif" = yes ; then
5041 _force_gif=yes
5042 _gif=auto
5045 if test "$_gif" = auto ; then
5046 _gif=no
5047 cat > $TMPC << EOF
5048 #include <gif_lib.h>
5049 int main(void) { return 0; }
5051 for _ld_gif in "-lungif" "-lgif" ; do
5052 cc_check $_ld_gif && _gif=yes && break
5053 done
5056 # If no library was found, and the user wants support forced,
5057 # then we force it on with libgif, as this is the safest
5058 # assumption IMHO. (libungif & libregif both create symbolic
5059 # links to libgif. We also assume that no x11 support is needed,
5060 # because if you are forcing this, then you _should_ know what
5061 # you are doing. [ Besides, package maintainers should never
5062 # have compiled x11 deps into libungif in the first place. ] )
5063 # </rant>
5064 # --Joey
5065 if test "$_force_gif" = yes && test "$_gif" = no ; then
5066 _gif=yes
5067 _ld_gif="-lgif"
5070 if test "$_gif" = yes ; then
5071 def_gif='#define CONFIG_GIF 1'
5072 _codecmodules="gif $_codecmodules"
5073 _vomodules="gif89a $_vomodules"
5074 _res_comment="old version, some encoding functions disabled"
5075 def_gif_4='#undef CONFIG_GIF_4'
5076 extra_ldflags="$extra_ldflags $_ld_gif"
5078 cat > $TMPC << EOF
5079 #include <signal.h>
5080 #include <gif_lib.h>
5081 void catch() { exit(1); }
5082 int main(void) {
5083 signal(SIGSEGV, catch); // catch segfault
5084 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5085 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5086 return 0;
5089 if cc_check "$_ld_gif" ; then
5090 def_gif_4='#define CONFIG_GIF_4 1'
5091 _res_comment=""
5093 else
5094 def_gif='#undef CONFIG_GIF'
5095 def_gif_4='#undef CONFIG_GIF_4'
5096 _novomodules="gif89a $_novomodules"
5097 _nocodecmodules="gif $_nocodecmodules"
5099 echores "$_gif"
5102 case "$_gif" in yes*)
5103 echocheck "broken giflib workaround"
5104 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5106 cat > $TMPC << EOF
5107 #include <gif_lib.h>
5108 int main(void) {
5109 GifFileType gif;
5110 printf("UserData is at address %p\n", gif.UserData);
5111 return 0;
5114 if cc_check "$_ld_gif" ; then
5115 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5116 echores "disabled"
5117 else
5118 echores "enabled"
5121 esac
5124 echocheck "VESA support"
5125 if test "$_vesa" = auto ; then
5126 cat > $TMPC << EOF
5127 #include <vbe.h>
5128 int main(void) { vbeVersion(); return 0; }
5130 _vesa=no
5131 cc_check -lvbe -llrmi && _vesa=yes
5133 if test "$_vesa" = yes ; then
5134 def_vesa='#define CONFIG_VESA 1'
5135 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5136 _vomodules="vesa $_vomodules"
5137 else
5138 def_vesa='#undef CONFIG_VESA'
5139 _novomodules="vesa $_novomodules"
5141 echores "$_vesa"
5143 #################
5144 # VIDEO + AUDIO #
5145 #################
5148 echocheck "SDL"
5149 if test -z "$_sdlconfig" ; then
5150 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5151 _sdlconfig="sdl-config"
5152 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5153 _sdlconfig="sdl11-config"
5154 else
5155 _sdlconfig=false
5158 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5159 cat > $TMPC << EOF
5160 #include <SDL.h>
5161 int main(int argc, char *argv[]) {
5162 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5163 return 0;
5166 _sdl=no
5167 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5168 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5169 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5170 if test "$_sdlversion" -gt 116 ; then
5171 if test "$_sdlversion" -lt 121 ; then
5172 def_sdlbuggy='#define BUGGY_SDL'
5173 else
5174 def_sdlbuggy='#undef BUGGY_SDL'
5176 _sdl=yes
5181 if test "$_sdl" = yes ; then
5182 def_sdl='#define CONFIG_SDL 1'
5183 if cygwin ; then
5184 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5185 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5186 elif mingw32 ; then
5187 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5188 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5189 else
5190 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5191 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5193 _vomodules="sdl $_vomodules"
5194 _aomodules="sdl $_aomodules"
5195 _res_comment="using $_sdlconfig"
5196 else
5197 def_sdl='#undef CONFIG_SDL'
5198 _novomodules="sdl $_novomodules"
5199 _noaomodules="sdl $_noaomodules"
5201 echores "$_sdl"
5204 if os2 ; then
5205 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5206 if test "$_kva" = auto; then
5207 cat > $TMPC << EOF
5208 #include <os2.h>
5209 #include <kva.h>
5210 int main( void ) { return 0; }
5212 _kva=no;
5213 cc_check -lkva && _kva=yes
5215 if test "$_kva" = yes ; then
5216 def_kva='#define CONFIG_KVA 1'
5217 libs_mplayer="$libs_mplayer -lkva"
5218 _vomodules="kva $_vomodules"
5219 else
5220 def_kva='#undef CONFIG_KVA'
5221 _novomodules="kva $_novomodules"
5223 echores "$_kva"
5224 fi #if os2
5227 if win32; then
5229 echocheck "Windows waveout"
5230 if test "$_win32waveout" = auto ; then
5231 cat > $TMPC << EOF
5232 #include <windows.h>
5233 #include <mmsystem.h>
5234 int main(void) { return 0; }
5236 _win32waveout=no
5237 cc_check -lwinmm && _win32waveout=yes
5239 if test "$_win32waveout" = yes ; then
5240 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5241 libs_mplayer="$libs_mplayer -lwinmm"
5242 _aomodules="win32 $_aomodules"
5243 else
5244 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5245 _noaomodules="win32 $_noaomodules"
5247 echores "$_win32waveout"
5249 echocheck "Direct3D"
5250 if test "$_direct3d" = auto ; then
5251 cat > $TMPC << EOF
5252 #include <windows.h>
5253 #include <d3d9.h>
5254 int main(void) { return 0; }
5256 _direct3d=no
5257 cc_check -ld3d9 && _direct3d=yes
5259 if test "$_direct3d" = yes ; then
5260 def_direct3d='#define CONFIG_DIRECT3D 1'
5261 libs_mplayer="$libs_mplayer -ld3d9"
5262 _vomodules="direct3d $_vomodules"
5263 else
5264 def_direct3d='#undef CONFIG_DIRECT3D'
5265 _novomodules="direct3d $_novomodules"
5267 echores "$_direct3d"
5269 echocheck "Directx"
5270 if test "$_directx" = auto ; then
5271 cat > $TMPC << EOF
5272 #include <windows.h>
5273 #include <ddraw.h>
5274 #include <dsound.h>
5275 int main(void) { return 0; }
5277 _directx=no
5278 cc_check -lgdi32 && _directx=yes
5280 if test "$_directx" = yes ; then
5281 def_directx='#define CONFIG_DIRECTX 1'
5282 libs_mplayer="$libs_mplayer -lgdi32"
5283 _vomodules="directx $_vomodules"
5284 _aomodules="dsound $_aomodules"
5285 else
5286 def_directx='#undef CONFIG_DIRECTX'
5287 _novomodules="directx $_novomodules"
5288 _noaomodules="dsound $_noaomodules"
5290 echores "$_directx"
5292 fi #if win32; then
5295 echocheck "DXR2"
5296 if test "$_dxr2" = auto; then
5297 _dxr2=no
5298 cat > $TMPC << EOF
5299 #include <dxr2ioctl.h>
5300 int main(void) { return 0; }
5302 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5303 cc_check $_inc_tmp && _dxr2=yes && \
5304 extra_cflags="$extra_cflags $_inc_tmp" && break
5305 done
5307 if test "$_dxr2" = yes; then
5308 def_dxr2='#define CONFIG_DXR2 1'
5309 _aomodules="dxr2 $_aomodules"
5310 _vomodules="dxr2 $_vomodules"
5311 else
5312 def_dxr2='#undef CONFIG_DXR2'
5313 _noaomodules="dxr2 $_noaomodules"
5314 _novomodules="dxr2 $_novomodules"
5316 echores "$_dxr2"
5318 echocheck "DXR3/H+"
5319 if test "$_dxr3" = auto ; then
5320 cat > $TMPC << EOF
5321 #include <linux/em8300.h>
5322 int main(void) { return 0; }
5324 _dxr3=no
5325 cc_check && _dxr3=yes
5327 if test "$_dxr3" = yes ; then
5328 def_dxr3='#define CONFIG_DXR3 1'
5329 _vomodules="dxr3 $_vomodules"
5330 else
5331 def_dxr3='#undef CONFIG_DXR3'
5332 _novomodules="dxr3 $_novomodules"
5334 echores "$_dxr3"
5337 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5338 if test "$_ivtv" = auto ; then
5339 cat > $TMPC << EOF
5340 #include <stdlib.h>
5341 #include <inttypes.h>
5342 #include <linux/types.h>
5343 #include <linux/videodev2.h>
5344 #include <linux/ivtv.h>
5345 #include <sys/ioctl.h>
5346 int main(void) {
5347 struct ivtv_cfg_stop_decode sd;
5348 struct ivtv_cfg_start_decode sd1;
5349 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5350 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5351 return 0; }
5353 _ivtv=no
5354 cc_check && _ivtv=yes
5356 if test "$_ivtv" = yes ; then
5357 def_ivtv='#define CONFIG_IVTV 1'
5358 _vomodules="ivtv $_vomodules"
5359 _aomodules="ivtv $_aomodules"
5360 else
5361 def_ivtv='#undef CONFIG_IVTV'
5362 _novomodules="ivtv $_novomodules"
5363 _noaomodules="ivtv $_noaomodules"
5365 echores "$_ivtv"
5368 echocheck "V4L2 MPEG Decoder"
5369 if test "$_v4l2" = auto ; then
5370 cat > $TMPC << EOF
5371 #include <stdlib.h>
5372 #include <inttypes.h>
5373 #include <linux/types.h>
5374 #include <linux/videodev2.h>
5375 #include <linux/version.h>
5376 int main(void) {
5377 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5378 #error kernel headers too old, need 2.6.22
5379 #endif
5380 struct v4l2_ext_controls ctrls;
5381 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5382 return 0;
5385 _v4l2=no
5386 cc_check && _v4l2=yes
5388 if test "$_v4l2" = yes ; then
5389 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5390 _vomodules="v4l2 $_vomodules"
5391 _aomodules="v4l2 $_aomodules"
5392 else
5393 def_v4l2='#undef CONFIG_V4L2_DECODER'
5394 _novomodules="v4l2 $_novomodules"
5395 _noaomodules="v4l2 $_noaomodules"
5397 echores "$_v4l2"
5401 #########
5402 # AUDIO #
5403 #########
5406 echocheck "OSS Audio"
5407 if test "$_ossaudio" = auto ; then
5408 cat > $TMPC << EOF
5409 #include <sys/ioctl.h>
5410 #include <$_soundcard_header>
5411 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5413 _ossaudio=no
5414 cc_check && _ossaudio=yes
5416 if test "$_ossaudio" = yes ; then
5417 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5418 _aomodules="oss $_aomodules"
5419 if test "$_linux_devfs" = yes; then
5420 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5421 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5422 else
5423 cat > $TMPC << EOF
5424 #include <sys/ioctl.h>
5425 #include <$_soundcard_header>
5426 #ifdef OPEN_SOUND_SYSTEM
5427 int main(void) { return 0; }
5428 #else
5429 #error Not the real thing
5430 #endif
5432 _real_ossaudio=no
5433 cc_check && _real_ossaudio=yes
5434 if test "$_real_ossaudio" = yes; then
5435 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5436 elif netbsd || openbsd ; then
5437 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5438 extra_ldflags="$extra_ldflags -lossaudio"
5439 else
5440 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5442 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5444 else
5445 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5446 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5447 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5448 _noaomodules="oss $_noaomodules"
5450 echores "$_ossaudio"
5453 echocheck "aRts"
5454 if test "$_arts" = auto ; then
5455 _arts=no
5456 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5458 cat > $TMPC << EOF
5459 #include <artsc.h>
5460 int main(void) { return 0; }
5462 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5467 if test "$_arts" = yes ; then
5468 def_arts='#define CONFIG_ARTS 1'
5469 _aomodules="arts $_aomodules"
5470 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5471 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5472 else
5473 _noaomodules="arts $_noaomodules"
5475 echores "$_arts"
5478 echocheck "EsounD"
5479 if test "$_esd" = auto ; then
5480 _esd=no
5481 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5483 cat > $TMPC << EOF
5484 #include <esd.h>
5485 int main(void) { int fd = esd_open_sound("test"); return fd; }
5487 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5491 echores "$_esd"
5493 if test "$_esd" = yes ; then
5494 def_esd='#define CONFIG_ESD 1'
5495 _aomodules="esd $_aomodules"
5496 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5497 extra_cflags="$extra_cflags $(esd-config --cflags)"
5499 echocheck "esd_get_latency()"
5500 cat > $TMPC << EOF
5501 #include <esd.h>
5502 int main(void) { return esd_get_latency(0); }
5504 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5505 echores "$_esd_latency"
5506 else
5507 def_esd='#undef CONFIG_ESD'
5508 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5509 _noaomodules="esd $_noaomodules"
5513 echocheck "NAS"
5514 if test "$_nas" = auto ; then
5515 cat > $TMPC << EOF
5516 #include <audio/audiolib.h>
5517 int main(void) { return 0; }
5519 _nas=no
5520 cc_check $_ld_lm -laudio -lXt && _nas=yes
5522 if test "$_nas" = yes ; then
5523 def_nas='#define CONFIG_NAS 1'
5524 libs_mplayer="$libs_mplayer -laudio -lXt"
5525 _aomodules="nas $_aomodules"
5526 else
5527 _noaomodules="nas $_noaomodules"
5528 def_nas='#undef CONFIG_NAS'
5530 echores "$_nas"
5533 echocheck "pulse"
5534 if test "$_pulse" = auto ; then
5535 _pulse=no
5536 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5538 cat > $TMPC << EOF
5539 #include <pulse/pulseaudio.h>
5540 int main(void) { return 0; }
5542 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5546 echores "$_pulse"
5548 if test "$_pulse" = yes ; then
5549 def_pulse='#define CONFIG_PULSE 1'
5550 _aomodules="pulse $_aomodules"
5551 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5552 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5553 else
5554 def_pulse='#undef CONFIG_PULSE'
5555 _noaomodules="pulse $_noaomodules"
5559 echocheck "JACK"
5560 if test "$_jack" = auto ; then
5561 _jack=yes
5563 cat > $TMPC << EOF
5564 #include <jack/jack.h>
5565 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5567 if cc_check -ljack ; then
5568 libs_mplayer="$libs_mplayer -ljack"
5569 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5570 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5571 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5572 else
5573 _jack=no
5577 if test "$_jack" = yes ; then
5578 def_jack='#define CONFIG_JACK 1'
5579 _aomodules="jack $_aomodules"
5580 else
5581 _noaomodules="jack $_noaomodules"
5583 echores "$_jack"
5585 echocheck "OpenAL"
5586 if test "$_openal" = auto ; then
5587 _openal=no
5588 cat > $TMPC << EOF
5589 #ifdef OPENAL_AL_H
5590 #include <OpenAL/al.h>
5591 #else
5592 #include <AL/al.h>
5593 #endif
5594 int main(void) {
5595 alSourceQueueBuffers(0, 0, 0);
5596 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5597 return 0;
5600 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5601 cc_check $I && _openal=yes && break
5602 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5603 done
5604 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5606 if test "$_openal" = yes ; then
5607 def_openal='#define CONFIG_OPENAL 1'
5608 _aomodules="openal $_aomodules"
5609 else
5610 _noaomodules="openal $_noaomodules"
5612 echores "$_openal"
5614 echocheck "ALSA audio"
5615 if test "$_alloca" != yes ; then
5616 _alsa=no
5617 _res_comment="alloca missing"
5619 if test "$_alsa" != no ; then
5620 _alsa=no
5621 cat > $TMPC << EOF
5622 #include <sys/time.h>
5623 #include <sys/asoundlib.h>
5624 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5625 #error "alsa version != 0.5.x"
5626 #endif
5627 int main(void) { return 0; }
5629 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5631 cat > $TMPC << EOF
5632 #include <sys/time.h>
5633 #include <sys/asoundlib.h>
5634 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5635 #error "alsa version != 0.9.x"
5636 #endif
5637 int main(void) { return 0; }
5639 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5640 cat > $TMPC << EOF
5641 #include <sys/time.h>
5642 #include <alsa/asoundlib.h>
5643 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5644 #error "alsa version != 0.9.x"
5645 #endif
5646 int main(void) { return 0; }
5648 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5650 cat > $TMPC << EOF
5651 #include <sys/time.h>
5652 #include <sys/asoundlib.h>
5653 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5654 #error "alsa version != 1.0.x"
5655 #endif
5656 int main(void) { return 0; }
5658 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5659 cat > $TMPC << EOF
5660 #include <sys/time.h>
5661 #include <alsa/asoundlib.h>
5662 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5663 #error "alsa version != 1.0.x"
5664 #endif
5665 int main(void) { return 0; }
5667 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5669 def_alsa='#undef CONFIG_ALSA'
5670 def_alsa5='#undef CONFIG_ALSA5'
5671 def_alsa9='#undef CONFIG_ALSA9'
5672 def_alsa1x='#undef CONFIG_ALSA1X'
5673 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5674 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5675 if test "$_alsaver" ; then
5676 _alsa=yes
5677 if test "$_alsaver" = '0.5.x' ; then
5678 _alsa5=yes
5679 _aomodules="alsa5 $_aomodules"
5680 def_alsa5='#define CONFIG_ALSA5 1'
5681 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5682 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5683 elif test "$_alsaver" = '0.9.x-sys' ; then
5684 _alsa9=yes
5685 _aomodules="alsa $_aomodules"
5686 def_alsa='#define CONFIG_ALSA 1'
5687 def_alsa9='#define CONFIG_ALSA9 1'
5688 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5689 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5690 elif test "$_alsaver" = '0.9.x-alsa' ; then
5691 _alsa9=yes
5692 _aomodules="alsa $_aomodules"
5693 def_alsa='#define CONFIG_ALSA 1'
5694 def_alsa9='#define CONFIG_ALSA9 1'
5695 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5696 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5697 elif test "$_alsaver" = '1.0.x-sys' ; then
5698 _alsa1x=yes
5699 _aomodules="alsa $_aomodules"
5700 def_alsa='#define CONFIG_ALSA 1'
5701 def_alsa1x="#define CONFIG_ALSA1X 1"
5702 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5703 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5704 elif test "$_alsaver" = '1.0.x-alsa' ; then
5705 _alsa1x=yes
5706 _aomodules="alsa $_aomodules"
5707 def_alsa='#define CONFIG_ALSA 1'
5708 def_alsa1x="#define CONFIG_ALSA1X 1"
5709 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5710 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5711 else
5712 _alsa=no
5713 _res_comment="unknown version"
5715 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5716 else
5717 _noaomodules="alsa $_noaomodules"
5719 echores "$_alsa"
5722 echocheck "Sun audio"
5723 if test "$_sunaudio" = auto ; then
5724 cat > $TMPC << EOF
5725 #include <sys/types.h>
5726 #include <sys/audioio.h>
5727 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5729 _sunaudio=no
5730 cc_check && _sunaudio=yes
5732 if test "$_sunaudio" = yes ; then
5733 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5734 _aomodules="sun $_aomodules"
5735 else
5736 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5737 _noaomodules="sun $_noaomodules"
5739 echores "$_sunaudio"
5742 def_mlib='#define CONFIG_MLIB 0'
5743 if sunos; then
5744 echocheck "Sun mediaLib"
5745 if test "$_mlib" = auto ; then
5746 _mlib=no
5747 cat > $TMPC << EOF
5748 #include <mlib.h>
5749 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5751 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5753 echores "$_mlib"
5754 fi #if sunos
5757 if darwin; then
5758 echocheck "CoreAudio"
5759 if test "$_coreaudio" = auto ; then
5760 cat > $TMPC <<EOF
5761 #include <CoreAudio/CoreAudio.h>
5762 #include <AudioToolbox/AudioToolbox.h>
5763 #include <AudioUnit/AudioUnit.h>
5764 int main(void) { return 0; }
5766 _coreaudio=no
5767 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5769 if test "$_coreaudio" = yes ; then
5770 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5771 def_coreaudio='#define CONFIG_COREAUDIO 1'
5772 _aomodules="coreaudio $_aomodules"
5773 else
5774 def_coreaudio='#undef CONFIG_COREAUDIO'
5775 _noaomodules="coreaudio $_noaomodules"
5777 echores $_coreaudio
5778 fi #if darwin
5781 if irix; then
5782 echocheck "SGI audio"
5783 if test "$_sgiaudio" = auto ; then
5784 # check for SGI audio
5785 cat > $TMPC << EOF
5786 #include <dmedia/audio.h>
5787 int main(void) { return 0; }
5789 _sgiaudio=no
5790 cc_check && _sgiaudio=yes
5792 if test "$_sgiaudio" = "yes" ; then
5793 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5794 libs_mplayer="$libs_mplayer -laudio"
5795 _aomodules="sgi $_aomodules"
5796 else
5797 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5798 _noaomodules="sgi $_noaomodules"
5800 echores "$_sgiaudio"
5801 fi #if irix
5804 if os2 ; then
5805 echocheck "DART"
5806 if test "$_dart" = auto; then
5807 cat > $TMPC << EOF
5808 #include <os2.h>
5809 #include <dart.h>
5810 int main( void ) { return 0; }
5812 _dart=no;
5813 cc_check -ldart && _dart=yes
5815 if test "$_dart" = yes ; then
5816 def_dart='#define CONFIG_DART 1'
5817 libs_mplayer="$libs_mplayer -ldart"
5818 _aomodules="dart $_aomodules"
5819 else
5820 def_dart='#undef CONFIG_DART'
5821 _noaomodules="dart $_noaomodules"
5823 echores "$_dart"
5824 fi #if os2
5827 # set default CD/DVD devices
5828 if win32 || os2 ; then
5829 default_cdrom_device="D:"
5830 elif darwin ; then
5831 default_cdrom_device="/dev/disk1"
5832 elif dragonfly ; then
5833 default_cdrom_device="/dev/cd0"
5834 elif freebsd ; then
5835 default_cdrom_device="/dev/acd0"
5836 elif openbsd ; then
5837 default_cdrom_device="/dev/rcd0a"
5838 elif sunos ; then
5839 default_cdrom_device="/vol/dev/aliases/cdrom0"
5840 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5841 # file system and the volfs service.
5842 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5843 elif amigaos ; then
5844 default_cdrom_device="a1ide.device:2"
5845 else
5846 default_cdrom_device="/dev/cdrom"
5849 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5850 default_dvd_device=$default_cdrom_device
5851 elif darwin ; then
5852 default_dvd_device="/dev/rdiskN"
5853 else
5854 default_dvd_device="/dev/dvd"
5858 echocheck "VCD support"
5859 if test "$_vcd" = auto; then
5860 _vcd=no
5861 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5862 _vcd=yes
5863 elif mingw32; then
5864 cat > $TMPC << EOF
5865 #include <ddk/ntddcdrm.h>
5866 int main(void) { return 0; }
5868 cc_check && _vcd=yes
5871 if test "$_vcd" = yes; then
5872 _inputmodules="vcd $_inputmodules"
5873 def_vcd='#define CONFIG_VCD 1'
5874 else
5875 def_vcd='#undef CONFIG_VCD'
5876 _noinputmodules="vcd $_noinputmodules"
5877 _res_comment="not supported on this OS"
5879 echores "$_vcd"
5883 echocheck "dvdread"
5884 if test "$_dvdread_internal" = auto ; then
5885 _dvdread_internal=no
5886 _dvdread=no
5887 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5888 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5889 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5890 || darwin || win32 || os2; then
5891 _dvdread_internal=yes
5892 _dvdread=yes
5893 extra_cflags="-Ilibdvdread4 $extra_cflags"
5895 elif test "$_dvdread" = auto ; then
5896 _dvdread=no
5897 if test "$_dl" = yes; then
5898 cat > $TMPC << EOF
5899 #include <inttypes.h>
5900 #include <dvdread/dvd_reader.h>
5901 #include <dvdread/ifo_types.h>
5902 #include <dvdread/ifo_read.h>
5903 #include <dvdread/nav_read.h>
5904 int main(void) { return 0; }
5906 _dvdreadcflags=$($_dvdreadconfig --cflags)
5907 _dvdreadlibs=$($_dvdreadconfig --libs)
5908 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5909 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5910 _dvdread=yes
5911 extra_cflags="$extra_cflags $_dvdreadcflags"
5912 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5913 _res_comment="external"
5918 if test "$_dvdread_internal" = yes; then
5919 def_dvdread='#define CONFIG_DVDREAD 1'
5920 _inputmodules="dvdread(internal) $_inputmodules"
5921 _largefiles=yes
5922 _res_comment="internal"
5923 elif test "$_dvdread" = yes; then
5924 def_dvdread='#define CONFIG_DVDREAD 1'
5925 _largefiles=yes
5926 extra_ldflags="$extra_ldflags -ldvdread"
5927 _inputmodules="dvdread(external) $_inputmodules"
5928 _res_comment="external"
5929 else
5930 def_dvdread='#undef CONFIG_DVDREAD'
5931 _noinputmodules="dvdread $_noinputmodules"
5933 echores "$_dvdread"
5936 echocheck "internal libdvdcss"
5937 if test "$_libdvdcss_internal" = auto ; then
5938 _libdvdcss_internal=no
5939 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5940 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5942 if test "$_libdvdcss_internal" = yes ; then
5943 if linux || netbsd || openbsd || bsdos ; then
5944 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5945 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5946 elif freebsd || dragonfly ; then
5947 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5948 elif darwin ; then
5949 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5950 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5951 elif cygwin ; then
5952 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5953 elif beos ; then
5954 cflags_libdvdcss="-DSYS_BEOS"
5955 elif os2 ; then
5956 cflags_libdvdcss="-DSYS_OS2"
5958 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5959 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5960 _inputmodules="libdvdcss(internal) $_inputmodules"
5961 _largefiles=yes
5962 else
5963 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5965 echores "$_libdvdcss_internal"
5968 echocheck "cdparanoia"
5969 if test "$_cdparanoia" = auto ; then
5970 cat > $TMPC <<EOF
5971 #include <cdda_interface.h>
5972 #include <cdda_paranoia.h>
5973 // This need a better test. How ?
5974 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5976 _cdparanoia=no
5977 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5978 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5979 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5980 done
5982 if test "$_cdparanoia" = yes ; then
5983 _cdda='yes'
5984 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5985 openbsd && extra_ldflags="$extra_ldflags -lutil"
5987 echores "$_cdparanoia"
5990 echocheck "libcdio"
5991 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5992 cat > $TMPC << EOF
5993 #include <stdio.h>
5994 #include <cdio/version.h>
5995 #include <cdio/cdda.h>
5996 #include <cdio/paranoia.h>
5997 int main(void) {
5998 void *test = cdda_verbose_set;
5999 printf("%s\n", CDIO_VERSION);
6000 return test == (void *)1;
6003 _libcdio=no
6004 for _ld_tmp in "" "-lwinmm" ; do
6005 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6006 cc_check $_ld_tmp $_ld_lm \
6007 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6008 done
6009 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6010 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6011 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6012 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6013 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6016 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6017 _cdda='yes'
6018 def_libcdio='#define CONFIG_LIBCDIO 1'
6019 def_havelibcdio='yes'
6020 else
6021 if test "$_cdparanoia" = yes ; then
6022 _res_comment="using cdparanoia"
6024 def_libcdio='#undef CONFIG_LIBCDIO'
6025 def_havelibcdio='no'
6027 echores "$_libcdio"
6029 if test "$_cdda" = yes ; then
6030 test $_cddb = auto && test $_network = yes && _cddb=yes
6031 def_cdparanoia='#define CONFIG_CDDA 1'
6032 _inputmodules="cdda $_inputmodules"
6033 else
6034 def_cdparanoia='#undef CONFIG_CDDA'
6035 _noinputmodules="cdda $_noinputmodules"
6038 if test "$_cddb" = yes ; then
6039 def_cddb='#define CONFIG_CDDB 1'
6040 _inputmodules="cddb $_inputmodules"
6041 else
6042 _cddb=no
6043 def_cddb='#undef CONFIG_CDDB'
6044 _noinputmodules="cddb $_noinputmodules"
6047 echocheck "bitmap font support"
6048 if test "$_bitmap_font" = yes ; then
6049 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6050 else
6051 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6053 echores "$_bitmap_font"
6056 echocheck "freetype >= 2.0.9"
6058 # freetype depends on iconv
6059 if test "$_iconv" = no ; then
6060 _freetype=no
6061 _res_comment="iconv support needed"
6064 if test "$_freetype" = auto ; then
6065 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6066 cat > $TMPC << EOF
6067 #include <stdio.h>
6068 #include <ft2build.h>
6069 #include FT_FREETYPE_H
6070 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6071 #error "Need FreeType 2.0.9 or newer"
6072 #endif
6073 int main(void) {
6074 FT_Library library;
6075 FT_Int major=-1,minor=-1,patch=-1;
6076 int err=FT_Init_FreeType(&library);
6077 return 0;
6080 _freetype=no
6081 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6082 else
6083 _freetype=no
6086 if test "$_freetype" = yes ; then
6087 def_freetype='#define CONFIG_FREETYPE 1'
6088 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6089 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6090 else
6091 def_freetype='#undef CONFIG_FREETYPE'
6093 echores "$_freetype"
6095 if test "$_freetype" = no ; then
6096 _fontconfig=no
6097 _res_comment="FreeType support needed"
6099 echocheck "fontconfig"
6100 if test "$_fontconfig" = auto ; then
6101 cat > $TMPC << EOF
6102 #include <stdio.h>
6103 #include <stdlib.h>
6104 #include <fontconfig/fontconfig.h>
6105 int main(void) {
6106 int err = FcInit();
6107 if (err == FcFalse) {
6108 printf("Couldn't initialize fontconfig lib\n");
6109 exit(err);
6111 return 0;
6114 _fontconfig=no
6115 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6116 _ld_tmp="-lfontconfig $_ld_tmp"
6117 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6118 done
6119 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6120 _inc_tmp=$($_pkg_config --cflags fontconfig)
6121 _ld_tmp=$($_pkg_config --libs fontconfig)
6122 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6123 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6126 if test "$_fontconfig" = yes ; then
6127 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6128 else
6129 def_fontconfig='#undef CONFIG_FONTCONFIG'
6131 echores "$_fontconfig"
6134 echocheck "SSA/ASS support"
6135 # libass depends on FreeType
6136 if test "$_freetype" = no ; then
6137 _ass=no
6138 _res_comment="FreeType support needed"
6141 if test "$_ass" = auto ; then
6142 cat > $TMPC << EOF
6143 #include <ft2build.h>
6144 #include FT_FREETYPE_H
6145 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
6146 #error "Need FreeType 2.1.8 or newer"
6147 #endif
6148 int main(void) { return 0; }
6150 _ass=no
6151 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6152 if test "$_ass" = no ; then
6153 _res_comment="FreeType >= 2.1.8 needed"
6156 if test "$_ass" = yes ; then
6157 def_ass='#define CONFIG_ASS 1'
6158 else
6159 def_ass='#undef CONFIG_ASS'
6161 echores "$_ass"
6164 echocheck "fribidi with charsets"
6165 if test "$_fribidi" = auto ; then
6166 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6167 cat > $TMPC << EOF
6168 #include <stdio.h>
6169 /* workaround for fribidi 0.10.4 and below */
6170 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6171 #include <fribidi/fribidi.h>
6172 int main(void) {
6173 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6174 printf("Fribidi headers are not consistents with the library!\n");
6175 exit(1);
6177 return 0;
6180 _fribidi=no
6181 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && _fribidi=yes
6182 else
6183 _fribidi=no
6186 if test "$_fribidi" = yes ; then
6187 def_fribidi='#define CONFIG_FRIBIDI 1'
6188 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6189 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6190 else
6191 def_fribidi='#undef CONFIG_FRIBIDI'
6193 echores "$_fribidi"
6196 echocheck "ENCA"
6197 if test "$_enca" = auto ; then
6198 cat > $TMPC << EOF
6199 #include <sys/types.h>
6200 #include <enca.h>
6201 int main(void) {
6202 const char **langs;
6203 size_t langcnt;
6204 langs = enca_get_languages(&langcnt);
6205 return 0;
6208 _enca=no
6209 cc_check -lenca $_ld_lm && _enca=yes
6211 if test "$_enca" = yes ; then
6212 def_enca='#define CONFIG_ENCA 1'
6213 extra_ldflags="$extra_ldflags -lenca"
6214 else
6215 def_enca='#undef CONFIG_ENCA'
6217 echores "$_enca"
6220 echocheck "zlib"
6221 cat > $TMPC << EOF
6222 #include <zlib.h>
6223 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6225 _zlib=no
6226 cc_check -lz && _zlib=yes
6227 if test "$_zlib" = yes ; then
6228 def_zlib='#define CONFIG_ZLIB 1'
6229 extra_ldflags="$extra_ldflags -lz"
6230 else
6231 def_zlib='#define CONFIG_ZLIB 0'
6232 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6233 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6235 echores "$_zlib"
6238 echocheck "bzlib"
6239 bzlib=no
6240 def_bzlib='#define CONFIG_BZLIB 0'
6241 cat > $TMPC << EOF
6242 #include <bzlib.h>
6243 int main(void) { BZ2_bzlibVersion(); return 0; }
6245 cc_check -lbz2 && bzlib=yes
6246 if test "$bzlib" = yes ; then
6247 def_bzlib='#define CONFIG_BZLIB 1'
6248 extra_ldflags="$extra_ldflags -lbz2"
6250 echores "$bzlib"
6253 echocheck "RTC"
6254 if test "$_rtc" = auto ; then
6255 cat > $TMPC << EOF
6256 #include <sys/ioctl.h>
6257 #ifdef __linux__
6258 #include <linux/rtc.h>
6259 #else
6260 #include <rtc.h>
6261 #define RTC_PIE_ON RTCIO_PIE_ON
6262 #endif
6263 int main(void) { return RTC_PIE_ON; }
6265 _rtc=no
6266 cc_check && _rtc=yes
6267 ppc && _rtc=no
6269 if test "$_rtc" = yes ; then
6270 def_rtc='#define HAVE_RTC 1'
6271 else
6272 def_rtc='#undef HAVE_RTC'
6274 echores "$_rtc"
6277 echocheck "liblzo2 support"
6278 if test "$_liblzo" = auto ; then
6279 _liblzo=no
6280 cat > $TMPC << EOF
6281 #include <lzo/lzo1x.h>
6282 int main(void) { lzo_init();return 0; }
6284 cc_check -llzo2 && _liblzo=yes
6286 if test "$_liblzo" = yes ; then
6287 def_liblzo='#define CONFIG_LIBLZO 1'
6288 extra_ldflags="$extra_ldflags -llzo2"
6289 _codecmodules="liblzo $_codecmodules"
6290 else
6291 def_liblzo='#undef CONFIG_LIBLZO'
6292 _nocodecmodules="liblzo $_nocodecmodules"
6294 echores "$_liblzo"
6297 echocheck "mad support"
6298 if test "$_mad" = auto ; then
6299 _mad=no
6300 cat > $TMPC << EOF
6301 #include <mad.h>
6302 int main(void) { return 0; }
6304 cc_check -lmad && _mad=yes
6306 if test "$_mad" = yes ; then
6307 def_mad='#define CONFIG_LIBMAD 1'
6308 extra_ldflags="$extra_ldflags -lmad"
6309 _codecmodules="libmad $_codecmodules"
6310 else
6311 def_mad='#undef CONFIG_LIBMAD'
6312 _nocodecmodules="libmad $_nocodecmodules"
6314 echores "$_mad"
6316 echocheck "Twolame"
6317 if test "$_twolame" = auto ; then
6318 cat > $TMPC <<EOF
6319 #include <twolame.h>
6320 int main(void) { twolame_init(); return 0; }
6322 _twolame=no
6323 cc_check -ltwolame $_ld_lm && _twolame=yes
6325 if test "$_twolame" = yes ; then
6326 def_twolame='#define CONFIG_TWOLAME 1'
6327 libs_mencoder="$libs_mencoder -ltwolame"
6328 _codecmodules="twolame $_codecmodules"
6329 else
6330 def_twolame='#undef CONFIG_TWOLAME'
6331 _nocodecmodules="twolame $_nocodecmodules"
6333 echores "$_twolame"
6335 echocheck "Toolame"
6336 if test "$_toolame" = auto ; then
6337 _toolame=no
6338 if test "$_twolame" = yes ; then
6339 _res_comment="disabled by twolame"
6340 else
6341 cat > $TMPC <<EOF
6342 #include <toolame.h>
6343 int main(void) { toolame_init(); return 0; }
6345 cc_check -ltoolame $_ld_lm && _toolame=yes
6348 if test "$_toolame" = yes ; then
6349 def_toolame='#define CONFIG_TOOLAME 1'
6350 libs_mencoder="$libs_mencoder -ltoolame"
6351 _codecmodules="toolame $_codecmodules"
6352 else
6353 def_toolame='#undef CONFIG_TOOLAME'
6354 _nocodecmodules="toolame $_nocodecmodules"
6356 if test "$_toolamedir" ; then
6357 _res_comment="using $_toolamedir"
6359 echores "$_toolame"
6361 echocheck "OggVorbis support"
6362 if test "$_tremor_internal" = yes; then
6363 _libvorbis=no
6364 elif test "$_tremor" = auto; then
6365 _tremor=no
6366 cat > $TMPC << EOF
6367 #include <tremor/ivorbiscodec.h>
6368 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6370 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6372 if test "$_libvorbis" = auto; then
6373 _libvorbis=no
6374 cat > $TMPC << EOF
6375 #include <vorbis/codec.h>
6376 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6378 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6380 if test "$_tremor_internal" = yes ; then
6381 _vorbis=yes
6382 def_vorbis='#define CONFIG_OGGVORBIS 1'
6383 def_tremor='#define CONFIG_TREMOR 1'
6384 _codecmodules="tremor(internal) $_codecmodules"
6385 _res_comment="internal Tremor"
6386 if test "$_tremor_low" = yes ; then
6387 cflags_tremor_low="-D_LOW_ACCURACY_"
6388 _res_comment="internal low accuracy Tremor"
6390 elif test "$_tremor" = yes ; then
6391 _vorbis=yes
6392 def_vorbis='#define CONFIG_OGGVORBIS 1'
6393 def_tremor='#define CONFIG_TREMOR 1'
6394 _codecmodules="tremor(external) $_codecmodules"
6395 _res_comment="external Tremor"
6396 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6397 elif test "$_libvorbis" = yes ; then
6398 _vorbis=yes
6399 def_vorbis='#define CONFIG_OGGVORBIS 1'
6400 _codecmodules="libvorbis $_codecmodules"
6401 _res_comment="libvorbis"
6402 extra_ldflags="$extra_ldflags -lvorbis -logg"
6403 else
6404 _vorbis=no
6405 _nocodecmodules="libvorbis $_nocodecmodules"
6407 echores "$_vorbis"
6409 echocheck "libspeex (version >= 1.1 required)"
6410 if test "$_speex" = auto ; then
6411 _speex=no
6412 cat > $TMPC << EOF
6413 #include <speex/speex.h>
6414 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6416 cc_check -lspeex $_ld_lm && _speex=yes
6418 if test "$_speex" = yes ; then
6419 def_speex='#define CONFIG_SPEEX 1'
6420 extra_ldflags="$extra_ldflags -lspeex"
6421 _codecmodules="speex $_codecmodules"
6422 else
6423 def_speex='#undef CONFIG_SPEEX'
6424 _nocodecmodules="speex $_nocodecmodules"
6426 echores "$_speex"
6428 echocheck "OggTheora support"
6429 if test "$_theora" = auto ; then
6430 _theora=no
6431 cat > $TMPC << EOF
6432 #include <theora/theora.h>
6433 #include <string.h>
6434 int main(void) {
6435 /* Theora is in flux, make sure that all interface routines and datatypes
6436 * exist and work the way we expect it, so we don't break MPlayer. */
6437 ogg_packet op;
6438 theora_comment tc;
6439 theora_info inf;
6440 theora_state st;
6441 yuv_buffer yuv;
6442 int r;
6443 double t;
6445 theora_info_init(&inf);
6446 theora_comment_init(&tc);
6448 return 0;
6450 /* we don't want to execute this kind of nonsense; just for making sure
6451 * that compilation works... */
6452 memset(&op, 0, sizeof(op));
6453 r = theora_decode_header(&inf, &tc, &op);
6454 r = theora_decode_init(&st, &inf);
6455 t = theora_granule_time(&st, op.granulepos);
6456 r = theora_decode_packetin(&st, &op);
6457 r = theora_decode_YUVout(&st, &yuv);
6458 theora_clear(&st);
6460 return 0;
6463 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6464 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6465 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6466 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6467 if test _theora = no; then
6468 _ld_theora="-ltheora -logg"
6469 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6471 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6472 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6473 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6474 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6475 extra_ldflags="$extra_ldflags $_ld_theora" &&
6476 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6477 if test _theora = no; then
6478 _ld_theora="-ltheora -logg"
6479 cc_check tremor/bitwise.c $_ld_theora &&
6480 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6484 if test "$_theora" = yes ; then
6485 def_theora='#define CONFIG_OGGTHEORA 1'
6486 _codecmodules="libtheora $_codecmodules"
6487 # when --enable-theora is forced, we'd better provide a probably sane
6488 # $_ld_theora than nothing
6489 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6490 else
6491 def_theora='#undef CONFIG_OGGTHEORA'
6492 _nocodecmodules="libtheora $_nocodecmodules"
6494 echores "$_theora"
6496 echocheck "internal mp3lib support"
6497 if test "$_mp3lib" = auto ; then
6498 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6500 if test "$_mp3lib" = yes ; then
6501 def_mp3lib='#define CONFIG_MP3LIB 1'
6502 _codecmodules="mp3lib(internal) $_codecmodules"
6503 else
6504 def_mp3lib='#undef CONFIG_MP3LIB'
6505 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6507 echores "$_mp3lib"
6509 echocheck "liba52 support"
6510 if test "$_liba52_internal" = auto ; then
6511 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6513 def_liba52='#undef CONFIG_LIBA52'
6514 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6515 if test "$_liba52_internal" = yes ; then
6516 _liba52=yes
6517 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6518 _res_comment="internal"
6519 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6520 _liba52=no
6521 cat > $TMPC << EOF
6522 #include <inttypes.h>
6523 #include <a52dec/a52.h>
6524 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6526 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6528 if test "$_liba52" = yes ; then
6529 def_liba52='#define CONFIG_LIBA52 1'
6530 _codecmodules="liba52($_res_comment) $_codecmodules"
6531 else
6532 _nocodecmodules="liba52 $_nocodecmodules"
6534 echores "$_liba52"
6536 echocheck "internal libmpeg2 support"
6537 if test "$_libmpeg2" = auto ; then
6538 _libmpeg2=yes
6539 if alpha && test cc_vendor=gnu; then
6540 case $cc_version in
6541 2*|3.0*|3.1*) # cannot compile MVI instructions
6542 _libmpeg2=no
6543 _res_comment="broken gcc"
6545 esac
6548 if test "$_libmpeg2" = yes ; then
6549 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6550 _codecmodules="libmpeg2(internal) $_codecmodules"
6551 else
6552 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6553 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6555 echores "$_libmpeg2"
6557 echocheck "libdca support"
6558 if test "$_libdca" = auto ; then
6559 _libdca=no
6560 cat > $TMPC << EOF
6561 #include <inttypes.h>
6562 #include <dts.h>
6563 int main(void) { dts_init(0); return 0; }
6565 for _ld_dca in -ldts -ldca ; do
6566 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6567 && _libdca=yes && break
6568 done
6570 if test "$_libdca" = yes ; then
6571 def_libdca='#define CONFIG_LIBDCA 1'
6572 _codecmodules="libdca $_codecmodules"
6573 else
6574 def_libdca='#undef CONFIG_LIBDCA'
6575 _nocodecmodules="libdca $_nocodecmodules"
6577 echores "$_libdca"
6579 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6580 if test "$_musepack" = auto ; then
6581 _musepack=no
6582 cat > $TMPC << EOF
6583 #include <stddef.h>
6584 #include <mpcdec/mpcdec.h>
6585 int main(void) {
6586 mpc_streaminfo info;
6587 mpc_decoder decoder;
6588 mpc_decoder_set_streaminfo(&decoder, &info);
6589 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6590 return 0;
6593 cc_check -lmpcdec $_ld_lm && _musepack=yes
6595 if test "$_musepack" = yes ; then
6596 def_musepack='#define CONFIG_MUSEPACK 1'
6597 extra_ldflags="$extra_ldflags -lmpcdec"
6598 _codecmodules="musepack $_codecmodules"
6599 else
6600 def_musepack='#undef CONFIG_MUSEPACK'
6601 _nocodecmodules="musepack $_nocodecmodules"
6603 echores "$_musepack"
6606 echocheck "FAAC support"
6607 if test "$_faac" = auto ; then
6608 cat > $TMPC <<EOF
6609 #include <inttypes.h>
6610 #include <faac.h>
6611 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6613 _faac=no
6614 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6615 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6616 done
6618 if test "$_faac" = yes ; then
6619 def_faac="#define CONFIG_FAAC 1"
6620 test "$_faac_lavc" = auto && _faac_lavc=yes
6621 if test "$_faac_lavc" = yes ; then
6622 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6623 libs_mplayer="$libs_mplayer $_ld_faac"
6624 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6626 _codecmodules="faac $_codecmodules"
6627 else
6628 _faac_lavc=no
6629 def_faac="#undef CONFIG_FAAC"
6630 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6631 _nocodecmodules="faac $_nocodecmodules"
6633 _res_comment="in libavcodec: $_faac_lavc"
6634 echores "$_faac"
6637 echocheck "FAAD2 support"
6638 if test "$_faad_internal" = auto ; then
6639 if x86_32 && test cc_vendor=gnu; then
6640 case $cc_version in
6641 3.1*|3.2) # ICE/insn with these versions
6642 _faad_internal=no
6643 _res_comment="broken gcc"
6646 _faad=yes
6647 _faad_internal=yes
6649 esac
6650 else
6651 _faad=yes
6652 _faad_internal=yes
6655 if test "$_faad" = auto ; then
6656 cat > $TMPC << EOF
6657 #include <faad.h>
6658 #ifndef FAAD_MIN_STREAMSIZE
6659 #error Too old version
6660 #endif
6661 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6662 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6664 cc_check -lfaad $_ld_lm && _faad=yes
6667 def_faad='#undef CONFIG_FAAD'
6668 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6669 if test "$_faad_internal" = yes ; then
6670 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6671 _res_comment="internal floating-point"
6672 if test "$_faad_fixed" = yes ; then
6673 # The FIXED_POINT implementation of FAAD2 improves performance
6674 # on some platforms, especially for SBR files.
6675 cflags_faad_fixed="-DFIXED_POINT"
6676 _res_comment="internal fixed-point"
6678 elif test "$_faad" = yes ; then
6679 extra_ldflags="$extra_ldflags -lfaad"
6682 if test "$_faad" = yes ; then
6683 def_faad='#define CONFIG_FAAD 1'
6684 if test "$_faad_internal" = yes ; then
6685 _codecmodules="faad2(internal) $_codecmodules"
6686 else
6687 _codecmodules="faad2 $_codecmodules"
6689 else
6690 _faad=no
6691 _nocodecmodules="faad2 $_nocodecmodules"
6693 echores "$_faad"
6696 echocheck "LADSPA plugin support"
6697 if test "$_ladspa" = auto ; then
6698 cat > $TMPC <<EOF
6699 #include <stdio.h>
6700 #include <ladspa.h>
6701 int main(void) {
6702 const LADSPA_Descriptor *ld = NULL;
6703 return 0;
6706 _ladspa=no
6707 cc_check && _ladspa=yes
6709 if test "$_ladspa" = yes; then
6710 def_ladspa="#define CONFIG_LADSPA 1"
6711 else
6712 def_ladspa="#undef CONFIG_LADSPA"
6714 echores "$_ladspa"
6717 echocheck "libbs2b audio filter support"
6718 if test "$_libbs2b" = auto ; then
6719 cat > $TMPC <<EOF
6720 #include <bs2b.h>
6721 #if BS2B_VERSION_MAJOR < 3
6722 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6723 #endif
6724 int main(void) {
6725 t_bs2bdp filter;
6726 filter=bs2b_open();
6727 bs2b_close(filter);
6728 return 0;
6731 _libbs2b=no
6732 if $_pkg_config --exists libbs2b ; then
6733 _inc_tmp=$($_pkg_config --cflags libbs2b)
6734 _ld_tmp=$($_pkg_config --libs libbs2b)
6735 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6736 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6737 else
6738 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6739 -I/usr/local/include/bs2b ; do
6740 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6741 extra_ldflags="$extra_ldflags -lbs2b"
6742 extra_cflags="$extra_cflags $_inc_tmp"
6743 _libbs2b=yes
6744 break
6746 done
6749 def_libbs2b="#undef CONFIG_LIBBS2B"
6750 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6751 echores "$_libbs2b"
6754 if test -z "$_codecsdir" ; then
6755 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6756 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6757 if test -d "$dir" ; then
6758 _codecsdir="$dir"
6759 break;
6761 done
6763 # Fall back on default directory.
6764 if test -z "$_codecsdir" ; then
6765 _codecsdir="$_libdir/codecs"
6766 mingw32 && _codecsdir="codecs"
6767 os2 && _codecsdir="codecs"
6771 echocheck "Win32 codecs"
6772 if test "$_win32dll" = auto ; then
6773 _win32dll=no
6774 if x86_32 && ! qnx; then
6775 _win32dll=yes
6778 if test "$_win32dll" = yes ; then
6779 def_win32dll='#define CONFIG_WIN32DLL 1'
6780 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6781 _res_comment="using $_win32codecsdir"
6782 if ! win32 ; then
6783 def_win32_loader='#define WIN32_LOADER 1'
6784 _win32_emulation=yes
6785 else
6786 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6787 _res_comment="using native windows"
6789 _codecmodules="win32 $_codecmodules"
6790 else
6791 def_win32dll='#undef CONFIG_WIN32DLL'
6792 def_win32_loader='#undef WIN32_LOADER'
6793 _nocodecmodules="win32 $_nocodecmodules"
6795 echores "$_win32dll"
6798 echocheck "XAnim codecs"
6799 if test "$_xanim" = auto ; then
6800 _xanim=no
6801 _res_comment="dynamic loader support needed"
6802 if test "$_dl" = yes ; then
6803 _xanim=yes
6806 if test "$_xanim" = yes ; then
6807 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6808 def_xanim='#define CONFIG_XANIM 1'
6809 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6810 _codecmodules="xanim $_codecmodules"
6811 _res_comment="using $_xanimcodecsdir"
6812 else
6813 def_xanim='#undef CONFIG_XANIM'
6814 def_xanim_path='#undef XACODEC_PATH'
6815 _nocodecmodules="xanim $_nocodecmodules"
6817 echores "$_xanim"
6820 echocheck "RealPlayer codecs"
6821 if test "$_real" = auto ; then
6822 _real=no
6823 _res_comment="dynamic loader support needed"
6824 if test "$_dl" = yes || test "$_win32dll" = yes &&
6825 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6826 _real=yes
6829 if test "$_real" = yes ; then
6830 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6831 def_real='#define CONFIG_REALCODECS 1'
6832 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6833 _codecmodules="real $_codecmodules"
6834 _res_comment="using $_realcodecsdir"
6835 else
6836 def_real='#undef CONFIG_REALCODECS'
6837 def_real_path="#undef REALCODEC_PATH"
6838 _nocodecmodules="real $_nocodecmodules"
6840 echores "$_real"
6843 echocheck "QuickTime codecs"
6844 _qtx_emulation=no
6845 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6846 if test "$_qtx" = auto ; then
6847 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6849 if test "$_qtx" = yes ; then
6850 def_qtx='#define CONFIG_QTX_CODECS 1'
6851 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6852 _codecmodules="qtx $_codecmodules"
6853 darwin || win32 || _qtx_emulation=yes
6854 else
6855 def_qtx='#undef CONFIG_QTX_CODECS'
6856 _nocodecmodules="qtx $_nocodecmodules"
6858 echores "$_qtx"
6860 echocheck "Nemesi Streaming Media libraries"
6861 if test "$_nemesi" = auto && test "$_network" = yes ; then
6862 _nemesi=no
6863 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6864 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6865 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6866 _nemesi=yes
6869 if test "$_nemesi" = yes; then
6870 _native_rtsp=no
6871 def_nemesi='#define CONFIG_LIBNEMESI 1'
6872 _inputmodules="nemesi $_inputmodules"
6873 else
6874 _native_rtsp="$_network"
6875 _nemesi=no
6876 def_nemesi='#undef CONFIG_LIBNEMESI'
6877 _noinputmodules="nemesi $_noinputmodules"
6879 echores "$_nemesi"
6881 echocheck "LIVE555 Streaming Media libraries"
6882 if test "$_live" = auto && test "$_network" = yes ; then
6883 cat > $TMPCPP << EOF
6884 #include <liveMedia.hh>
6885 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6886 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6887 #endif
6888 int main(void) { return 0; }
6891 _live=no
6892 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
6893 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6894 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6895 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6896 $_livelibdir/groupsock/libgroupsock.a \
6897 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6898 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6899 $extra_ldflags -lstdc++" \
6900 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6901 -I$_livelibdir/UsageEnvironment/include \
6902 -I$_livelibdir/BasicUsageEnvironment/include \
6903 -I$_livelibdir/groupsock/include" && \
6904 _live=yes && break
6905 done
6906 if test "$_live" != yes ; then
6907 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6908 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6909 _live_dist=yes
6913 if test "$_live" = yes && test "$_network" = yes; then
6914 test $_livelibdir && _res_comment="using $_livelibdir"
6915 def_live='#define CONFIG_LIVE555 1'
6916 _inputmodules="live555 $_inputmodules"
6917 elif test "$_live_dist" = yes && test "$_network" = yes; then
6918 _res_comment="using distribution version"
6919 _live="yes"
6920 def_live='#define CONFIG_LIVE555 1'
6921 extra_ldflags="$extra_ldflags $ld_tmp"
6922 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6923 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6924 _inputmodules="live555 $_inputmodules"
6925 else
6926 _live=no
6927 def_live='#undef CONFIG_LIVE555'
6928 _noinputmodules="live555 $_noinputmodules"
6930 echores "$_live"
6933 echocheck "FFmpeg libavutil"
6934 if test "$_libavutil_a" = auto ; then
6935 if test -d libavutil ; then
6936 _libavutil_a=yes
6937 _res_comment="static"
6938 else
6939 die "MPlayer will not compile without libavutil in the source tree."
6941 elif test "$_libavutil_so" = auto ; then
6942 _libavutil_so=no
6943 cat > $TMPC << EOF
6944 #include <libavutil/common.h>
6945 int main(void) { av_gcd(1,1); return 0; }
6947 if $_pkg_config --exists libavutil ; then
6948 _inc_libavutil=$($_pkg_config --cflags libavutil)
6949 _ld_tmp=$($_pkg_config --libs libavutil)
6950 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6951 && _libavutil_so=yes
6952 elif cc_check -lavutil $_ld_lm ; then
6953 extra_ldflags="$extra_ldflags -lavutil"
6954 _libavutil_so=yes
6955 _res_comment="using libavutil.so, but static libavutil is recommended"
6958 _libavutil=no
6959 def_libavutil='#undef CONFIG_LIBAVUTIL'
6960 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
6961 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
6962 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6963 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6964 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
6965 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
6966 # neither static nor shared libavutil is available, but it is mandatory ...
6967 if test "$_libavutil" = no ; then
6968 die "You need static or shared libavutil, MPlayer will not compile without!"
6970 echores "$_libavutil"
6972 echocheck "FFmpeg libavcodec"
6973 if test "$_libavcodec_a" = auto ; then
6974 _libavcodec_a=no
6975 if test -d libavcodec && test -f libavcodec/utils.c ; then
6976 _libavcodec_a="yes"
6977 _res_comment="static"
6979 elif test "$_libavcodec_so" = auto ; then
6980 _libavcodec_so=no
6981 _res_comment="libavcodec.so is discouraged over static libavcodec"
6982 cat > $TMPC << EOF
6983 #include <libavcodec/avcodec.h>
6984 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6986 if $_pkg_config --exists libavcodec ; then
6987 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6988 _ld_tmp=$($_pkg_config --libs libavcodec)
6989 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
6990 && _libavcodec_so=yes
6991 elif cc_check -lavcodec $_ld_lm ; then
6992 extra_ldflags="$extra_ldflags -lavcodec"
6993 _libavcodec_so=yes
6994 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6997 _libavcodec=no
6998 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6999 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7000 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7001 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7002 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7003 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7004 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7005 test "$_libavcodec_mpegaudio_hp" = yes \
7006 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
7007 if test "$_libavcodec_a" = yes ; then
7008 _codecmodules="libavcodec(internal) $_codecmodules"
7009 elif test "$_libavcodec_so" = yes ; then
7010 _codecmodules="libavcodec.so $_codecmodules"
7011 else
7012 _nocodecmodules="libavcodec $_nocodecmodules"
7014 echores "$_libavcodec"
7016 echocheck "FFmpeg libavformat"
7017 if test "$_libavformat_a" = auto ; then
7018 _libavformat_a=no
7019 if test -d libavformat && test -f libavformat/utils.c ; then
7020 _libavformat_a=yes
7021 _res_comment="static"
7023 elif test "$_libavformat_so" = auto ; then
7024 _libavformat_so=no
7025 cat > $TMPC <<EOF
7026 #include <libavformat/avformat.h>
7027 #include <libavcodec/opt.h>
7028 int main(void) { av_alloc_format_context(); return 0; }
7030 if $_pkg_config --exists libavformat ; then
7031 _inc_libavformat=$($_pkg_config --cflags libavformat)
7032 _ld_tmp=$($_pkg_config --libs libavformat)
7033 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7034 && _libavformat_so=yes
7035 elif cc_check $_ld_lm -lavformat ; then
7036 extra_ldflags="$extra_ldflags -lavformat"
7037 _libavformat_so=yes
7038 _res_comment="using libavformat.so, but static libavformat is recommended"
7041 _libavformat=no
7042 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7043 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7044 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7045 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7046 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7047 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7048 test "$_libavformat_so" = yes \
7049 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7050 echores "$_libavformat"
7052 echocheck "FFmpeg libpostproc"
7053 if test "$_libpostproc_a" = auto ; then
7054 _libpostproc_a=no
7055 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7056 _libpostproc_a='yes'
7057 _res_comment="static"
7059 elif test "$_libpostproc_so" = auto ; then
7060 _libpostproc_so=no
7061 cat > $TMPC << EOF
7062 #include <inttypes.h>
7063 #include <libpostproc/postprocess.h>
7064 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7066 if cc_check -lpostproc $_ld_lm ; then
7067 extra_ldflags="$extra_ldflags -lpostproc"
7068 _libpostproc_so=yes
7069 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7072 _libpostproc=no
7073 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7074 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7075 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7076 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7077 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7078 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7079 test "$_libpostproc_so" = yes \
7080 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7081 echores "$_libpostproc"
7083 echocheck "FFmpeg libswscale"
7084 if test "$_libswscale_a" = auto ; then
7085 _libswscale_a=no
7086 if test -d libswscale && test -f libswscale/swscale.h ; then
7087 _libswscale_a='yes'
7088 _res_comment="static"
7090 elif test "$_libswscale_so" = auto ; then
7091 _libswscale_so=no
7092 _res_comment="using libswscale.so, but static libswscale is recommended"
7093 cat > $TMPC << EOF
7094 #include <libswscale/swscale.h>
7095 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7097 if $_pkg_config --exists libswscale ; then
7098 _inc_libswscale=$($_pkg_config --cflags libswscale)
7099 _ld_tmp=$($_pkg_config --libs libswscale)
7100 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7101 && _libswscale_so=yes
7102 elif cc_check -lswscale ; then
7103 extra_ldflags="$extra_ldflags -lswscale"
7104 _libswscale_so=yes
7107 _libswscale=no
7108 def_libswscale='#undef CONFIG_LIBSWSCALE'
7109 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7110 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7111 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7112 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7113 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7114 test "$_libswscale_so" = yes \
7115 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7116 echores "$_libswscale"
7118 echocheck "libopencore_amr narrowband"
7119 if test "$_libopencore_amrnb" = auto ; then
7120 _libopencore_amrnb=no
7121 cat > $TMPC << EOF
7122 #include <opencore-amrnb/interf_dec.h>
7123 int main(void) { Decoder_Interface_init(); return 0; }
7125 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7126 if test "$_libavcodec_a" != yes ; then
7127 _libopencore_amrnb=no
7128 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7131 if test "$_libopencore_amrnb" = yes ; then
7132 _libopencore_amr=yes
7133 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7134 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7135 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7136 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7137 _codecmodules="libopencore_amrnb $_codecmodules"
7138 else
7139 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7140 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7142 echores "$_libopencore_amrnb"
7145 echocheck "libopencore_amr wideband"
7146 if test "$_libopencore_amrwb" = auto ; then
7147 _libopencore_amrwb=no
7148 cat > $TMPC << EOF
7149 #include <opencore-amrwb/dec_if.h>
7150 int main(void) { D_IF_init(); return 0; }
7152 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7153 if test "$_libavcodec_a" != yes ; then
7154 _libopencore_amrwb=no
7155 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7158 if test "$_libopencore_amrwb" = yes ; then
7159 _libopencore_amr=yes
7160 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7161 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7162 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7163 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7164 _codecmodules="libopencore_amrwb $_codecmodules"
7165 else
7166 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7167 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7169 echores "$_libopencore_amrwb"
7171 echocheck "libdv-0.9.5+"
7172 if test "$_libdv" = auto ; then
7173 _libdv=no
7174 cat > $TMPC <<EOF
7175 #include <libdv/dv.h>
7176 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7178 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7180 if test "$_libdv" = yes ; then
7181 def_libdv='#define CONFIG_LIBDV095 1'
7182 extra_ldflags="$extra_ldflags -ldv"
7183 _codecmodules="libdv $_codecmodules"
7184 else
7185 def_libdv='#undef CONFIG_LIBDV095'
7186 _nocodecmodules="libdv $_nocodecmodules"
7188 echores "$_libdv"
7191 echocheck "Xvid"
7192 if test "$_xvid" = auto ; then
7193 _xvid=no
7194 cat > $TMPC << EOF
7195 #include <xvid.h>
7196 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7198 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7199 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7200 done
7203 if test "$_xvid" = yes ; then
7204 def_xvid='#define CONFIG_XVID4 1'
7205 _codecmodules="xvid $_codecmodules"
7206 else
7207 def_xvid='#undef CONFIG_XVID4'
7208 _nocodecmodules="xvid $_nocodecmodules"
7210 echores "$_xvid"
7212 echocheck "Xvid two pass plugin"
7213 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7214 cat > $TMPC << EOF
7215 #include <xvid.h>
7216 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7218 cc_check && _xvid_lavc=yes
7220 if test "$_xvid_lavc" = yes ; then
7221 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7222 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7223 else
7224 _xvid_lavc=no
7225 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7227 echores "$_xvid_lavc"
7230 echocheck "x264"
7231 if test "$_x264" = auto ; then
7232 cat > $TMPC << EOF
7233 #include <inttypes.h>
7234 #include <x264.h>
7235 #if X264_BUILD < 78
7236 #error We do not support old versions of x264. Get the latest from git.
7237 #endif
7238 int main(void) { x264_encoder_open((void*)0); return 0; }
7240 _x264=no
7241 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7242 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7243 done
7246 if test "$_x264" = yes ; then
7247 def_x264='#define CONFIG_X264 1'
7248 _codecmodules="x264 $_codecmodules"
7249 test "$_x264_lavc" = auto && _x264_lavc=yes
7250 if test "$_x264_lavc" = yes ; then
7251 def_x264_lavc='#define CONFIG_LIBX264 1'
7252 libs_mplayer="$libs_mplayer $_ld_x264"
7253 _libavencoders="$_libavencoders LIBX264_ENCODER"
7255 else
7256 _x264_lavc=no
7257 def_x264='#undef CONFIG_X264'
7258 def_x264_lavc='#define CONFIG_LIBX264 0'
7259 _nocodecmodules="x264 $_nocodecmodules"
7261 _res_comment="in libavcodec: $_x264_lavc"
7262 echores "$_x264"
7265 echocheck "libdirac"
7266 if test "$_libdirac_lavc" = auto; then
7267 _libdirac_lavc=no
7268 if test "$_libavcodec_a" != yes; then
7269 _res_comment="libavcodec (static) is required by libdirac, sorry"
7270 else
7271 cat > $TMPC << EOF
7272 #include <libdirac_encoder/dirac_encoder.h>
7273 #include <libdirac_decoder/dirac_parser.h>
7274 int main(void)
7276 dirac_encoder_context_t enc_ctx;
7277 dirac_decoder_t *dec_handle;
7278 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7279 dec_handle = dirac_decoder_init(0);
7280 if (dec_handle)
7281 dirac_decoder_close(dec_handle);
7282 return 0;
7285 if $_pkg_config --exists dirac ; then
7286 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7287 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7288 cc_check $_inc_dirac $_ld_dirac &&
7289 _libdirac_lavc=yes &&
7290 extra_cflags="$extra_cflags $_inc_dirac" &&
7291 extra_ldflags="$extra_ldflags $_ld_dirac"
7295 if test "$_libdirac_lavc" = yes ; then
7296 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7297 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7298 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7299 _codecmodules="libdirac $_codecmodules"
7300 else
7301 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7302 _nocodecmodules="libdirac $_nocodecmodules"
7304 echores "$_libdirac_lavc"
7307 echocheck "libschroedinger"
7308 if test "$_libschroedinger_lavc" = auto ; then
7309 _libschroedinger_lavc=no
7310 if test "$_libavcodec_a" != yes; then
7311 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7312 else
7313 cat > $TMPC << EOF
7314 #include <schroedinger/schro.h>
7315 int main(void) { schro_init(); return 0; }
7317 if $_pkg_config --exists schroedinger-1.0 ; then
7318 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7319 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7320 cc_check $_inc_schroedinger $_ld_schroedinger &&
7321 _libschroedinger_lavc=yes &&
7322 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7323 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7327 if test "$_libschroedinger_lavc" = yes ; then
7328 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7329 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7330 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7331 _codecmodules="libschroedinger $_codecmodules"
7332 else
7333 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7334 _nocodecmodules="libschroedinger $_nocodecmodules"
7336 echores "$_libschroedinger_lavc"
7338 echocheck "libnut"
7339 if test "$_libnut" = auto ; then
7340 cat > $TMPC << EOF
7341 #include <stdio.h>
7342 #include <stdlib.h>
7343 #include <inttypes.h>
7344 #include <libnut.h>
7345 nut_context_tt * nut;
7346 int main(void) { (void)nut_error(0); return 0; }
7348 _libnut=no
7349 cc_check -lnut && _libnut=yes
7352 if test "$_libnut" = yes ; then
7353 def_libnut='#define CONFIG_LIBNUT 1'
7354 extra_ldflags="$extra_ldflags -lnut"
7355 else
7356 def_libnut='#undef CONFIG_LIBNUT'
7358 echores "$_libnut"
7360 #check must be done after libavcodec one
7361 echocheck "zr"
7362 if test "$_zr" = auto ; then
7363 #36067's seem to identify themselves as 36057PQC's, so the line
7364 #below should work for 36067's and 36057's.
7365 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7366 _zr=yes
7367 else
7368 _zr=no
7371 if test "$_zr" = yes ; then
7372 if test "$_libavcodec_a" = yes ; then
7373 def_zr='#define CONFIG_ZR 1'
7374 _vomodules="zr zr2 $_vomodules"
7375 else
7376 _res_comment="libavcodec (static) is required by zr, sorry"
7377 _novomodules="zr $_novomodules"
7378 def_zr='#undef CONFIG_ZR'
7380 else
7381 def_zr='#undef CONFIG_ZR'
7382 _novomodules="zr zr2 $_novomodules"
7384 echores "$_zr"
7386 # mencoder requires (optional) those libs: libmp3lame
7387 if test "$_mencoder" != no ; then
7389 echocheck "libmp3lame"
7390 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7391 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7392 if test "$_mp3lame" = auto ; then
7393 _mp3lame=no
7394 cat > $TMPC <<EOF
7395 #include <lame/lame.h>
7396 int main(void) { lame_version_t lv; (void) lame_init();
7397 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7398 return 0; }
7400 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7402 if test "$_mp3lame" = yes ; then
7403 def_mp3lame="#define CONFIG_MP3LAME 1"
7404 _ld_mp3lame=-lmp3lame
7405 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7406 cat > $TMPC << EOF
7407 #include <lame/lame.h>
7408 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7410 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7411 cat > $TMPC << EOF
7412 #include <lame/lame.h>
7413 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7415 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7416 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7417 if test "$_mp3lame_lavc" = yes ; then
7418 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7419 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7420 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7422 else
7423 _mp3lame_lavc=no
7424 def_mp3lame='#undef CONFIG_MP3LAME'
7425 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7427 _res_comment="in libavcodec: $_mp3lame_lavc"
7428 echores "$_mp3lame"
7430 fi # test "$_mencoder" != no
7432 echocheck "mencoder"
7433 if test "$_mencoder" = yes ; then
7434 def_muxers='#define CONFIG_MUXERS 1'
7435 else
7436 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7437 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7438 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7439 _libavmuxers=""
7440 def_muxers='#define CONFIG_MUXERS 0'
7442 echores "$_mencoder"
7445 echocheck "UnRAR executable"
7446 if test "$_unrar_exec" = auto ; then
7447 _unrar_exec="yes"
7448 mingw32 && _unrar_exec="no"
7450 if test "$_unrar_exec" = yes ; then
7451 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7452 else
7453 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7455 echores "$_unrar_exec"
7457 echocheck "TV interface"
7458 if test "$_tv" = yes ; then
7459 def_tv='#define CONFIG_TV 1'
7460 _inputmodules="tv $_inputmodules"
7461 else
7462 _noinputmodules="tv $_noinputmodules"
7463 def_tv='#undef CONFIG_TV'
7465 echores "$_tv"
7468 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7469 echocheck "*BSD BT848 bt8xx header"
7470 _ioctl_bt848_h=no
7471 for file in "machine/ioctl_bt848.h" \
7472 "dev/bktr/ioctl_bt848.h" \
7473 "dev/video/bktr/ioctl_bt848.h" \
7474 "dev/ic/bt8xx.h" ; do
7475 cat > $TMPC <<EOF
7476 #include <sys/types.h>
7477 #include <sys/ioctl.h>
7478 #include <$file>
7479 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7481 if cc_check ; then
7482 _ioctl_bt848_h=yes
7483 _ioctl_bt848_h_name="$file"
7484 break;
7486 done
7487 if test "$_ioctl_bt848_h" = yes ; then
7488 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7489 _res_comment="using $_ioctl_bt848_h_name"
7490 else
7491 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7493 echores "$_ioctl_bt848_h"
7495 echocheck "*BSD ioctl_meteor.h"
7496 _ioctl_meteor_h=no
7497 for file in "machine/ioctl_meteor.h" \
7498 "dev/bktr/ioctl_meteor.h" \
7499 "dev/video/bktr/ioctl_meteor.h" ; do
7500 cat > $TMPC <<EOF
7501 #include <sys/types.h>
7502 #include <$file>
7503 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7505 if cc_check ; then
7506 _ioctl_meteor_h=yes
7507 _ioctl_meteor_h_name="$file"
7508 break;
7510 done
7511 if test "$_ioctl_meteor_h" = yes ; then
7512 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7513 _res_comment="using $_ioctl_meteor_h_name"
7514 else
7515 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7517 echores "$_ioctl_meteor_h"
7519 echocheck "*BSD BrookTree 848 TV interface"
7520 if test "$_tv_bsdbt848" = auto ; then
7521 _tv_bsdbt848=no
7522 if test "$_tv" = yes ; then
7523 cat > $TMPC <<EOF
7524 #include <sys/types.h>
7525 $def_ioctl_meteor_h_name
7526 $def_ioctl_bt848_h_name
7527 #ifdef IOCTL_METEOR_H_NAME
7528 #include IOCTL_METEOR_H_NAME
7529 #endif
7530 #ifdef IOCTL_BT848_H_NAME
7531 #include IOCTL_BT848_H_NAME
7532 #endif
7533 int main(void) {
7534 ioctl(0, METEORSINPUT, 0);
7535 ioctl(0, TVTUNER_GETFREQ, 0);
7536 return 0;
7539 cc_check && _tv_bsdbt848=yes
7542 if test "$_tv_bsdbt848" = yes ; then
7543 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7544 _inputmodules="tv-bsdbt848 $_inputmodules"
7545 else
7546 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7547 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7549 echores "$_tv_bsdbt848"
7550 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7553 echocheck "DirectShow TV interface"
7554 if test "$_tv_dshow" = auto ; then
7555 _tv_dshow=no
7556 if test "$_tv" = yes && win32 ; then
7557 cat > $TMPC <<EOF
7558 #include <ole2.h>
7559 int main(void) {
7560 void* p;
7561 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7562 return 0;
7565 cc_check -lole32 -luuid && _tv_dshow=yes
7568 if test "$_tv_dshow" = yes ; then
7569 _inputmodules="tv-dshow $_inputmodules"
7570 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7571 extra_ldflags="$extra_ldflags -lole32 -luuid"
7572 else
7573 _noinputmodules="tv-dshow $_noinputmodules"
7574 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7576 echores "$_tv_dshow"
7579 echocheck "Video 4 Linux TV interface"
7580 if test "$_tv_v4l1" = auto ; then
7581 _tv_v4l1=no
7582 if test "$_tv" = yes && linux ; then
7583 cat > $TMPC <<EOF
7584 #include <stdlib.h>
7585 #include <linux/videodev.h>
7586 int main(void) { return 0; }
7588 cc_check && _tv_v4l1=yes
7591 if test "$_tv_v4l1" = yes ; then
7592 _audio_input=yes
7593 _tv_v4l=yes
7594 def_tv_v4l='#define CONFIG_TV_V4L 1'
7595 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7596 _inputmodules="tv-v4l $_inputmodules"
7597 else
7598 _noinputmodules="tv-v4l1 $_noinputmodules"
7599 def_tv_v4l='#undef CONFIG_TV_V4L'
7601 echores "$_tv_v4l1"
7604 echocheck "Video 4 Linux 2 TV interface"
7605 if test "$_tv_v4l2" = auto ; then
7606 _tv_v4l2=no
7607 if test "$_tv" = yes && linux ; then
7608 cat > $TMPC <<EOF
7609 #include <stdlib.h>
7610 #include <linux/types.h>
7611 #include <linux/videodev2.h>
7612 int main(void) { return 0; }
7614 cc_check && _tv_v4l2=yes
7617 if test "$_tv_v4l2" = yes ; then
7618 _audio_input=yes
7619 _tv_v4l=yes
7620 def_tv_v4l='#define CONFIG_TV_V4L 1'
7621 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7622 _inputmodules="tv-v4l2 $_inputmodules"
7623 else
7624 _noinputmodules="tv-v4l2 $_noinputmodules"
7625 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7627 echores "$_tv_v4l2"
7630 echocheck "Radio interface"
7631 if test "$_radio" = yes ; then
7632 def_radio='#define CONFIG_RADIO 1'
7633 _inputmodules="radio $_inputmodules"
7634 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7635 _radio_capture=no
7637 if test "$_radio_capture" = yes ; then
7638 _audio_input=yes
7639 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7640 else
7641 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7643 else
7644 _noinputmodules="radio $_noinputmodules"
7645 def_radio='#undef CONFIG_RADIO'
7646 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7647 _radio_capture=no
7649 echores "$_radio"
7650 echocheck "Capture for Radio interface"
7651 echores "$_radio_capture"
7653 echocheck "Video 4 Linux 2 Radio interface"
7654 if test "$_radio_v4l2" = auto ; then
7655 _radio_v4l2=no
7656 if test "$_radio" = yes && linux ; then
7657 cat > $TMPC <<EOF
7658 #include <stdlib.h>
7659 #include <linux/types.h>
7660 #include <linux/videodev2.h>
7661 int main(void) { return 0; }
7663 cc_check && _radio_v4l2=yes
7666 if test "$_radio_v4l2" = yes ; then
7667 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7668 else
7669 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7671 echores "$_radio_v4l2"
7673 echocheck "Video 4 Linux Radio interface"
7674 if test "$_radio_v4l" = auto ; then
7675 _radio_v4l=no
7676 if test "$_radio" = yes && linux ; then
7677 cat > $TMPC <<EOF
7678 #include <stdlib.h>
7679 #include <linux/videodev.h>
7680 int main(void) { return 0; }
7682 cc_check && _radio_v4l=yes
7685 if test "$_radio_v4l" = yes ; then
7686 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7687 else
7688 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7690 echores "$_radio_v4l"
7692 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7693 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7694 echocheck "*BSD BrookTree 848 Radio interface"
7695 _radio_bsdbt848=no
7696 cat > $TMPC <<EOF
7697 #include <sys/types.h>
7698 $def_ioctl_bt848_h_name
7699 #ifdef IOCTL_BT848_H_NAME
7700 #include IOCTL_BT848_H_NAME
7701 #endif
7702 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7704 cc_check && _radio_bsdbt848=yes
7705 echores "$_radio_bsdbt848"
7706 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7708 if test "$_radio_bsdbt848" = yes ; then
7709 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7710 else
7711 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7714 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7715 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7716 die "Radio driver requires BSD BT848, V4L or V4L2!"
7719 echocheck "Video 4 Linux 2 MPEG PVR interface"
7720 if test "$_pvr" = auto ; then
7721 _pvr=no
7722 if test "$_tv_v4l2" = yes && linux ; then
7723 cat > $TMPC <<EOF
7724 #include <stdlib.h>
7725 #include <inttypes.h>
7726 #include <linux/types.h>
7727 #include <linux/videodev2.h>
7728 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7730 cc_check && _pvr=yes
7733 if test "$_pvr" = yes ; then
7734 def_pvr='#define CONFIG_PVR 1'
7735 _inputmodules="pvr $_inputmodules"
7736 else
7737 _noinputmodules="pvr $_noinputmodules"
7738 def_pvr='#undef CONFIG_PVR'
7740 echores "$_pvr"
7743 echocheck "ftp"
7744 if ! beos && test "$_ftp" = yes ; then
7745 def_ftp='#define CONFIG_FTP 1'
7746 _inputmodules="ftp $_inputmodules"
7747 else
7748 _noinputmodules="ftp $_noinputmodules"
7749 def_ftp='#undef CONFIG_FTP'
7751 echores "$_ftp"
7753 echocheck "vstream client"
7754 if test "$_vstream" = auto ; then
7755 _vstream=no
7756 cat > $TMPC <<EOF
7757 #include <vstream-client.h>
7758 void vstream_error(const char *format, ... ) {}
7759 int main(void) { vstream_start(); return 0; }
7761 cc_check -lvstream-client && _vstream=yes
7763 if test "$_vstream" = yes ; then
7764 def_vstream='#define CONFIG_VSTREAM 1'
7765 _inputmodules="vstream $_inputmodules"
7766 extra_ldflags="$extra_ldflags -lvstream-client"
7767 else
7768 _noinputmodules="vstream $_noinputmodules"
7769 def_vstream='#undef CONFIG_VSTREAM'
7771 echores "$_vstream"
7774 echocheck "OSD menu"
7775 if test "$_menu" = yes ; then
7776 def_menu='#define CONFIG_MENU 1'
7777 test $_dvbin = "yes" && _menu_dvbin=yes
7778 else
7779 def_menu='#undef CONFIG_MENU'
7780 _menu_dvbin=no
7782 echores "$_menu"
7785 echocheck "Subtitles sorting"
7786 if test "$_sortsub" = yes ; then
7787 def_sortsub='#define CONFIG_SORTSUB 1'
7788 else
7789 def_sortsub='#undef CONFIG_SORTSUB'
7791 echores "$_sortsub"
7794 echocheck "XMMS inputplugin support"
7795 if test "$_xmms" = yes ; then
7796 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7797 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7798 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7799 else
7800 _xmmsplugindir=/usr/lib/xmms/Input
7801 _xmmslibdir=/usr/lib
7804 def_xmms='#define CONFIG_XMMS 1'
7805 if darwin ; then
7806 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7807 else
7808 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7810 else
7811 def_xmms='#undef CONFIG_XMMS'
7813 echores "$_xmms"
7816 # --------------- GUI specific tests begin -------------------
7817 echocheck "GUI"
7818 echo "$_gui"
7819 if test "$_gui" = yes ; then
7821 # Required libraries
7822 if test "$_libavcodec" != yes ||
7823 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7824 die "The GUI requires libavcodec with PNG support (needs zlib)."
7826 test "$_freetype" = no && test "$_bitmap_font" = no && \
7827 die "The GUI requires either FreeType or bitmap font support."
7828 if ! win32 ; then
7829 _gui_gtk=yes
7830 test "$_x11" != yes && die "X11 support required for GUI compilation."
7832 echocheck "XShape extension"
7833 if test "$_xshape" = auto ; then
7834 _xshape=no
7835 cat > $TMPC << EOF
7836 #include <X11/Xlib.h>
7837 #include <X11/Xproto.h>
7838 #include <X11/Xutil.h>
7839 #include <X11/extensions/shape.h>
7840 #include <stdlib.h>
7841 int main(void) {
7842 char *name = ":0.0";
7843 Display *wsDisplay;
7844 int exitvar = 0;
7845 int eventbase, errorbase;
7846 if (getenv("DISPLAY"))
7847 name=getenv("DISPLAY");
7848 wsDisplay=XOpenDisplay(name);
7849 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7850 exitvar=1;
7851 XCloseDisplay(wsDisplay);
7852 return exitvar;
7855 cc_check -lXext && _xshape=yes
7857 if test "$_xshape" = yes ; then
7858 def_xshape='#define CONFIG_XSHAPE 1'
7859 else
7860 die "The GUI requires the X11 extension XShape (which was not found)."
7862 echores "$_xshape"
7864 #Check for GTK
7865 if test "$_gtk1" = no ; then
7866 #Check for GTK2 :
7867 echocheck "GTK+ version"
7869 if $_pkg_config gtk+-2.0 --exists ; then
7870 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
7871 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
7872 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
7873 echores "$_gtk"
7875 # Check for GLIB2
7876 if $_pkg_config glib-2.0 --exists ; then
7877 echocheck "glib version"
7878 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
7879 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
7880 echores "$_glib"
7882 def_gui='#define CONFIG_GUI 1'
7883 def_gtk2='#define CONFIG_GTK2 1'
7884 else
7885 _gtk1=yes
7886 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7888 else
7889 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7890 _gtk1=yes
7894 if test "$_gtk1" = yes ; then
7895 # Check for old GTK (1.2.x)
7896 echocheck "GTK version"
7897 if test -z "$_gtkconfig" ; then
7898 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7899 _gtkconfig="gtk-config"
7900 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7901 _gtkconfig="gtk12-config"
7902 else
7903 die "The GUI requires GTK devel packages (which were not found)."
7906 _gtk=$($_gtkconfig --version 2>&1)
7907 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
7908 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
7909 echores "$_gtk (using $_gtkconfig)"
7911 # Check for GLIB
7912 echocheck "glib version"
7913 if test -z "$_glibconfig" ; then
7914 if ( glib-config --version ) >/dev/null 2>&1 ; then
7915 _glibconfig="glib-config"
7916 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7917 _glibconfig="glib12-config"
7918 else
7919 die "The GUI requires GLIB devel packages (which were not found)"
7922 _glib=$($_glibconfig --version 2>&1)
7923 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
7924 echores "$_glib (using $_glibconfig)"
7926 def_gui='#define CONFIG_GUI 1'
7927 def_gtk2='#undef CONFIG_GTK2'
7930 else #if ! win32
7931 _gui_win32=yes
7932 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7933 def_gui='#define CONFIG_GUI 1'
7934 def_gtk2='#undef CONFIG_GTK2'
7935 fi #if ! win32
7937 else #if test "$_gui"
7938 def_gui='#undef CONFIG_GUI'
7939 def_gtk2='#undef CONFIG_GTK2'
7940 fi #if test "$_gui"
7941 # --------------- GUI specific tests end -------------------
7944 if test "$_charset" != "noconv" ; then
7945 def_charset="#define MSG_CHARSET \"$_charset\""
7946 else
7947 def_charset="#undef MSG_CHARSET"
7948 _charset="UTF-8"
7951 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7952 echocheck "iconv program"
7953 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7954 if test "$?" -ne 0 ; then
7955 echores "no"
7956 echo "No working iconv program found, use "
7957 echo "--charset=UTF-8 to continue anyway."
7958 echo "If you also have problems with iconv library functions use --charset=noconv."
7959 echo "Messages in the GTK-2 interface will be broken then."
7960 exit 1
7961 else
7962 echores "yes"
7966 #############################################################################
7968 echocheck "automatic gdb attach"
7969 if test "$_crash_debug" = yes ; then
7970 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7971 else
7972 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7973 _crash_debug=no
7975 echores "$_crash_debug"
7977 echocheck "compiler support for noexecstack"
7978 cat > $TMPC <<EOF
7979 int main(void) { return 0; }
7981 if cc_check -Wl,-z,noexecstack ; then
7982 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7983 echores "yes"
7984 else
7985 echores "no"
7989 # Dynamic linking flags
7990 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7991 _ld_dl_dynamic=''
7992 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7993 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7994 _ld_dl_dynamic='-rdynamic'
7997 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7998 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7999 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8001 def_debug='#undef MP_DEBUG'
8002 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8005 echocheck "joystick"
8006 def_joystick='#undef CONFIG_JOYSTICK'
8007 if test "$_joystick" = yes ; then
8008 if linux ; then
8009 # TODO add some check
8010 def_joystick='#define CONFIG_JOYSTICK 1'
8011 else
8012 _joystick="no"
8013 _res_comment="unsupported under $system_name"
8016 echores "$_joystick"
8018 echocheck "lirc"
8019 if test "$_lirc" = auto ; then
8020 _lirc=no
8021 cat > $TMPC <<EOF
8022 #include <lirc/lirc_client.h>
8023 int main(void) { return 0; }
8025 cc_check -llirc_client && _lirc=yes
8027 if test "$_lirc" = yes ; then
8028 def_lirc='#define CONFIG_LIRC 1'
8029 libs_mplayer="$libs_mplayer -llirc_client"
8030 else
8031 def_lirc='#undef CONFIG_LIRC'
8033 echores "$_lirc"
8035 echocheck "lircc"
8036 if test "$_lircc" = auto ; then
8037 _lircc=no
8038 cat > $TMPC <<EOF
8039 #include <lirc/lircc.h>
8040 int main(void) { return 0; }
8042 cc_check -llircc && _lircc=yes
8044 if test "$_lircc" = yes ; then
8045 def_lircc='#define CONFIG_LIRCC 1'
8046 libs_mplayer="$libs_mplayer -llircc"
8047 else
8048 def_lircc='#undef CONFIG_LIRCC'
8050 echores "$_lircc"
8052 if arm; then
8053 # Detect maemo development platform libraries availability (http://www.maemo.org),
8054 # they are used when run on Nokia 770|8x0
8055 echocheck "maemo (Nokia 770|8x0)"
8056 if test "$_maemo" = auto ; then
8057 _maemo=no
8058 cat > $TMPC << EOF
8059 #include <libosso.h>
8060 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8062 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8064 if test "$_maemo" = yes ; then
8065 def_maemo='#define CONFIG_MAEMO 1'
8066 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8067 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8068 else
8069 def_maemo='#undef CONFIG_MAEMO'
8071 echores "$_maemo"
8074 #############################################################################
8076 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8077 # the OMF format needs to come after the 'extern symbol prefix' check, which
8078 # uses nm.
8079 if os2 ; then
8080 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8083 # linker paths should be the same for mencoder and mplayer
8084 _ld_tmp=""
8085 for I in $libs_mplayer ; do
8086 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8087 if test -z "$_tmp" ; then
8088 extra_ldflags="$extra_ldflags $I"
8089 else
8090 _ld_tmp="$_ld_tmp $I"
8092 done
8093 libs_mplayer=$_ld_tmp
8096 #############################################################################
8097 # 64 bit file offsets?
8098 if test "$_largefiles" = yes || freebsd ; then
8099 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8100 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8101 # dvdread support requires this (for off64_t)
8102 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8106 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8108 # This must be the last test to be performed. Any other tests following it
8109 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8110 # against libdvdread (to permit MPlayer to use its own copy of the library).
8111 # So any compilation using the flags added here but not linking against
8112 # libdvdread can fail.
8113 echocheck "DVD support (libdvdnav)"
8114 dvdnav_internal=no
8115 if test "$_dvdnav" = auto ; then
8116 if test "$_dvdread_internal" = yes ; then
8117 _dvdnav=yes
8118 dvdnav_internal=yes
8119 _res_comment="internal"
8120 else
8121 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8124 if test "$_dvdnav" = auto ; then
8125 cat > $TMPC <<EOF
8126 #include <inttypes.h>
8127 #include <dvdnav/dvdnav.h>
8128 int main(void) { dvdnav_t *dvd=0; return 0; }
8130 _dvdnav=no
8131 _dvdnavdir=$($_dvdnavconfig --cflags)
8132 _dvdnavlibs=$($_dvdnavconfig --libs)
8133 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8135 if test "$_dvdnav" = yes ; then
8136 _largefiles=yes
8137 def_dvdnav='#define CONFIG_DVDNAV 1'
8138 if test "$dvdnav_internal" = yes ; then
8139 cflags_libdvdnav="-Ilibdvdnav"
8140 _inputmodules="dvdnav(internal) $_inputmodules"
8141 else
8142 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8143 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8144 _inputmodules="dvdnav $_inputmodules"
8146 else
8147 def_dvdnav='#undef CONFIG_DVDNAV'
8148 _noinputmodules="dvdnav $_noinputmodules"
8150 echores "$_dvdnav"
8152 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8153 # Read dvdnav comment above.
8155 #############################################################################
8156 echo "Creating config.mak"
8157 cat > config.mak << EOF
8158 # -------- Generated by configure -----------
8160 # Ensure that locale settings do not interfere with shell commands.
8161 export LC_ALL = C
8163 CONFIGURATION = $_configuration
8165 CHARSET = $_charset
8166 DOC_LANGS = $language_doc
8167 DOC_LANG_ALL = $doc_lang_all
8168 MAN_LANGS = $language_man
8169 MAN_LANG_ALL = $man_lang_all
8171 prefix = \$(DESTDIR)$_prefix
8172 BINDIR = \$(DESTDIR)$_bindir
8173 DATADIR = \$(DESTDIR)$_datadir
8174 LIBDIR = \$(DESTDIR)$_libdir
8175 MANDIR = \$(DESTDIR)$_mandir
8176 CONFDIR = \$(DESTDIR)$_confdir
8178 AR = $_ar
8179 AS = $_cc
8180 CC = $_cc
8181 CXX = $_cc
8182 HOST_CC = $_host_cc
8183 YASM = $_yasm
8184 INSTALL = $_install
8185 INSTALLSTRIP = $_install_strip
8186 RANLIB = $_ranlib
8187 WINDRES = $_windres
8189 CFLAGS = $CFLAGS $extra_cflags
8190 OPTFLAGS = $CFLAGS $extra_cflags
8191 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8192 CFLAGS_DHAHELPER = $cflags_dhahelper
8193 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8194 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8195 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8196 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8197 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8198 CFLAGS_STACKREALIGN = $cflags_stackrealign
8199 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8200 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8201 YASMFLAGS = $YASMFLAGS
8203 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8204 EXTRALIBS_MPLAYER = $libs_mplayer
8205 EXTRALIBS_MENCODER = $libs_mencoder
8207 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8209 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 &,"
8210 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 &,"
8212 GETCH = $_getch
8213 HELP_FILE = $_mp_help
8214 TIMER = $_timer
8216 EXESUF = $_exesuf
8217 EXESUFS_ALL = .exe
8219 $_target_arch
8220 $_target_subarch
8221 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8223 MENCODER = $_mencoder
8224 MPLAYER = $_mplayer
8226 NEED_GETTIMEOFDAY = $_need_gettimeofday
8227 NEED_GLOB = $_need_glob
8228 NEED_MMAP = $_need_mmap
8229 NEED_SETENV = $_need_setenv
8230 NEED_SHMEM = $_need_shmem
8231 NEED_STRSEP = $_need_strsep
8232 NEED_SWAB = $_need_swab
8233 NEED_VSSCANF = $_need_vsscanf
8235 # features
8236 3DFX = $_3dfx
8237 AA = $_aa
8238 ALSA1X = $_alsa1x
8239 ALSA9 = $_alsa9
8240 ALSA5 = $_alsa5
8241 APPLE_IR = $_apple_ir
8242 APPLE_REMOTE = $_apple_remote
8243 ARTS = $_arts
8244 AUDIO_INPUT = $_audio_input
8245 BITMAP_FONT = $_bitmap_font
8246 BL = $_bl
8247 CACA = $_caca
8248 CDDA = $_cdda
8249 CDDB = $_cddb
8250 COREAUDIO = $_coreaudio
8251 COREVIDEO = $_corevideo
8252 DART = $_dart
8253 DFBMGA = $_dfbmga
8254 DGA = $_dga
8255 DIRECT3D = $_direct3d
8256 DIRECTFB = $_directfb
8257 DIRECTX = $_directx
8258 DVBIN = $_dvbin
8259 DVDNAV = $_dvdnav
8260 DVDNAV_INTERNAL = $dvdnav_internal
8261 DVDREAD = $_dvdread
8262 DVDREAD_INTERNAL = $_dvdread_internal
8263 DXR2 = $_dxr2
8264 DXR3 = $_dxr3
8265 ESD = $_esd
8266 FAAC=$_faac
8267 FAAD = $_faad
8268 FAAD_INTERNAL = $_faad_internal
8269 FASTMEMCPY = $_fastmemcpy
8270 FBDEV = $_fbdev
8271 FREETYPE = $_freetype
8272 FTP = $_ftp
8273 GIF = $_gif
8274 GGI = $_ggi
8275 GL = $_gl
8276 GL_WIN32 = $_gl_win32
8277 GUI = $_gui
8278 GUI_GTK = $_gui_gtk
8279 GUI_WIN32 = $_gui_win32
8280 HAVE_POSIX_SELECT = $_posix_select
8281 HAVE_SYS_MMAN_H = $_mman
8282 IVTV = $_ivtv
8283 JACK = $_jack
8284 JOYSTICK = $_joystick
8285 JPEG = $_jpeg
8286 KVA = $_kva
8287 LADSPA = $_ladspa
8288 LIBA52 = $_liba52
8289 LIBA52_INTERNAL = $_liba52_internal
8290 LIBASS = $_ass
8291 LIBBS2B = $_libbs2b
8292 LIBDCA = $_libdca
8293 LIBDV = $_libdv
8294 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8295 LIBLZO = $_liblzo
8296 LIBMAD = $_mad
8297 LIBMENU = $_menu
8298 LIBMENU_DVBIN = $_menu_dvbin
8299 LIBMPEG2 = $_libmpeg2
8300 LIBNEMESI = $_nemesi
8301 LIBNUT = $_libnut
8302 LIBSMBCLIENT = $_smb
8303 LIBTHEORA = $_theora
8304 LIRC = $_lirc
8305 LIVE555 = $_live
8306 MACOSX_BUNDLE = $_macosx_bundle
8307 MACOSX_FINDER = $_macosx_finder
8308 MD5SUM = $_md5sum
8309 MGA = $_mga
8310 MNG = $_mng
8311 MP3LAME = $_mp3lame
8312 MP3LIB = $_mp3lib
8313 MUSEPACK = $_musepack
8314 NAS = $_nas
8315 NATIVE_RTSP = $_native_rtsp
8316 NETWORK = $_network
8317 OPENAL = $_openal
8318 OSS = $_ossaudio
8319 PE_EXECUTABLE = $_pe_executable
8320 PNG = $_png
8321 PNM = $_pnm
8322 PRIORITY = $_priority
8323 PULSE = $_pulse
8324 PVR = $_pvr
8325 QTX_CODECS = $_qtx
8326 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8327 QTX_EMULATION = $_qtx_emulation
8328 QUARTZ = $_quartz
8329 RADIO=$_radio
8330 RADIO_CAPTURE=$_radio_capture
8331 REAL_CODECS = $_real
8332 S3FB = $_s3fb
8333 SDL = $_sdl
8334 SPEEX = $_speex
8335 STREAM_CACHE = $_stream_cache
8336 SGIAUDIO = $_sgiaudio
8337 SUNAUDIO = $_sunaudio
8338 SVGA = $_svga
8339 TDFXFB = $_tdfxfb
8340 TDFXVID = $_tdfxvid
8341 TGA = $_tga
8342 TOOLAME=$_toolame
8343 TREMOR_INTERNAL = $_tremor_internal
8344 TV = $_tv
8345 TV_BSDBT848 = $_tv_bsdbt848
8346 TV_DSHOW = $_tv_dshow
8347 TV_V4L = $_tv_v4l
8348 TV_V4L1 = $_tv_v4l1
8349 TV_V4L2 = $_tv_v4l2
8350 TWOLAME=$_twolame
8351 UNRAR_EXEC = $_unrar_exec
8352 V4L2 = $_v4l2
8353 VCD = $_vcd
8354 VDPAU = $_vdpau
8355 VESA = $_vesa
8356 VIDIX = $_vidix
8357 VIDIX_PCIDB = $_vidix_pcidb_val
8358 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8359 VIDIX_IVTV=$_vidix_drv_ivtv
8360 VIDIX_MACH64=$_vidix_drv_mach64
8361 VIDIX_MGA=$_vidix_drv_mga
8362 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8363 VIDIX_NVIDIA=$_vidix_drv_nvidia
8364 VIDIX_PM2=$_vidix_drv_pm2
8365 VIDIX_PM3=$_vidix_drv_pm3
8366 VIDIX_RADEON=$_vidix_drv_radeon
8367 VIDIX_RAGE128=$_vidix_drv_rage128
8368 VIDIX_S3=$_vidix_drv_s3
8369 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8370 VIDIX_SIS=$_vidix_drv_sis
8371 VIDIX_UNICHROME=$_vidix_drv_unichrome
8372 VORBIS = $_vorbis
8373 VSTREAM = $_vstream
8374 WII = $_wii
8375 WIN32DLL = $_win32dll
8376 WIN32WAVEOUT = $_win32waveout
8377 WIN32_EMULATION = $_win32_emulation
8378 WINVIDIX = $winvidix
8379 X11 = $_x11
8380 X264 = $_x264
8381 XANIM_CODECS = $_xanim
8382 XMGA = $_xmga
8383 XMMS_PLUGINS = $_xmms
8384 XV = $_xv
8385 XVID4 = $_xvid
8386 XVIDIX = $xvidix
8387 XVMC = $_xvmc
8388 XVR100 = $_xvr100
8389 YUV4MPEG = $_yuv4mpeg
8390 ZR = $_zr
8392 # FFmpeg
8393 LIBAVUTIL = $_libavutil
8394 LIBAVUTIL_A = $_libavutil_a
8395 LIBAVUTIL_SO = $_libavutil_so
8396 LIBAVCODEC = $_libavcodec
8397 LIBAVCODEC_A = $_libavcodec_a
8398 LIBAVCODEC_SO = $_libavcodec_so
8399 LIBAVFORMAT = $_libavformat
8400 LIBAVFORMAT_A = $_libavformat_a
8401 LIBAVFORMAT_SO = $_libavformat_so
8402 LIBPOSTPROC = $_libpostproc
8403 LIBPOSTPROC_A = $_libpostproc_a
8404 LIBPOSTPROC_SO = $_libpostproc_so
8405 LIBSWSCALE = $_libswscale
8406 LIBSWSCALE_A = $_libswscale_a
8407 LIBSWSCALE_SO = $_libswscale_so
8409 CC_O=-o \$@
8410 LD=gcc
8411 CONFIG_STATIC=yes
8412 SRC_PATH=..
8413 BUILD_ROOT=..
8414 LIBPREF=lib
8415 LIBSUF=.a
8416 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8418 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8419 CONFIG_AANDCT=yes
8420 CONFIG_FFT=yes
8421 CONFIG_FFT_MMX=$fft_mmx
8422 CONFIG_GOLOMB=yes
8423 CONFIG_LPC=yes
8424 CONFIG_MDCT=yes
8425 CONFIG_RDFT=yes
8427 CONFIG_BZLIB=$bzlib
8428 CONFIG_ENCODERS=yes
8429 CONFIG_GPL=yes
8430 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8431 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8432 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8433 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8434 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8435 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8436 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8437 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8438 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8439 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8440 CONFIG_LIBX264_ENCODER=$_x264_lavc
8441 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8442 CONFIG_MLIB = $_mlib
8443 CONFIG_MUXERS=$_mencoder
8444 CONFIG_POSTPROC = yes
8445 # Prevent building libavcodec/imgresample.c with conflicting symbols
8446 CONFIG_SWSCALE=yes
8447 CONFIG_VDPAU=$_vdpau
8448 CONFIG_XVMC=$_xvmc
8449 CONFIG_ZLIB=$_zlib
8451 HAVE_PTHREADS = $_pthreads
8452 HAVE_SHM = $_shm
8453 HAVE_W32THREADS = $_w32threads
8454 HAVE_YASM = $_have_yasm
8456 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8457 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8458 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8459 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8460 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8461 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8464 #############################################################################
8466 ff_config_enable () {
8467 _nprefix=$3;
8468 test -z "$_nprefix" && _nprefix='CONFIG'
8469 for part in $1; do
8470 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8471 echo "#define ${_nprefix}_$part 1"
8472 else
8473 echo "#define ${_nprefix}_$part 0"
8475 done
8478 echo "Creating config.h"
8479 cat > $TMPH << EOF
8480 /*----------------------------------------------------------------------------
8481 ** This file has been automatically generated by configure any changes in it
8482 ** will be lost when you run configure again.
8483 ** Instead of modifying definitions here, use the --enable/--disable options
8484 ** of the configure script! See ./configure --help for details.
8485 *---------------------------------------------------------------------------*/
8487 #ifndef MPLAYER_CONFIG_H
8488 #define MPLAYER_CONFIG_H
8490 /* Undefine this if you do not want to select mono audio (left or right)
8491 with a stereo MPEG layer 2/3 audio stream. The command line option
8492 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8493 right-only), with 0 being the default.
8495 #define CONFIG_FAKE_MONO 1
8497 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8498 #define MAX_OUTBURST 65536
8500 /* set up audio OUTBURST. Do not change this! */
8501 #define OUTBURST 512
8503 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8504 #undef FAST_OSD
8505 #undef FAST_OSD_TABLE
8507 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8508 #define MPEG12_POSTPROC 1
8509 #define ATTRIBUTE_ALIGNED_MAX 16
8513 #define CONFIGURATION "$_configuration"
8515 #define MPLAYER_DATADIR "$_datadir"
8516 #define MPLAYER_CONFDIR "$_confdir"
8517 #define MPLAYER_LIBDIR "$_libdir"
8519 /* definitions needed by included libraries */
8520 #define HAVE_INTTYPES_H 1
8521 /* libmpeg2 + FFmpeg */
8522 $def_fast_inttypes
8523 /* libdvdcss */
8524 #define HAVE_ERRNO_H 1
8525 /* libdvdcss + libdvdread */
8526 #define HAVE_LIMITS_H 1
8527 /* libdvdcss + libfaad2 */
8528 #define HAVE_UNISTD_H 1
8529 /* libfaad2 + libdvdread */
8530 #define STDC_HEADERS 1
8531 #define HAVE_MEMCPY 1
8532 /* libfaad2 */
8533 #define HAVE_STRING_H 1
8534 #define HAVE_STRINGS_H 1
8535 #define HAVE_SYS_STAT_H 1
8536 #define HAVE_SYS_TYPES_H 1
8537 /* libdvdnav */
8538 #define READ_CACHE_TRACE 0
8539 /* libdvdread */
8540 #define HAVE_DLFCN_H 1
8541 $def_dvdcss
8544 /* system headers */
8545 $def_alloca_h
8546 $def_alsa_asoundlib_h
8547 $def_altivec_h
8548 $def_malloc_h
8549 $def_mman_h
8550 $def_mman_has_map_failed
8551 $def_soundcard_h
8552 $def_sys_asoundlib_h
8553 $def_sys_soundcard_h
8554 $def_sys_sysinfo_h
8555 $def_termios_h
8556 $def_termios_sys_h
8557 $def_winsock2_h
8560 /* system functions */
8561 $def_gethostbyname2
8562 $def_gettimeofday
8563 $def_glob
8564 $def_langinfo
8565 $def_llrint
8566 $def_log2
8567 $def_lrint
8568 $def_lrintf
8569 $def_map_memalign
8570 $def_memalign
8571 $def_nanosleep
8572 $def_posix_select
8573 $def_round
8574 $def_roundf
8575 $def_select
8576 $def_setenv
8577 $def_shm
8578 $def_strsep
8579 $def_swab
8580 $def_sysi86
8581 $def_sysi86_iv
8582 $def_termcap
8583 $def_termios
8584 $def_truncf
8585 $def_vsscanf
8588 /* system-specific features */
8589 $def_asmalign_pot
8590 $def_builtin_expect
8591 $def_dl
8592 $def_extern_asm
8593 $def_extern_prefix
8594 $def_iconv
8595 $def_kstat
8596 $def_macosx_bundle
8597 $def_macosx_finder
8598 $def_maemo
8599 $def_named_asm_args
8600 $def_priority
8601 $def_quicktime
8602 $def_restrict_keyword
8603 $def_rtc
8604 $def_unrar_exec
8607 /* configurable options */
8608 $def_charset
8609 $def_crash_debug
8610 $def_debug
8611 $def_dynamic_plugins
8612 $def_fastmemcpy
8613 $def_menu
8614 $def_runtime_cpudetection
8615 $def_sighandler
8616 $def_sortsub
8617 $def_stream_cache
8618 $def_pthread_cache
8621 /* CPU stuff */
8622 #define __CPU__ $iproc
8623 $def_words_endian
8624 $def_bigendian
8625 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8626 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8629 /* DVD/VCD/CD */
8630 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8631 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8632 $def_bsdi_dvd
8633 $def_cddb
8634 $def_cdio
8635 $def_cdparanoia
8636 $def_cdrom
8637 $def_dvd
8638 $def_dvd_bsd
8639 $def_dvd_darwin
8640 $def_dvd_linux
8641 $def_dvd_openbsd
8642 $def_dvdio
8643 $def_dvdnav
8644 $def_dvdread
8645 $def_hpux_scsi_h
8646 $def_libcdio
8647 $def_sol_scsi_h
8648 $def_vcd
8651 /* codec libraries */
8652 $def_faac
8653 $def_faad
8654 $def_faad_internal
8655 $def_liba52
8656 $def_liba52_internal
8657 $def_libdca
8658 $def_libdv
8659 $def_liblzo
8660 $def_libmpeg2
8661 $def_mad
8662 $def_mp3lame
8663 $def_mp3lame_preset
8664 $def_mp3lame_preset_medium
8665 $def_mp3lib
8666 $def_musepack
8667 $def_speex
8668 $def_theora
8669 $def_toolame
8670 $def_tremor
8671 $def_twolame
8672 $def_vorbis
8673 $def_x264
8674 $def_xvid
8675 $def_zlib
8677 $def_libnut
8680 /* binary codecs */
8681 $def_qtx
8682 $def_qtx_win32
8683 $def_real
8684 $def_real_path
8685 $def_win32_loader
8686 $def_win32dll
8687 #define WIN32_PATH "$_win32codecsdir"
8688 $def_xanim
8689 $def_xanim_path
8690 $def_xmms
8691 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8694 /* GUI */
8695 $def_gtk2
8696 $def_gui
8697 $def_xshape
8700 /* Audio output drivers */
8701 $def_alsa
8702 $def_alsa1x
8703 $def_alsa5
8704 $def_alsa9
8705 $def_arts
8706 $def_coreaudio
8707 $def_dart
8708 $def_esd
8709 $def_esd_latency
8710 $def_jack
8711 $def_nas
8712 $def_openal
8713 $def_openal_h
8714 $def_ossaudio
8715 $def_ossaudio_devdsp
8716 $def_ossaudio_devmixer
8717 $def_pulse
8718 $def_sgiaudio
8719 $def_sunaudio
8720 $def_win32waveout
8722 $def_ladspa
8723 $def_libbs2b
8726 /* input */
8727 $def_apple_ir
8728 $def_apple_remote
8729 $def_ioctl_bt848_h_name
8730 $def_ioctl_meteor_h_name
8731 $def_joystick
8732 $def_lirc
8733 $def_lircc
8734 $def_pvr
8735 $def_radio
8736 $def_radio_bsdbt848
8737 $def_radio_capture
8738 $def_radio_v4l
8739 $def_radio_v4l2
8740 $def_tv
8741 $def_tv_bsdbt848
8742 $def_tv_dshow
8743 $def_tv_v4l
8744 $def_tv_v4l1
8745 $def_tv_v4l2
8748 /* font stuff */
8749 $def_ass
8750 $def_bitmap_font
8751 $def_enca
8752 $def_fontconfig
8753 $def_freetype
8754 $def_fribidi
8757 /* networking */
8758 $def_closesocket
8759 $def_ftp
8760 $def_inet6
8761 $def_inet_aton
8762 $def_inet_pton
8763 $def_live
8764 $def_nemesi
8765 $def_network
8766 $def_smb
8767 $def_socklen_t
8768 $def_vstream
8771 /* libvo options */
8772 $def_3dfx
8773 $def_aa
8774 $def_bl
8775 $def_caca
8776 $def_corevideo
8777 $def_dfbmga
8778 $def_dga
8779 $def_dga1
8780 $def_dga2
8781 $def_direct3d
8782 $def_directfb
8783 $def_directfb_version
8784 $def_directx
8785 $def_dvb
8786 $def_dvb_head
8787 $def_dvbin
8788 $def_dxr2
8789 $def_dxr3
8790 $def_fbdev
8791 $def_ggi
8792 $def_ggiwmh
8793 $def_gif
8794 $def_gif_4
8795 $def_gif_tvt_hack
8796 $def_gl
8797 $def_gl_win32
8798 $def_ivtv
8799 $def_jpeg
8800 $def_kva
8801 $def_md5sum
8802 $def_mga
8803 $def_mng
8804 $def_png
8805 $def_pnm
8806 $def_quartz
8807 $def_s3fb
8808 $def_sdl
8809 $def_sdlbuggy
8810 $def_svga
8811 $def_tdfxfb
8812 $def_tdfxvid
8813 $def_tga
8814 $def_v4l2
8815 $def_vdpau
8816 $def_vesa
8817 $def_vidix
8818 $def_vidix_drv_cyberblade
8819 $def_vidix_drv_ivtv
8820 $def_vidix_drv_mach64
8821 $def_vidix_drv_mga
8822 $def_vidix_drv_mga_crtc2
8823 $def_vidix_drv_nvidia
8824 $def_vidix_drv_pm3
8825 $def_vidix_drv_radeon
8826 $def_vidix_drv_rage128
8827 $def_vidix_drv_s3
8828 $def_vidix_drv_sh_veu
8829 $def_vidix_drv_sis
8830 $def_vidix_drv_unichrome
8831 $def_vidix_pfx
8832 $def_vm
8833 $def_wii
8834 $def_x11
8835 $def_xdpms
8836 $def_xf86keysym
8837 $def_xinerama
8838 $def_xmga
8839 $def_xss
8840 $def_xv
8841 $def_xvmc
8842 $def_xvr100
8843 $def_yuv4mpeg
8844 $def_zr
8847 /* FFmpeg */
8848 $def_libavcodec
8849 $def_libavcodec_a
8850 $def_libavcodec_so
8851 $def_libavformat
8852 $def_libavformat_a
8853 $def_libavformat_so
8854 $def_libavutil
8855 $def_libavutil_a
8856 $def_libavutil_so
8857 $def_libpostproc
8858 $def_libpostproc_a
8859 $def_libpostproc_so
8860 $def_libswscale
8861 $def_libswscale_a
8862 $def_libswscale_so
8864 #define CONFIG_DECODERS 1
8865 #define CONFIG_ENCODERS 1
8866 #define CONFIG_DEMUXERS 1
8867 $def_muxers
8869 $def_arpa_inet_h
8870 $def_bswap
8871 $def_bzlib
8872 $def_dcbzl
8873 $def_dos_paths
8874 $def_fast_64bit
8875 $def_fast_unaligned
8876 $def_libavcodec_mpegaudio_hp
8877 $def_memalign_hack
8878 $def_mlib
8879 $def_mkstemp
8880 $def_posix_memalign
8881 $def_pthreads
8882 $def_ten_operands
8883 $def_threads
8884 $def_xform_asm
8885 $def_yasm
8887 #define CONFIG_FASTDIV 0
8888 #define CONFIG_FFSERVER 0
8889 #define CONFIG_GPL 1
8890 #define CONFIG_GRAY 0
8891 #define CONFIG_HARDCODED_TABLES 0
8892 #define CONFIG_LIBVORBIS 0
8893 #define CONFIG_POWERPC_PERF 0
8894 #define CONFIG_SMALL 0
8895 #define CONFIG_SWSCALE 1
8896 #define CONFIG_SWSCALE_ALPHA 1
8898 #define HAVE_ATTRIBUTE_PACKED 1
8899 #define HAVE_GETHRTIME 0
8900 #define HAVE_INLINE_ASM 0
8901 #define HAVE_LDBRX 0
8902 #define HAVE_POLL_H 1
8903 #define HAVE_PPC4XX 0
8904 #define HAVE_VIRTUALALLOC 0
8906 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8907 #define CONFIG_AANDCT 1
8908 #define CONFIG_FFT 1
8909 #define CONFIG_GOLOMB 1
8910 #define CONFIG_LPC 1
8911 #define CONFIG_MDCT 1
8912 #define CONFIG_RDFT 1
8914 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8915 $def_ebx_available
8916 #ifndef MP_DEBUG
8917 #define HAVE_EBP_AVAILABLE 1
8918 #else
8919 #define HAVE_EBP_AVAILABLE 0
8920 #endif
8922 /* External libraries used through libavcodec. */
8923 $def_faac_lavc
8924 $def_libdirac_lavc
8925 $def_libopencore_amrnb
8926 $def_libopencore_amrwb
8927 $def_libschroedinger_lavc
8928 $def_mp3lame_lavc
8929 $def_x264_lavc
8930 $def_xvid_lavc
8932 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
8933 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
8934 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
8935 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
8936 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
8937 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
8938 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
8940 #define CONFIG_H263_VAAPI_HWACCEL 0
8941 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8942 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8943 #define CONFIG_H264_VAAPI_HWACCEL 0
8944 #define CONFIG_VC1_VAAPI_HWACCEL 0
8945 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8947 #endif /* MPLAYER_CONFIG_H */
8950 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8951 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8953 #############################################################################
8955 cat << EOF
8957 Config files successfully generated by ./configure $_configuration !
8959 Install prefix: $_prefix
8960 Data directory: $_datadir
8961 Config direct.: $_confdir
8963 Byte order: $_byte_order
8964 Optimizing for: $_optimizing
8966 Languages:
8967 Messages/GUI: $language_msg
8968 Manual pages: $language_man
8969 Documentation: $language_doc
8971 Enabled optional drivers:
8972 Input: $_inputmodules
8973 Codecs: $_codecmodules
8974 Audio output: $_aomodules
8975 Video output: $_vomodules
8977 Disabled optional drivers:
8978 Input: $_noinputmodules
8979 Codecs: $_nocodecmodules
8980 Audio output: $_noaomodules
8981 Video output: $_novomodules
8983 'config.h' and 'config.mak' contain your configuration options.
8984 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8985 compile *** DO NOT REPORT BUGS if you tweak these files ***
8987 'make' will now compile MPlayer and 'make install' will install it.
8988 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8993 if test "$_mtrr" = yes ; then
8994 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8995 echo
8998 if ! x86_32; then
8999 cat <<EOF
9000 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9001 operating system ($system_name). You may encounter a few files that cannot
9002 be played due to missing open source video/audio codec support.
9008 cat <<EOF
9009 Check $TMPLOG if you wonder why an autodetection failed (make sure
9010 development headers/packages are installed).
9012 NOTE: The --enable-* parameters unconditionally force options on, completely
9013 skipping autodetection. This behavior is unlike what you may be used to from
9014 autoconf-based configure scripts that can decide to override you. This greater
9015 level of control comes at a price. You may have to provide the correct compiler
9016 and linker flags yourself.
9017 If you used one of these options (except --enable-gui and similar ones that
9018 turn on internal features) and experience a compilation or linking failure,
9019 make sure you have passed the necessary compiler/linker flags to configure.
9021 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9025 if test "$_warn_CFLAGS" = yes; then
9026 cat <<EOF
9028 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9029 but:
9031 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9033 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9034 To do so, execute 'CFLAGS= ./configure <options>'
9039 # Last move:
9040 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"