demux_mkv: remove useless code
[mplayer/glamo.git] / configure
bloba9089c4bcca287a653902844024cf4dfc65c9644
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 --disable-largefiles disable support for files > 2GB [enable]
229 --enable-linux-devfs set default devices to devfs [disable]
230 --enable-termcap use termcap database for key codes [autodetect]
231 --enable-termios use termios database for key codes [autodetect]
232 --disable-iconv disable iconv for encoding conversion [autodetect]
233 --disable-langinfo do not use langinfo [autodetect]
234 --enable-lirc enable LIRC (remote control) support [autodetect]
235 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
236 --enable-joystick enable joystick support [disable]
237 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
238 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
239 --disable-vm disable X video mode extensions [autodetect]
240 --disable-xf86keysym disable support for multimedia keys [autodetect]
241 --enable-radio enable radio interface [disable]
242 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
243 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
244 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
245 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
246 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
247 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
248 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
249 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
250 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
251 --disable-network disable networking [enable]
252 --enable-winsock2_h enable winsock2_h [autodetect]
253 --enable-smb enable Samba (SMB) input [autodetect]
254 --enable-live enable LIVE555 Streaming Media [autodetect]
255 --enable-nemesi enable Nemesi Streaming Media [autodetect]
256 --disable-vcd disable VCD support [autodetect]
257 --disable-dvdnav disable libdvdnav [autodetect]
258 --disable-dvdread disable libdvdread [autodetect]
259 --disable-dvdread-internal disable internal libdvdread [autodetect]
260 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
261 --disable-cdparanoia disable cdparanoia [autodetect]
262 --disable-cddb disable cddb [autodetect]
263 --disable-bitmap-font disable bitmap font support [enable]
264 --disable-freetype disable FreeType 2 font rendering [autodetect]
265 --disable-fontconfig disable fontconfig font lookup [autodetect]
266 --disable-unrarexec disable using of UnRAR executable [enabled]
267 --enable-menu enable OSD menu (not DVD menu) [disabled]
268 --disable-sortsub disable subtitle sorting [enabled]
269 --enable-fribidi enable the FriBiDi libs [autodetect]
270 --disable-enca disable ENCA charset oracle library [autodetect]
271 --disable-maemo disable maemo specific features [autodetect]
272 --enable-macosx-finder enable Mac OS X Finder invocation parameter
273 parsing [disabled]
274 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
275 --disable-inet6 disable IPv6 support [autodetect]
276 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
277 --disable-ftp disable FTP support [enabled]
278 --disable-vstream disable TiVo vstream client support [autodetect]
279 --disable-pthreads disable Posix threads support [autodetect]
280 --disable-w32threads disable Win32 threads support [autodetect]
281 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
282 --enable-rpath enable runtime linker path for extra libs [disabled]
284 Codecs:
285 --enable-gif enable GIF support [autodetect]
286 --enable-png enable PNG input/output support [autodetect]
287 --enable-mng enable MNG input support [autodetect]
288 --enable-jpeg enable JPEG input/output support [autodetect]
289 --enable-libcdio enable libcdio support [autodetect]
290 --enable-liblzo enable liblzo support [autodetect]
291 --disable-win32dll disable Win32 DLL support [enabled]
292 --disable-qtx disable QuickTime codecs support [enabled]
293 --disable-xanim disable XAnim codecs support [enabled]
294 --disable-real disable RealPlayer codecs support [enabled]
295 --disable-xvid disable Xvid [autodetect]
296 --disable-x264 disable x264 [autodetect]
297 --disable-libnut disable libnut [autodetect]
298 --disable-libavutil disable libavutil [autodetect]
299 --disable-libavcodec disable libavcodec [autodetect]
300 --disable-libavformat disable libavformat [autodetect]
301 --disable-libpostproc disable libpostproc [autodetect]
302 --disable-libswscale disable libswscale [autodetect]
303 --disable-tremor-internal disable internal Tremor [enabled]
304 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
305 --enable-tremor enable external Tremor [autodetect]
306 --disable-libvorbis disable libvorbis support [autodetect]
307 --disable-speex disable Speex support [autodetect]
308 --enable-theora enable OggTheora libraries [autodetect]
309 --enable-faad enable external FAAD2 (AAC) [autodetect]
310 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
311 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
312 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
313 --disable-ladspa disable LADSPA plugin support [autodetect]
314 --disable-libbs2b disable libbs2b audio filter support [autodetect]
315 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
316 --disable-mad disable libmad (MPEG audio) support [autodetect]
317 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
318 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
319 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
320 --enable-xmms enable XMMS input plugin support [disabled]
321 --enable-libdca enable libdca support [autodetect]
322 --disable-mp3lib disable builtin mp3lib [autodetect]
323 --disable-liba52 disable liba52 [autodetect]
324 --disable-liba52-internal disable builtin liba52 [autodetect]
325 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
326 --disable-musepack disable musepack support [autodetect]
328 Video output:
329 --disable-vidix disable VIDIX [for x86 *nix]
330 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
331 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
332 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
333 --disable-vidix-pcidb disable VIDIX PCI device name database
334 --enable-dhahelper enable VIDIX dhahelper support
335 --enable-svgalib_helper enable VIDIX svgalib_helper support
336 --enable-gl enable OpenGL video output [autodetect]
337 --enable-dga2 enable DGA 2 support [autodetect]
338 --enable-dga1 enable DGA 1 support [autodetect]
339 --enable-vesa enable VESA video output [autodetect]
340 --enable-svga enable SVGAlib video output [autodetect]
341 --enable-sdl enable SDL video output [autodetect]
342 --enable-kva enable KVA video output [autodetect]
343 --enable-aa enable AAlib video output [autodetect]
344 --enable-caca enable CACA video output [autodetect]
345 --enable-ggi enable GGI video output [autodetect]
346 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
347 --enable-direct3d enable Direct3D video output [autodetect]
348 --enable-directx enable DirectX video output [autodetect]
349 --enable-dxr2 enable DXR2 video output [autodetect]
350 --enable-dxr3 enable DXR3/H+ video output [autodetect]
351 --enable-ivtv enable IVTV TV-Out video output [autodetect]
352 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
353 --enable-dvb enable DVB video output [autodetect]
354 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
355 --enable-mga enable mga_vid video output [autodetect]
356 --enable-xmga enable mga_vid X11 video output [autodetect]
357 --enable-xv enable Xv video output [autodetect]
358 --enable-xvmc enable XvMC acceleration [disable]
359 --enable-vdpau enable VDPAU acceleration [autodetect]
360 --enable-vm enable XF86VidMode support [autodetect]
361 --enable-xinerama enable Xinerama support [autodetect]
362 --enable-x11 enable X11 video output [autodetect]
363 --enable-xshape enable XShape support [autodetect]
364 --disable-xss disable screensaver support via xss [autodetect]
365 --enable-fbdev enable FBDev video output [autodetect]
366 --enable-mlib enable mediaLib video output (Solaris) [disable]
367 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
368 --enable-tdfxfb enable tdfxfb video output [disable]
369 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
370 --enable-wii enable Nintendo Wii/GameCube video output [disable]
371 --enable-directfb enable DirectFB video output [autodetect]
372 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
373 --enable-bl enable Blinkenlights video output [disable]
374 --enable-tdfxvid enable tdfx_vid video output [disable]
375 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
376 --disable-tga disable Targa video output [enable]
377 --disable-pnm disable PNM video output [enable]
378 --disable-md5sum disable md5sum video output [enable]
379 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
380 --disable-corevideo disable CoreVideo video output [autodetect]
381 --disable-quartz disable Quartz video output [autodetect]
383 Audio output:
384 --disable-alsa disable ALSA audio output [autodetect]
385 --disable-ossaudio disable OSS audio output [autodetect]
386 --disable-arts disable aRts audio output [autodetect]
387 --disable-esd disable esd audio output [autodetect]
388 --disable-pulse disable Pulseaudio audio output [autodetect]
389 --disable-jack disable JACK audio output [autodetect]
390 --enable-openal enable OpenAL audio output [disable]
391 --disable-nas disable NAS audio output [autodetect]
392 --disable-sgiaudio disable SGI audio output [autodetect]
393 --disable-sunaudio disable Sun audio output [autodetect]
394 --disable-dart disable DART audio output [autodetect]
395 --disable-win32waveout disable Windows waveout audio output [autodetect]
396 --disable-coreaudio disable CoreAudio audio output [autodetect]
397 --disable-select disable using select() on the audio device [enable]
399 Language options:
400 --charset=charset convert the console messages to this character set
401 --language-doc=lang language to use for the documentation [en]
402 --language-man=lang language to use for the man pages [en]
403 --language-msg=lang language to use for the messages [en]
404 --language=lang default language to use [en]
405 Specific options override --language. You can pass a list of languages separated
406 by whitespace or commas instead of a single language. Nonexisting translations
407 will be dropped from each list. All documentation and man page translations
408 available in the list will be installed, for the messages the first available
409 translation will be used. The value "all" will activate all translations. The
410 LINGUAS environment variable is honored. In all cases the fallback is English.
411 Available values are: all $msg_lang_all
413 Miscellaneous options:
414 --enable-runtime-cpudetection enable runtime CPU detection [disable]
415 --enable-cross-compile enable cross-compilation [autodetect]
416 --cc=COMPILER C compiler to build MPlayer [gcc]
417 --host-cc=COMPILER C compiler for tools needed while building [gcc]
418 --as=ASSEMBLER assembler to build MPlayer [as]
419 --nm=NM nm tool to build MPlayer [nm]
420 --yasm=YASM Yasm assembler to build MPlayer [yasm]
421 --ar=AR librarian to build MPlayer [ar]
422 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
423 --windres=WINDRES windres to build MPlayer [windres]
424 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
425 --enable-static build a statically linked binary
426 --with-install=PATH path to a custom install program
428 Advanced options:
429 --enable-mmx enable MMX [autodetect]
430 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
431 --enable-3dnow enable 3DNow! [autodetect]
432 --enable-3dnowext enable extended 3DNow! [autodetect]
433 --enable-sse enable SSE [autodetect]
434 --enable-sse2 enable SSE2 [autodetect]
435 --enable-ssse3 enable SSSE3 [autodetect]
436 --enable-shm enable shm [autodetect]
437 --enable-altivec enable AltiVec (PowerPC) [autodetect]
438 --enable-armv5te enable DSP extensions (ARM) [autodetect]
439 --enable-armv6 enable ARMv6 (ARM) [autodetect]
440 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
441 --enable-armvfp enable ARM VFP (ARM) [autodetect]
442 --enable-neon enable NEON (ARM) [autodetect]
443 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
444 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
445 --enable-big-endian force byte order to big-endian [autodetect]
446 --enable-debug[=1-3] compile-in debugging information [disable]
447 --enable-profile compile-in profiling information [disable]
448 --disable-sighandler disable sighandler for crashes [enable]
449 --enable-crash-debug enable automatic gdb attach on crash [disable]
450 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
451 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
453 Use these options if autodetection fails:
454 --extra-cflags=FLAGS extra CFLAGS
455 --extra-ldflags=FLAGS extra LDFLAGS
456 --extra-libs=FLAGS extra linker flags
457 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
458 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
459 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
461 --with-freetype-config=PATH path to freetype-config
462 --with-fribidi-config=PATH path to fribidi-config
463 --with-glib-config=PATH path to glib*-config
464 --with-gtk-config=PATH path to gtk*-config
465 --with-sdl-config=PATH path to sdl*-config
466 --with-dvdnav-config=PATH path to dvdnav-config
467 --with-dvdread-config=PATH path to dvdread-config
469 This configure script is NOT autoconf-based, even though its output is similar.
470 It will try to autodetect all configuration options. If you --enable an option
471 it will be forcefully turned on, skipping autodetection. This can break
472 compilation, so you need to know what you are doing.
474 exit 0
475 } #show_help()
477 # GOTCHA: the variables below defines the default behavior for autodetection
478 # and have - unless stated otherwise - at least 2 states : yes no
479 # If autodetection is available then the third state is: auto
480 _mmx=auto
481 _3dnow=auto
482 _3dnowext=auto
483 _mmxext=auto
484 _sse=auto
485 _sse2=auto
486 _ssse3=auto
487 _cmov=auto
488 _fast_cmov=auto
489 _armv5te=auto
490 _armv6=auto
491 _armv6t2=auto
492 _armvfp=auto
493 neon=auto
494 _iwmmxt=auto
495 _mtrr=auto
496 _altivec=auto
497 _install=install
498 _ranlib=ranlib
499 _windres=windres
500 _cc=cc
501 _ar=ar
502 test "$CC" && _cc="$CC"
503 _as=auto
504 _nm=auto
505 _yasm=yasm
506 _runtime_cpudetection=no
507 _cross_compile=auto
508 _prefix="/usr/local"
509 _libavutil=auto
510 _libavcodec=auto
511 _libavformat=auto
512 _libpostproc=auto
513 _libswscale=auto
514 _libavcodec_internals=no
515 _libswscale_internals=no
516 _mencoder=yes
517 _mplayer=yes
518 _x11=auto
519 _xshape=auto
520 _xss=auto
521 _dga1=auto
522 _dga2=auto
523 _xv=auto
524 _xvmc=no #auto when complete
525 _vdpau=auto
526 _sdl=auto
527 _kva=auto
528 _direct3d=auto
529 _directx=auto
530 _win32waveout=auto
531 _nas=auto
532 _png=auto
533 _mng=auto
534 _jpeg=auto
535 _pnm=yes
536 _md5sum=yes
537 _yuv4mpeg=yes
538 _gif=auto
539 _gl=auto
540 _ggi=auto
541 _ggiwmh=auto
542 _aa=auto
543 _caca=auto
544 _svga=auto
545 _vesa=auto
546 _fbdev=auto
547 _dvb=auto
548 _dvbhead=auto
549 _dxr2=auto
550 _dxr3=auto
551 _ivtv=auto
552 _v4l2=auto
553 _iconv=auto
554 _langinfo=auto
555 _rtc=auto
556 _ossaudio=auto
557 _arts=auto
558 _esd=auto
559 _pulse=auto
560 _jack=auto
561 _dart=auto
562 _openal=no
563 _libcdio=auto
564 _liblzo=auto
565 _mad=auto
566 _mp3lame=auto
567 _toolame=auto
568 _twolame=auto
569 _tremor=auto
570 _tremor_internal=yes
571 _tremor_low=no
572 _libvorbis=auto
573 _speex=auto
574 _theora=auto
575 _mp3lib=auto
576 _liba52=auto
577 _liba52_internal=auto
578 _libdca=auto
579 _libmpeg2=auto
580 _faad=auto
581 _faad_internal=auto
582 _faad_fixed=no
583 _faac=auto
584 _ladspa=auto
585 _libbs2b=auto
586 _xmms=no
587 _vcd=auto
588 _dvdnav=auto
589 _dvdnavconfig=dvdnav-config
590 _dvdreadconfig=dvdread-config
591 _dvdread=auto
592 _dvdread_internal=auto
593 _libdvdcss_internal=auto
594 _xanim=auto
595 _real=auto
596 _live=auto
597 _nemesi=auto
598 _native_rtsp=yes
599 _xinerama=auto
600 _mga=auto
601 _xmga=auto
602 _vm=auto
603 _xf86keysym=auto
604 _mlib=no #broken, thus disabled
605 _sgiaudio=auto
606 _sunaudio=auto
607 _alsa=auto
608 _fastmemcpy=yes
609 _unrar_exec=auto
610 _win32dll=auto
611 _select=yes
612 _radio=no
613 _radio_capture=no
614 _radio_v4l=auto
615 _radio_v4l2=auto
616 _radio_bsdbt848=auto
617 _tv=yes
618 _tv_v4l1=auto
619 _tv_v4l2=auto
620 _tv_bsdbt848=auto
621 _tv_dshow=auto
622 _pvr=auto
623 _network=yes
624 _winsock2_h=auto
625 _smb=auto
626 _vidix=auto
627 _vidix_pcidb=yes
628 _dhahelper=no
629 _svgalib_helper=no
630 _joystick=no
631 _xvid=auto
632 _x264=auto
633 _libnut=auto
634 _lirc=auto
635 _lircc=auto
636 _apple_remote=auto
637 _apple_ir=auto
638 _gui=no
639 _gtk1=no
640 _termcap=auto
641 _termios=auto
642 _3dfx=no
643 _s3fb=no
644 _wii=no
645 _tdfxfb=no
646 _tdfxvid=no
647 _xvr100=auto
648 _tga=yes
649 _directfb=auto
650 _zr=auto
651 _bl=no
652 _largefiles=yes
653 #language=en
654 _shm=auto
655 _linux_devfs=no
656 _charset="UTF-8"
657 _dynamic_plugins=no
658 _crash_debug=no
659 _sighandler=yes
660 _libdv=auto
661 _cdparanoia=auto
662 _cddb=auto
663 _big_endian=auto
664 _bitmap_font=yes
665 _freetype=auto
666 _fontconfig=auto
667 _menu=no
668 _qtx=auto
669 _maemo=auto
670 _coreaudio=auto
671 _corevideo=auto
672 _quartz=auto
673 quicktime=auto
674 _macosx_finder=no
675 _macosx_bundle=auto
676 _sortsub=yes
677 _freetypeconfig='freetype-config'
678 _fribidi=auto
679 _fribidiconfig='fribidi-config'
680 _enca=auto
681 _inet6=auto
682 _gethostbyname2=auto
683 _ftp=yes
684 _musepack=auto
685 _vstream=auto
686 _pthreads=auto
687 _w32threads=auto
688 _ass=auto
689 _rpath=no
690 _asmalign_pot=auto
691 _stream_cache=yes
692 _priority=no
693 def_dos_paths="#define HAVE_DOS_PATHS 0"
694 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
695 def_priority="#undef CONFIG_PRIORITY"
696 def_pthread_cache="#undef PTHREAD_CACHE"
697 _need_shmem=yes
698 for ac_option do
699 case "$ac_option" in
700 --help|-help|-h)
701 show_help
703 --prefix=*)
704 _prefix=$(echo $ac_option | cut -d '=' -f 2)
706 --bindir=*)
707 _bindir=$(echo $ac_option | cut -d '=' -f 2)
709 --datadir=*)
710 _datadir=$(echo $ac_option | cut -d '=' -f 2)
712 --mandir=*)
713 _mandir=$(echo $ac_option | cut -d '=' -f 2)
715 --confdir=*)
716 _confdir=$(echo $ac_option | cut -d '=' -f 2)
718 --libdir=*)
719 _libdir=$(echo $ac_option | cut -d '=' -f 2)
721 --codecsdir=*)
722 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
724 --win32codecsdir=*)
725 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
727 --xanimcodecsdir=*)
728 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
730 --realcodecsdir=*)
731 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
734 --with-install=*)
735 _install=$(echo $ac_option | cut -d '=' -f 2 )
737 --with-xvmclib=*)
738 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
741 --with-sdl-config=*)
742 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
744 --with-freetype-config=*)
745 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
747 --with-fribidi-config=*)
748 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
750 --with-gtk-config=*)
751 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
753 --with-glib-config=*)
754 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
756 --with-dvdnav-config=*)
757 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
759 --with-dvdread-config=*)
760 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
763 --extra-cflags=*)
764 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
766 --extra-ldflags=*)
767 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
769 --extra-libs=*)
770 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
772 --extra-libs-mplayer=*)
773 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
775 --extra-libs-mencoder=*)
776 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
779 --target=*)
780 _target=$(echo $ac_option | cut -d '=' -f 2)
782 --cc=*)
783 _cc=$(echo $ac_option | cut -d '=' -f 2)
785 --host-cc=*)
786 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
788 --as=*)
789 _as=$(echo $ac_option | cut -d '=' -f 2)
791 --nm=*)
792 _nm=$(echo $ac_option | cut -d '=' -f 2)
794 --yasm=*)
795 _yasm=$(echo $ac_option | cut -d '=' -f 2)
797 --ar=*)
798 _ar=$(echo $ac_option | cut -d '=' -f 2)
800 --ranlib=*)
801 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
803 --windres=*)
804 _windres=$(echo $ac_option | cut -d '=' -f 2)
806 --charset=*)
807 _charset=$(echo $ac_option | cut -d '=' -f 2)
809 --language-doc=*)
810 language_doc=$(echo $ac_option | cut -d '=' -f 2)
812 --language-man=*)
813 language_man=$(echo $ac_option | cut -d '=' -f 2)
815 --language-msg=*)
816 language_msg=$(echo $ac_option | cut -d '=' -f 2)
818 --language=*)
819 language=$(echo $ac_option | cut -d '=' -f 2)
822 --enable-static)
823 _ld_static='-static'
825 --disable-static)
826 _ld_static=''
828 --enable-profile)
829 _profile='-p'
831 --disable-profile)
832 _profile=
834 --enable-debug)
835 _debug='-g'
837 --enable-debug=*)
838 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
840 --disable-debug)
841 _debug=
843 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
844 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
845 --enable-cross-compile) _cross_compile=yes ;;
846 --disable-cross-compile) _cross_compile=no ;;
847 --enable-mencoder) _mencoder=yes ;;
848 --disable-mencoder) _mencoder=no ;;
849 --enable-mplayer) _mplayer=yes ;;
850 --disable-mplayer) _mplayer=no ;;
851 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
852 --disable-dynamic-plugins) _dynamic_plugins=no ;;
853 --enable-x11) _x11=yes ;;
854 --disable-x11) _x11=no ;;
855 --enable-xshape) _xshape=yes ;;
856 --disable-xshape) _xshape=no ;;
857 --enable-xss) _xss=yes ;;
858 --disable-xss) _xss=no ;;
859 --enable-xv) _xv=yes ;;
860 --disable-xv) _xv=no ;;
861 --enable-xvmc) _xvmc=yes ;;
862 --disable-xvmc) _xvmc=no ;;
863 --enable-vdpau) _vdpau=yes ;;
864 --disable-vdpau) _vdpau=no ;;
865 --enable-sdl) _sdl=yes ;;
866 --disable-sdl) _sdl=no ;;
867 --enable-kva) _kva=yes ;;
868 --disable-kva) _kva=no ;;
869 --enable-direct3d) _direct3d=yes ;;
870 --disable-direct3d) _direct3d=no ;;
871 --enable-directx) _directx=yes ;;
872 --disable-directx) _directx=no ;;
873 --enable-win32waveout) _win32waveout=yes ;;
874 --disable-win32waveout) _win32waveout=no ;;
875 --enable-nas) _nas=yes ;;
876 --disable-nas) _nas=no ;;
877 --enable-png) _png=yes ;;
878 --disable-png) _png=no ;;
879 --enable-mng) _mng=yes ;;
880 --disable-mng) _mng=no ;;
881 --enable-jpeg) _jpeg=yes ;;
882 --disable-jpeg) _jpeg=no ;;
883 --enable-pnm) _pnm=yes ;;
884 --disable-pnm) _pnm=no ;;
885 --enable-md5sum) _md5sum=yes ;;
886 --disable-md5sum) _md5sum=no ;;
887 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
888 --disable-yuv4mpeg) _yuv4mpeg=no ;;
889 --enable-gif) _gif=yes ;;
890 --disable-gif) _gif=no ;;
891 --enable-gl) _gl=yes ;;
892 --disable-gl) _gl=no ;;
893 --enable-ggi) _ggi=yes ;;
894 --disable-ggi) _ggi=no ;;
895 --enable-ggiwmh) _ggiwmh=yes ;;
896 --disable-ggiwmh) _ggiwmh=no ;;
897 --enable-aa) _aa=yes ;;
898 --disable-aa) _aa=no ;;
899 --enable-caca) _caca=yes ;;
900 --disable-caca) _caca=no ;;
901 --enable-svga) _svga=yes ;;
902 --disable-svga) _svga=no ;;
903 --enable-vesa) _vesa=yes ;;
904 --disable-vesa) _vesa=no ;;
905 --enable-fbdev) _fbdev=yes ;;
906 --disable-fbdev) _fbdev=no ;;
907 --enable-dvb) _dvb=yes ;;
908 --disable-dvb) _dvb=no ;;
909 --enable-dvbhead) _dvbhead=yes ;;
910 --disable-dvbhead) _dvbhead=no ;;
911 --enable-dxr2) _dxr2=yes ;;
912 --disable-dxr2) _dxr2=no ;;
913 --enable-dxr3) _dxr3=yes ;;
914 --disable-dxr3) _dxr3=no ;;
915 --enable-ivtv) _ivtv=yes ;;
916 --disable-ivtv) _ivtv=no ;;
917 --enable-v4l2) _v4l2=yes ;;
918 --disable-v4l2) _v4l2=no ;;
919 --enable-iconv) _iconv=yes ;;
920 --disable-iconv) _iconv=no ;;
921 --enable-langinfo) _langinfo=yes ;;
922 --disable-langinfo) _langinfo=no ;;
923 --enable-rtc) _rtc=yes ;;
924 --disable-rtc) _rtc=no ;;
925 --enable-libdv) _libdv=yes ;;
926 --disable-libdv) _libdv=no ;;
927 --enable-ossaudio) _ossaudio=yes ;;
928 --disable-ossaudio) _ossaudio=no ;;
929 --enable-arts) _arts=yes ;;
930 --disable-arts) _arts=no ;;
931 --enable-esd) _esd=yes ;;
932 --disable-esd) _esd=no ;;
933 --enable-pulse) _pulse=yes ;;
934 --disable-pulse) _pulse=no ;;
935 --enable-jack) _jack=yes ;;
936 --disable-jack) _jack=no ;;
937 --enable-openal) _openal=yes ;;
938 --disable-openal) _openal=no ;;
939 --enable-dart) _dart=yes ;;
940 --disable-dart) _dart=no ;;
941 --enable-mad) _mad=yes ;;
942 --disable-mad) _mad=no ;;
943 --enable-mp3lame) _mp3lame=yes ;;
944 --disable-mp3lame) _mp3lame=no ;;
945 --enable-toolame) _toolame=yes ;;
946 --disable-toolame) _toolame=no ;;
947 --enable-twolame) _twolame=yes ;;
948 --disable-twolame) _twolame=no ;;
949 --enable-libcdio) _libcdio=yes ;;
950 --disable-libcdio) _libcdio=no ;;
951 --enable-liblzo) _liblzo=yes ;;
952 --disable-liblzo) _liblzo=no ;;
953 --enable-libvorbis) _libvorbis=yes ;;
954 --disable-libvorbis) _libvorbis=no ;;
955 --enable-speex) _speex=yes ;;
956 --disable-speex) _speex=no ;;
957 --enable-tremor) _tremor=yes ;;
958 --disable-tremor) _tremor=no ;;
959 --enable-tremor-internal) _tremor_internal=yes ;;
960 --disable-tremor-internal) _tremor_internal=no ;;
961 --enable-tremor-low) _tremor_low=yes ;;
962 --disable-tremor-low) _tremor_low=no ;;
963 --enable-theora) _theora=yes ;;
964 --disable-theora) _theora=no ;;
965 --enable-mp3lib) _mp3lib=yes ;;
966 --disable-mp3lib) _mp3lib=no ;;
967 --enable-liba52-internal) _liba52_internal=yes ;;
968 --disable-liba52-internal) _liba52_internal=no ;;
969 --enable-liba52) _liba52=yes ;;
970 --disable-liba52) _liba52=no ;;
971 --enable-libdca) _libdca=yes ;;
972 --disable-libdca) _libdca=no ;;
973 --enable-libmpeg2) _libmpeg2=yes ;;
974 --disable-libmpeg2) _libmpeg2=no ;;
975 --enable-musepack) _musepack=yes ;;
976 --disable-musepack) _musepack=no ;;
977 --enable-faad) _faad=yes ;;
978 --disable-faad) _faad=no ;;
979 --enable-faad-internal) _faad_internal=yes ;;
980 --disable-faad-internal) _faad_internal=no ;;
981 --enable-faad-fixed) _faad_fixed=yes ;;
982 --disable-faad-fixed) _faad_fixed=no ;;
983 --enable-faac) _faac=yes ;;
984 --disable-faac) _faac=no ;;
985 --enable-ladspa) _ladspa=yes ;;
986 --disable-ladspa) _ladspa=no ;;
987 --enable-libbs2b) _libbs2b=yes ;;
988 --disable-libbs2b) _libbs2b=no ;;
989 --enable-xmms) _xmms=yes ;;
990 --disable-xmms) _xmms=no ;;
991 --enable-vcd) _vcd=yes ;;
992 --disable-vcd) _vcd=no ;;
993 --enable-dvdread) _dvdread=yes ;;
994 --disable-dvdread) _dvdread=no ;;
995 --enable-dvdread-internal) _dvdread_internal=yes ;;
996 --disable-dvdread-internal) _dvdread_internal=no ;;
997 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
998 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
999 --enable-dvdnav) _dvdnav=yes ;;
1000 --disable-dvdnav) _dvdnav=no ;;
1001 --enable-xanim) _xanim=yes ;;
1002 --disable-xanim) _xanim=no ;;
1003 --enable-real) _real=yes ;;
1004 --disable-real) _real=no ;;
1005 --enable-live) _live=yes ;;
1006 --disable-live) _live=no ;;
1007 --enable-nemesi) _nemesi=yes ;;
1008 --disable-nemesi) _nemesi=no ;;
1009 --enable-xinerama) _xinerama=yes ;;
1010 --disable-xinerama) _xinerama=no ;;
1011 --enable-mga) _mga=yes ;;
1012 --disable-mga) _mga=no ;;
1013 --enable-xmga) _xmga=yes ;;
1014 --disable-xmga) _xmga=no ;;
1015 --enable-vm) _vm=yes ;;
1016 --disable-vm) _vm=no ;;
1017 --enable-xf86keysym) _xf86keysym=yes ;;
1018 --disable-xf86keysym) _xf86keysym=no ;;
1019 --enable-mlib) _mlib=yes ;;
1020 --disable-mlib) _mlib=no ;;
1021 --enable-sunaudio) _sunaudio=yes ;;
1022 --disable-sunaudio) _sunaudio=no ;;
1023 --enable-sgiaudio) _sgiaudio=yes ;;
1024 --disable-sgiaudio) _sgiaudio=no ;;
1025 --enable-alsa) _alsa=yes ;;
1026 --disable-alsa) _alsa=no ;;
1027 --enable-tv) _tv=yes ;;
1028 --disable-tv) _tv=no ;;
1029 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1030 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1031 --enable-tv-v4l1) _tv_v4l1=yes ;;
1032 --disable-tv-v4l1) _tv_v4l1=no ;;
1033 --enable-tv-v4l2) _tv_v4l2=yes ;;
1034 --disable-tv-v4l2) _tv_v4l2=no ;;
1035 --enable-tv-dshow) _tv_dshow=yes ;;
1036 --disable-tv-dshow) _tv_dshow=no ;;
1037 --enable-radio) _radio=yes ;;
1038 --enable-radio-capture) _radio_capture=yes ;;
1039 --disable-radio-capture) _radio_capture=no ;;
1040 --disable-radio) _radio=no ;;
1041 --enable-radio-v4l) _radio_v4l=yes ;;
1042 --disable-radio-v4l) _radio_v4l=no ;;
1043 --enable-radio-v4l2) _radio_v4l2=yes ;;
1044 --disable-radio-v4l2) _radio_v4l2=no ;;
1045 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1046 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1047 --enable-pvr) _pvr=yes ;;
1048 --disable-pvr) _pvr=no ;;
1049 --enable-fastmemcpy) _fastmemcpy=yes ;;
1050 --disable-fastmemcpy) _fastmemcpy=no ;;
1051 --enable-network) _network=yes ;;
1052 --disable-network) _network=no ;;
1053 --enable-winsock2_h) _winsock2_h=yes ;;
1054 --disable-winsock2_h) _winsock2_h=no ;;
1055 --enable-smb) _smb=yes ;;
1056 --disable-smb) _smb=no ;;
1057 --enable-vidix) _vidix=yes ;;
1058 --disable-vidix) _vidix=no ;;
1059 --with-vidix-drivers=*)
1060 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1062 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1063 --enable-dhahelper) _dhahelper=yes ;;
1064 --disable-dhahelper) _dhahelper=no ;;
1065 --enable-svgalib_helper) _svgalib_helper=yes ;;
1066 --disable-svgalib_helper) _svgalib_helper=no ;;
1067 --enable-joystick) _joystick=yes ;;
1068 --disable-joystick) _joystick=no ;;
1069 --enable-xvid) _xvid=yes ;;
1070 --disable-xvid) _xvid=no ;;
1071 --enable-x264) _x264=yes ;;
1072 --disable-x264) _x264=no ;;
1073 --enable-libnut) _libnut=yes ;;
1074 --disable-libnut) _libnut=no ;;
1075 --enable-libavutil) _libavutil=yes ;;
1076 --disable-libavutil) _libavutil=no ;;
1077 --enable-libavcodec) _libavcodec=yes ;;
1078 --disable-libavcodec) _libavcodec=no ;;
1079 --enable-libavformat) _libavformat=yes ;;
1080 --disable-libavformat) _libavformat=no ;;
1081 --enable-libpostproc) _libpostproc=yes ;;
1082 --disable-libpostproc) _libpostproc=no ;;
1083 --enable-libswscale) _libswscale=yes ;;
1084 --disable-libswscale) _libswscale=no ;;
1085 --ffmpeg-source-dir=*)
1086 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1088 --enable-lirc) _lirc=yes ;;
1089 --disable-lirc) _lirc=no ;;
1090 --enable-lircc) _lircc=yes ;;
1091 --disable-lircc) _lircc=no ;;
1092 --enable-apple-remote) _apple_remote=yes ;;
1093 --disable-apple-remote) _apple_remote=no ;;
1094 --enable-apple-ir) _apple_ir=yes ;;
1095 --disable-apple-ir) _apple_ir=no ;;
1096 --enable-gui) _gui=yes ;;
1097 --disable-gui) _gui=no ;;
1098 --enable-gtk1) _gtk1=yes ;;
1099 --disable-gtk1) _gtk1=no ;;
1100 --enable-termcap) _termcap=yes ;;
1101 --disable-termcap) _termcap=no ;;
1102 --enable-termios) _termios=yes ;;
1103 --disable-termios) _termios=no ;;
1104 --enable-3dfx) _3dfx=yes ;;
1105 --disable-3dfx) _3dfx=no ;;
1106 --enable-s3fb) _s3fb=yes ;;
1107 --disable-s3fb) _s3fb=no ;;
1108 --enable-wii) _wii=yes ;;
1109 --disable-wii) _wii=no ;;
1110 --enable-tdfxfb) _tdfxfb=yes ;;
1111 --disable-tdfxfb) _tdfxfb=no ;;
1112 --disable-tdfxvid) _tdfxvid=no ;;
1113 --enable-tdfxvid) _tdfxvid=yes ;;
1114 --disable-xvr100) _xvr100=no ;;
1115 --enable-xvr100) _xvr100=yes ;;
1116 --disable-tga) _tga=no ;;
1117 --enable-tga) _tga=yes ;;
1118 --enable-directfb) _directfb=yes ;;
1119 --disable-directfb) _directfb=no ;;
1120 --enable-zr) _zr=yes ;;
1121 --disable-zr) _zr=no ;;
1122 --enable-bl) _bl=yes ;;
1123 --disable-bl) _bl=no ;;
1124 --enable-mtrr) _mtrr=yes ;;
1125 --disable-mtrr) _mtrr=no ;;
1126 --enable-largefiles) _largefiles=yes ;;
1127 --disable-largefiles) _largefiles=no ;;
1128 --enable-shm) _shm=yes ;;
1129 --disable-shm) _shm=no ;;
1130 --enable-select) _select=yes ;;
1131 --disable-select) _select=no ;;
1132 --enable-linux-devfs) _linux_devfs=yes ;;
1133 --disable-linux-devfs) _linux_devfs=no ;;
1134 --enable-cdparanoia) _cdparanoia=yes ;;
1135 --disable-cdparanoia) _cdparanoia=no ;;
1136 --enable-cddb) _cddb=yes ;;
1137 --disable-cddb) _cddb=no ;;
1138 --enable-big-endian) _big_endian=yes ;;
1139 --disable-big-endian) _big_endian=no ;;
1140 --enable-bitmap-font) _bitmap_font=yes ;;
1141 --disable-bitmap-font) _bitmap_font=no ;;
1142 --enable-freetype) _freetype=yes ;;
1143 --disable-freetype) _freetype=no ;;
1144 --enable-fontconfig) _fontconfig=yes ;;
1145 --disable-fontconfig) _fontconfig=no ;;
1146 --enable-unrarexec) _unrar_exec=yes ;;
1147 --disable-unrarexec) _unrar_exec=no ;;
1148 --enable-ftp) _ftp=yes ;;
1149 --disable-ftp) _ftp=no ;;
1150 --enable-vstream) _vstream=yes ;;
1151 --disable-vstream) _vstream=no ;;
1152 --enable-pthreads) _pthreads=yes ;;
1153 --disable-pthreads) _pthreads=no ;;
1154 --enable-w32threads) _w32threads=yes ;;
1155 --disable-w32threads) _w32threads=no ;;
1156 --enable-ass) _ass=yes ;;
1157 --disable-ass) _ass=no ;;
1158 --enable-rpath) _rpath=yes ;;
1159 --disable-rpath) _rpath=no ;;
1161 --enable-fribidi) _fribidi=yes ;;
1162 --disable-fribidi) _fribidi=no ;;
1164 --enable-enca) _enca=yes ;;
1165 --disable-enca) _enca=no ;;
1167 --enable-inet6) _inet6=yes ;;
1168 --disable-inet6) _inet6=no ;;
1170 --enable-gethostbyname2) _gethostbyname2=yes ;;
1171 --disable-gethostbyname2) _gethostbyname2=no ;;
1173 --enable-dga1) _dga1=yes ;;
1174 --disable-dga1) _dga1=no ;;
1175 --enable-dga2) _dga2=yes ;;
1176 --disable-dga2) _dga2=no ;;
1178 --enable-menu) _menu=yes ;;
1179 --disable-menu) _menu=no ;;
1181 --enable-qtx) _qtx=yes ;;
1182 --disable-qtx) _qtx=no ;;
1184 --enable-coreaudio) _coreaudio=yes ;;
1185 --disable-coreaudio) _coreaudio=no ;;
1186 --enable-corevideo) _corevideo=yes ;;
1187 --disable-corevideo) _corevideo=no ;;
1188 --enable-quartz) _quartz=yes ;;
1189 --disable-quartz) _quartz=no ;;
1190 --enable-macosx-finder) _macosx_finder=yes ;;
1191 --disable-macosx-finder) _macosx_finder=no ;;
1192 --enable-macosx-bundle) _macosx_bundle=yes;;
1193 --disable-macosx-bundle) _macosx_bundle=no;;
1195 --enable-maemo) _maemo=yes ;;
1196 --disable-maemo) _maemo=no ;;
1198 --enable-sortsub) _sortsub=yes ;;
1199 --disable-sortsub) _sortsub=no ;;
1201 --enable-crash-debug) _crash_debug=yes ;;
1202 --disable-crash-debug) _crash_debug=no ;;
1203 --enable-sighandler) _sighandler=yes ;;
1204 --disable-sighandler) _sighandler=no ;;
1205 --enable-win32dll) _win32dll=yes ;;
1206 --disable-win32dll) _win32dll=no ;;
1208 --enable-sse) _sse=yes ;;
1209 --disable-sse) _sse=no ;;
1210 --enable-sse2) _sse2=yes ;;
1211 --disable-sse2) _sse2=no ;;
1212 --enable-ssse3) _ssse3=yes ;;
1213 --disable-ssse3) _ssse3=no ;;
1214 --enable-mmxext) _mmxext=yes ;;
1215 --disable-mmxext) _mmxext=no ;;
1216 --enable-3dnow) _3dnow=yes ;;
1217 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1218 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1219 --disable-3dnowext) _3dnowext=no ;;
1220 --enable-cmov) _cmov=yes ;;
1221 --disable-cmov) _cmov=no ;;
1222 --enable-fast-cmov) _fast_cmov=yes ;;
1223 --disable-fast-cmov) _fast_cmov=no ;;
1224 --enable-altivec) _altivec=yes ;;
1225 --disable-altivec) _altivec=no ;;
1226 --enable-armv5te) _armv5te=yes ;;
1227 --disable-armv5te) _armv5te=no ;;
1228 --enable-armv6) _armv6=yes ;;
1229 --disable-armv6) _armv6=no ;;
1230 --enable-armv6t2) _armv6t2=yes ;;
1231 --disable-armv6t2) _armv6t2=no ;;
1232 --enable-armvfp) _armvfp=yes ;;
1233 --disable-armvfp) _armvfp=no ;;
1234 --enable-neon) neon=yes ;;
1235 --disable-neon) neon=no ;;
1236 --enable-iwmmxt) _iwmmxt=yes ;;
1237 --disable-iwmmxt) _iwmmxt=no ;;
1238 --enable-mmx) _mmx=yes ;;
1239 --disable-mmx) # 3Dnow! and MMX2 require MMX
1240 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1243 echo "Unknown parameter: $ac_option"
1244 exit 1
1247 esac
1248 done
1250 if test "$_gui" = yes ; then
1251 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1252 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1255 # Atmos: moved this here, to be correct, if --prefix is specified
1256 test -z "$_bindir" && _bindir="$_prefix/bin"
1257 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1258 test -z "$_mandir" && _mandir="$_prefix/share/man"
1259 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1260 test -z "$_libdir" && _libdir="$_prefix/lib"
1262 # Determine our OS name and CPU architecture
1263 if test -z "$_target" ; then
1264 # OS name
1265 system_name=$(uname -s 2>&1)
1266 case "$system_name" in
1267 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1269 Haiku)
1270 system_name=BeOS
1272 IRIX*)
1273 system_name=IRIX
1275 GNU/kFreeBSD)
1276 system_name=FreeBSD
1278 HP-UX*)
1279 system_name=HP-UX
1281 [cC][yY][gG][wW][iI][nN]*)
1282 system_name=CYGWIN
1284 MINGW32*)
1285 system_name=MINGW32
1287 OS/2*)
1288 system_name=OS/2
1291 system_name="$system_name-UNKNOWN"
1293 esac
1296 # host's CPU/instruction set
1297 host_arch=$(uname -p 2>&1)
1298 case "$host_arch" in
1299 i386|sparc|ppc|alpha|arm|mips|vax)
1301 powerpc) # Darwin returns 'powerpc'
1302 host_arch=ppc
1304 *) # uname -p on Linux returns 'unknown' for the processor type,
1305 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1307 # Maybe uname -m (machine hardware name) returns something we
1308 # recognize.
1310 # x86/x86pc is used by QNX
1311 case "$(uname -m 2>&1)" in
1312 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 ;;
1313 ia64) host_arch=ia64 ;;
1314 macppc|ppc) host_arch=ppc ;;
1315 ppc64) host_arch=ppc64 ;;
1316 alpha) host_arch=alpha ;;
1317 sparc) host_arch=sparc ;;
1318 sparc64) host_arch=sparc64 ;;
1319 parisc*|hppa*|9000*) host_arch=hppa ;;
1320 arm*|zaurus|cats) host_arch=arm ;;
1321 sh3|sh4|sh4a) host_arch=sh ;;
1322 s390) host_arch=s390 ;;
1323 s390x) host_arch=s390x ;;
1324 *mips*) host_arch=mips ;;
1325 vax) host_arch=vax ;;
1326 xtensa*) host_arch=xtensa ;;
1327 *) host_arch=UNKNOWN ;;
1328 esac
1330 esac
1331 else # if test -z "$_target"
1332 system_name=$(echo $_target | cut -d '-' -f 2)
1333 case "$(echo $system_name | tr A-Z a-z)" in
1334 linux) system_name=Linux ;;
1335 freebsd) system_name=FreeBSD ;;
1336 gnu/kfreebsd) system_name=FreeBSD ;;
1337 netbsd) system_name=NetBSD ;;
1338 bsd/os) system_name=BSD/OS ;;
1339 openbsd) system_name=OpenBSD ;;
1340 dragonfly) system_name=DragonFly ;;
1341 sunos) system_name=SunOS ;;
1342 qnx) system_name=QNX ;;
1343 morphos) system_name=MorphOS ;;
1344 amigaos) system_name=AmigaOS ;;
1345 mingw32*) system_name=MINGW32 ;;
1346 esac
1347 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1348 host_arch=$(echo $_target | cut -d '-' -f 1)
1349 if test $(echo $host_arch) != "x86_64" ; then
1350 host_arch=$(echo $host_arch | tr '_' '-')
1354 extra_cflags="-I. $extra_cflags"
1355 _timer=timer-linux.c
1356 _getch=getch2.c
1357 if freebsd ; then
1358 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1359 extra_cflags="$extra_cflags -I/usr/local/include"
1362 if netbsd || dragonfly ; then
1363 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1364 extra_cflags="$extra_cflags -I/usr/pkg/include"
1367 if darwin; then
1368 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1369 _timer=timer-darwin.c
1372 if aix ; then
1373 extra_ldflags="$extra_ldflags -lC"
1376 if irix ; then
1377 _ranlib='ar -r'
1378 elif linux ; then
1379 _ranlib='true'
1382 if win32 ; then
1383 _exesuf=".exe"
1384 # -lwinmm is always needed for osdep/timer-win2.c
1385 extra_ldflags="$extra_ldflags -lwinmm"
1386 _pe_executable=yes
1387 _timer=timer-win2.c
1388 _priority=yes
1389 def_dos_paths="#define HAVE_DOS_PATHS 1"
1390 def_priority="#define CONFIG_PRIORITY 1"
1393 if mingw32 ; then
1394 _getch=getch2-win.c
1395 _need_shmem=no
1398 if amigaos ; then
1399 _select=no
1400 _sighandler=no
1401 _stream_cache=no
1402 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1403 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1406 if qnx ; then
1407 extra_ldflags="$extra_ldflags -lph"
1410 if os2 ; then
1411 _exesuf=".exe"
1412 _getch=getch2-os2.c
1413 _need_shmem=no
1414 _priority=yes
1415 def_dos_paths="#define HAVE_DOS_PATHS 1"
1416 def_priority="#define CONFIG_PRIORITY 1"
1419 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1420 test "$I" && break
1421 done
1424 TMPLOG="configure.log"
1425 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1426 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1427 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1428 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1429 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1431 rm -f "$TMPLOG"
1432 echo configuration: $_configuration > "$TMPLOG"
1433 echo >> "$TMPLOG"
1436 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1437 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1441 # Checking CC version...
1442 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1443 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1444 echocheck "$_cc version"
1445 cc_vendor=intel
1446 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1447 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1448 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1449 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1450 # TODO verify older icc/ecc compatibility
1451 case $cc_version in
1453 cc_version="v. ?.??, bad"
1454 cc_fail=yes
1456 10.1|11.0|11.1)
1457 cc_version="$cc_version, ok"
1460 cc_version="$cc_version, bad"
1461 cc_fail=yes
1463 esac
1464 echores "$cc_version"
1465 else
1466 for _cc in "$_cc" cc gcc ; do
1467 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1468 if test "$cc_name_tmp" = "gcc"; then
1469 cc_name=$cc_name_tmp
1470 echocheck "$_cc version"
1471 cc_vendor=gnu
1472 cc_version=$($_cc -dumpversion 2>&1)
1473 case $cc_version in
1474 2.96*)
1475 cc_fail=yes
1478 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1479 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1480 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1482 esac
1483 echores "$cc_version"
1484 break
1486 done
1487 fi # icc
1488 test "$cc_fail" = yes && die "unsupported compiler version"
1490 if test -z "$_target" && x86 ; then
1491 cat > $TMPC << EOF
1492 int main(void) {
1493 int test[(int)sizeof(char *)-7];
1494 return 0;
1497 cc_check && host_arch=x86_64 || host_arch=i386
1500 echo "Detected operating system: $system_name"
1501 echo "Detected host architecture: $host_arch"
1503 echocheck "host cc"
1504 test "$_host_cc" || _host_cc=$_cc
1505 echores $_host_cc
1507 echocheck "cross compilation"
1508 if test $_cross_compile = auto ; then
1509 cat > $TMPC << EOF
1510 int main(void) { return 0; }
1512 _cross_compile=yes
1513 cc_check && "$TMPEXE" && _cross_compile=no
1515 echores $_cross_compile
1517 if test $_cross_compile = yes; then
1518 tmp_run() {
1519 return 0
1523 # ---
1525 # now that we know what compiler should be used for compilation, try to find
1526 # out which assembler is used by the $_cc compiler
1527 if test "$_as" = auto ; then
1528 _as=$($_cc -print-prog-name=as)
1529 test -z "$_as" && _as=as
1532 if test "$_nm" = auto ; then
1533 _nm=$($_cc -print-prog-name=nm)
1534 test -z "$_nm" && _nm=nm
1537 # XXX: this should be ok..
1538 _cpuinfo="echo"
1540 if test "$_runtime_cpudetection" = no ; then
1542 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1543 # FIXME: Remove the cygwin check once AMD CPUs are supported
1544 if test -r /proc/cpuinfo && ! cygwin; then
1545 # Linux with /proc mounted, extract CPU information from it
1546 _cpuinfo="cat /proc/cpuinfo"
1547 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1548 # FreeBSD with Linux emulation /proc mounted,
1549 # extract CPU information from it
1550 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1551 elif darwin && ! x86 ; then
1552 # use hostinfo on Darwin
1553 _cpuinfo="hostinfo"
1554 elif aix; then
1555 # use 'lsattr' on AIX
1556 _cpuinfo="lsattr -E -l proc0 -a type"
1557 elif x86; then
1558 # all other OSes try to extract CPU information from a small helper
1559 # program cpuinfo instead
1560 $_cc -o cpuinfo$_exesuf cpuinfo.c
1561 _cpuinfo="./cpuinfo$_exesuf"
1564 if x86 ; then
1565 # gather more CPU information
1566 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1567 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1568 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1569 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1570 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1572 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1574 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1575 -e s/xmm/sse/ -e s/kni/sse/)
1577 for ext in $pparam ; do
1578 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1579 done
1581 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1582 test $_sse = kernel_check && _mmxext=kernel_check
1584 echocheck "CPU vendor"
1585 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1587 echocheck "CPU type"
1588 echores "$pname"
1591 fi # test "$_runtime_cpudetection" = no
1593 if x86 && test "$_runtime_cpudetection" = no ; then
1594 extcheck() {
1595 if test "$1" = kernel_check ; then
1596 echocheck "kernel support of $2"
1597 cat > $TMPC <<EOF
1598 #include <stdlib.h>
1599 #include <signal.h>
1600 void catch() { exit(1); }
1601 int main(void) {
1602 signal(SIGILL, catch);
1603 __asm__ volatile ("$3":::"memory"); return 0;
1607 if cc_check && tmp_run ; then
1608 eval _$2=yes
1609 echores "yes"
1610 _optimizing="$_optimizing $2"
1611 return 0
1612 else
1613 eval _$2=no
1614 echores "failed"
1615 echo "It seems that your kernel does not correctly support $2."
1616 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1617 return 1
1620 return 0
1623 extcheck $_mmx "mmx" "emms"
1624 extcheck $_mmxext "mmxext" "sfence"
1625 extcheck $_3dnow "3dnow" "femms"
1626 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1627 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1628 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1629 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1630 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1632 echocheck "mtrr support"
1633 if test "$_mtrr" = kernel_check ; then
1634 _mtrr="yes"
1635 _optimizing="$_optimizing mtrr"
1637 echores "$_mtrr"
1639 if test "$_gcc3_ext" != ""; then
1640 # if we had to disable sse/sse2 because the active kernel does not
1641 # support this instruction set extension, we also have to tell
1642 # gcc3 to not generate sse/sse2 instructions for normal C code
1643 cat > $TMPC << EOF
1644 int main(void) { return 0; }
1646 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1652 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1653 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1654 _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'
1655 case "$host_arch" in
1656 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1657 _arch='X86 X86_32'
1658 _target_arch="ARCH_X86 = yes"
1659 _target_subarch="ARCH_X86_32 = yes"
1660 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1661 iproc=486
1662 proc=i486
1665 if test "$_runtime_cpudetection" = no ; then
1666 case "$pvendor" in
1667 AuthenticAMD)
1668 case "$pfamily" in
1669 3) proc=i386 iproc=386 ;;
1670 4) proc=i486 iproc=486 ;;
1671 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1672 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1673 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1674 proc=k6-3
1675 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1676 proc=geode
1677 elif test "$pmodel" -ge 8; then
1678 proc=k6-2
1679 elif test "$pmodel" -ge 6; then
1680 proc=k6
1681 else
1682 proc=i586
1685 6) iproc=686
1686 # It's a bit difficult to determine the correct type of Family 6
1687 # AMD CPUs just from their signature. Instead, we check directly
1688 # whether it supports SSE.
1689 if test "$_sse" = yes; then
1690 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1691 proc=athlon-xp
1692 else
1693 # Again, gcc treats athlon and athlon-tbird similarly.
1694 proc=athlon
1697 15) iproc=686
1698 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1699 # caught and remedied in the optimization tests below.
1700 proc=k8
1703 *) proc=k8 iproc=686 ;;
1704 esac
1706 GenuineIntel)
1707 case "$pfamily" in
1708 3) proc=i386 iproc=386 ;;
1709 4) proc=i486 iproc=486 ;;
1710 5) iproc=586
1711 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1712 proc=pentium-mmx # 4 is desktop, 8 is mobile
1713 else
1714 proc=i586
1717 6) iproc=686
1718 if test "$pmodel" -ge 15; then
1719 proc=core2
1720 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1721 proc=pentium-m
1722 elif test "$pmodel" -ge 7; then
1723 proc=pentium3
1724 elif test "$pmodel" -ge 3; then
1725 proc=pentium2
1726 else
1727 proc=i686
1730 15) iproc=686
1731 # A nocona in 32-bit mode has no more capabilities than a prescott.
1732 if test "$pmodel" -ge 3; then
1733 proc=prescott
1734 else
1735 proc=pentium4
1737 test $_fast_cmov = "auto" && _fast_cmov=no
1739 *) proc=prescott iproc=686 ;;
1740 esac
1742 CentaurHauls)
1743 case "$pfamily" in
1744 5) iproc=586
1745 if test "$pmodel" -ge 8; then
1746 proc=winchip2
1747 elif test "$pmodel" -ge 4; then
1748 proc=winchip-c6
1749 else
1750 proc=i586
1753 6) iproc=686
1754 if test "$pmodel" -ge 9; then
1755 proc=c3-2
1756 else
1757 proc=c3
1758 iproc=586
1761 *) proc=i686 iproc=i686 ;;
1762 esac
1764 unknown)
1765 case "$pfamily" in
1766 3) proc=i386 iproc=386 ;;
1767 4) proc=i486 iproc=486 ;;
1768 *) proc=i586 iproc=586 ;;
1769 esac
1772 proc=i586 iproc=586 ;;
1773 esac
1774 fi # test "$_runtime_cpudetection" = no
1777 # check that gcc supports our CPU, if not, fall back to earlier ones
1778 # LGB: check -mcpu and -march swithing step by step with enabling
1779 # to fall back till 386.
1781 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1783 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1784 cpuopt=-mtune
1785 else
1786 cpuopt=-mcpu
1789 echocheck "GCC & CPU optimization abilities"
1790 cat > $TMPC << EOF
1791 int main(void) { return 0; }
1793 if test "$_runtime_cpudetection" = no ; then
1794 cc_check -march=native && proc=native
1795 if test "$proc" = "k8"; then
1796 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1798 if test "$proc" = "athlon-xp"; then
1799 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1801 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1802 cc_check -march=$proc $cpuopt=$proc || proc=k6
1804 if test "$proc" = "k6" || test "$proc" = "c3"; then
1805 if ! cc_check -march=$proc $cpuopt=$proc; then
1806 if cc_check -march=i586 $cpuopt=i686; then
1807 proc=i586-i686
1808 else
1809 proc=i586
1813 if test "$proc" = "prescott" ; then
1814 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1816 if test "$proc" = "core2" ; then
1817 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1819 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
1820 cc_check -march=$proc $cpuopt=$proc || proc=i686
1822 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1823 cc_check -march=$proc $cpuopt=$proc || proc=i586
1825 if test "$proc" = "i586"; then
1826 cc_check -march=$proc $cpuopt=$proc || proc=i486
1828 if test "$proc" = "i486" ; then
1829 cc_check -march=$proc $cpuopt=$proc || proc=i386
1831 if test "$proc" = "i386" ; then
1832 cc_check -march=$proc $cpuopt=$proc || proc=error
1834 if test "$proc" = "error" ; then
1835 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1836 _mcpu=""
1837 _march=""
1838 _optimizing=""
1839 elif test "$proc" = "i586-i686"; then
1840 _march="-march=i586"
1841 _mcpu="$cpuopt=i686"
1842 _optimizing="$proc"
1843 else
1844 _march="-march=$proc"
1845 _mcpu="$cpuopt=$proc"
1846 _optimizing="$proc"
1848 else # if test "$_runtime_cpudetection" = no
1849 _mcpu="$cpuopt=generic"
1850 # at least i486 required, for bswap instruction
1851 _march="-march=i486"
1852 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1853 cc_check $_mcpu || _mcpu=""
1854 cc_check $_march $_mcpu || _march=""
1857 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1858 ## autodetected mcpu/march parameters
1859 if test "$_target" ; then
1860 # TODO: it may be a good idea to check GCC and fall back in all cases
1861 if test "$host_arch" = "i586-i686"; then
1862 _march="-march=i586"
1863 _mcpu="$cpuopt=i686"
1864 else
1865 _march="-march=$host_arch"
1866 _mcpu="$cpuopt=$host_arch"
1869 proc="$host_arch"
1871 case "$proc" in
1872 i386) iproc=386 ;;
1873 i486) iproc=486 ;;
1874 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1875 i686|athlon*|pentium*) iproc=686 ;;
1876 *) iproc=586 ;;
1877 esac
1880 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1881 _fast_cmov="yes"
1882 else
1883 _fast_cmov="no"
1886 echores "$proc"
1889 ia64)
1890 _arch='IA64'
1891 _target_arch='ARCH_IA64 = yes'
1892 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1893 iproc='ia64'
1896 x86_64|amd64)
1897 _arch='X86 X86_64'
1898 _target_subarch='ARCH_X86_64 = yes'
1899 _target_arch="ARCH_X86 = yes"
1900 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1901 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1902 iproc='x86_64'
1904 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1905 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1906 cpuopt=-mtune
1907 else
1908 cpuopt=-mcpu
1910 test $_fast_cmov = "auto" && _fast_cmov=yes
1911 if test "$_runtime_cpudetection" = no ; then
1912 case "$pvendor" in
1913 AuthenticAMD)
1914 proc=k8;;
1915 GenuineIntel)
1916 case "$pfamily" in
1917 6) proc=core2;;
1919 # 64-bit prescotts exist, but as far as GCC is concerned they
1920 # have the same capabilities as a nocona.
1921 proc=nocona
1923 esac
1926 proc=error;;
1927 esac
1928 fi # test "$_runtime_cpudetection" = no
1930 echocheck "GCC & CPU optimization abilities"
1931 cat > $TMPC << EOF
1932 int main(void) { return 0; }
1934 # This is a stripped-down version of the i386 fallback.
1935 if test "$_runtime_cpudetection" = no ; then
1936 cc_check -march=native && proc=native
1937 # --- AMD processors ---
1938 if test "$proc" = "k8"; then
1939 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1941 # This will fail if gcc version < 3.3, which is ok because earlier
1942 # versions don't really support 64-bit on amd64.
1943 # Is this a valid assumption? -Corey
1944 if test "$proc" = "athlon-xp"; then
1945 cc_check -march=$proc $cpuopt=$proc || proc=error
1947 # --- Intel processors ---
1948 if test "$proc" = "core2"; then
1949 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1951 if test "$proc" = "nocona"; then
1952 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1954 if test "$proc" = "pentium4"; then
1955 cc_check -march=$proc $cpuopt=$proc || proc=error
1958 _march="-march=$proc"
1959 _mcpu="$cpuopt=$proc"
1960 if test "$proc" = "error" ; then
1961 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1962 _mcpu=""
1963 _march=""
1965 else # if test "$_runtime_cpudetection" = no
1966 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1967 _march="-march=x86-64"
1968 _mcpu="$cpuopt=generic"
1969 cc_check $_mcpu || _mcpu="x86-64"
1970 cc_check $_mcpu || _mcpu=""
1971 cc_check $_march $_mcpu || _march=""
1974 _optimizing=""
1976 echores "$proc"
1979 sparc|sparc64)
1980 _arch='SPARC'
1981 _target_arch='ARCH_SPARC = yes'
1982 iproc='sparc'
1983 if test "$host_arch" = "sparc64" ; then
1984 _vis='yes'
1985 proc='ultrasparc'
1986 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1987 elif sunos ; then
1988 echocheck "CPU type"
1989 karch=$(uname -m)
1990 case "$(echo $karch)" in
1991 sun4) proc=v7 ;;
1992 sun4c) proc=v7 ;;
1993 sun4d) proc=v8 ;;
1994 sun4m) proc=v8 ;;
1995 sun4u) proc=ultrasparc _vis='yes' ;;
1996 sun4v) proc=v9 ;;
1997 *) proc=v8 ;;
1998 esac
1999 echores "$proc"
2000 else
2001 proc=v8
2003 _mcpu="-mcpu=$proc"
2004 _optimizing="$proc"
2007 arm|armv4l|armv5tel)
2008 _arch='ARM'
2009 _target_arch='ARCH_ARM = yes'
2010 iproc='arm'
2013 avr32)
2014 _arch='AVR32'
2015 _target_arch='ARCH_AVR32 = yes'
2016 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2017 iproc='avr32'
2020 sh|sh4)
2021 _arch='SH4'
2022 _target_arch='ARCH_SH4 = yes'
2023 iproc='sh4'
2026 ppc|ppc64|powerpc|powerpc64)
2027 _arch='PPC'
2028 def_dcbzl='#define HAVE_DCBZL 0'
2029 _target_arch='ARCH_PPC = yes'
2030 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2031 iproc='ppc'
2033 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2034 _arch='PPC PPC64'
2035 _target_subarch='ARCH_PPC64 = yes'
2036 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2038 echocheck "CPU type"
2039 case $system_name in
2040 Linux)
2041 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2042 if test -n "$($_cpuinfo | grep altivec)"; then
2043 test $_altivec = auto && _altivec=yes
2046 Darwin)
2047 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2048 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2049 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2050 test $_altivec = auto && _altivec=yes
2053 NetBSD)
2054 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2055 case $cc_version in
2056 2*|3.0*|3.1*|3.2*|3.3*)
2059 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2060 test $_altivec = auto && _altivec=yes
2063 esac
2065 AIX)
2066 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2068 esac
2069 if test "$_altivec" = yes; then
2070 echores "$proc altivec"
2071 else
2072 _altivec=no
2073 echores "$proc"
2076 echocheck "GCC & CPU optimization abilities"
2078 if test -n "$proc"; then
2079 case "$proc" in
2080 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2081 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2082 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2083 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2084 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2085 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2086 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2087 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2088 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2089 *) ;;
2090 esac
2091 # gcc 3.1(.1) and up supports 7400 and 7450
2092 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2093 case "$proc" in
2094 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2095 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2096 *) ;;
2097 esac
2099 # gcc 3.2 and up supports 970
2100 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2101 case "$proc" in
2102 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2103 def_dcbzl='#define HAVE_DCBZL 1' ;;
2104 *) ;;
2105 esac
2107 # gcc 3.3 and up supports POWER4
2108 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2109 case "$proc" in
2110 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2111 *) ;;
2112 esac
2114 # gcc 3.4 and up supports 440*
2115 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2116 case "$proc" in
2117 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2118 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2119 *) ;;
2120 esac
2122 # gcc 4.0 and up supports POWER5
2123 if test "$_cc_major" -ge "4"; then
2124 case "$proc" in
2125 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2126 *) ;;
2127 esac
2131 if test -n "$_mcpu"; then
2132 _optimizing=$(echo $_mcpu | cut -c 8-)
2133 echores "$_optimizing"
2134 else
2135 echores "none"
2140 alpha*)
2141 _arch='ALPHA'
2142 _target_arch='ARCH_ALPHA = yes'
2143 iproc='alpha'
2144 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2146 echocheck "CPU type"
2147 cat > $TMPC << EOF
2148 int main(void) {
2149 unsigned long ver, mask;
2150 __asm__ ("implver %0" : "=r" (ver));
2151 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2152 printf("%ld-%x\n", ver, ~mask);
2153 return 0;
2156 $_cc -o "$TMPEXE" "$TMPC"
2157 case $("$TMPEXE") in
2159 0-0) proc="ev4"; _mvi="0";;
2160 1-0) proc="ev5"; _mvi="0";;
2161 1-1) proc="ev56"; _mvi="0";;
2162 1-101) proc="pca56"; _mvi="1";;
2163 2-303) proc="ev6"; _mvi="1";;
2164 2-307) proc="ev67"; _mvi="1";;
2165 2-1307) proc="ev68"; _mvi="1";;
2166 esac
2167 echores "$proc"
2169 echocheck "GCC & CPU optimization abilities"
2170 if test "$proc" = "ev68" ; then
2171 cc_check -mcpu=$proc || proc=ev67
2173 if test "$proc" = "ev67" ; then
2174 cc_check -mcpu=$proc || proc=ev6
2176 _mcpu="-mcpu=$proc"
2177 echores "$proc"
2179 _optimizing="$proc"
2182 mips)
2183 _arch='SGI_MIPS'
2184 _target_arch='ARCH_SGI_MIPS = yes'
2185 iproc='sgi-mips'
2187 if irix ; then
2188 echocheck "CPU type"
2189 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2190 case "$(echo $proc)" in
2191 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2192 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2193 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2194 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2195 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2196 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2197 esac
2198 # gcc < 3.x does not support -mtune.
2199 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2200 _mcpu=''
2202 echores "$proc"
2207 hppa)
2208 _arch='PA_RISC'
2209 _target_arch='ARCH_PA_RISC = yes'
2210 iproc='PA-RISC'
2213 s390)
2214 _arch='S390'
2215 _target_arch='ARCH_S390 = yes'
2216 iproc='390'
2219 s390x)
2220 _arch='S390X'
2221 _target_arch='ARCH_S390X = yes'
2222 iproc='390x'
2225 vax)
2226 _arch='VAX'
2227 _target_arch='ARCH_VAX = yes'
2228 iproc='vax'
2231 xtensa)
2232 _arch='XTENSA'
2233 _target_arch='ARCH_XTENSA = yes'
2234 iproc='xtensa'
2237 generic)
2238 _arch='GENERIC'
2239 _target_arch='ARCH_GENERIC = yes'
2243 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2244 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2245 die "unsupported architecture $host_arch"
2247 esac # case "$host_arch" in
2249 if test "$_runtime_cpudetection" = yes ; then
2250 if x86 ; then
2251 test "$_cmov" != no && _cmov=yes
2252 x86_32 && _cmov=no
2253 test "$_mmx" != no && _mmx=yes
2254 test "$_3dnow" != no && _3dnow=yes
2255 test "$_3dnowext" != no && _3dnowext=yes
2256 test "$_mmxext" != no && _mmxext=yes
2257 test "$_sse" != no && _sse=yes
2258 test "$_sse2" != no && _sse2=yes
2259 test "$_ssse3" != no && _ssse3=yes
2260 test "$_mtrr" != no && _mtrr=yes
2262 if ppc; then
2263 _altivec=yes
2268 # endian testing
2269 echocheck "byte order"
2270 if test "$_big_endian" = auto ; then
2271 cat > $TMPC <<EOF
2272 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2273 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2274 int main(void) { return (int)ascii_name; }
2276 if cc_check ; then
2277 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2278 _big_endian=yes
2279 else
2280 _big_endian=no
2282 else
2283 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2286 if test "$_big_endian" = yes ; then
2287 _byte_order='big-endian'
2288 def_words_endian='#define WORDS_BIGENDIAN 1'
2289 def_bigendian='#define HAVE_BIGENDIAN 1'
2290 else
2291 _byte_order='little-endian'
2292 def_words_endian='#undef WORDS_BIGENDIAN'
2293 def_bigendian='#define HAVE_BIGENDIAN 0'
2295 echores "$_byte_order"
2298 echocheck "extern symbol prefix"
2299 cat > $TMPC << EOF
2300 int ff_extern;
2302 cc_check -c || die "Symbol mangling check failed."
2303 sym=$($_nm -P -g $TMPEXE)
2304 extern_prefix=${sym%%ff_extern*}
2305 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2306 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2307 echores $extern_prefix
2310 echocheck "assembler support of -pipe option"
2311 cat > $TMPC << EOF
2312 int main(void) { return 0; }
2314 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2317 echocheck "compiler support of named assembler arguments"
2318 _named_asm_args=yes
2319 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2320 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2321 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2322 _named_asm_args=no
2323 def_named_asm_args="#undef NAMED_ASM_ARGS"
2325 echores $_named_asm_args
2328 if darwin && test "$cc_vendor" = "gnu" ; then
2329 echocheck "GCC support of -mstackrealign"
2330 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2331 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2332 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2333 # wrong code with this flag, but this can be worked around by adding
2334 # -fno-unit-at-a-time as described in the blog post at
2335 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2336 cat > $TMPC << EOF
2337 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2338 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2340 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2341 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2342 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2343 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2344 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2347 # Checking for CFLAGS
2348 _install_strip="-s"
2349 if test "$_profile" != "" || test "$_debug" != "" ; then
2350 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2351 _install_strip=
2352 elif test -z "$CFLAGS" ; then
2353 if test "$cc_vendor" = "intel" ; then
2354 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2355 elif test "$cc_vendor" != "gnu" ; then
2356 CFLAGS="-O2 $_march $_mcpu $_pipe"
2357 else
2358 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2359 extra_ldflags="$extra_ldflags -ffast-math"
2361 else
2362 _warn_CFLAGS=yes
2365 cat > $TMPC << EOF
2366 int main(void) { return 0; }
2368 if test "$cc_vendor" = "gnu" ; then
2369 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2370 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2371 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2372 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2373 else
2374 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2377 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2380 if test -n "$LDFLAGS" ; then
2381 extra_ldflags="$extra_ldflags $LDFLAGS"
2382 _warn_CFLAGS=yes
2383 elif test "$cc_vendor" = "intel" ; then
2384 extra_ldflags="$extra_ldflags -i-static"
2386 if test -n "$CPPFLAGS" ; then
2387 extra_cflags="$extra_cflags $CPPFLAGS"
2388 _warn_CFLAGS=yes
2393 if x86_32 ; then
2394 # Checking assembler (_as) compatibility...
2395 # Added workaround for older as that reads from stdin by default - atmos
2396 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2397 echocheck "assembler ($_as $as_version)"
2399 _pref_as_version='2.9.1'
2400 echo 'nop' > $TMPS
2401 if test "$_mmx" = yes ; then
2402 echo 'emms' >> $TMPS
2404 if test "$_3dnow" = yes ; then
2405 _pref_as_version='2.10.1'
2406 echo 'femms' >> $TMPS
2408 if test "$_3dnowext" = yes ; then
2409 _pref_as_version='2.10.1'
2410 echo 'pswapd %mm0, %mm0' >> $TMPS
2412 if test "$_mmxext" = yes ; then
2413 _pref_as_version='2.10.1'
2414 echo 'movntq %mm0, (%eax)' >> $TMPS
2416 if test "$_sse" = yes ; then
2417 _pref_as_version='2.10.1'
2418 echo 'xorps %xmm0, %xmm0' >> $TMPS
2420 #if test "$_sse2" = yes ; then
2421 # _pref_as_version='2.11'
2422 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2424 if test "$_cmov" = yes ; then
2425 _pref_as_version='2.10.1'
2426 echo 'cmovb %eax, %ebx' >> $TMPS
2428 if test "$_ssse3" = yes ; then
2429 _pref_as_version='2.16.92'
2430 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2432 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2434 if test "$as_verc_fail" != yes ; then
2435 echores "ok"
2436 else
2437 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2438 echores "failed"
2439 die "obsolete binutils version"
2442 fi #if x86_32
2444 echocheck ".align is a power of two"
2445 if test "$_asmalign_pot" = auto ; then
2446 _asmalign_pot=no
2447 cat > $TMPC << EOF
2448 int main(void) { __asm__ (".align 3"); return 0; }
2450 cc_check && _asmalign_pot=yes
2452 if test "$_asmalign_pot" = "yes" ; then
2453 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2454 else
2455 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2457 echores $_asmalign_pot
2459 if x86 ; then
2460 echocheck "10 assembler operands"
2461 ten_operands=no
2462 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2463 cat > $TMPC << EOF
2464 int main(void) {
2465 int x=0;
2466 __asm__ volatile(
2468 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2470 return 0;
2473 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2474 echores $ten_operands
2476 echocheck "ebx availability"
2477 ebx_available=no
2478 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2479 cat > $TMPC << EOF
2480 int main(void) {
2481 int x;
2482 __asm__ volatile(
2483 "xor %0, %0"
2484 :"=b"(x)
2485 // just adding ebx to clobber list seems unreliable with some
2486 // compilers, e.g. Haiku's gcc 2.95
2488 // and the above check does not work for OSX 64 bit...
2489 __asm__ volatile("":::"%ebx");
2490 return 0;
2493 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2494 echores $ebx_available
2496 echocheck "PIC"
2497 pic=no
2498 cat > $TMPC << EOF
2499 int main(void) {
2500 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2501 #error PIC not enabled
2502 #endif
2503 return 0;
2506 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2507 echores $pic
2509 echocheck "yasm"
2510 if test -z "$YASMFLAGS" ; then
2511 if darwin ; then
2512 x86_64 && objformat="macho64" || objformat="macho"
2513 elif win32 ; then
2514 objformat="win32"
2515 else
2516 objformat="elf"
2518 # currently tested for Linux x86, x86_64
2519 YASMFLAGS="-f $objformat"
2520 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2521 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2522 case "$objformat" in
2523 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2524 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2525 esac
2526 else
2527 _warn_CFLAGS=yes
2530 echo "pabsw xmm0, xmm0" > $TMPS
2531 yasm_check || _yasm=""
2532 if test $_yasm ; then
2533 test "$_mmx" = "yes" && fft_mmx="yes"
2534 def_yasm='#define HAVE_YASM 1'
2535 _have_yasm="yes"
2536 echores "$_yasm"
2537 else
2538 def_yasm='#define HAVE_YASM 0'
2539 fft_mmx="no"
2540 _have_yasm="no"
2541 echores "no"
2544 echocheck "bswap"
2545 def_bswap='#define HAVE_BSWAP 0'
2546 echo 'bswap %eax' > $TMPS
2547 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2548 echores "$bswap"
2549 fi #if x86
2552 #FIXME: This should happen before the check for CFLAGS..
2553 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2554 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2556 # check if AltiVec is supported by the compiler, and how to enable it
2557 echocheck "GCC AltiVec flags"
2558 cat > $TMPC << EOF
2559 int main(void) { return 0; }
2561 if $(cc_check -maltivec -mabi=altivec) ; then
2562 _altivec_gcc_flags="-maltivec -mabi=altivec"
2563 # check if <altivec.h> should be included
2564 cat > $TMPC << EOF
2565 #include <altivec.h>
2566 int main(void) { return 0; }
2568 if $(cc_check $_altivec_gcc_flags) ; then
2569 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2570 inc_altivec_h='#include <altivec.h>'
2571 else
2572 cat > $TMPC << EOF
2573 int main(void) { return 0; }
2575 if $(cc_check -faltivec) ; then
2576 _altivec_gcc_flags="-faltivec"
2577 else
2578 _altivec=no
2579 _altivec_gcc_flags="none, AltiVec disabled"
2583 echores "$_altivec_gcc_flags"
2585 # check if the compiler supports braces for vector declarations
2586 cat > $TMPC << EOF
2587 $inc_altivec_h
2588 int main(void) { (vector int) {1}; return 0; }
2590 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2592 # Disable runtime cpudetection if we cannot generate AltiVec code or
2593 # AltiVec is disabled by the user.
2594 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2595 && _runtime_cpudetection=no
2597 # Show that we are optimizing for AltiVec (if enabled and supported).
2598 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2599 && _optimizing="$_optimizing altivec"
2601 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2602 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2605 if ppc ; then
2606 def_xform_asm='#define HAVE_XFORM_ASM 0'
2607 xform_asm=no
2608 echocheck "XFORM ASM support"
2609 cat > $TMPC << EOF
2610 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2612 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2613 echores "$xform_asm"
2616 if arm ; then
2617 echocheck "ARM pld instruction"
2618 cat > $TMPC << EOF
2619 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2621 pld=no
2622 cc_check && pld=yes
2623 echores "$pld"
2625 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2626 if test $_armv5te = "auto" ; then
2627 cat > $TMPC << EOF
2628 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2630 _armv5te=no
2631 cc_check && _armv5te=yes
2633 echores "$_armv5te"
2635 echocheck "ARMv6 (SIMD instructions)"
2636 if test $_armv6 = "auto" ; then
2637 cat > $TMPC << EOF
2638 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2640 _armv6=no
2641 cc_check && _armv6=yes
2643 echores "$_armv6"
2645 echocheck "ARMv6t2 (SIMD instructions)"
2646 if test $_armv6t2 = "auto" ; then
2647 cat > $TMPC << EOF
2648 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2650 _armv6t2=no
2651 cc_check && _armv6t2=yes
2653 echores "$_armv6"
2655 echocheck "ARM VFP"
2656 if test $_armvfp = "auto" ; then
2657 cat > $TMPC << EOF
2658 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2660 _armvfp=no
2661 cc_check && _armvfp=yes
2663 echores "$_armvfp"
2665 echocheck "ARM NEON"
2666 if test $neon = "auto" ; then
2667 cat > $TMPC << EOF
2668 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2670 neon=no
2671 cc_check && neon=yes
2673 echores "$neon"
2675 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2676 if test $_iwmmxt = "auto" ; then
2677 cat > $TMPC << EOF
2678 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2680 _iwmmxt=no
2681 cc_check && _iwmmxt=yes
2683 echores "$_iwmmxt"
2686 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2687 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2688 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2689 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2690 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2691 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2692 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2693 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2694 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2695 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2696 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2697 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2698 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2699 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2700 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2701 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2702 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2703 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2704 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2705 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2707 # Checking kernel version...
2708 if x86_32 && linux ; then
2709 _k_verc_problem=no
2710 kernel_version=$(uname -r 2>&1)
2711 echocheck "$system_name kernel version"
2712 case "$kernel_version" in
2713 '') kernel_version="?.??"; _k_verc_fail=yes;;
2714 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2715 _k_verc_problem=yes;;
2716 esac
2717 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2718 _k_verc_fail=yes
2720 if test "$_k_verc_fail" ; then
2721 echores "$kernel_version, fail"
2722 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2723 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2724 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2725 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2726 echo "2.2.x you must upgrade it to get SSE support!"
2727 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2728 else
2729 echores "$kernel_version, ok"
2733 ######################
2734 # MAIN TESTS GO HERE #
2735 ######################
2738 echocheck "-lposix"
2739 cat > $TMPC <<EOF
2740 int main(void) { return 0; }
2742 if cc_check -lposix ; then
2743 extra_ldflags="$extra_ldflags -lposix"
2744 echores "yes"
2745 else
2746 echores "no"
2749 echocheck "-lm"
2750 cat > $TMPC <<EOF
2751 int main(void) { return 0; }
2753 if cc_check -lm ; then
2754 _ld_lm="-lm"
2755 echores "yes"
2756 else
2757 _ld_lm=""
2758 echores "no"
2762 echocheck "langinfo"
2763 if test "$_langinfo" = auto ; then
2764 cat > $TMPC <<EOF
2765 #include <langinfo.h>
2766 int main(void) { nl_langinfo(CODESET); return 0; }
2768 _langinfo=no
2769 cc_check && _langinfo=yes
2771 if test "$_langinfo" = yes ; then
2772 def_langinfo='#define HAVE_LANGINFO 1'
2773 else
2774 def_langinfo='#undef HAVE_LANGINFO'
2776 echores "$_langinfo"
2779 echocheck "language"
2780 # Set preferred languages, "all" uses English as main language.
2781 test -z "$language" && language=$LINGUAS
2782 test -z "$language_doc" && language_doc=$language
2783 test -z "$language_man" && language_man=$language
2784 test -z "$language_msg" && language_msg=$language
2785 language_doc=$(echo $language_doc | tr , " ")
2786 language_man=$(echo $language_man | tr , " ")
2787 language_msg=$(echo $language_msg | tr , " ")
2789 test "$language_doc" = "all" && language_doc=$doc_lang_all
2790 test "$language_man" = "all" && language_man=$man_lang_all
2791 test "$language_msg" = "all" && language_msg=en
2793 # Prune non-existing translations from language lists.
2794 # Set message translation to the first available language.
2795 # Fall back on English.
2796 for lang in $language_doc ; do
2797 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2798 done
2799 language_doc=$tmp_language_doc
2800 test -z "$language_doc" && language_doc=en
2802 for lang in $language_man ; do
2803 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2804 done
2805 language_man=$tmp_language_man
2806 test -z "$language_man" && language_man=en
2808 for lang in $language_msg ; do
2809 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2810 done
2811 language_msg=$tmp_language_msg
2812 test -z "$language_msg" && language_msg=en
2813 _mp_help="help/help_mp-${language_msg}.h"
2814 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2817 echocheck "enable sighandler"
2818 if test "$_sighandler" = yes ; then
2819 def_sighandler='#define CONFIG_SIGHANDLER 1'
2820 else
2821 def_sighandler='#undef CONFIG_SIGHANDLER'
2823 echores "$_sighandler"
2825 echocheck "runtime cpudetection"
2826 if test "$_runtime_cpudetection" = yes ; then
2827 _optimizing="Runtime CPU-Detection enabled"
2828 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2829 else
2830 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2832 echores "$_runtime_cpudetection"
2835 echocheck "restrict keyword"
2836 for restrict_keyword in restrict __restrict __restrict__ ; do
2837 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2838 if cc_check; then
2839 def_restrict_keyword=$restrict_keyword
2840 break;
2842 done
2843 if [ -n "$def_restrict_keyword" ]; then
2844 echores "$def_restrict_keyword"
2845 else
2846 echores "none"
2848 # Avoid infinite recursion loop ("#define restrict restrict")
2849 if [ "$def_restrict_keyword" != "restrict" ]; then
2850 def_restrict_keyword="#define restrict $def_restrict_keyword"
2851 else
2852 def_restrict_keyword=""
2856 echocheck "__builtin_expect"
2857 # GCC branch prediction hint
2858 cat > $TMPC << EOF
2859 int foo(int a) {
2860 a = __builtin_expect(a, 10);
2861 return a == 10 ? 0 : 1;
2863 int main(void) { return foo(10) && foo(0); }
2865 _builtin_expect=no
2866 cc_check && _builtin_expect=yes
2867 if test "$_builtin_expect" = yes ; then
2868 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2869 else
2870 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2872 echores "$_builtin_expect"
2875 echocheck "kstat"
2876 cat > $TMPC << EOF
2877 #include <kstat.h>
2878 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2880 _kstat=no
2881 cc_check -lkstat && _kstat=yes
2882 if test "$_kstat" = yes ; then
2883 def_kstat="#define HAVE_LIBKSTAT 1"
2884 extra_ldflags="$extra_ldflags -lkstat"
2885 else
2886 def_kstat="#undef HAVE_LIBKSTAT"
2888 echores "$_kstat"
2891 echocheck "posix4"
2892 # required for nanosleep on some systems
2893 cat > $TMPC << EOF
2894 #include <time.h>
2895 int main(void) { (void) nanosleep(0, 0); return 0; }
2897 _posix4=no
2898 cc_check -lposix4 && _posix4=yes
2899 if test "$_posix4" = yes ; then
2900 extra_ldflags="$extra_ldflags -lposix4"
2902 echores "$_posix4"
2904 for func in llrint log2 lrint lrintf round roundf truncf; do
2905 echocheck $func
2906 cat > $TMPC << EOF
2907 #include <math.h>
2908 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2910 eval _$func=no
2911 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2912 if eval test "x\$_$func" = "xyes"; then
2913 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2914 echores yes
2915 else
2916 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2917 echores no
2919 done
2922 echocheck "mkstemp"
2923 cat > $TMPC << EOF
2924 #include <stdlib.h>
2925 int main(void) { char a; mkstemp(&a); return 0; }
2927 _mkstemp=no
2928 cc_check && _mkstemp=yes
2929 if test "$_mkstemp" = yes ; then
2930 def_mkstemp='#define HAVE_MKSTEMP 1'
2931 else
2932 def_mkstemp='#undef HAVE_MKSTEMP'
2934 echores "$_mkstemp"
2937 echocheck "nanosleep"
2938 # also check for nanosleep
2939 cat > $TMPC << EOF
2940 #include <time.h>
2941 int main(void) { (void) nanosleep(0, 0); return 0; }
2943 _nanosleep=no
2944 cc_check && _nanosleep=yes
2945 if test "$_nanosleep" = yes ; then
2946 def_nanosleep='#define HAVE_NANOSLEEP 1'
2947 else
2948 def_nanosleep='#undef HAVE_NANOSLEEP'
2950 echores "$_nanosleep"
2953 echocheck "socklib"
2954 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2955 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2956 cat > $TMPC << EOF
2957 #include <netdb.h>
2958 #include <sys/socket.h>
2959 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2961 _socklib=no
2962 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2963 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2964 done
2965 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2966 if test $_winsock2_h = auto ; then
2967 _winsock2_h=no
2968 cat > $TMPC << EOF
2969 #include <winsock2.h>
2970 int main(void) { (void) gethostbyname(0); return 0; }
2972 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2974 test "$_ld_sock" && _res_comment="using $_ld_sock"
2975 echores "$_socklib"
2978 if test $_winsock2_h = yes ; then
2979 _ld_sock="-lws2_32"
2980 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2981 else
2982 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2986 echocheck "arpa/inet.h"
2987 arpa_inet_h=no
2988 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2989 cat > $TMPC << EOF
2990 #include <arpa/inet.h>
2991 int main(void) { return 0; }
2993 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2994 echores "$arpa_inet_h"
2997 echocheck "inet_pton()"
2998 def_inet_pton='#define HAVE_INET_PTON 0'
2999 inet_pton=no
3000 cat > $TMPC << EOF
3001 #include <sys/types.h>
3002 #include <sys/socket.h>
3003 #include <arpa/inet.h>
3004 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3006 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3007 cc_check $_ld_tmp && inet_pton=yes && break
3008 done
3009 if test $inet_pton = yes ; then
3010 test $_ld_tmp && _res_comment="using $_ld_tmp"
3011 def_inet_pton='#define HAVE_INET_PTON 1'
3013 echores "$inet_pton"
3016 echocheck "inet_aton()"
3017 def_inet_aton='#define HAVE_INET_ATON 0'
3018 inet_aton=no
3019 cat > $TMPC << EOF
3020 #include <sys/types.h>
3021 #include <sys/socket.h>
3022 #include <arpa/inet.h>
3023 int main(void) { (void) inet_aton(0, 0); return 0; }
3025 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3026 cc_check $_ld_tmp && inet_aton=yes && break
3027 done
3028 if test $inet_aton = yes ; then
3029 test $_ld_tmp && _res_comment="using $_ld_tmp"
3030 def_inet_aton='#define HAVE_INET_ATON 1'
3032 echores "$inet_aton"
3035 echocheck "socklen_t"
3036 _socklen_t=no
3037 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3038 cat > $TMPC << EOF
3039 #include <$header>
3040 int main(void) { socklen_t v = 0; return v; }
3042 cc_check && _socklen_t=yes && break
3043 done
3044 if test "$_socklen_t" = yes ; then
3045 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3046 else
3047 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3049 echores "$_socklen_t"
3052 echocheck "closesocket()"
3053 _closesocket=no
3054 cat > $TMPC << EOF
3055 #include <winsock2.h>
3056 int main(void) { closesocket(~0); return 0; }
3058 cc_check $_ld_sock && _closesocket=yes
3059 if test "$_closesocket" = yes ; then
3060 def_closesocket='#define HAVE_CLOSESOCKET 1'
3061 else
3062 def_closesocket='#define HAVE_CLOSESOCKET 0'
3064 echores "$_closesocket"
3067 echocheck "network"
3068 test $_winsock2_h = no && test $inet_pton = no &&
3069 test $inet_aton = no && _network=no
3070 if test "$_network" = yes ; then
3071 def_network='#define CONFIG_NETWORK 1'
3072 extra_ldflags="$extra_ldflags $_ld_sock"
3073 _inputmodules="network $_inputmodules"
3074 else
3075 _noinputmodules="network $_noinputmodules"
3076 def_network='#undef CONFIG_NETWORK'
3077 _ftp=no
3079 echores "$_network"
3082 echocheck "inet6"
3083 if test "$_inet6" = auto ; then
3084 cat > $TMPC << EOF
3085 #include <sys/types.h>
3086 #if !defined(_WIN32) || defined(__CYGWIN__)
3087 #include <sys/socket.h>
3088 #include <netinet/in.h>
3089 #else
3090 #include <ws2tcpip.h>
3091 #endif
3092 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3094 _inet6=no
3095 if cc_check $_ld_sock ; then
3096 _inet6=yes
3099 if test "$_inet6" = yes ; then
3100 def_inet6='#define HAVE_AF_INET6 1'
3101 else
3102 def_inet6='#undef HAVE_AF_INET6'
3104 echores "$_inet6"
3107 echocheck "gethostbyname2"
3108 if test "$_gethostbyname2" = auto ; then
3109 cat > $TMPC << EOF
3110 #include <sys/types.h>
3111 #include <sys/socket.h>
3112 #include <netdb.h>
3113 int main(void) { gethostbyname2("", AF_INET); return 0; }
3115 _gethostbyname2=no
3116 if cc_check ; then
3117 _gethostbyname2=yes
3120 if test "$_gethostbyname2" = yes ; then
3121 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3122 else
3123 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3125 echores "$_gethostbyname2"
3128 echocheck "inttypes.h (required)"
3129 cat > $TMPC << EOF
3130 #include <inttypes.h>
3131 int main(void) { return 0; }
3133 _inttypes=no
3134 cc_check && _inttypes=yes
3135 echores "$_inttypes"
3137 if test "$_inttypes" = no ; then
3138 echocheck "bitypes.h (inttypes.h predecessor)"
3139 cat > $TMPC << EOF
3140 #include <sys/bitypes.h>
3141 int main(void) { return 0; }
3143 cc_check && _inttypes=yes
3144 if test "$_inttypes" = yes ; then
3145 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."
3146 else
3147 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3152 echocheck "int_fastXY_t in inttypes.h"
3153 cat > $TMPC << EOF
3154 #include <inttypes.h>
3155 int main(void) {
3156 volatile int_fast16_t v= 0;
3157 return v; }
3159 _fast_inttypes=no
3160 cc_check && _fast_inttypes=yes
3161 if test "$_fast_inttypes" = no ; then
3162 def_fast_inttypes='
3163 typedef signed char int_fast8_t;
3164 typedef signed int int_fast16_t;
3165 typedef signed int int_fast32_t;
3166 typedef signed long long int_fast64_t;
3167 typedef unsigned char uint_fast8_t;
3168 typedef unsigned int uint_fast16_t;
3169 typedef unsigned int uint_fast32_t;
3170 typedef unsigned long long uint_fast64_t;'
3172 echores "$_fast_inttypes"
3175 echocheck "malloc.h"
3176 cat > $TMPC << EOF
3177 #include <malloc.h>
3178 int main(void) { (void) malloc(0); return 0; }
3180 _malloc=no
3181 cc_check && _malloc=yes
3182 if test "$_malloc" = yes ; then
3183 def_malloc_h='#define HAVE_MALLOC_H 1'
3184 else
3185 def_malloc_h='#define HAVE_MALLOC_H 0'
3187 # malloc.h emits a warning in FreeBSD and OpenBSD
3188 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3189 echores "$_malloc"
3192 echocheck "memalign()"
3193 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3194 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3195 cat > $TMPC << EOF
3196 #include <malloc.h>
3197 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3199 _memalign=no
3200 cc_check && _memalign=yes
3201 if test "$_memalign" = yes ; then
3202 def_memalign='#define HAVE_MEMALIGN 1'
3203 else
3204 def_memalign='#define HAVE_MEMALIGN 0'
3205 def_map_memalign='#define memalign(a,b) malloc(b)'
3206 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3208 echores "$_memalign"
3211 echocheck "posix_memalign()"
3212 posix_memalign=no
3213 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3214 cat > $TMPC << EOF
3215 #define _XOPEN_SOURCE 600
3216 #include <stdlib.h>
3217 int main(void) { posix_memalign(NULL, 0, 0); }
3219 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3220 echores "$posix_memalign"
3223 echocheck "alloca.h"
3224 cat > $TMPC << EOF
3225 #include <alloca.h>
3226 int main(void) { (void) alloca(0); return 0; }
3228 _alloca=no
3229 cc_check && _alloca=yes
3230 if cc_check ; then
3231 def_alloca_h='#define HAVE_ALLOCA_H 1'
3232 else
3233 def_alloca_h='#undef HAVE_ALLOCA_H'
3235 echores "$_alloca"
3238 echocheck "fastmemcpy"
3239 if test "$_fastmemcpy" = yes ; then
3240 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3241 else
3242 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3244 echores "$_fastmemcpy"
3247 echocheck "mman.h"
3248 cat > $TMPC << EOF
3249 #include <sys/types.h>
3250 #include <sys/mman.h>
3251 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3253 _mman=no
3254 cc_check && _mman=yes
3255 if test "$_mman" = yes ; then
3256 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3257 else
3258 def_mman_h='#undef HAVE_SYS_MMAN_H'
3259 os2 && _need_mmap=yes
3261 echores "$_mman"
3263 cat > $TMPC << EOF
3264 #include <sys/types.h>
3265 #include <sys/mman.h>
3266 int main(void) { void *p = MAP_FAILED; return 0; }
3268 _mman_has_map_failed=no
3269 cc_check && _mman_has_map_failed=yes
3270 if test "$_mman_has_map_failed" = yes ; then
3271 def_mman_has_map_failed=''
3272 else
3273 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3276 echocheck "dynamic loader"
3277 cat > $TMPC << EOF
3278 #include <stddef.h>
3279 #include <dlfcn.h>
3280 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3282 _dl=no
3283 for _ld_tmp in "" "-ldl" ; do
3284 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3285 done
3286 if test "$_dl" = yes ; then
3287 def_dl='#define HAVE_LIBDL 1'
3288 else
3289 def_dl='#undef HAVE_LIBDL'
3291 echores "$_dl"
3294 echocheck "dynamic a/v plugins support"
3295 if test "$_dl" = no ; then
3296 _dynamic_plugins=no
3298 if test "$_dynamic_plugins" = yes ; then
3299 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3300 else
3301 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3303 echores "$_dynamic_plugins"
3306 def_threads='#define HAVE_THREADS 0'
3308 echocheck "pthread"
3309 if linux ; then
3310 THREAD_CFLAGS=-D_REENTRANT
3311 elif freebsd || netbsd || openbsd || bsdos ; then
3312 THREAD_CFLAGS=-D_THREAD_SAFE
3314 if test "$_pthreads" = auto ; then
3315 cat > $TMPC << EOF
3316 #include <pthread.h>
3317 void* func(void *arg) { return arg; }
3318 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3320 _pthreads=no
3321 if ! hpux ; then
3322 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3323 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3324 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3325 done
3328 if test "$_pthreads" = yes ; then
3329 test $_ld_pthread && _res_comment="using $_ld_pthread"
3330 def_pthreads='#define HAVE_PTHREADS 1'
3331 def_threads='#define HAVE_THREADS 1'
3332 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3333 else
3334 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3335 def_pthreads='#undef HAVE_PTHREADS'
3336 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3337 mingw32 || _win32dll=no
3339 echores "$_pthreads"
3341 if cygwin ; then
3342 if test "$_pthreads" = yes ; then
3343 def_pthread_cache="#define PTHREAD_CACHE 1"
3344 else
3345 _stream_cache=no
3346 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3350 echocheck "w32threads"
3351 if test "$_pthreads" = yes ; then
3352 _res_comment="using pthread instead"
3353 _w32threads=no
3355 if test "$_w32threads" = auto ; then
3356 _w32threads=no
3357 mingw32 && _w32threads=yes
3359 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3360 echores "$_w32threads"
3362 echocheck "rpath"
3363 netbsd &&_rpath=yes
3364 if test "$_rpath" = yes ; then
3365 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3366 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3367 done
3368 extra_ldflags=$tmp
3370 echores "$_rpath"
3372 echocheck "iconv"
3373 if test "$_iconv" = auto ; then
3374 cat > $TMPC << EOF
3375 #include <stdio.h>
3376 #include <unistd.h>
3377 #include <iconv.h>
3378 #define INBUFSIZE 1024
3379 #define OUTBUFSIZE 4096
3381 char inbuffer[INBUFSIZE];
3382 char outbuffer[OUTBUFSIZE];
3384 int main(void) {
3385 size_t numread;
3386 iconv_t icdsc;
3387 char *tocode="UTF-8";
3388 char *fromcode="cp1250";
3389 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3390 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3391 char *iptr=inbuffer;
3392 char *optr=outbuffer;
3393 size_t inleft=numread;
3394 size_t outleft=OUTBUFSIZE;
3395 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3396 != (size_t)(-1)) {
3397 write(1, outbuffer, OUTBUFSIZE - outleft);
3400 if (iconv_close(icdsc) == -1)
3403 return 0;
3406 _iconv=no
3407 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3408 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3409 _iconv=yes && break
3410 done
3412 if test "$_iconv" = yes ; then
3413 def_iconv='#define CONFIG_ICONV 1'
3414 else
3415 def_iconv='#undef CONFIG_ICONV'
3417 echores "$_iconv"
3420 echocheck "soundcard.h"
3421 _soundcard_h=no
3422 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3423 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3424 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3425 cat > $TMPC << EOF
3426 #include <$_soundcard_header>
3427 int main(void) { return 0; }
3429 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3430 done
3432 if test "$_soundcard_h" = yes ; then
3433 if test $_soundcard_header = "sys/soundcard.h"; then
3434 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3435 else
3436 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3439 echores "$_soundcard_h"
3442 echocheck "sys/dvdio.h"
3443 cat > $TMPC << EOF
3444 #include <unistd.h>
3445 #include <sys/dvdio.h>
3446 int main(void) { return 0; }
3448 _dvdio=no
3449 cc_check && _dvdio=yes
3450 if test "$_dvdio" = yes ; then
3451 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3452 else
3453 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3455 echores "$_dvdio"
3458 echocheck "sys/cdio.h"
3459 cat > $TMPC << EOF
3460 #include <unistd.h>
3461 #include <sys/cdio.h>
3462 int main(void) { return 0; }
3464 _cdio=no
3465 cc_check && _cdio=yes
3466 if test "$_cdio" = yes ; then
3467 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3468 else
3469 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3471 echores "$_cdio"
3474 echocheck "linux/cdrom.h"
3475 cat > $TMPC << EOF
3476 #include <sys/types.h>
3477 #include <linux/cdrom.h>
3478 int main(void) { return 0; }
3480 _cdrom=no
3481 cc_check && _cdrom=yes
3482 if test "$_cdrom" = yes ; then
3483 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3484 else
3485 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3487 echores "$_cdrom"
3490 echocheck "dvd.h"
3491 cat > $TMPC << EOF
3492 #include <dvd.h>
3493 int main(void) { return 0; }
3495 _dvd=no
3496 cc_check && _dvd=yes
3497 if test "$_dvd" = yes ; then
3498 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3499 else
3500 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3502 echores "$_dvd"
3505 if bsdos; then
3506 echocheck "BSDI dvd.h"
3507 cat > $TMPC << EOF
3508 #include <dvd.h>
3509 int main(void) { return 0; }
3511 _bsdi_dvd=no
3512 cc_check && _bsdi_dvd=yes
3513 if test "$_bsdi_dvd" = yes ; then
3514 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3515 else
3516 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3518 echores "$_bsdi_dvd"
3519 fi #if bsdos
3522 if hpux; then
3523 # also used by AIX, but AIX does not support VCD and/or libdvdread
3524 echocheck "HP-UX SCSI header"
3525 cat > $TMPC << EOF
3526 #include <sys/scsi.h>
3527 int main(void) { return 0; }
3529 _hpux_scsi_h=no
3530 cc_check && _hpux_scsi_h=yes
3531 if test "$_hpux_scsi_h" = yes ; then
3532 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3533 else
3534 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3536 echores "$_hpux_scsi_h"
3537 fi #if hpux
3540 if sunos; then
3541 echocheck "userspace SCSI headers (Solaris)"
3542 cat > $TMPC << EOF
3543 #include <unistd.h>
3544 #include <stropts.h>
3545 #include <sys/scsi/scsi_types.h>
3546 #include <sys/scsi/impl/uscsi.h>
3547 int main(void) { return 0; }
3549 _sol_scsi_h=no
3550 cc_check && _sol_scsi_h=yes
3551 if test "$_sol_scsi_h" = yes ; then
3552 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3553 else
3554 def_sol_scsi_h='#undef SOLARIS_USCSI'
3556 echores "$_sol_scsi_h"
3557 fi #if sunos
3560 echocheck "termcap"
3561 if test "$_termcap" = auto ; then
3562 cat > $TMPC <<EOF
3563 #include <stddef.h>
3564 #include <term.h>
3565 int main(void) { tgetent(NULL, NULL); return 0; }
3567 _termcap=no
3568 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3569 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3570 && _termcap=yes && break
3571 done
3573 if test "$_termcap" = yes ; then
3574 def_termcap='#define HAVE_TERMCAP 1'
3575 test $_ld_tmp && _res_comment="using $_ld_tmp"
3576 else
3577 def_termcap='#undef HAVE_TERMCAP'
3579 echores "$_termcap"
3582 echocheck "termios"
3583 def_termios='#undef HAVE_TERMIOS'
3584 def_termios_h='#undef HAVE_TERMIOS_H'
3585 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3586 if test "$_termios" = auto ; then
3587 _termios=no
3588 for _termios_header in "sys/termios.h" "termios.h"; do
3589 cat > $TMPC <<EOF
3590 #include <$_termios_header>
3591 int main(void) { return 0; }
3593 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3594 done
3597 if test "$_termios" = yes ; then
3598 def_termios='#define HAVE_TERMIOS 1'
3599 if test "$_termios_header" = "termios.h" ; then
3600 def_termios_h='#define HAVE_TERMIOS_H 1'
3601 else
3602 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3605 echores "$_termios"
3608 echocheck "shm"
3609 if test "$_shm" = auto ; then
3610 cat > $TMPC << EOF
3611 #include <sys/types.h>
3612 #include <sys/shm.h>
3613 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3615 _shm=no
3616 cc_check && _shm=yes
3618 if test "$_shm" = yes ; then
3619 def_shm='#define HAVE_SHM 1'
3620 else
3621 def_shm='#undef HAVE_SHM'
3623 echores "$_shm"
3626 echocheck "strsep()"
3627 cat > $TMPC << EOF
3628 #include <string.h>
3629 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3631 _strsep=no
3632 cc_check && _strsep=yes
3633 if test "$_strsep" = yes ; then
3634 def_strsep='#define HAVE_STRSEP 1'
3635 _need_strsep=no
3636 else
3637 def_strsep='#undef HAVE_STRSEP'
3638 _need_strsep=yes
3640 echores "$_strsep"
3643 echocheck "vsscanf()"
3644 cat > $TMPC << EOF
3645 #define _ISOC99_SOURCE
3646 #include <stdarg.h>
3647 #include <stdio.h>
3648 int main(void) { vsscanf(0, 0, 0); return 0; }
3650 _vsscanf=no
3651 cc_check && _vsscanf=yes
3652 if test "$_vsscanf" = yes ; then
3653 def_vsscanf='#define HAVE_VSSCANF 1'
3654 _need_vsscanf=no
3655 else
3656 def_vsscanf='#undef HAVE_VSSCANF'
3657 _need_vsscanf=yes
3659 echores "$_vsscanf"
3662 echocheck "swab()"
3663 cat > $TMPC << EOF
3664 #define _XOPEN_SOURCE 600
3665 #include <unistd.h>
3666 int main(void) { swab(0, 0, 0); return 0; }
3668 _swab=no
3669 cc_check && _swab=yes
3670 if test "$_swab" = yes ; then
3671 def_swab='#define HAVE_SWAB 1'
3672 _need_swab=no
3673 else
3674 def_swab='#undef HAVE_SWAB'
3675 _need_swab=yes
3677 echores "$_swab"
3679 echocheck "POSIX select()"
3680 cat > $TMPC << EOF
3681 #include <stdio.h>
3682 #include <stdlib.h>
3683 #include <sys/types.h>
3684 #include <string.h>
3685 #include <sys/time.h>
3686 #include <unistd.h>
3687 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3689 _posix_select=no
3690 def_posix_select='#undef HAVE_POSIX_SELECT'
3691 #select() of kLIBC (OS/2) supports socket only
3692 ! os2 && cc_check && _posix_select=yes \
3693 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3694 echores "$_posix_select"
3697 echocheck "audio select()"
3698 if test "$_select" = no ; then
3699 def_select='#undef HAVE_AUDIO_SELECT'
3700 elif test "$_select" = yes ; then
3701 def_select='#define HAVE_AUDIO_SELECT 1'
3703 echores "$_select"
3706 echocheck "gettimeofday()"
3707 cat > $TMPC << EOF
3708 #include <stdio.h>
3709 #include <sys/time.h>
3710 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3712 _gettimeofday=no
3713 cc_check && _gettimeofday=yes
3714 if test "$_gettimeofday" = yes ; then
3715 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3716 _need_gettimeofday=no
3717 else
3718 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3719 _need_gettimeofday=yes
3721 echores "$_gettimeofday"
3724 echocheck "glob()"
3725 cat > $TMPC << EOF
3726 #include <stdio.h>
3727 #include <glob.h>
3728 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3730 _glob=no
3731 cc_check && _glob=yes
3732 if test "$_glob" = yes ; then
3733 def_glob='#define HAVE_GLOB 1'
3734 _need_glob=no
3735 else
3736 def_glob='#undef HAVE_GLOB'
3737 _need_glob=yes
3739 echores "$_glob"
3742 echocheck "setenv()"
3743 cat > $TMPC << EOF
3744 #include <stdlib.h>
3745 int main(void) { setenv("","",0); return 0; }
3747 _setenv=no
3748 cc_check && _setenv=yes
3749 if test "$_setenv" = yes ; then
3750 def_setenv='#define HAVE_SETENV 1'
3751 _need_setenv=no
3752 else
3753 def_setenv='#undef HAVE_SETENV'
3754 _need_setenv=yes
3756 echores "$_setenv"
3759 if sunos; then
3760 echocheck "sysi86()"
3761 cat > $TMPC << EOF
3762 #include <sys/sysi86.h>
3763 int main(void) { sysi86(0); return 0; }
3765 _sysi86=no
3766 cc_check && _sysi86=yes
3767 if test "$_sysi86" = yes ; then
3768 def_sysi86='#define HAVE_SYSI86 1'
3769 cat > $TMPC << EOF
3770 #include <sys/sysi86.h>
3771 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3773 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3774 else
3775 def_sysi86='#undef HAVE_SYSI86'
3777 echores "$_sysi86"
3778 fi #if sunos
3781 echocheck "sys/sysinfo.h"
3782 cat > $TMPC << EOF
3783 #include <sys/sysinfo.h>
3784 int main(void) {
3785 struct sysinfo s_info;
3786 sysinfo(&s_info);
3787 return 0;
3790 _sys_sysinfo=no
3791 cc_check && _sys_sysinfo=yes
3792 if test "$_sys_sysinfo" = yes ; then
3793 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3794 else
3795 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3797 echores "$_sys_sysinfo"
3800 if darwin; then
3802 echocheck "Mac OS X Finder Support"
3803 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3804 if test "$_macosx_finder" = yes ; then
3805 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3806 extra_ldflags="$extra_ldflags -framework Carbon"
3808 echores "$_macosx_finder"
3810 echocheck "Mac OS X Bundle file locations"
3811 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3812 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3813 if test "$_macosx_bundle" = yes ; then
3814 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3815 extra_ldflags="$extra_ldflags -framework Carbon"
3817 echores "$_macosx_bundle"
3819 echocheck "Apple Remote"
3820 if test "$_apple_remote" = auto ; then
3821 _apple_remote=no
3822 cat > $TMPC <<EOF
3823 #include <stdio.h>
3824 #include <IOKit/IOCFPlugIn.h>
3825 int main(void) {
3826 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3827 CFMutableDictionaryRef hidMatchDictionary;
3828 IOReturn ioReturnValue;
3830 // Set up a matching dictionary to search the I/O Registry by class.
3831 // name for all HID class devices
3832 hidMatchDictionary = IOServiceMatching("AppleIRController");
3834 // Now search I/O Registry for matching devices.
3835 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3836 hidMatchDictionary, &hidObjectIterator);
3838 // If search is unsuccessful, return nonzero.
3839 if (ioReturnValue != kIOReturnSuccess ||
3840 !IOIteratorIsValid(hidObjectIterator)) {
3841 return 1;
3843 return 0;
3846 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3848 if test "$_apple_remote" = yes ; then
3849 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3850 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3851 else
3852 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3854 echores "$_apple_remote"
3856 fi #if darwin
3858 if linux; then
3860 echocheck "Apple IR"
3861 if test "$_apple_ir" = auto ; then
3862 _apple_ir=no
3863 cat > $TMPC <<EOF
3864 #include <linux/types.h>
3865 #include <linux/input.h>
3866 int main(void) {
3867 struct input_event ev;
3868 struct input_id id;
3869 return 0;
3872 cc_check && _apple_ir=yes
3874 if test "$_apple_ir" = yes ; then
3875 def_apple_ir='#define CONFIG_APPLE_IR 1'
3876 else
3877 def_apple_ir='#undef CONFIG_APPLE_IR'
3879 echores "$_apple_ir"
3880 fi #if linux
3882 echocheck "pkg-config"
3883 _pkg_config=pkg-config
3884 if $($_pkg_config --version > /dev/null 2>&1); then
3885 if test "$_ld_static"; then
3886 _pkg_config="$_pkg_config --static"
3888 echores "yes"
3889 else
3890 _pkg_config=false
3891 echores "no"
3895 echocheck "Samba support (libsmbclient)"
3896 if test "$_smb" = yes; then
3897 extra_ldflags="$extra_ldflags -lsmbclient"
3899 if test "$_smb" = auto; then
3900 _smb=no
3901 cat > $TMPC << EOF
3902 #include <libsmbclient.h>
3903 int main(void) { smbc_opendir("smb://"); return 0; }
3905 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3906 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3907 _smb=yes && break
3908 done
3911 if test "$_smb" = yes; then
3912 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3913 _inputmodules="smb $_inputmodules"
3914 else
3915 def_smb="#undef CONFIG_LIBSMBCLIENT"
3916 _noinputmodules="smb $_noinputmodules"
3918 echores "$_smb"
3921 #########
3922 # VIDEO #
3923 #########
3926 echocheck "tdfxfb"
3927 if test "$_tdfxfb" = yes ; then
3928 def_tdfxfb='#define CONFIG_TDFXFB 1'
3929 _vomodules="tdfxfb $_vomodules"
3930 else
3931 def_tdfxfb='#undef CONFIG_TDFXFB'
3932 _novomodules="tdfxfb $_novomodules"
3934 echores "$_tdfxfb"
3936 echocheck "s3fb"
3937 if test "$_s3fb" = yes ; then
3938 def_s3fb='#define CONFIG_S3FB 1'
3939 _vomodules="s3fb $_vomodules"
3940 else
3941 def_s3fb='#undef CONFIG_S3FB'
3942 _novomodules="s3fb $_novomodules"
3944 echores "$_s3fb"
3946 echocheck "wii"
3947 if test "$_wii" = yes ; then
3948 def_wii='#define CONFIG_WII 1'
3949 _vomodules="wii $_vomodules"
3950 else
3951 def_wii='#undef CONFIG_WII'
3952 _novomodules="wii $_novomodules"
3954 echores "$_wii"
3956 echocheck "tdfxvid"
3957 if test "$_tdfxvid" = yes ; then
3958 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3959 _vomodules="tdfx_vid $_vomodules"
3960 else
3961 def_tdfxvid='#undef CONFIG_TDFX_VID'
3962 _novomodules="tdfx_vid $_novomodules"
3964 echores "$_tdfxvid"
3966 echocheck "xvr100"
3967 if test "$_xvr100" = auto ; then
3968 cat > $TMPC << EOF
3969 #include <unistd.h>
3970 #include <sys/fbio.h>
3971 #include <sys/visual_io.h>
3972 int main(void) {
3973 struct vis_identifier ident;
3974 struct fbgattr attr;
3975 ioctl(0, VIS_GETIDENTIFIER, &ident);
3976 ioctl(0, FBIOGATTR, &attr);
3977 return 0;
3980 _xvr100=no
3981 cc_check && _xvr100=yes
3983 if test "$_xvr100" = yes ; then
3984 def_xvr100='#define CONFIG_XVR100 1'
3985 _vomodules="xvr100 $_vomodules"
3986 else
3987 def_tdfxvid='#undef CONFIG_XVR100'
3988 _novomodules="xvr100 $_novomodules"
3990 echores "$_xvr100"
3992 echocheck "tga"
3993 if test "$_tga" = yes ; then
3994 def_tga='#define CONFIG_TGA 1'
3995 _vomodules="tga $_vomodules"
3996 else
3997 def_tga='#undef CONFIG_TGA'
3998 _novomodules="tga $_novomodules"
4000 echores "$_tga"
4003 echocheck "md5sum support"
4004 if test "$_md5sum" = yes; then
4005 def_md5sum="#define CONFIG_MD5SUM 1"
4006 _vomodules="md5sum $_vomodules"
4007 else
4008 def_md5sum="#undef CONFIG_MD5SUM"
4009 _novomodules="md5sum $_novomodules"
4011 echores "$_md5sum"
4014 echocheck "yuv4mpeg support"
4015 if test "$_yuv4mpeg" = yes; then
4016 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4017 _vomodules="yuv4mpeg $_vomodules"
4018 else
4019 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4020 _novomodules="yuv4mpeg $_novomodules"
4022 echores "$_yuv4mpeg"
4025 echocheck "bl"
4026 if test "$_bl" = yes ; then
4027 def_bl='#define CONFIG_BL 1'
4028 _vomodules="bl $_vomodules"
4029 else
4030 def_bl='#undef CONFIG_BL'
4031 _novomodules="bl $_novomodules"
4033 echores "$_bl"
4036 echocheck "DirectFB"
4037 if test "$_directfb" = auto ; then
4038 _directfb=no
4039 cat > $TMPC <<EOF
4040 #include <directfb.h>
4041 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4043 for _inc_tmp in "" -I/usr/local/include/directfb \
4044 -I/usr/include/directfb -I/usr/local/include; do
4045 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4046 extra_cflags="$extra_cflags $_inc_tmp" && break
4047 done
4050 dfb_version() {
4051 expr $1 \* 65536 + $2 \* 256 + $3
4054 if test "$_directfb" = yes; then
4055 cat > $TMPC << EOF
4056 #include <directfb_version.h>
4058 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4061 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4062 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4063 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4064 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4065 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4066 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4067 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4068 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4069 _res_comment="$_directfb_version"
4070 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4071 else
4072 def_directfb_version='#undef DIRECTFBVERSION'
4073 _directfb=no
4074 _res_comment="version >=0.9.13 required"
4076 else
4077 _directfb=no
4078 _res_comment="failed to get version"
4081 echores "$_directfb"
4083 if test "$_directfb" = yes ; then
4084 def_directfb='#define CONFIG_DIRECTFB 1'
4085 _vomodules="directfb $_vomodules"
4086 libs_mplayer="$libs_mplayer -ldirectfb"
4087 else
4088 def_directfb='#undef CONFIG_DIRECTFB'
4089 _novomodules="directfb $_novomodules"
4091 if test "$_dfbmga" = yes; then
4092 _vomodules="dfbmga $_vomodules"
4093 def_dfbmga='#define CONFIG_DFBMGA 1'
4094 else
4095 _novomodules="dfbmga $_novomodules"
4096 def_dfbmga='#undef CONFIG_DFBMGA'
4100 echocheck "X11 headers presence"
4101 _x11_headers="no"
4102 _res_comment="check if the dev(el) packages are installed"
4103 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4104 if test -f "$I/X11/Xlib.h" ; then
4105 _x11_headers="yes"
4106 _res_comment=""
4107 break
4109 done
4110 if test $_cross_compile = no; then
4111 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4112 /usr/include/X11R6 /usr/openwin/include ; do
4113 if test -f "$I/X11/Xlib.h" ; then
4114 extra_cflags="$extra_cflags -I$I"
4115 _x11_headers="yes"
4116 _res_comment="using $I"
4117 break
4119 done
4121 echores "$_x11_headers"
4124 echocheck "X11"
4125 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4126 cat > $TMPC <<EOF
4127 #include <X11/Xlib.h>
4128 #include <X11/Xutil.h>
4129 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4131 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4132 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4133 -L/usr/lib ; do
4134 if netbsd; then
4135 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4136 else
4137 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4139 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4140 && _x11=yes && break
4141 done
4143 if test "$_x11" = yes ; then
4144 def_x11='#define CONFIG_X11 1'
4145 _vomodules="x11 xover $_vomodules"
4146 else
4147 _x11=no
4148 def_x11='#undef CONFIG_X11'
4149 _novomodules="x11 $_novomodules"
4150 _res_comment="check if the dev(el) packages are installed"
4151 # disable stuff that depends on X
4152 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4154 echores "$_x11"
4156 echocheck "Xss screensaver extensions"
4157 if test "$_xss" = auto ; then
4158 cat > $TMPC << EOF
4159 #include <X11/Xlib.h>
4160 #include <X11/extensions/scrnsaver.h>
4161 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4163 _xss=no
4164 cc_check -lXss && _xss=yes
4166 if test "$_xss" = yes ; then
4167 def_xss='#define CONFIG_XSS 1'
4168 libs_mplayer="$libs_mplayer -lXss"
4169 else
4170 def_xss='#undef CONFIG_XSS'
4172 echores "$_xss"
4174 echocheck "DPMS"
4175 _xdpms3=no
4176 _xdpms4=no
4177 if test "$_x11" = yes ; then
4178 cat > $TMPC <<EOF
4179 #include <X11/Xmd.h>
4180 #include <X11/Xlib.h>
4181 #include <X11/Xutil.h>
4182 #include <X11/Xatom.h>
4183 #include <X11/extensions/dpms.h>
4184 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4186 cc_check -lXdpms && _xdpms3=yes
4187 cat > $TMPC <<EOF
4188 #include <X11/Xlib.h>
4189 #include <X11/extensions/dpms.h>
4190 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4192 cc_check -lXext && _xdpms4=yes
4194 if test "$_xdpms4" = yes ; then
4195 def_xdpms='#define CONFIG_XDPMS 1'
4196 _res_comment="using Xdpms 4"
4197 echores "yes"
4198 elif test "$_xdpms3" = yes ; then
4199 def_xdpms='#define CONFIG_XDPMS 1'
4200 libs_mplayer="$libs_mplayer -lXdpms"
4201 _res_comment="using Xdpms 3"
4202 echores "yes"
4203 else
4204 def_xdpms='#undef CONFIG_XDPMS'
4205 echores "no"
4209 echocheck "Xv"
4210 if test "$_xv" = auto ; then
4211 cat > $TMPC <<EOF
4212 #include <X11/Xlib.h>
4213 #include <X11/extensions/Xvlib.h>
4214 int main(void) {
4215 (void) XvGetPortAttribute(0, 0, 0, 0);
4216 (void) XvQueryPortAttributes(0, 0, 0);
4217 return 0; }
4219 _xv=no
4220 cc_check -lXv && _xv=yes
4223 if test "$_xv" = yes ; then
4224 def_xv='#define CONFIG_XV 1'
4225 libs_mplayer="$libs_mplayer -lXv"
4226 _vomodules="xv $_vomodules"
4227 else
4228 def_xv='#undef CONFIG_XV'
4229 _novomodules="xv $_novomodules"
4231 echores "$_xv"
4234 echocheck "XvMC"
4235 if test "$_xv" = yes && test "$_xvmc" != no ; then
4236 _xvmc=no
4237 cat > $TMPC <<EOF
4238 #include <X11/Xlib.h>
4239 #include <X11/extensions/Xvlib.h>
4240 #include <X11/extensions/XvMClib.h>
4241 int main(void) {
4242 (void) XvMCQueryExtension(0,0,0);
4243 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4244 return 0; }
4246 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4247 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4248 done
4250 if test "$_xvmc" = yes ; then
4251 def_xvmc='#define CONFIG_XVMC 1'
4252 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4253 _vomodules="xvmc $_vomodules"
4254 _res_comment="using $_xvmclib"
4255 else
4256 def_xvmc='#define CONFIG_XVMC 0'
4257 _novomodules="xvmc $_novomodules"
4259 echores "$_xvmc"
4262 echocheck "VDPAU"
4263 if test "$_vdpau" = auto ; then
4264 _vdpau=no
4265 if test "$_dl" = yes ; then
4266 cat > $TMPC <<EOF
4267 #include <vdpau/vdpau_x11.h>
4268 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4270 cc_check && _vdpau=yes
4273 if test "$_vdpau" = yes ; then
4274 def_vdpau='#define CONFIG_VDPAU 1'
4275 _vomodules="vdpau $_vomodules"
4276 else
4277 def_vdpau='#define CONFIG_VDPAU 0'
4278 _novomodules="vdpau $_novomodules"
4280 echores "$_vdpau"
4283 echocheck "Xinerama"
4284 if test "$_xinerama" = auto ; then
4285 cat > $TMPC <<EOF
4286 #include <X11/Xlib.h>
4287 #include <X11/extensions/Xinerama.h>
4288 int main(void) { (void) XineramaIsActive(0); return 0; }
4290 _xinerama=no
4291 cc_check -lXinerama && _xinerama=yes
4294 if test "$_xinerama" = yes ; then
4295 def_xinerama='#define CONFIG_XINERAMA 1'
4296 libs_mplayer="$libs_mplayer -lXinerama"
4297 else
4298 def_xinerama='#undef CONFIG_XINERAMA'
4300 echores "$_xinerama"
4303 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4304 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4305 # named 'X extensions' or something similar.
4306 # This check may be useful for future mplayer versions (to change resolution)
4307 # If you run into problems, remove '-lXxf86vm'.
4308 echocheck "Xxf86vm"
4309 if test "$_vm" = auto ; then
4310 cat > $TMPC <<EOF
4311 #include <X11/Xlib.h>
4312 #include <X11/extensions/xf86vmode.h>
4313 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4315 _vm=no
4316 cc_check -lXxf86vm && _vm=yes
4318 if test "$_vm" = yes ; then
4319 def_vm='#define CONFIG_XF86VM 1'
4320 libs_mplayer="$libs_mplayer -lXxf86vm"
4321 else
4322 def_vm='#undef CONFIG_XF86VM'
4324 echores "$_vm"
4326 # Check for the presence of special keycodes, like audio control buttons
4327 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4328 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4329 # have these new keycodes.
4330 echocheck "XF86keysym"
4331 if test "$_xf86keysym" = auto; then
4332 _xf86keysym=no
4333 cat > $TMPC <<EOF
4334 #include <X11/Xlib.h>
4335 #include <X11/XF86keysym.h>
4336 int main(void) { return XF86XK_AudioPause; }
4338 cc_check && _xf86keysym=yes
4340 if test "$_xf86keysym" = yes ; then
4341 def_xf86keysym='#define CONFIG_XF86XK 1'
4342 else
4343 def_xf86keysym='#undef CONFIG_XF86XK'
4345 echores "$_xf86keysym"
4347 echocheck "DGA"
4348 if test "$_dga2" = auto && test "$_x11" = yes ; then
4349 cat > $TMPC << EOF
4350 #include <X11/Xlib.h>
4351 #include <X11/extensions/xf86dga.h>
4352 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4354 _dga2=no
4355 cc_check -lXxf86dga && _dga2=yes
4357 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4358 cat > $TMPC << EOF
4359 #include <X11/Xlib.h>
4360 #include <X11/extensions/xf86dga.h>
4361 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4363 _dga1=no
4364 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4367 _dga=no
4368 def_dga='#undef CONFIG_DGA'
4369 def_dga1='#undef CONFIG_DGA1'
4370 def_dga2='#undef CONFIG_DGA2'
4371 if test "$_dga1" = yes ; then
4372 _dga=yes
4373 def_dga1='#define CONFIG_DGA1 1'
4374 _res_comment="using DGA 1.0"
4375 elif test "$_dga2" = yes ; then
4376 _dga=yes
4377 def_dga2='#define CONFIG_DGA2 1'
4378 _res_comment="using DGA 2.0"
4380 if test "$_dga" = yes ; then
4381 def_dga='#define CONFIG_DGA 1'
4382 libs_mplayer="$libs_mplayer -lXxf86dga"
4383 _vomodules="dga $_vomodules"
4384 else
4385 _novomodules="dga $_novomodules"
4387 echores "$_dga"
4390 echocheck "3dfx"
4391 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4392 def_3dfx='#define CONFIG_3DFX 1'
4393 _vomodules="3dfx $_vomodules"
4394 else
4395 def_3dfx='#undef CONFIG_3DFX'
4396 _novomodules="3dfx $_novomodules"
4398 echores "$_3dfx"
4401 echocheck "VIDIX"
4402 def_vidix='#undef CONFIG_VIDIX'
4403 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4404 _vidix_drv_cyberblade=no
4405 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4406 _vidix_drv_ivtv=no
4407 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4408 _vidix_drv_mach64=no
4409 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4410 _vidix_drv_mga=no
4411 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4412 _vidix_drv_mga_crtc2=no
4413 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4414 _vidix_drv_nvidia=no
4415 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4416 _vidix_drv_pm2=no
4417 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4418 _vidix_drv_pm3=no
4419 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4420 _vidix_drv_radeon=no
4421 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4422 _vidix_drv_rage128=no
4423 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4424 _vidix_drv_s3=no
4425 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4426 _vidix_drv_sh_veu=no
4427 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4428 _vidix_drv_sis=no
4429 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4430 _vidix_drv_unichrome=no
4431 if test "$_vidix" = auto ; then
4432 _vidix=no
4433 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4434 && _vidix=yes
4435 (ppc || alpha) && linux && _vidix=yes
4437 echores "$_vidix"
4439 if test "$_vidix" = yes ; then
4440 def_vidix='#define CONFIG_VIDIX 1'
4441 _vomodules="cvidix $_vomodules"
4442 # FIXME: ivtv driver temporarily disabled until we have a proper test
4443 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4444 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4446 # some vidix drivers are architecture and os specific, discard them elsewhere
4447 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4448 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4450 for driver in $_vidix_drivers ; do
4451 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4452 eval _vidix_drv_${driver}=yes
4453 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4454 done
4456 echocheck "VIDIX PCI device name database"
4457 echores "$_vidix_pcidb"
4458 if test "$_vidix_pcidb" = yes ; then
4459 _vidix_pcidb_val=1
4460 else
4461 _vidix_pcidb_val=0
4464 echocheck "VIDIX dhahelper support"
4465 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4466 echores "$_dhahelper"
4468 echocheck "VIDIX svgalib_helper support"
4469 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4470 echores "$_svgalib_helper"
4472 else
4473 _novomodules="cvidix $_novomodules"
4476 if test "$_vidix" = yes && win32; then
4477 winvidix=yes
4478 _vomodules="winvidix $_vomodules"
4479 libs_mplayer="$libs_mplayer -lgdi32"
4480 else
4481 _novomodules="winvidix $_novomodules"
4483 if test "$_vidix" = yes && test "$_x11" = yes; then
4484 xvidix=yes
4485 _vomodules="xvidix $_vomodules"
4486 else
4487 _novomodules="xvidix $_novomodules"
4490 echocheck "GGI"
4491 if test "$_ggi" = auto ; then
4492 cat > $TMPC << EOF
4493 #include <ggi/ggi.h>
4494 int main(void) { ggiInit(); return 0; }
4496 _ggi=no
4497 cc_check -lggi && _ggi=yes
4499 if test "$_ggi" = yes ; then
4500 def_ggi='#define CONFIG_GGI 1'
4501 libs_mplayer="$libs_mplayer -lggi"
4502 _vomodules="ggi $_vomodules"
4503 else
4504 def_ggi='#undef CONFIG_GGI'
4505 _novomodules="ggi $_novomodules"
4507 echores "$_ggi"
4509 echocheck "GGI extension: libggiwmh"
4510 if test "$_ggiwmh" = auto ; then
4511 _ggiwmh=no
4512 cat > $TMPC << EOF
4513 #include <ggi/ggi.h>
4514 #include <ggi/wmh.h>
4515 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4517 cc_check -lggi -lggiwmh && _ggiwmh=yes
4519 # needed to get right output on obscure combination
4520 # like --disable-ggi --enable-ggiwmh
4521 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4522 def_ggiwmh='#define CONFIG_GGIWMH 1'
4523 libs_mplayer="$libs_mplayer -lggiwmh"
4524 else
4525 _ggiwmh=no
4526 def_ggiwmh='#undef CONFIG_GGIWMH'
4528 echores "$_ggiwmh"
4531 echocheck "AA"
4532 if test "$_aa" = auto ; then
4533 cat > $TMPC << EOF
4534 #include <aalib.h>
4535 extern struct aa_hardware_params aa_defparams;
4536 extern struct aa_renderparams aa_defrenderparams;
4537 int main(void) {
4538 aa_context *c;
4539 aa_renderparams *p;
4540 (void) aa_init(0, 0, 0);
4541 c = aa_autoinit(&aa_defparams);
4542 p = aa_getrenderparams();
4543 aa_autoinitkbd(c,0);
4544 return 0; }
4546 _aa=no
4547 for _ld_tmp in "-laa" ; do
4548 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4549 done
4551 if test "$_aa" = yes ; then
4552 def_aa='#define CONFIG_AA 1'
4553 if cygwin ; then
4554 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4556 _vomodules="aa $_vomodules"
4557 else
4558 def_aa='#undef CONFIG_AA'
4559 _novomodules="aa $_novomodules"
4561 echores "$_aa"
4564 echocheck "CACA"
4565 if test "$_caca" = auto ; then
4566 _caca=no
4567 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4568 cat > $TMPC << EOF
4569 #include <caca.h>
4570 #ifdef CACA_API_VERSION_1
4571 #include <caca0.h>
4572 #endif
4573 int main(void) { (void) caca_init(); return 0; }
4575 cc_check $(caca-config --libs) && _caca=yes
4578 if test "$_caca" = yes ; then
4579 def_caca='#define CONFIG_CACA 1'
4580 extra_cflags="$extra_cflags $(caca-config --cflags)"
4581 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4582 _vomodules="caca $_vomodules"
4583 else
4584 def_caca='#undef CONFIG_CACA'
4585 _novomodules="caca $_novomodules"
4587 echores "$_caca"
4590 echocheck "SVGAlib"
4591 if test "$_svga" = auto ; then
4592 cat > $TMPC << EOF
4593 #include <vga.h>
4594 int main(void) { return 0; }
4596 _svga=no
4597 cc_check -lvga $_ld_lm && _svga=yes
4599 if test "$_svga" = yes ; then
4600 def_svga='#define CONFIG_SVGALIB 1'
4601 libs_mplayer="$libs_mplayer -lvga"
4602 _vomodules="svga $_vomodules"
4603 else
4604 def_svga='#undef CONFIG_SVGALIB'
4605 _novomodules="svga $_novomodules"
4607 echores "$_svga"
4610 echocheck "FBDev"
4611 if test "$_fbdev" = auto ; then
4612 _fbdev=no
4613 linux && _fbdev=yes
4615 if test "$_fbdev" = yes ; then
4616 def_fbdev='#define CONFIG_FBDEV 1'
4617 _vomodules="fbdev $_vomodules"
4618 else
4619 def_fbdev='#undef CONFIG_FBDEV'
4620 _novomodules="fbdev $_novomodules"
4622 echores "$_fbdev"
4626 echocheck "DVB"
4627 if test "$_dvb" = auto ; then
4628 _dvb=no
4629 cat >$TMPC << EOF
4630 #include <poll.h>
4631 #include <sys/ioctl.h>
4632 #include <stdio.h>
4633 #include <time.h>
4634 #include <unistd.h>
4635 #include <ost/dmx.h>
4636 #include <ost/frontend.h>
4637 #include <ost/sec.h>
4638 #include <ost/video.h>
4639 #include <ost/audio.h>
4640 int main(void) {return 0;}
4642 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4643 cc_check $_inc_tmp && _dvb=yes && \
4644 extra_cflags="$extra_cflags $_inc_tmp" && break
4645 done
4647 echores "$_dvb"
4648 if test "$_dvb" = yes ; then
4649 def_dvb='#define CONFIG_DVB 1'
4650 def_dvbin='#define CONFIG_DVBIN 1'
4651 _aomodules="mpegpes(dvb) $_aomodules"
4652 _vomodules="mpegpes(dvb) $_vomodules"
4655 echocheck "DVB HEAD"
4656 if test "$_dvbhead" = auto ; then
4657 _dvbhead=no
4659 cat >$TMPC << EOF
4660 #include <poll.h>
4661 #include <sys/ioctl.h>
4662 #include <stdio.h>
4663 #include <time.h>
4664 #include <unistd.h>
4665 #include <linux/dvb/dmx.h>
4666 #include <linux/dvb/frontend.h>
4667 #include <linux/dvb/video.h>
4668 #include <linux/dvb/audio.h>
4669 int main(void) {return 0;}
4671 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4672 cc_check $_inc_tmp && _dvbhead=yes && \
4673 extra_cflags="$extra_cflags $_inc_tmp" && break
4674 done
4676 echores "$_dvbhead"
4677 if test "$_dvbhead" = yes ; then
4678 def_dvb='#define CONFIG_DVB 1'
4679 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4680 def_dvbin='#define CONFIG_DVBIN 1'
4681 _aomodules="mpegpes(dvb) $_aomodules"
4682 _vomodules="mpegpes(dvb) $_vomodules"
4685 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4686 def_dvb='#undef CONFIG_DVB'
4687 def_dvb_head='#undef CONFIG_DVB_HEAD'
4688 def_dvbin='#undef CONFIG_DVBIN '
4689 _aomodules="mpegpes(file) $_aomodules"
4690 _vomodules="mpegpes(file) $_vomodules"
4693 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4694 _dvbin=yes
4695 _inputmodules="dvb $_inputmodules"
4696 else
4697 _dvbin=no
4698 _noinputmodules="dvb $_noinputmodules"
4702 if darwin; then
4704 echocheck "QuickTime"
4705 if test "$quicktime" = auto ; then
4706 cat > $TMPC <<EOF
4707 #include <QuickTime/QuickTime.h>
4708 int main(void) {
4709 ImageDescription *desc;
4710 EnterMovies();
4711 ExitMovies();
4712 return 0;
4715 quicktime=no
4716 cc_check -framework QuickTime && quicktime=yes
4718 if test "$quicktime" = yes ; then
4719 extra_ldflags="$extra_ldflags -framework QuickTime"
4720 def_quicktime='#define CONFIG_QUICKTIME 1'
4721 else
4722 def_quicktime='#undef CONFIG_QUICKTIME'
4723 _quartz=no
4725 echores $quicktime
4727 echocheck "Quartz"
4728 if test "$_quartz" = auto ; then
4729 cat > $TMPC <<EOF
4730 #include <Carbon/Carbon.h>
4731 int main(void) {
4732 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4733 return 0;
4736 _quartz=no
4737 cc_check -framework Carbon && _quartz=yes
4739 if test "$_quartz" = yes ; then
4740 libs_mplayer="$libs_mplayer -framework Carbon"
4741 def_quartz='#define CONFIG_QUARTZ 1'
4742 _vomodules="quartz $_vomodules"
4743 else
4744 def_quartz='#undef CONFIG_QUARTZ'
4745 _novomodules="quartz $_novomodules"
4747 echores $_quartz
4749 echocheck "CoreVideo"
4750 if test "$_corevideo" = auto ; then
4751 cat > $TMPC <<EOF
4752 #include <Carbon/Carbon.h>
4753 #include <CoreServices/CoreServices.h>
4754 #include <OpenGL/OpenGL.h>
4755 #include <QuartzCore/CoreVideo.h>
4756 int main(void) { return 0; }
4758 _corevideo=no
4759 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4761 if test "$_corevideo" = yes ; then
4762 _vomodules="corevideo $_vomodules"
4763 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4764 def_corevideo='#define CONFIG_COREVIDEO 1'
4765 else
4766 _novomodules="corevideo $_novomodules"
4767 def_corevideo='#undef CONFIG_COREVIDEO'
4769 echores "$_corevideo"
4771 fi #if darwin
4774 # make sure this stays below CoreVideo to avoid issues due to namespace
4775 # conflicts between -lGL and -framework OpenGL
4776 echocheck "OpenGL"
4777 #Note: this test is run even with --enable-gl since we autodetect linker flags
4778 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4779 cat > $TMPC << EOF
4780 #ifdef GL_WIN32
4781 #include <windows.h>
4782 #include <GL/gl.h>
4783 #else
4784 #include <GL/gl.h>
4785 #include <X11/Xlib.h>
4786 #include <GL/glx.h>
4787 #endif
4788 int main(void) {
4789 #ifdef GL_WIN32
4790 HDC dc;
4791 wglCreateContext(dc);
4792 #else
4793 glXCreateContext(NULL, NULL, NULL, True);
4794 #endif
4795 glFinish();
4796 return 0;
4799 _gl=no
4800 if cc_check -lGL $_ld_lm ; then
4801 _gl=yes
4802 _gl_x11=yes
4803 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4804 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4805 _gl=yes
4806 _gl_x11=yes
4807 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4809 if cc_check -DGL_WIN32 -lopengl32 ; then
4810 _gl=yes
4811 _gl_win32=yes
4812 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4814 else
4815 _gl=no
4817 if test "$_gl" = yes ; then
4818 def_gl='#define CONFIG_GL 1'
4819 _res_comment="backends:"
4820 if test "$_gl_win32" = yes ; then
4821 def_gl_win32='#define CONFIG_GL_WIN32 1'
4822 _res_comment="$_res_comment win32"
4824 if test "$_gl_x11" = yes ; then
4825 def_gl_x11='#define CONFIG_GL_X11 1'
4826 _res_comment="$_res_comment x11"
4828 _vomodules="opengl $_vomodules"
4829 else
4830 def_gl='#undef CONFIG_GL'
4831 def_gl_win32='#undef CONFIG_GL_WIN32'
4832 def_gl_x11='#undef CONFIG_GL_X11'
4833 _novomodules="opengl $_novomodules"
4835 echores "$_gl"
4838 echocheck "PNG support"
4839 if test "$_png" = auto ; then
4840 _png=no
4841 if irix ; then
4842 # Don't check for -lpng on irix since it has its own libpng
4843 # incompatible with the GNU libpng
4844 _res_comment="disabled on irix (not GNU libpng)"
4845 else
4846 cat > $TMPC << EOF
4847 #include <png.h>
4848 #include <string.h>
4849 int main(void) {
4850 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4851 printf("libpng: %s\n", png_libpng_ver);
4852 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4855 cc_check -lpng -lz $_ld_lm && _png=yes
4858 echores "$_png"
4859 if test "$_png" = yes ; then
4860 def_png='#define CONFIG_PNG 1'
4861 extra_ldflags="$extra_ldflags -lpng -lz"
4862 _vomodules="png $_vomodules"
4863 else
4864 def_png='#undef CONFIG_PNG'
4865 _novomodules="png $_novomodules"
4868 echocheck "MNG support"
4869 if test "$_mng" = auto ; then
4870 _mng=no
4871 cat > $TMPC << EOF
4872 #include <libmng.h>
4873 int main(void) {
4874 const char * p_ver = mng_version_text();
4875 return !p_ver || p_ver[0] == 0;
4878 if cc_check -lmng -lz $_ld_lm ; then
4879 _mng=yes
4882 echores "$_mng"
4883 if test "$_mng" = yes ; then
4884 def_mng='#define CONFIG_MNG 1'
4885 extra_ldflags="$extra_ldflags -lmng -lz"
4886 else
4887 def_mng='#undef CONFIG_MNG'
4890 echocheck "JPEG support"
4891 if test "$_jpeg" = auto ; then
4892 _jpeg=no
4893 cat > $TMPC << EOF
4894 #include <stdio.h>
4895 #include <stdlib.h>
4896 #include <setjmp.h>
4897 #include <string.h>
4898 #include <jpeglib.h>
4899 int main(void) { return 0; }
4901 cc_check -ljpeg $_ld_lm && _jpeg=yes
4903 echores "$_jpeg"
4905 if test "$_jpeg" = yes ; then
4906 def_jpeg='#define CONFIG_JPEG 1'
4907 _vomodules="jpeg $_vomodules"
4908 extra_ldflags="$extra_ldflags -ljpeg"
4909 else
4910 def_jpeg='#undef CONFIG_JPEG'
4911 _novomodules="jpeg $_novomodules"
4916 echocheck "PNM support"
4917 if test "$_pnm" = yes; then
4918 def_pnm="#define CONFIG_PNM 1"
4919 _vomodules="pnm $_vomodules"
4920 else
4921 def_pnm="#undef CONFIG_PNM"
4922 _novomodules="pnm $_novomodules"
4924 echores "$_pnm"
4928 echocheck "GIF support"
4929 # This is to appease people who want to force gif support.
4930 # If it is forced to yes, then we still do checks to determine
4931 # which gif library to use.
4932 if test "$_gif" = yes ; then
4933 _force_gif=yes
4934 _gif=auto
4937 if test "$_gif" = auto ; then
4938 _gif=no
4939 cat > $TMPC << EOF
4940 #include <gif_lib.h>
4941 int main(void) { return 0; }
4943 for _ld_gif in "-lungif" "-lgif" ; do
4944 cc_check $_ld_gif && _gif=yes && break
4945 done
4948 # If no library was found, and the user wants support forced,
4949 # then we force it on with libgif, as this is the safest
4950 # assumption IMHO. (libungif & libregif both create symbolic
4951 # links to libgif. We also assume that no x11 support is needed,
4952 # because if you are forcing this, then you _should_ know what
4953 # you are doing. [ Besides, package maintainers should never
4954 # have compiled x11 deps into libungif in the first place. ] )
4955 # </rant>
4956 # --Joey
4957 if test "$_force_gif" = yes && test "$_gif" = no ; then
4958 _gif=yes
4959 _ld_gif="-lgif"
4962 if test "$_gif" = yes ; then
4963 def_gif='#define CONFIG_GIF 1'
4964 _codecmodules="gif $_codecmodules"
4965 _vomodules="gif89a $_vomodules"
4966 _res_comment="old version, some encoding functions disabled"
4967 def_gif_4='#undef CONFIG_GIF_4'
4968 extra_ldflags="$extra_ldflags $_ld_gif"
4970 cat > $TMPC << EOF
4971 #include <signal.h>
4972 #include <gif_lib.h>
4973 void catch() { exit(1); }
4974 int main(void) {
4975 signal(SIGSEGV, catch); // catch segfault
4976 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4977 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4978 return 0;
4981 if cc_check "$_ld_gif" ; then
4982 def_gif_4='#define CONFIG_GIF_4 1'
4983 _res_comment=""
4985 else
4986 def_gif='#undef CONFIG_GIF'
4987 def_gif_4='#undef CONFIG_GIF_4'
4988 _novomodules="gif89a $_novomodules"
4989 _nocodecmodules="gif $_nocodecmodules"
4991 echores "$_gif"
4994 case "$_gif" in yes*)
4995 echocheck "broken giflib workaround"
4996 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4998 cat > $TMPC << EOF
4999 #include <gif_lib.h>
5000 int main(void) {
5001 GifFileType gif;
5002 printf("UserData is at address %p\n", gif.UserData);
5003 return 0;
5006 if cc_check "$_ld_gif" ; then
5007 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5008 echores "disabled"
5009 else
5010 echores "enabled"
5013 esac
5016 echocheck "VESA support"
5017 if test "$_vesa" = auto ; then
5018 cat > $TMPC << EOF
5019 #include <vbe.h>
5020 int main(void) { vbeVersion(); return 0; }
5022 _vesa=no
5023 cc_check -lvbe -llrmi && _vesa=yes
5025 if test "$_vesa" = yes ; then
5026 def_vesa='#define CONFIG_VESA 1'
5027 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5028 _vomodules="vesa $_vomodules"
5029 else
5030 def_vesa='#undef CONFIG_VESA'
5031 _novomodules="vesa $_novomodules"
5033 echores "$_vesa"
5035 #################
5036 # VIDEO + AUDIO #
5037 #################
5040 echocheck "SDL"
5041 if test -z "$_sdlconfig" ; then
5042 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5043 _sdlconfig="sdl-config"
5044 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5045 _sdlconfig="sdl11-config"
5046 else
5047 _sdlconfig=false
5050 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5051 cat > $TMPC << EOF
5052 #include <SDL.h>
5053 int main(int argc, char *argv[]) {
5054 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5055 return 0;
5058 _sdl=no
5059 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5060 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5061 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5062 if test "$_sdlversion" -gt 116 ; then
5063 if test "$_sdlversion" -lt 121 ; then
5064 def_sdlbuggy='#define BUGGY_SDL'
5065 else
5066 def_sdlbuggy='#undef BUGGY_SDL'
5068 _sdl=yes
5073 if test "$_sdl" = yes ; then
5074 def_sdl='#define CONFIG_SDL 1'
5075 if cygwin ; then
5076 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5077 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5078 elif mingw32 ; then
5079 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5080 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5081 else
5082 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5083 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5085 _vomodules="sdl $_vomodules"
5086 _aomodules="sdl $_aomodules"
5087 _res_comment="using $_sdlconfig"
5088 else
5089 def_sdl='#undef CONFIG_SDL'
5090 _novomodules="sdl $_novomodules"
5091 _noaomodules="sdl $_noaomodules"
5093 echores "$_sdl"
5096 if os2 ; then
5097 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5098 if test "$_kva" = auto; then
5099 cat > $TMPC << EOF
5100 #include <os2.h>
5101 #include <kva.h>
5102 int main( void ) { return 0; }
5104 _kva=no;
5105 cc_check -lkva && _kva=yes
5107 if test "$_kva" = yes ; then
5108 def_kva='#define CONFIG_KVA 1'
5109 libs_mplayer="$libs_mplayer -lkva"
5110 _vomodules="kva $_vomodules"
5111 else
5112 def_kva='#undef CONFIG_KVA'
5113 _novomodules="kva $_novomodules"
5115 echores "$_kva"
5116 fi #if os2
5119 if win32; then
5121 echocheck "Windows waveout"
5122 if test "$_win32waveout" = auto ; then
5123 cat > $TMPC << EOF
5124 #include <windows.h>
5125 #include <mmsystem.h>
5126 int main(void) { return 0; }
5128 _win32waveout=no
5129 cc_check -lwinmm && _win32waveout=yes
5131 if test "$_win32waveout" = yes ; then
5132 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5133 libs_mplayer="$libs_mplayer -lwinmm"
5134 _aomodules="win32 $_aomodules"
5135 else
5136 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5137 _noaomodules="win32 $_noaomodules"
5139 echores "$_win32waveout"
5141 echocheck "Direct3D"
5142 if test "$_direct3d" = auto ; then
5143 cat > $TMPC << EOF
5144 #include <windows.h>
5145 #include <d3d9.h>
5146 int main(void) { return 0; }
5148 _direct3d=no
5149 cc_check -ld3d9 && _direct3d=yes
5151 if test "$_direct3d" = yes ; then
5152 def_direct3d='#define CONFIG_DIRECT3D 1'
5153 libs_mplayer="$libs_mplayer -ld3d9"
5154 _vomodules="direct3d $_vomodules"
5155 else
5156 def_direct3d='#undef CONFIG_DIRECT3D'
5157 _novomodules="direct3d $_novomodules"
5159 echores "$_direct3d"
5161 echocheck "Directx"
5162 if test "$_directx" = auto ; then
5163 cat > $TMPC << EOF
5164 #include <windows.h>
5165 #include <ddraw.h>
5166 #include <dsound.h>
5167 int main(void) { return 0; }
5169 _directx=no
5170 cc_check -lgdi32 && _directx=yes
5172 if test "$_directx" = yes ; then
5173 def_directx='#define CONFIG_DIRECTX 1'
5174 libs_mplayer="$libs_mplayer -lgdi32"
5175 _vomodules="directx $_vomodules"
5176 _aomodules="dsound $_aomodules"
5177 else
5178 def_directx='#undef CONFIG_DIRECTX'
5179 _novomodules="directx $_novomodules"
5180 _noaomodules="dsound $_noaomodules"
5182 echores "$_directx"
5184 fi #if win32; then
5187 echocheck "DXR2"
5188 if test "$_dxr2" = auto; then
5189 _dxr2=no
5190 cat > $TMPC << EOF
5191 #include <dxr2ioctl.h>
5192 int main(void) { return 0; }
5194 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5195 cc_check $_inc_tmp && _dxr2=yes && \
5196 extra_cflags="$extra_cflags $_inc_tmp" && break
5197 done
5199 if test "$_dxr2" = yes; then
5200 def_dxr2='#define CONFIG_DXR2 1'
5201 _aomodules="dxr2 $_aomodules"
5202 _vomodules="dxr2 $_vomodules"
5203 else
5204 def_dxr2='#undef CONFIG_DXR2'
5205 _noaomodules="dxr2 $_noaomodules"
5206 _novomodules="dxr2 $_novomodules"
5208 echores "$_dxr2"
5210 echocheck "DXR3/H+"
5211 if test "$_dxr3" = auto ; then
5212 cat > $TMPC << EOF
5213 #include <linux/em8300.h>
5214 int main(void) { return 0; }
5216 _dxr3=no
5217 cc_check && _dxr3=yes
5219 if test "$_dxr3" = yes ; then
5220 def_dxr3='#define CONFIG_DXR3 1'
5221 _vomodules="dxr3 $_vomodules"
5222 else
5223 def_dxr3='#undef CONFIG_DXR3'
5224 _novomodules="dxr3 $_novomodules"
5226 echores "$_dxr3"
5229 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5230 if test "$_ivtv" = auto ; then
5231 cat > $TMPC << EOF
5232 #include <stdlib.h>
5233 #include <inttypes.h>
5234 #include <linux/types.h>
5235 #include <linux/videodev2.h>
5236 #include <linux/ivtv.h>
5237 #include <sys/ioctl.h>
5238 int main(void) {
5239 struct ivtv_cfg_stop_decode sd;
5240 struct ivtv_cfg_start_decode sd1;
5241 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5242 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5243 return 0; }
5245 _ivtv=no
5246 cc_check && _ivtv=yes
5248 if test "$_ivtv" = yes ; then
5249 def_ivtv='#define CONFIG_IVTV 1'
5250 _vomodules="ivtv $_vomodules"
5251 _aomodules="ivtv $_aomodules"
5252 else
5253 def_ivtv='#undef CONFIG_IVTV'
5254 _novomodules="ivtv $_novomodules"
5255 _noaomodules="ivtv $_noaomodules"
5257 echores "$_ivtv"
5260 echocheck "V4L2 MPEG Decoder"
5261 if test "$_v4l2" = auto ; then
5262 cat > $TMPC << EOF
5263 #include <stdlib.h>
5264 #include <inttypes.h>
5265 #include <linux/types.h>
5266 #include <linux/videodev2.h>
5267 #include <linux/version.h>
5268 int main(void) {
5269 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5270 #error kernel headers too old, need 2.6.22
5271 #endif
5272 struct v4l2_ext_controls ctrls;
5273 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5274 return 0;
5277 _v4l2=no
5278 cc_check && _v4l2=yes
5280 if test "$_v4l2" = yes ; then
5281 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5282 _vomodules="v4l2 $_vomodules"
5283 _aomodules="v4l2 $_aomodules"
5284 else
5285 def_v4l2='#undef CONFIG_V4L2_DECODER'
5286 _novomodules="v4l2 $_novomodules"
5287 _noaomodules="v4l2 $_noaomodules"
5289 echores "$_v4l2"
5293 #########
5294 # AUDIO #
5295 #########
5298 echocheck "OSS Audio"
5299 if test "$_ossaudio" = auto ; then
5300 cat > $TMPC << EOF
5301 #include <sys/ioctl.h>
5302 #include <$_soundcard_header>
5303 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5305 _ossaudio=no
5306 cc_check && _ossaudio=yes
5308 if test "$_ossaudio" = yes ; then
5309 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5310 _aomodules="oss $_aomodules"
5311 if test "$_linux_devfs" = yes; then
5312 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5313 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5314 else
5315 cat > $TMPC << EOF
5316 #include <sys/ioctl.h>
5317 #include <$_soundcard_header>
5318 #ifdef OPEN_SOUND_SYSTEM
5319 int main(void) { return 0; }
5320 #else
5321 #error Not the real thing
5322 #endif
5324 _real_ossaudio=no
5325 cc_check && _real_ossaudio=yes
5326 if test "$_real_ossaudio" = yes; then
5327 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5328 # Check for OSS4 headers (override default headers)
5329 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5330 if test -f /etc/oss.conf; then
5331 . /etc/oss.conf
5332 _ossinc="$OSSLIBDIR/include"
5333 if test -f "$_ossinc/sys/soundcard.h"; then
5334 extra_cflags="-I$_ossinc $extra_cflags"
5337 elif netbsd || openbsd ; then
5338 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5339 extra_ldflags="$extra_ldflags -lossaudio"
5340 else
5341 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5343 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5345 else
5346 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5347 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5348 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5349 _noaomodules="oss $_noaomodules"
5351 echores "$_ossaudio"
5354 echocheck "aRts"
5355 if test "$_arts" = auto ; then
5356 _arts=no
5357 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5359 cat > $TMPC << EOF
5360 #include <artsc.h>
5361 int main(void) { return 0; }
5363 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5368 if test "$_arts" = yes ; then
5369 def_arts='#define CONFIG_ARTS 1'
5370 _aomodules="arts $_aomodules"
5371 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5372 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5373 else
5374 _noaomodules="arts $_noaomodules"
5376 echores "$_arts"
5379 echocheck "EsounD"
5380 if test "$_esd" = auto ; then
5381 _esd=no
5382 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5384 cat > $TMPC << EOF
5385 #include <esd.h>
5386 int main(void) { int fd = esd_open_sound("test"); return fd; }
5388 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5392 echores "$_esd"
5394 if test "$_esd" = yes ; then
5395 def_esd='#define CONFIG_ESD 1'
5396 _aomodules="esd $_aomodules"
5397 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5398 extra_cflags="$extra_cflags $(esd-config --cflags)"
5400 echocheck "esd_get_latency()"
5401 cat > $TMPC << EOF
5402 #include <esd.h>
5403 int main(void) { return esd_get_latency(0); }
5405 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5406 echores "$_esd_latency"
5407 else
5408 def_esd='#undef CONFIG_ESD'
5409 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5410 _noaomodules="esd $_noaomodules"
5414 echocheck "NAS"
5415 if test "$_nas" = auto ; then
5416 cat > $TMPC << EOF
5417 #include <audio/audiolib.h>
5418 int main(void) { return 0; }
5420 _nas=no
5421 cc_check $_ld_lm -laudio -lXt && _nas=yes
5423 if test "$_nas" = yes ; then
5424 def_nas='#define CONFIG_NAS 1'
5425 libs_mplayer="$libs_mplayer -laudio -lXt"
5426 _aomodules="nas $_aomodules"
5427 else
5428 _noaomodules="nas $_noaomodules"
5429 def_nas='#undef CONFIG_NAS'
5431 echores "$_nas"
5434 echocheck "pulse"
5435 if test "$_pulse" = auto ; then
5436 _pulse=no
5437 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5439 cat > $TMPC << EOF
5440 #include <pulse/pulseaudio.h>
5441 int main(void) { return 0; }
5443 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5447 echores "$_pulse"
5449 if test "$_pulse" = yes ; then
5450 def_pulse='#define CONFIG_PULSE 1'
5451 _aomodules="pulse $_aomodules"
5452 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5453 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5454 else
5455 def_pulse='#undef CONFIG_PULSE'
5456 _noaomodules="pulse $_noaomodules"
5460 echocheck "JACK"
5461 if test "$_jack" = auto ; then
5462 _jack=yes
5464 cat > $TMPC << EOF
5465 #include <jack/jack.h>
5466 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5468 if cc_check -ljack ; then
5469 libs_mplayer="$libs_mplayer -ljack"
5470 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5471 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5472 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5473 else
5474 _jack=no
5478 if test "$_jack" = yes ; then
5479 def_jack='#define CONFIG_JACK 1'
5480 _aomodules="jack $_aomodules"
5481 else
5482 _noaomodules="jack $_noaomodules"
5484 echores "$_jack"
5486 echocheck "OpenAL"
5487 if test "$_openal" = auto ; then
5488 _openal=no
5489 cat > $TMPC << EOF
5490 #ifdef OPENAL_AL_H
5491 #include <OpenAL/al.h>
5492 #else
5493 #include <AL/al.h>
5494 #endif
5495 int main(void) {
5496 alSourceQueueBuffers(0, 0, 0);
5497 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5498 return 0;
5501 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5502 cc_check $I && _openal=yes && break
5503 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5504 done
5505 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5507 if test "$_openal" = yes ; then
5508 def_openal='#define CONFIG_OPENAL 1'
5509 _aomodules="openal $_aomodules"
5510 else
5511 _noaomodules="openal $_noaomodules"
5513 echores "$_openal"
5515 echocheck "ALSA audio"
5516 if test "$_alloca" != yes ; then
5517 _alsa=no
5518 _res_comment="alloca missing"
5520 if test "$_alsa" != no ; then
5521 _alsa=no
5522 cat > $TMPC << EOF
5523 #include <sys/time.h>
5524 #include <sys/asoundlib.h>
5525 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5526 #error "alsa version != 0.5.x"
5527 #endif
5528 int main(void) { return 0; }
5530 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5532 cat > $TMPC << EOF
5533 #include <sys/time.h>
5534 #include <sys/asoundlib.h>
5535 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5536 #error "alsa version != 0.9.x"
5537 #endif
5538 int main(void) { return 0; }
5540 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5541 cat > $TMPC << EOF
5542 #include <sys/time.h>
5543 #include <alsa/asoundlib.h>
5544 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5545 #error "alsa version != 0.9.x"
5546 #endif
5547 int main(void) { return 0; }
5549 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5551 cat > $TMPC << EOF
5552 #include <sys/time.h>
5553 #include <sys/asoundlib.h>
5554 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5555 #error "alsa version != 1.0.x"
5556 #endif
5557 int main(void) { return 0; }
5559 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5560 cat > $TMPC << EOF
5561 #include <sys/time.h>
5562 #include <alsa/asoundlib.h>
5563 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5564 #error "alsa version != 1.0.x"
5565 #endif
5566 int main(void) { return 0; }
5568 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5570 def_alsa='#undef CONFIG_ALSA'
5571 def_alsa5='#undef CONFIG_ALSA5'
5572 def_alsa9='#undef CONFIG_ALSA9'
5573 def_alsa1x='#undef CONFIG_ALSA1X'
5574 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5575 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5576 if test "$_alsaver" ; then
5577 _alsa=yes
5578 if test "$_alsaver" = '0.5.x' ; then
5579 _alsa5=yes
5580 _aomodules="alsa5 $_aomodules"
5581 def_alsa5='#define CONFIG_ALSA5 1'
5582 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5583 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5584 elif test "$_alsaver" = '0.9.x-sys' ; then
5585 _alsa9=yes
5586 _aomodules="alsa $_aomodules"
5587 def_alsa='#define CONFIG_ALSA 1'
5588 def_alsa9='#define CONFIG_ALSA9 1'
5589 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5590 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5591 elif test "$_alsaver" = '0.9.x-alsa' ; then
5592 _alsa9=yes
5593 _aomodules="alsa $_aomodules"
5594 def_alsa='#define CONFIG_ALSA 1'
5595 def_alsa9='#define CONFIG_ALSA9 1'
5596 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5597 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5598 elif test "$_alsaver" = '1.0.x-sys' ; then
5599 _alsa1x=yes
5600 _aomodules="alsa $_aomodules"
5601 def_alsa='#define CONFIG_ALSA 1'
5602 def_alsa1x="#define CONFIG_ALSA1X 1"
5603 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5604 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5605 elif test "$_alsaver" = '1.0.x-alsa' ; then
5606 _alsa1x=yes
5607 _aomodules="alsa $_aomodules"
5608 def_alsa='#define CONFIG_ALSA 1'
5609 def_alsa1x="#define CONFIG_ALSA1X 1"
5610 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5611 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5612 else
5613 _alsa=no
5614 _res_comment="unknown version"
5616 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5617 else
5618 _noaomodules="alsa $_noaomodules"
5620 echores "$_alsa"
5623 echocheck "Sun audio"
5624 if test "$_sunaudio" = auto ; then
5625 cat > $TMPC << EOF
5626 #include <sys/types.h>
5627 #include <sys/audioio.h>
5628 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5630 _sunaudio=no
5631 cc_check && _sunaudio=yes
5633 if test "$_sunaudio" = yes ; then
5634 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5635 _aomodules="sun $_aomodules"
5636 else
5637 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5638 _noaomodules="sun $_noaomodules"
5640 echores "$_sunaudio"
5643 def_mlib='#define CONFIG_MLIB 0'
5644 if sunos; then
5645 echocheck "Sun mediaLib"
5646 if test "$_mlib" = auto ; then
5647 _mlib=no
5648 cat > $TMPC << EOF
5649 #include <mlib.h>
5650 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5652 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5654 echores "$_mlib"
5655 fi #if sunos
5658 if darwin; then
5659 echocheck "CoreAudio"
5660 if test "$_coreaudio" = auto ; then
5661 cat > $TMPC <<EOF
5662 #include <CoreAudio/CoreAudio.h>
5663 #include <AudioToolbox/AudioToolbox.h>
5664 #include <AudioUnit/AudioUnit.h>
5665 int main(void) { return 0; }
5667 _coreaudio=no
5668 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5670 if test "$_coreaudio" = yes ; then
5671 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5672 def_coreaudio='#define CONFIG_COREAUDIO 1'
5673 _aomodules="coreaudio $_aomodules"
5674 else
5675 def_coreaudio='#undef CONFIG_COREAUDIO'
5676 _noaomodules="coreaudio $_noaomodules"
5678 echores $_coreaudio
5679 fi #if darwin
5682 if irix; then
5683 echocheck "SGI audio"
5684 if test "$_sgiaudio" = auto ; then
5685 # check for SGI audio
5686 cat > $TMPC << EOF
5687 #include <dmedia/audio.h>
5688 int main(void) { return 0; }
5690 _sgiaudio=no
5691 cc_check && _sgiaudio=yes
5693 if test "$_sgiaudio" = "yes" ; then
5694 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5695 libs_mplayer="$libs_mplayer -laudio"
5696 _aomodules="sgi $_aomodules"
5697 else
5698 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5699 _noaomodules="sgi $_noaomodules"
5701 echores "$_sgiaudio"
5702 fi #if irix
5705 if os2 ; then
5706 echocheck "DART"
5707 if test "$_dart" = auto; then
5708 cat > $TMPC << EOF
5709 #include <os2.h>
5710 #include <dart.h>
5711 int main( void ) { return 0; }
5713 _dart=no;
5714 cc_check -ldart && _dart=yes
5716 if test "$_dart" = yes ; then
5717 def_dart='#define CONFIG_DART 1'
5718 libs_mplayer="$libs_mplayer -ldart"
5719 _aomodules="dart $_aomodules"
5720 else
5721 def_dart='#undef CONFIG_DART'
5722 _noaomodules="dart $_noaomodules"
5724 echores "$_dart"
5725 fi #if os2
5728 # set default CD/DVD devices
5729 if win32 || os2 ; then
5730 default_cdrom_device="D:"
5731 elif darwin ; then
5732 default_cdrom_device="/dev/disk1"
5733 elif dragonfly ; then
5734 default_cdrom_device="/dev/cd0"
5735 elif freebsd ; then
5736 default_cdrom_device="/dev/acd0"
5737 elif openbsd ; then
5738 default_cdrom_device="/dev/rcd0a"
5739 elif sunos ; then
5740 default_cdrom_device="/vol/dev/aliases/cdrom0"
5741 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5742 # file system and the volfs service.
5743 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5744 elif amigaos ; then
5745 default_cdrom_device="a1ide.device:2"
5746 else
5747 default_cdrom_device="/dev/cdrom"
5750 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5751 default_dvd_device=$default_cdrom_device
5752 elif darwin ; then
5753 default_dvd_device="/dev/rdiskN"
5754 else
5755 default_dvd_device="/dev/dvd"
5759 echocheck "VCD support"
5760 if test "$_vcd" = auto; then
5761 _vcd=no
5762 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5763 _vcd=yes
5764 elif mingw32; then
5765 cat > $TMPC << EOF
5766 #include <ddk/ntddcdrm.h>
5767 int main(void) { return 0; }
5769 cc_check && _vcd=yes
5772 if test "$_vcd" = yes; then
5773 _inputmodules="vcd $_inputmodules"
5774 def_vcd='#define CONFIG_VCD 1'
5775 else
5776 def_vcd='#undef CONFIG_VCD'
5777 _noinputmodules="vcd $_noinputmodules"
5778 _res_comment="not supported on this OS"
5780 echores "$_vcd"
5784 echocheck "dvdread"
5785 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5786 _dvdread_internal=no
5788 if test "$_dvdread_internal" = auto ; then
5789 _dvdread_internal=no
5790 _dvdread=no
5791 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5792 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5793 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5794 || darwin || win32 || os2; then
5795 _dvdread_internal=yes
5796 _dvdread=yes
5797 extra_cflags="-Ilibdvdread4 $extra_cflags"
5799 elif test "$_dvdread" = auto ; then
5800 _dvdread=no
5801 if test "$_dl" = yes; then
5802 cat > $TMPC << EOF
5803 #include <inttypes.h>
5804 #include <dvdread/dvd_reader.h>
5805 #include <dvdread/ifo_types.h>
5806 #include <dvdread/ifo_read.h>
5807 #include <dvdread/nav_read.h>
5808 int main(void) { return 0; }
5810 _dvdreadcflags=$($_dvdreadconfig --cflags)
5811 _dvdreadlibs=$($_dvdreadconfig --libs)
5812 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5813 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5814 _dvdread=yes
5815 extra_cflags="$extra_cflags $_dvdreadcflags"
5816 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5817 _res_comment="external"
5822 if test "$_dvdread_internal" = yes; then
5823 def_dvdread='#define CONFIG_DVDREAD 1'
5824 _inputmodules="dvdread(internal) $_inputmodules"
5825 _largefiles=yes
5826 _res_comment="internal"
5827 elif test "$_dvdread" = yes; then
5828 def_dvdread='#define CONFIG_DVDREAD 1'
5829 _largefiles=yes
5830 extra_ldflags="$extra_ldflags -ldvdread"
5831 _inputmodules="dvdread(external) $_inputmodules"
5832 _res_comment="external"
5833 else
5834 def_dvdread='#undef CONFIG_DVDREAD'
5835 _noinputmodules="dvdread $_noinputmodules"
5837 echores "$_dvdread"
5840 echocheck "internal libdvdcss"
5841 if test "$_libdvdcss_internal" = auto ; then
5842 _libdvdcss_internal=no
5843 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5844 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5846 if test "$_libdvdcss_internal" = yes ; then
5847 if linux || netbsd || openbsd || bsdos ; then
5848 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5849 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5850 elif freebsd || dragonfly ; then
5851 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5852 elif darwin ; then
5853 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5854 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5855 elif cygwin ; then
5856 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5857 elif beos ; then
5858 cflags_libdvdcss="-DSYS_BEOS"
5859 elif os2 ; then
5860 cflags_libdvdcss="-DSYS_OS2"
5862 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5863 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5864 _inputmodules="libdvdcss(internal) $_inputmodules"
5865 _largefiles=yes
5866 else
5867 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5869 echores "$_libdvdcss_internal"
5872 echocheck "cdparanoia"
5873 if test "$_cdparanoia" = auto ; then
5874 cat > $TMPC <<EOF
5875 #include <cdda_interface.h>
5876 #include <cdda_paranoia.h>
5877 // This need a better test. How ?
5878 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5880 _cdparanoia=no
5881 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5882 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5883 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5884 done
5886 if test "$_cdparanoia" = yes ; then
5887 _cdda='yes'
5888 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5889 openbsd && extra_ldflags="$extra_ldflags -lutil"
5891 echores "$_cdparanoia"
5894 echocheck "libcdio"
5895 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5896 cat > $TMPC << EOF
5897 #include <stdio.h>
5898 #include <cdio/version.h>
5899 #include <cdio/cdda.h>
5900 #include <cdio/paranoia.h>
5901 int main(void) {
5902 void *test = cdda_verbose_set;
5903 printf("%s\n", CDIO_VERSION);
5904 return test == (void *)1;
5907 _libcdio=no
5908 for _ld_tmp in "" "-lwinmm" ; do
5909 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5910 cc_check $_ld_tmp $_ld_lm \
5911 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5912 done
5913 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5914 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5915 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5916 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5917 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5920 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5921 _cdda='yes'
5922 def_libcdio='#define CONFIG_LIBCDIO 1'
5923 def_havelibcdio='yes'
5924 else
5925 if test "$_cdparanoia" = yes ; then
5926 _res_comment="using cdparanoia"
5928 def_libcdio='#undef CONFIG_LIBCDIO'
5929 def_havelibcdio='no'
5931 echores "$_libcdio"
5933 if test "$_cdda" = yes ; then
5934 test $_cddb = auto && test $_network = yes && _cddb=yes
5935 def_cdparanoia='#define CONFIG_CDDA 1'
5936 _inputmodules="cdda $_inputmodules"
5937 else
5938 def_cdparanoia='#undef CONFIG_CDDA'
5939 _noinputmodules="cdda $_noinputmodules"
5942 if test "$_cddb" = yes ; then
5943 def_cddb='#define CONFIG_CDDB 1'
5944 _inputmodules="cddb $_inputmodules"
5945 else
5946 _cddb=no
5947 def_cddb='#undef CONFIG_CDDB'
5948 _noinputmodules="cddb $_noinputmodules"
5951 echocheck "bitmap font support"
5952 if test "$_bitmap_font" = yes ; then
5953 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5954 else
5955 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5957 echores "$_bitmap_font"
5960 echocheck "freetype >= 2.0.9"
5962 # freetype depends on iconv
5963 if test "$_iconv" = no ; then
5964 _freetype=no
5965 _res_comment="iconv support needed"
5968 if test "$_freetype" = auto ; then
5969 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5970 cat > $TMPC << EOF
5971 #include <stdio.h>
5972 #include <ft2build.h>
5973 #include FT_FREETYPE_H
5974 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5975 #error "Need FreeType 2.0.9 or newer"
5976 #endif
5977 int main(void) {
5978 FT_Library library;
5979 FT_Int major=-1,minor=-1,patch=-1;
5980 int err=FT_Init_FreeType(&library);
5981 return 0;
5984 _freetype=no
5985 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5986 else
5987 _freetype=no
5990 if test "$_freetype" = yes ; then
5991 def_freetype='#define CONFIG_FREETYPE 1'
5992 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5993 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5994 else
5995 def_freetype='#undef CONFIG_FREETYPE'
5997 echores "$_freetype"
5999 if test "$_freetype" = no ; then
6000 _fontconfig=no
6001 _res_comment="FreeType support needed"
6003 echocheck "fontconfig"
6004 if test "$_fontconfig" = auto ; then
6005 cat > $TMPC << EOF
6006 #include <stdio.h>
6007 #include <stdlib.h>
6008 #include <fontconfig/fontconfig.h>
6009 int main(void) {
6010 int err = FcInit();
6011 if (err == FcFalse) {
6012 printf("Couldn't initialize fontconfig lib\n");
6013 exit(err);
6015 return 0;
6018 _fontconfig=no
6019 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6020 _ld_tmp="-lfontconfig $_ld_tmp"
6021 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6022 done
6023 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6024 _inc_tmp=$($_pkg_config --cflags fontconfig)
6025 _ld_tmp=$($_pkg_config --libs fontconfig)
6026 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6027 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6030 if test "$_fontconfig" = yes ; then
6031 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6032 else
6033 def_fontconfig='#undef CONFIG_FONTCONFIG'
6035 echores "$_fontconfig"
6038 echocheck "SSA/ASS support"
6039 if test "$_ass" = auto -o "$_ass" = yes ; then
6040 if $_pkg_config libass; then
6041 _ass=yes
6042 def_ass='#define CONFIG_ASS 1'
6043 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
6044 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
6045 else
6046 _ass=no
6047 def_ass='#undef CONFIG_ASS'
6049 else
6050 def_ass='#undef CONFIG_ASS'
6052 echores "$_ass"
6055 echocheck "fribidi with charsets"
6056 if test "$_fribidi" = auto ; then
6057 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6058 cat > $TMPC << EOF
6059 #include <stdio.h>
6060 /* workaround for fribidi 0.10.4 and below */
6061 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6062 #include <fribidi/fribidi.h>
6063 int main(void) {
6064 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6065 printf("Fribidi headers are not consistents with the library!\n");
6066 exit(1);
6068 return 0;
6071 _fribidi=no
6072 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && _fribidi=yes
6073 else
6074 _fribidi=no
6077 if test "$_fribidi" = yes ; then
6078 def_fribidi='#define CONFIG_FRIBIDI 1'
6079 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6080 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6081 else
6082 def_fribidi='#undef CONFIG_FRIBIDI'
6084 echores "$_fribidi"
6087 echocheck "ENCA"
6088 if test "$_enca" = auto ; then
6089 cat > $TMPC << EOF
6090 #include <sys/types.h>
6091 #include <enca.h>
6092 int main(void) {
6093 const char **langs;
6094 size_t langcnt;
6095 langs = enca_get_languages(&langcnt);
6096 return 0;
6099 _enca=no
6100 cc_check -lenca $_ld_lm && _enca=yes
6102 if test "$_enca" = yes ; then
6103 def_enca='#define CONFIG_ENCA 1'
6104 extra_ldflags="$extra_ldflags -lenca"
6105 else
6106 def_enca='#undef CONFIG_ENCA'
6108 echores "$_enca"
6111 echocheck "zlib"
6112 cat > $TMPC << EOF
6113 #include <zlib.h>
6114 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6116 _zlib=no
6117 cc_check -lz && _zlib=yes
6118 if test "$_zlib" = yes ; then
6119 def_zlib='#define CONFIG_ZLIB 1'
6120 extra_ldflags="$extra_ldflags -lz"
6121 else
6122 def_zlib='#define CONFIG_ZLIB 0'
6124 echores "$_zlib"
6127 echocheck "bzlib"
6128 bzlib=no
6129 def_bzlib='#define CONFIG_BZLIB 0'
6130 cat > $TMPC << EOF
6131 #include <bzlib.h>
6132 int main(void) { BZ2_bzlibVersion(); return 0; }
6134 cc_check -lbz2 && bzlib=yes
6135 if test "$bzlib" = yes ; then
6136 def_bzlib='#define CONFIG_BZLIB 1'
6137 extra_ldflags="$extra_ldflags -lbz2"
6139 echores "$bzlib"
6142 echocheck "RTC"
6143 if test "$_rtc" = auto ; then
6144 cat > $TMPC << EOF
6145 #include <sys/ioctl.h>
6146 #ifdef __linux__
6147 #include <linux/rtc.h>
6148 #else
6149 #include <rtc.h>
6150 #define RTC_PIE_ON RTCIO_PIE_ON
6151 #endif
6152 int main(void) { return RTC_PIE_ON; }
6154 _rtc=no
6155 cc_check && _rtc=yes
6156 ppc && _rtc=no
6158 if test "$_rtc" = yes ; then
6159 def_rtc='#define HAVE_RTC 1'
6160 else
6161 def_rtc='#undef HAVE_RTC'
6163 echores "$_rtc"
6166 echocheck "liblzo2 support"
6167 if test "$_liblzo" = auto ; then
6168 _liblzo=no
6169 cat > $TMPC << EOF
6170 #include <lzo/lzo1x.h>
6171 int main(void) { lzo_init();return 0; }
6173 cc_check -llzo2 && _liblzo=yes
6175 if test "$_liblzo" = yes ; then
6176 def_liblzo='#define CONFIG_LIBLZO 1'
6177 extra_ldflags="$extra_ldflags -llzo2"
6178 _codecmodules="liblzo $_codecmodules"
6179 else
6180 def_liblzo='#undef CONFIG_LIBLZO'
6181 _nocodecmodules="liblzo $_nocodecmodules"
6183 echores "$_liblzo"
6186 echocheck "mad support"
6187 if test "$_mad" = auto ; then
6188 _mad=no
6189 cat > $TMPC << EOF
6190 #include <mad.h>
6191 int main(void) { return 0; }
6193 cc_check -lmad && _mad=yes
6195 if test "$_mad" = yes ; then
6196 def_mad='#define CONFIG_LIBMAD 1'
6197 extra_ldflags="$extra_ldflags -lmad"
6198 _codecmodules="libmad $_codecmodules"
6199 else
6200 def_mad='#undef CONFIG_LIBMAD'
6201 _nocodecmodules="libmad $_nocodecmodules"
6203 echores "$_mad"
6205 echocheck "Twolame"
6206 if test "$_twolame" = auto ; then
6207 cat > $TMPC <<EOF
6208 #include <twolame.h>
6209 int main(void) { twolame_init(); return 0; }
6211 _twolame=no
6212 cc_check -ltwolame $_ld_lm && _twolame=yes
6214 if test "$_twolame" = yes ; then
6215 def_twolame='#define CONFIG_TWOLAME 1'
6216 libs_mencoder="$libs_mencoder -ltwolame"
6217 _codecmodules="twolame $_codecmodules"
6218 else
6219 def_twolame='#undef CONFIG_TWOLAME'
6220 _nocodecmodules="twolame $_nocodecmodules"
6222 echores "$_twolame"
6224 echocheck "Toolame"
6225 if test "$_toolame" = auto ; then
6226 _toolame=no
6227 if test "$_twolame" = yes ; then
6228 _res_comment="disabled by twolame"
6229 else
6230 cat > $TMPC <<EOF
6231 #include <toolame.h>
6232 int main(void) { toolame_init(); return 0; }
6234 cc_check -ltoolame $_ld_lm && _toolame=yes
6237 if test "$_toolame" = yes ; then
6238 def_toolame='#define CONFIG_TOOLAME 1'
6239 libs_mencoder="$libs_mencoder -ltoolame"
6240 _codecmodules="toolame $_codecmodules"
6241 else
6242 def_toolame='#undef CONFIG_TOOLAME'
6243 _nocodecmodules="toolame $_nocodecmodules"
6245 if test "$_toolamedir" ; then
6246 _res_comment="using $_toolamedir"
6248 echores "$_toolame"
6250 echocheck "OggVorbis support"
6251 if test "$_tremor_internal" = yes; then
6252 _libvorbis=no
6253 elif test "$_tremor" = auto; then
6254 _tremor=no
6255 cat > $TMPC << EOF
6256 #include <tremor/ivorbiscodec.h>
6257 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6259 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6261 if test "$_libvorbis" = auto; then
6262 _libvorbis=no
6263 cat > $TMPC << EOF
6264 #include <vorbis/codec.h>
6265 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6267 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6269 if test "$_tremor_internal" = yes ; then
6270 _vorbis=yes
6271 def_vorbis='#define CONFIG_OGGVORBIS 1'
6272 def_tremor='#define CONFIG_TREMOR 1'
6273 _codecmodules="tremor(internal) $_codecmodules"
6274 _res_comment="internal Tremor"
6275 if test "$_tremor_low" = yes ; then
6276 cflags_tremor_low="-D_LOW_ACCURACY_"
6277 _res_comment="internal low accuracy Tremor"
6279 elif test "$_tremor" = yes ; then
6280 _vorbis=yes
6281 def_vorbis='#define CONFIG_OGGVORBIS 1'
6282 def_tremor='#define CONFIG_TREMOR 1'
6283 _codecmodules="tremor(external) $_codecmodules"
6284 _res_comment="external Tremor"
6285 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6286 elif test "$_libvorbis" = yes ; then
6287 _vorbis=yes
6288 def_vorbis='#define CONFIG_OGGVORBIS 1'
6289 _codecmodules="libvorbis $_codecmodules"
6290 _res_comment="libvorbis"
6291 extra_ldflags="$extra_ldflags -lvorbis -logg"
6292 else
6293 _vorbis=no
6294 _nocodecmodules="libvorbis $_nocodecmodules"
6296 echores "$_vorbis"
6298 echocheck "libspeex (version >= 1.1 required)"
6299 if test "$_speex" = auto ; then
6300 _speex=no
6301 cat > $TMPC << EOF
6302 #include <speex/speex.h>
6303 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6305 cc_check -lspeex $_ld_lm && _speex=yes
6307 if test "$_speex" = yes ; then
6308 def_speex='#define CONFIG_SPEEX 1'
6309 extra_ldflags="$extra_ldflags -lspeex"
6310 _codecmodules="speex $_codecmodules"
6311 else
6312 def_speex='#undef CONFIG_SPEEX'
6313 _nocodecmodules="speex $_nocodecmodules"
6315 echores "$_speex"
6317 echocheck "OggTheora support"
6318 if test "$_theora" = auto ; then
6319 _theora=no
6320 cat > $TMPC << EOF
6321 #include <theora/theora.h>
6322 #include <string.h>
6323 int main(void) {
6324 /* Theora is in flux, make sure that all interface routines and datatypes
6325 * exist and work the way we expect it, so we don't break MPlayer. */
6326 ogg_packet op;
6327 theora_comment tc;
6328 theora_info inf;
6329 theora_state st;
6330 yuv_buffer yuv;
6331 int r;
6332 double t;
6334 theora_info_init(&inf);
6335 theora_comment_init(&tc);
6337 return 0;
6339 /* we don't want to execute this kind of nonsense; just for making sure
6340 * that compilation works... */
6341 memset(&op, 0, sizeof(op));
6342 r = theora_decode_header(&inf, &tc, &op);
6343 r = theora_decode_init(&st, &inf);
6344 t = theora_granule_time(&st, op.granulepos);
6345 r = theora_decode_packetin(&st, &op);
6346 r = theora_decode_YUVout(&st, &yuv);
6347 theora_clear(&st);
6349 return 0;
6352 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6353 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6354 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6355 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6356 if test _theora = no; then
6357 _ld_theora="-ltheora -logg"
6358 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6360 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6361 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6362 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6363 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6364 extra_ldflags="$extra_ldflags $_ld_theora" &&
6365 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6366 if test _theora = no; then
6367 _ld_theora="-ltheora -logg"
6368 cc_check tremor/bitwise.c $_ld_theora &&
6369 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6373 if test "$_theora" = yes ; then
6374 def_theora='#define CONFIG_OGGTHEORA 1'
6375 _codecmodules="libtheora $_codecmodules"
6376 # when --enable-theora is forced, we'd better provide a probably sane
6377 # $_ld_theora than nothing
6378 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6379 else
6380 def_theora='#undef CONFIG_OGGTHEORA'
6381 _nocodecmodules="libtheora $_nocodecmodules"
6383 echores "$_theora"
6385 echocheck "internal mp3lib support"
6386 if test "$_mp3lib" = auto ; then
6387 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6389 if test "$_mp3lib" = yes ; then
6390 def_mp3lib='#define CONFIG_MP3LIB 1'
6391 _codecmodules="mp3lib(internal) $_codecmodules"
6392 else
6393 def_mp3lib='#undef CONFIG_MP3LIB'
6394 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6396 echores "$_mp3lib"
6398 echocheck "liba52 support"
6399 if test "$_liba52_internal" = auto ; then
6400 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
6402 def_liba52='#undef CONFIG_LIBA52'
6403 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6404 if test "$_liba52_internal" = yes ; then
6405 _liba52=yes
6406 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6407 _res_comment="internal"
6408 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6409 _liba52=no
6410 cat > $TMPC << EOF
6411 #include <inttypes.h>
6412 #include <a52dec/a52.h>
6413 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6415 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6417 if test "$_liba52" = yes ; then
6418 def_liba52='#define CONFIG_LIBA52 1'
6419 _codecmodules="liba52($_res_comment) $_codecmodules"
6420 else
6421 _nocodecmodules="liba52 $_nocodecmodules"
6423 echores "$_liba52"
6425 echocheck "internal libmpeg2 support"
6426 if test "$_libmpeg2" = auto ; then
6427 _libmpeg2=yes
6428 if alpha && test cc_vendor=gnu; then
6429 case $cc_version in
6430 2*|3.0*|3.1*) # cannot compile MVI instructions
6431 _libmpeg2=no
6432 _res_comment="broken gcc"
6434 esac
6437 if test "$_libmpeg2" = yes ; then
6438 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6439 _codecmodules="libmpeg2(internal) $_codecmodules"
6440 else
6441 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6442 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6444 echores "$_libmpeg2"
6446 echocheck "libdca support"
6447 if test "$_libdca" = auto ; then
6448 _libdca=no
6449 cat > $TMPC << EOF
6450 #include <inttypes.h>
6451 #include <dts.h>
6452 int main(void) { dts_init(0); return 0; }
6454 for _ld_dca in -ldts -ldca ; do
6455 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6456 && _libdca=yes && break
6457 done
6459 if test "$_libdca" = yes ; then
6460 def_libdca='#define CONFIG_LIBDCA 1'
6461 _codecmodules="libdca $_codecmodules"
6462 else
6463 def_libdca='#undef CONFIG_LIBDCA'
6464 _nocodecmodules="libdca $_nocodecmodules"
6466 echores "$_libdca"
6468 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6469 if test "$_musepack" = auto ; then
6470 _musepack=no
6471 cat > $TMPC << EOF
6472 #include <stddef.h>
6473 #include <mpcdec/mpcdec.h>
6474 int main(void) {
6475 mpc_streaminfo info;
6476 mpc_decoder decoder;
6477 mpc_decoder_set_streaminfo(&decoder, &info);
6478 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6479 return 0;
6482 cc_check -lmpcdec $_ld_lm && _musepack=yes
6484 if test "$_musepack" = yes ; then
6485 def_musepack='#define CONFIG_MUSEPACK 1'
6486 extra_ldflags="$extra_ldflags -lmpcdec"
6487 _codecmodules="musepack $_codecmodules"
6488 else
6489 def_musepack='#undef CONFIG_MUSEPACK'
6490 _nocodecmodules="musepack $_nocodecmodules"
6492 echores "$_musepack"
6495 echocheck "FAAC support"
6496 if test "$_faac" = auto ; then
6497 cat > $TMPC <<EOF
6498 #include <inttypes.h>
6499 #include <faac.h>
6500 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6502 _faac=no
6503 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6504 cc_check -O2 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6505 done
6507 if test "$_faac" = yes ; then
6508 def_faac="#define CONFIG_FAAC 1"
6509 _codecmodules="faac $_codecmodules"
6510 else
6511 def_faac="#undef CONFIG_FAAC"
6512 _nocodecmodules="faac $_nocodecmodules"
6514 echores "$_faac"
6517 echocheck "FAAD2 support"
6518 if test "$_faad_internal" = auto ; then
6519 if x86_32 && test cc_vendor=gnu; then
6520 case $cc_version in
6521 3.1*|3.2) # ICE/insn with these versions
6522 _faad_internal=no
6523 _res_comment="broken gcc"
6526 _faad=yes
6527 _faad_internal=yes
6529 esac
6530 else
6531 _faad=yes
6532 _faad_internal=yes
6535 if test "$_faad" = auto ; then
6536 cat > $TMPC << EOF
6537 #include <faad.h>
6538 #ifndef FAAD_MIN_STREAMSIZE
6539 #error Too old version
6540 #endif
6541 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6542 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6544 cc_check -lfaad $_ld_lm && _faad=yes
6547 def_faad='#undef CONFIG_FAAD'
6548 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6549 if test "$_faad_internal" = yes ; then
6550 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6551 _res_comment="internal floating-point"
6552 if test "$_faad_fixed" = yes ; then
6553 # The FIXED_POINT implementation of FAAD2 improves performance
6554 # on some platforms, especially for SBR files.
6555 cflags_faad_fixed="-DFIXED_POINT"
6556 _res_comment="internal fixed-point"
6558 elif test "$_faad" = yes ; then
6559 extra_ldflags="$extra_ldflags -lfaad"
6562 if test "$_faad" = yes ; then
6563 def_faad='#define CONFIG_FAAD 1'
6564 if test "$_faad_internal" = yes ; then
6565 _codecmodules="faad2(internal) $_codecmodules"
6566 else
6567 _codecmodules="faad2 $_codecmodules"
6569 else
6570 _faad=no
6571 _nocodecmodules="faad2 $_nocodecmodules"
6573 echores "$_faad"
6576 echocheck "LADSPA plugin support"
6577 if test "$_ladspa" = auto ; then
6578 cat > $TMPC <<EOF
6579 #include <stdio.h>
6580 #include <ladspa.h>
6581 int main(void) {
6582 const LADSPA_Descriptor *ld = NULL;
6583 return 0;
6586 _ladspa=no
6587 cc_check && _ladspa=yes
6589 if test "$_ladspa" = yes; then
6590 def_ladspa="#define CONFIG_LADSPA 1"
6591 else
6592 def_ladspa="#undef CONFIG_LADSPA"
6594 echores "$_ladspa"
6597 echocheck "libbs2b audio filter support"
6598 if test "$_libbs2b" = auto ; then
6599 cat > $TMPC <<EOF
6600 #include <bs2b.h>
6601 #if BS2B_VERSION_MAJOR < 3
6602 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6603 #endif
6604 int main(void) {
6605 t_bs2bdp filter;
6606 filter=bs2b_open();
6607 bs2b_close(filter);
6608 return 0;
6611 _libbs2b=no
6612 if $_pkg_config --exists libbs2b ; then
6613 _inc_tmp=$($_pkg_config --cflags libbs2b)
6614 _ld_tmp=$($_pkg_config --libs libbs2b)
6615 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6616 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6617 else
6618 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6619 -I/usr/local/include/bs2b ; do
6620 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6621 extra_ldflags="$extra_ldflags -lbs2b"
6622 extra_cflags="$extra_cflags $_inc_tmp"
6623 _libbs2b=yes
6624 break
6626 done
6629 def_libbs2b="#undef CONFIG_LIBBS2B"
6630 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6631 echores "$_libbs2b"
6634 if test -z "$_codecsdir" ; then
6635 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6636 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6637 if test -d "$dir" ; then
6638 _codecsdir="$dir"
6639 break;
6641 done
6643 # Fall back on default directory.
6644 if test -z "$_codecsdir" ; then
6645 _codecsdir="$_libdir/codecs"
6646 mingw32 && _codecsdir="codecs"
6647 os2 && _codecsdir="codecs"
6651 echocheck "Win32 codecs"
6652 if test "$_win32dll" = auto ; then
6653 _win32dll=no
6654 if x86_32 && ! qnx; then
6655 _win32dll=yes
6658 if test "$_win32dll" = yes ; then
6659 def_win32dll='#define CONFIG_WIN32DLL 1'
6660 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6661 _res_comment="using $_win32codecsdir"
6662 if ! win32 ; then
6663 def_win32_loader='#define WIN32_LOADER 1'
6664 _win32_emulation=yes
6665 else
6666 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6667 _res_comment="using native windows"
6669 _codecmodules="win32 $_codecmodules"
6670 else
6671 def_win32dll='#undef CONFIG_WIN32DLL'
6672 def_win32_loader='#undef WIN32_LOADER'
6673 _nocodecmodules="win32 $_nocodecmodules"
6675 echores "$_win32dll"
6678 echocheck "XAnim codecs"
6679 if test "$_xanim" = auto ; then
6680 _xanim=no
6681 _res_comment="dynamic loader support needed"
6682 if test "$_dl" = yes ; then
6683 _xanim=yes
6686 if test "$_xanim" = yes ; then
6687 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6688 def_xanim='#define CONFIG_XANIM 1'
6689 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6690 _codecmodules="xanim $_codecmodules"
6691 _res_comment="using $_xanimcodecsdir"
6692 else
6693 def_xanim='#undef CONFIG_XANIM'
6694 def_xanim_path='#undef XACODEC_PATH'
6695 _nocodecmodules="xanim $_nocodecmodules"
6697 echores "$_xanim"
6700 echocheck "RealPlayer codecs"
6701 if test "$_real" = auto ; then
6702 _real=no
6703 _res_comment="dynamic loader support needed"
6704 if test "$_dl" = yes || test "$_win32dll" = yes &&
6705 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6706 _real=yes
6709 if test "$_real" = yes ; then
6710 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6711 def_real='#define CONFIG_REALCODECS 1'
6712 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6713 _codecmodules="real $_codecmodules"
6714 _res_comment="using $_realcodecsdir"
6715 else
6716 def_real='#undef CONFIG_REALCODECS'
6717 def_real_path="#undef REALCODEC_PATH"
6718 _nocodecmodules="real $_nocodecmodules"
6720 echores "$_real"
6723 echocheck "QuickTime codecs"
6724 _qtx_emulation=no
6725 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6726 if test "$_qtx" = auto ; then
6727 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6729 if test "$_qtx" = yes ; then
6730 def_qtx='#define CONFIG_QTX_CODECS 1'
6731 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6732 _codecmodules="qtx $_codecmodules"
6733 darwin || win32 || _qtx_emulation=yes
6734 else
6735 def_qtx='#undef CONFIG_QTX_CODECS'
6736 _nocodecmodules="qtx $_nocodecmodules"
6738 echores "$_qtx"
6740 echocheck "Nemesi Streaming Media libraries"
6741 if test "$_nemesi" = auto && test "$_network" = yes ; then
6742 _nemesi=no
6743 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6744 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6745 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6746 _nemesi=yes
6749 if test "$_nemesi" = yes; then
6750 _native_rtsp=no
6751 def_nemesi='#define CONFIG_LIBNEMESI 1'
6752 _inputmodules="nemesi $_inputmodules"
6753 else
6754 _native_rtsp="$_network"
6755 _nemesi=no
6756 def_nemesi='#undef CONFIG_LIBNEMESI'
6757 _noinputmodules="nemesi $_noinputmodules"
6759 echores "$_nemesi"
6761 echocheck "LIVE555 Streaming Media libraries"
6762 if test "$_live" = auto && test "$_network" = yes ; then
6763 cat > $TMPCPP << EOF
6764 #include <liveMedia.hh>
6765 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6766 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6767 #endif
6768 int main(void) { return 0; }
6771 _live=no
6772 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
6773 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6774 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6775 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6776 $_livelibdir/groupsock/libgroupsock.a \
6777 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6778 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6779 $extra_ldflags -lstdc++" \
6780 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6781 -I$_livelibdir/UsageEnvironment/include \
6782 -I$_livelibdir/BasicUsageEnvironment/include \
6783 -I$_livelibdir/groupsock/include" && \
6784 _live=yes && break
6785 done
6786 if test "$_live" != yes ; then
6787 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6788 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6789 _live_dist=yes
6793 if test "$_live" = yes && test "$_network" = yes; then
6794 test $_livelibdir && _res_comment="using $_livelibdir"
6795 def_live='#define CONFIG_LIVE555 1'
6796 _inputmodules="live555 $_inputmodules"
6797 elif test "$_live_dist" = yes && test "$_network" = yes; then
6798 _res_comment="using distribution version"
6799 _live="yes"
6800 def_live='#define CONFIG_LIVE555 1'
6801 extra_ldflags="$extra_ldflags $ld_tmp"
6802 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6803 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6804 _inputmodules="live555 $_inputmodules"
6805 else
6806 _live=no
6807 def_live='#undef CONFIG_LIVE555'
6808 _noinputmodules="live555 $_noinputmodules"
6810 echores "$_live"
6813 echocheck "FFmpeg libavutil"
6814 if test "$_libavutil" = auto ; then
6815 _libavutil=no
6816 cat > $TMPC << EOF
6817 #include <libavutil/common.h>
6818 int main(void) { av_gcd(1,1); return 0; }
6820 if $_pkg_config --exists libavutil ; then
6821 _inc_libavutil=$($_pkg_config --cflags libavutil)
6822 _ld_tmp=$($_pkg_config --libs libavutil)
6823 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6824 && _libavutil=yes
6825 elif cc_check -lavutil $_ld_lm ; then
6826 extra_ldflags="$extra_ldflags -lavutil"
6827 _libavutil=yes
6830 def_libavutil='#undef CONFIG_LIBAVUTIL'
6831 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6832 # libavutil is not available, but it is mandatory ...
6833 if test "$_libavutil" = no ; then
6834 die "You need libavutil, MPlayer will not compile without!"
6836 echores "$_libavutil"
6838 echocheck "FFmpeg libavcodec"
6839 if test "$_libavcodec" = auto ; then
6840 _libavcodec=no
6841 cat > $TMPC << EOF
6842 #include <libavcodec/avcodec.h>
6843 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6845 if $_pkg_config --exists libavcodec ; then
6846 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6847 _ld_tmp=$($_pkg_config --libs libavcodec)
6848 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6849 && _libavcodec=yes
6850 elif cc_check -lavcodec $_ld_lm ; then
6851 extra_ldflags="$extra_ldflags -lavcodec"
6852 _libavcodec=yes
6855 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6856 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6857 if test "$_libavcodec" = yes ; then
6858 _codecmodules="libavcodec $_codecmodules"
6859 else
6860 _nocodecmodules="libavcodec $_nocodecmodules"
6862 echores "$_libavcodec"
6864 echocheck "FFmpeg libavformat"
6865 if test "$_libavformat" = auto ; then
6866 _libavformat=no
6867 cat > $TMPC <<EOF
6868 #include <libavformat/avformat.h>
6869 #include <libavcodec/opt.h>
6870 int main(void) { av_alloc_format_context(); return 0; }
6872 if $_pkg_config --exists libavformat ; then
6873 _inc_libavformat=$($_pkg_config --cflags libavformat)
6874 _ld_tmp=$($_pkg_config --libs libavformat)
6875 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6876 && _libavformat=yes
6877 elif cc_check $_ld_lm -lavformat ; then
6878 extra_ldflags="$extra_ldflags -lavformat"
6879 _libavformat=yes
6882 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6883 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6884 echores "$_libavformat"
6886 echocheck "FFmpeg libpostproc"
6887 if test "$_libpostproc" = auto ; then
6888 _libpostproc=no
6889 cat > $TMPC << EOF
6890 #include <inttypes.h>
6891 #include <libpostproc/postprocess.h>
6892 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6894 if $_pkg_config --exists libpostproc ; then
6895 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6896 _ld_tmp=$($_pkg_config --libs libpostproc)
6897 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6898 && _libpostproc=yes
6899 elif cc_check -lpostproc $_ld_lm ; then
6900 extra_ldflags="$extra_ldflags -lpostproc"
6901 _libpostproc=yes
6904 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6905 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6906 echores "$_libpostproc"
6908 echocheck "FFmpeg libswscale"
6909 if test "$_libswscale" = auto ; then
6910 _libswscale=no
6911 cat > $TMPC << EOF
6912 #include <libswscale/swscale.h>
6913 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6915 if $_pkg_config --exists libswscale ; then
6916 _inc_libswscale=$($_pkg_config --cflags libswscale)
6917 _ld_tmp=$($_pkg_config --libs libswscale)
6918 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6919 && _libswscale=yes
6920 elif cc_check -lswscale ; then
6921 extra_ldflags="$extra_ldflags -lswscale"
6922 _libswscale=yes
6925 def_libswscale='#undef CONFIG_LIBSWSCALE'
6926 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
6927 echores "$_libswscale"
6929 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
6930 if ! test -z "$_ffmpeg_source" ; then
6931 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
6934 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
6935 if ! test -z "$_ffmpeg_source" ; then
6936 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
6939 echocheck "libdv-0.9.5+"
6940 if test "$_libdv" = auto ; then
6941 _libdv=no
6942 cat > $TMPC <<EOF
6943 #include <libdv/dv.h>
6944 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6946 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6948 if test "$_libdv" = yes ; then
6949 def_libdv='#define CONFIG_LIBDV095 1'
6950 extra_ldflags="$extra_ldflags -ldv"
6951 _codecmodules="libdv $_codecmodules"
6952 else
6953 def_libdv='#undef CONFIG_LIBDV095'
6954 _nocodecmodules="libdv $_nocodecmodules"
6956 echores "$_libdv"
6959 echocheck "Xvid"
6960 if test "$_xvid" = auto ; then
6961 _xvid=no
6962 cat > $TMPC << EOF
6963 #include <xvid.h>
6964 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6966 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6967 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6968 done
6971 if test "$_xvid" = yes ; then
6972 def_xvid='#define CONFIG_XVID4 1'
6973 _codecmodules="xvid $_codecmodules"
6974 else
6975 def_xvid='#undef CONFIG_XVID4'
6976 _nocodecmodules="xvid $_nocodecmodules"
6978 echores "$_xvid"
6980 echocheck "x264"
6981 if test "$_x264" = auto ; then
6982 cat > $TMPC << EOF
6983 #include <inttypes.h>
6984 #include <x264.h>
6985 #if X264_BUILD < 79
6986 #error We do not support old versions of x264. Get the latest from git.
6987 #endif
6988 int main(void) { x264_encoder_open((void*)0); return 0; }
6990 _x264=no
6991 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6992 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
6993 done
6996 if test "$_x264" = yes ; then
6997 def_x264='#define CONFIG_X264 1'
6998 _codecmodules="x264 $_codecmodules"
6999 else
7000 def_x264='#undef CONFIG_X264'
7001 _nocodecmodules="x264 $_nocodecmodules"
7003 echores "$_x264"
7005 echocheck "libnut"
7006 if test "$_libnut" = auto ; then
7007 cat > $TMPC << EOF
7008 #include <stdio.h>
7009 #include <stdlib.h>
7010 #include <inttypes.h>
7011 #include <libnut.h>
7012 nut_context_tt * nut;
7013 int main(void) { (void)nut_error(0); return 0; }
7015 _libnut=no
7016 cc_check -lnut && _libnut=yes
7019 if test "$_libnut" = yes ; then
7020 def_libnut='#define CONFIG_LIBNUT 1'
7021 extra_ldflags="$extra_ldflags -lnut"
7022 else
7023 def_libnut='#undef CONFIG_LIBNUT'
7025 echores "$_libnut"
7027 # These VO checks must be done after libavcodec/libswscale one
7028 echocheck "/dev/mga_vid"
7029 if test "$_mga" = auto ; then
7030 _mga=no
7031 test -c /dev/mga_vid && _mga=yes
7033 if test "$_mga" = yes ; then
7034 if test "$_libswscale_internals" = yes ; then
7035 def_mga='#define CONFIG_MGA 1'
7036 _vomodules="mga $_vomodules"
7037 else
7038 _res_comment="libswscale internal headers are required by mga, sorry"
7039 def_mga='#undef CONFIG_MGA'
7040 _novomodules="mga $_novomodules"
7042 else
7043 def_mga='#undef CONFIG_MGA'
7044 _novomodules="mga $_novomodules"
7046 echores "$_mga"
7049 echocheck "xmga"
7050 if test "$_xmga" = auto ; then
7051 _xmga=no
7052 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
7054 if test "$_xmga" = yes ; then
7055 if test "$_libswscale_internals" = yes ; then
7056 def_xmga='#define CONFIG_XMGA 1'
7057 _vomodules="xmga $_vomodules"
7058 else
7059 _res_comment="libswscale internal headers are required by mga, sorry"
7060 def_xmga='#undef CONFIG_XMGA'
7061 _novomodules="xmga $_novomodules"
7063 else
7064 def_xmga='#undef CONFIG_XMGA'
7065 _novomodules="xmga $_novomodules"
7067 echores "$_xmga"
7069 echocheck "zr"
7070 if test "$_zr" = auto ; then
7071 #36067's seem to identify themselves as 36057PQC's, so the line
7072 #below should work for 36067's and 36057's.
7073 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7074 _zr=yes
7075 else
7076 _zr=no
7079 if test "$_zr" = yes ; then
7080 if test "$_libavcodec_internals" = yes ; then
7081 def_zr='#define CONFIG_ZR 1'
7082 _vomodules="zr zr2 $_vomodules"
7083 else
7084 _res_comment="libavcodec internal headers are required by zr, sorry"
7085 _novomodules="zr $_novomodules"
7086 def_zr='#undef CONFIG_ZR'
7088 else
7089 def_zr='#undef CONFIG_ZR'
7090 _novomodules="zr zr2 $_novomodules"
7092 echores "$_zr"
7094 # mencoder requires (optional) those libs: libmp3lame
7095 if test "$_mencoder" != no ; then
7097 echocheck "libmp3lame"
7098 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7099 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7100 if test "$_mp3lame" = auto ; then
7101 _mp3lame=no
7102 cat > $TMPC <<EOF
7103 #include <lame/lame.h>
7104 int main(void) { lame_version_t lv; (void) lame_init();
7105 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7106 return 0; }
7108 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7110 if test "$_mp3lame" = yes ; then
7111 def_mp3lame="#define CONFIG_MP3LAME 1"
7112 _ld_mp3lame=-lmp3lame
7113 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7114 cat > $TMPC << EOF
7115 #include <lame/lame.h>
7116 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7118 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7119 cat > $TMPC << EOF
7120 #include <lame/lame.h>
7121 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7123 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7124 else
7125 def_mp3lame='#undef CONFIG_MP3LAME'
7127 echores "$_mp3lame"
7129 fi # test "$_mencoder" != no
7131 echocheck "mencoder"
7132 if test "$_mencoder" = yes ; then
7133 def_muxers='#define CONFIG_MUXERS 1'
7134 else
7135 def_muxers='#define CONFIG_MUXERS 0'
7137 echores "$_mencoder"
7140 echocheck "UnRAR executable"
7141 if test "$_unrar_exec" = auto ; then
7142 _unrar_exec="yes"
7143 mingw32 && _unrar_exec="no"
7145 if test "$_unrar_exec" = yes ; then
7146 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7147 else
7148 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7150 echores "$_unrar_exec"
7152 echocheck "TV interface"
7153 if test "$_tv" = yes ; then
7154 def_tv='#define CONFIG_TV 1'
7155 _inputmodules="tv $_inputmodules"
7156 else
7157 _noinputmodules="tv $_noinputmodules"
7158 def_tv='#undef CONFIG_TV'
7160 echores "$_tv"
7163 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7164 echocheck "*BSD BT848 bt8xx header"
7165 _ioctl_bt848_h=no
7166 for file in "machine/ioctl_bt848.h" \
7167 "dev/bktr/ioctl_bt848.h" \
7168 "dev/video/bktr/ioctl_bt848.h" \
7169 "dev/ic/bt8xx.h" ; do
7170 cat > $TMPC <<EOF
7171 #include <sys/types.h>
7172 #include <sys/ioctl.h>
7173 #include <$file>
7174 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7176 if cc_check ; then
7177 _ioctl_bt848_h=yes
7178 _ioctl_bt848_h_name="$file"
7179 break;
7181 done
7182 if test "$_ioctl_bt848_h" = yes ; then
7183 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7184 _res_comment="using $_ioctl_bt848_h_name"
7185 else
7186 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7188 echores "$_ioctl_bt848_h"
7190 echocheck "*BSD ioctl_meteor.h"
7191 _ioctl_meteor_h=no
7192 for file in "machine/ioctl_meteor.h" \
7193 "dev/bktr/ioctl_meteor.h" \
7194 "dev/video/bktr/ioctl_meteor.h" ; do
7195 cat > $TMPC <<EOF
7196 #include <sys/types.h>
7197 #include <$file>
7198 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7200 if cc_check ; then
7201 _ioctl_meteor_h=yes
7202 _ioctl_meteor_h_name="$file"
7203 break;
7205 done
7206 if test "$_ioctl_meteor_h" = yes ; then
7207 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7208 _res_comment="using $_ioctl_meteor_h_name"
7209 else
7210 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7212 echores "$_ioctl_meteor_h"
7214 echocheck "*BSD BrookTree 848 TV interface"
7215 if test "$_tv_bsdbt848" = auto ; then
7216 _tv_bsdbt848=no
7217 if test "$_tv" = yes ; then
7218 cat > $TMPC <<EOF
7219 #include <sys/types.h>
7220 $def_ioctl_meteor_h_name
7221 $def_ioctl_bt848_h_name
7222 #ifdef IOCTL_METEOR_H_NAME
7223 #include IOCTL_METEOR_H_NAME
7224 #endif
7225 #ifdef IOCTL_BT848_H_NAME
7226 #include IOCTL_BT848_H_NAME
7227 #endif
7228 int main(void) {
7229 ioctl(0, METEORSINPUT, 0);
7230 ioctl(0, TVTUNER_GETFREQ, 0);
7231 return 0;
7234 cc_check && _tv_bsdbt848=yes
7237 if test "$_tv_bsdbt848" = yes ; then
7238 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7239 _inputmodules="tv-bsdbt848 $_inputmodules"
7240 else
7241 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7242 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7244 echores "$_tv_bsdbt848"
7245 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7248 echocheck "DirectShow TV interface"
7249 if test "$_tv_dshow" = auto ; then
7250 _tv_dshow=no
7251 if test "$_tv" = yes && win32 ; then
7252 cat > $TMPC <<EOF
7253 #include <ole2.h>
7254 int main(void) {
7255 void* p;
7256 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7257 return 0;
7260 cc_check -lole32 -luuid && _tv_dshow=yes
7263 if test "$_tv_dshow" = yes ; then
7264 _inputmodules="tv-dshow $_inputmodules"
7265 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7266 extra_ldflags="$extra_ldflags -lole32 -luuid"
7267 else
7268 _noinputmodules="tv-dshow $_noinputmodules"
7269 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7271 echores "$_tv_dshow"
7274 echocheck "Video 4 Linux TV interface"
7275 if test "$_tv_v4l1" = auto ; then
7276 _tv_v4l1=no
7277 if test "$_tv" = yes && linux ; then
7278 cat > $TMPC <<EOF
7279 #include <stdlib.h>
7280 #include <linux/videodev.h>
7281 int main(void) { return 0; }
7283 cc_check && _tv_v4l1=yes
7286 if test "$_tv_v4l1" = yes ; then
7287 _audio_input=yes
7288 _tv_v4l=yes
7289 def_tv_v4l='#define CONFIG_TV_V4L 1'
7290 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7291 _inputmodules="tv-v4l $_inputmodules"
7292 else
7293 _noinputmodules="tv-v4l1 $_noinputmodules"
7294 def_tv_v4l='#undef CONFIG_TV_V4L'
7296 echores "$_tv_v4l1"
7299 echocheck "Video 4 Linux 2 TV interface"
7300 if test "$_tv_v4l2" = auto ; then
7301 _tv_v4l2=no
7302 if test "$_tv" = yes && linux ; then
7303 cat > $TMPC <<EOF
7304 #include <stdlib.h>
7305 #include <linux/types.h>
7306 #include <linux/videodev2.h>
7307 int main(void) { return 0; }
7309 cc_check && _tv_v4l2=yes
7312 if test "$_tv_v4l2" = yes ; then
7313 _audio_input=yes
7314 _tv_v4l=yes
7315 def_tv_v4l='#define CONFIG_TV_V4L 1'
7316 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7317 _inputmodules="tv-v4l2 $_inputmodules"
7318 else
7319 _noinputmodules="tv-v4l2 $_noinputmodules"
7320 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7322 echores "$_tv_v4l2"
7325 echocheck "Radio interface"
7326 if test "$_radio" = yes ; then
7327 def_radio='#define CONFIG_RADIO 1'
7328 _inputmodules="radio $_inputmodules"
7329 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7330 _radio_capture=no
7332 if test "$_radio_capture" = yes ; then
7333 _audio_input=yes
7334 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7335 else
7336 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7338 else
7339 _noinputmodules="radio $_noinputmodules"
7340 def_radio='#undef CONFIG_RADIO'
7341 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7342 _radio_capture=no
7344 echores "$_radio"
7345 echocheck "Capture for Radio interface"
7346 echores "$_radio_capture"
7348 echocheck "Video 4 Linux 2 Radio interface"
7349 if test "$_radio_v4l2" = auto ; then
7350 _radio_v4l2=no
7351 if test "$_radio" = yes && linux ; then
7352 cat > $TMPC <<EOF
7353 #include <stdlib.h>
7354 #include <linux/types.h>
7355 #include <linux/videodev2.h>
7356 int main(void) { return 0; }
7358 cc_check && _radio_v4l2=yes
7361 if test "$_radio_v4l2" = yes ; then
7362 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7363 else
7364 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7366 echores "$_radio_v4l2"
7368 echocheck "Video 4 Linux Radio interface"
7369 if test "$_radio_v4l" = auto ; then
7370 _radio_v4l=no
7371 if test "$_radio" = yes && linux ; then
7372 cat > $TMPC <<EOF
7373 #include <stdlib.h>
7374 #include <linux/videodev.h>
7375 int main(void) { return 0; }
7377 cc_check && _radio_v4l=yes
7380 if test "$_radio_v4l" = yes ; then
7381 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7382 else
7383 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7385 echores "$_radio_v4l"
7387 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7388 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7389 echocheck "*BSD BrookTree 848 Radio interface"
7390 _radio_bsdbt848=no
7391 cat > $TMPC <<EOF
7392 #include <sys/types.h>
7393 $def_ioctl_bt848_h_name
7394 #ifdef IOCTL_BT848_H_NAME
7395 #include IOCTL_BT848_H_NAME
7396 #endif
7397 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7399 cc_check && _radio_bsdbt848=yes
7400 echores "$_radio_bsdbt848"
7401 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7403 if test "$_radio_bsdbt848" = yes ; then
7404 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7405 else
7406 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7409 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7410 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7411 die "Radio driver requires BSD BT848, V4L or V4L2!"
7414 echocheck "Video 4 Linux 2 MPEG PVR interface"
7415 if test "$_pvr" = auto ; then
7416 _pvr=no
7417 if test "$_tv_v4l2" = yes && linux ; then
7418 cat > $TMPC <<EOF
7419 #include <stdlib.h>
7420 #include <inttypes.h>
7421 #include <linux/types.h>
7422 #include <linux/videodev2.h>
7423 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7425 cc_check && _pvr=yes
7428 if test "$_pvr" = yes ; then
7429 def_pvr='#define CONFIG_PVR 1'
7430 _inputmodules="pvr $_inputmodules"
7431 else
7432 _noinputmodules="pvr $_noinputmodules"
7433 def_pvr='#undef CONFIG_PVR'
7435 echores "$_pvr"
7438 echocheck "ftp"
7439 if ! beos && test "$_ftp" = yes ; then
7440 def_ftp='#define CONFIG_FTP 1'
7441 _inputmodules="ftp $_inputmodules"
7442 else
7443 _noinputmodules="ftp $_noinputmodules"
7444 def_ftp='#undef CONFIG_FTP'
7446 echores "$_ftp"
7448 echocheck "vstream client"
7449 if test "$_vstream" = auto ; then
7450 _vstream=no
7451 cat > $TMPC <<EOF
7452 #include <vstream-client.h>
7453 void vstream_error(const char *format, ... ) {}
7454 int main(void) { vstream_start(); return 0; }
7456 cc_check -lvstream-client && _vstream=yes
7458 if test "$_vstream" = yes ; then
7459 def_vstream='#define CONFIG_VSTREAM 1'
7460 _inputmodules="vstream $_inputmodules"
7461 extra_ldflags="$extra_ldflags -lvstream-client"
7462 else
7463 _noinputmodules="vstream $_noinputmodules"
7464 def_vstream='#undef CONFIG_VSTREAM'
7466 echores "$_vstream"
7469 echocheck "OSD menu"
7470 if test "$_menu" = yes ; then
7471 def_menu='#define CONFIG_MENU 1'
7472 test $_dvbin = "yes" && _menu_dvbin=yes
7473 else
7474 def_menu='#undef CONFIG_MENU'
7475 _menu_dvbin=no
7477 echores "$_menu"
7480 echocheck "Subtitles sorting"
7481 if test "$_sortsub" = yes ; then
7482 def_sortsub='#define CONFIG_SORTSUB 1'
7483 else
7484 def_sortsub='#undef CONFIG_SORTSUB'
7486 echores "$_sortsub"
7489 echocheck "XMMS inputplugin support"
7490 if test "$_xmms" = yes ; then
7491 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7492 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7493 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7494 else
7495 _xmmsplugindir=/usr/lib/xmms/Input
7496 _xmmslibdir=/usr/lib
7499 def_xmms='#define CONFIG_XMMS 1'
7500 if darwin ; then
7501 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7502 else
7503 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7505 else
7506 def_xmms='#undef CONFIG_XMMS'
7508 echores "$_xmms"
7510 if test "$_charset" != "noconv" ; then
7511 def_charset="#define MSG_CHARSET \"$_charset\""
7512 else
7513 def_charset="#undef MSG_CHARSET"
7514 _charset="UTF-8"
7517 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7518 echocheck "iconv program"
7519 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7520 if test "$?" -ne 0 ; then
7521 echores "no"
7522 echo "No working iconv program found, use "
7523 echo "--charset=UTF-8 to continue anyway."
7524 echo "If you also have problems with iconv library functions use --charset=noconv."
7525 exit 1
7526 else
7527 echores "yes"
7531 #############################################################################
7533 echocheck "automatic gdb attach"
7534 if test "$_crash_debug" = yes ; then
7535 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7536 else
7537 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7538 _crash_debug=no
7540 echores "$_crash_debug"
7542 echocheck "compiler support for noexecstack"
7543 cat > $TMPC <<EOF
7544 int main(void) { return 0; }
7546 if cc_check -Wl,-z,noexecstack ; then
7547 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7548 echores "yes"
7549 else
7550 echores "no"
7554 # Dynamic linking flags
7555 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7556 _ld_dl_dynamic=''
7557 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7558 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7559 _ld_dl_dynamic='-rdynamic'
7562 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7563 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7564 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7566 def_debug='#undef MP_DEBUG'
7567 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7570 echocheck "joystick"
7571 def_joystick='#undef CONFIG_JOYSTICK'
7572 if test "$_joystick" = yes ; then
7573 if linux ; then
7574 # TODO add some check
7575 def_joystick='#define CONFIG_JOYSTICK 1'
7576 else
7577 _joystick="no"
7578 _res_comment="unsupported under $system_name"
7581 echores "$_joystick"
7583 echocheck "lirc"
7584 if test "$_lirc" = auto ; then
7585 _lirc=no
7586 cat > $TMPC <<EOF
7587 #include <lirc/lirc_client.h>
7588 int main(void) { return 0; }
7590 cc_check -llirc_client && _lirc=yes
7592 if test "$_lirc" = yes ; then
7593 def_lirc='#define CONFIG_LIRC 1'
7594 libs_mplayer="$libs_mplayer -llirc_client"
7595 else
7596 def_lirc='#undef CONFIG_LIRC'
7598 echores "$_lirc"
7600 echocheck "lircc"
7601 if test "$_lircc" = auto ; then
7602 _lircc=no
7603 cat > $TMPC <<EOF
7604 #include <lirc/lircc.h>
7605 int main(void) { return 0; }
7607 cc_check -llircc && _lircc=yes
7609 if test "$_lircc" = yes ; then
7610 def_lircc='#define CONFIG_LIRCC 1'
7611 libs_mplayer="$libs_mplayer -llircc"
7612 else
7613 def_lircc='#undef CONFIG_LIRCC'
7615 echores "$_lircc"
7617 if arm; then
7618 # Detect maemo development platform libraries availability (http://www.maemo.org),
7619 # they are used when run on Nokia 770|8x0
7620 echocheck "maemo (Nokia 770|8x0)"
7621 if test "$_maemo" = auto ; then
7622 _maemo=no
7623 cat > $TMPC << EOF
7624 #include <libosso.h>
7625 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7627 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7629 if test "$_maemo" = yes ; then
7630 def_maemo='#define CONFIG_MAEMO 1'
7631 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7632 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7633 else
7634 def_maemo='#undef CONFIG_MAEMO'
7636 echores "$_maemo"
7639 #############################################################################
7641 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7642 # the OMF format needs to come after the 'extern symbol prefix' check, which
7643 # uses nm.
7644 if os2 ; then
7645 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7648 # linker paths should be the same for mencoder and mplayer
7649 _ld_tmp=""
7650 for I in $libs_mplayer ; do
7651 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7652 if test -z "$_tmp" ; then
7653 extra_ldflags="$extra_ldflags $I"
7654 else
7655 _ld_tmp="$_ld_tmp $I"
7657 done
7658 libs_mplayer=$_ld_tmp
7661 #############################################################################
7662 # 64 bit file offsets?
7663 if test "$_largefiles" = yes || freebsd ; then
7664 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7665 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7666 # dvdread support requires this (for off64_t)
7667 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7671 CXXFLAGS=" $CFLAGS -Iffmpeg -D__STDC_LIMIT_MACROS"
7673 # This must be the last test to be performed. Any other tests following it
7674 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7675 # against libdvdread (to permit MPlayer to use its own copy of the library).
7676 # So any compilation using the flags added here but not linking against
7677 # libdvdread can fail.
7678 echocheck "DVD support (libdvdnav)"
7679 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7680 _dvdnav=no
7682 dvdnav_internal=no
7683 if test "$_dvdnav" = auto ; then
7684 if test "$_dvdread_internal" = yes ; then
7685 _dvdnav=yes
7686 dvdnav_internal=yes
7687 _res_comment="internal"
7688 else
7689 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7692 if test "$_dvdnav" = auto ; then
7693 cat > $TMPC <<EOF
7694 #include <inttypes.h>
7695 #include <dvdnav/dvdnav.h>
7696 int main(void) { dvdnav_t *dvd=0; return 0; }
7698 _dvdnav=no
7699 _dvdnavdir=$($_dvdnavconfig --cflags)
7700 _dvdnavlibs=$($_dvdnavconfig --libs)
7701 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7703 if test "$_dvdnav" = yes ; then
7704 _largefiles=yes
7705 def_dvdnav='#define CONFIG_DVDNAV 1'
7706 if test "$dvdnav_internal" = yes ; then
7707 cflags_libdvdnav="-Ilibdvdnav"
7708 _inputmodules="dvdnav(internal) $_inputmodules"
7709 else
7710 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7711 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7712 _inputmodules="dvdnav $_inputmodules"
7714 else
7715 def_dvdnav='#undef CONFIG_DVDNAV'
7716 _noinputmodules="dvdnav $_noinputmodules"
7718 echores "$_dvdnav"
7720 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7721 # Read dvdnav comment above.
7723 #############################################################################
7724 echo "Creating config.mak"
7725 cat > config.mak << EOF
7726 # -------- Generated by configure -----------
7728 # Ensure that locale settings do not interfere with shell commands.
7729 export LC_ALL = C
7731 CONFIGURATION = $_configuration
7733 CHARSET = $_charset
7734 DOC_LANGS = $language_doc
7735 DOC_LANG_ALL = $doc_lang_all
7736 MAN_LANGS = $language_man
7737 MAN_LANG_ALL = $man_lang_all
7739 prefix = \$(DESTDIR)$_prefix
7740 BINDIR = \$(DESTDIR)$_bindir
7741 DATADIR = \$(DESTDIR)$_datadir
7742 LIBDIR = \$(DESTDIR)$_libdir
7743 MANDIR = \$(DESTDIR)$_mandir
7744 CONFDIR = \$(DESTDIR)$_confdir
7746 AR = $_ar
7747 AS = $_cc
7748 CC = $_cc
7749 CXX = $_cc
7750 HOST_CC = $_host_cc
7751 YASM = $_yasm
7752 INSTALL = $_install
7753 INSTALLSTRIP = $_install_strip
7754 RANLIB = $_ranlib
7755 WINDRES = $_windres
7757 CFLAGS = $CFLAGS $extra_cflags
7758 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7759 CFLAGS_DHAHELPER = $cflags_dhahelper
7760 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7761 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7762 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7763 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7764 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7765 CFLAGS_STACKREALIGN = $cflags_stackrealign
7766 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7767 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7768 YASMFLAGS = $YASMFLAGS
7770 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7771 EXTRALIBS_MPLAYER = $libs_mplayer
7772 EXTRALIBS_MENCODER = $libs_mencoder
7774 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 &,"
7775 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 &,"
7777 GETCH = $_getch
7778 HELP_FILE = $_mp_help
7779 TIMER = $_timer
7781 EXESUF = $_exesuf
7782 EXESUFS_ALL = .exe
7784 $_target_arch
7785 $_target_subarch
7786 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
7788 MENCODER = $_mencoder
7789 MPLAYER = $_mplayer
7791 NEED_GETTIMEOFDAY = $_need_gettimeofday
7792 NEED_GLOB = $_need_glob
7793 NEED_MMAP = $_need_mmap
7794 NEED_SETENV = $_need_setenv
7795 NEED_SHMEM = $_need_shmem
7796 NEED_STRSEP = $_need_strsep
7797 NEED_SWAB = $_need_swab
7798 NEED_VSSCANF = $_need_vsscanf
7800 # features
7801 3DFX = $_3dfx
7802 AA = $_aa
7803 ALSA1X = $_alsa1x
7804 ALSA9 = $_alsa9
7805 ALSA5 = $_alsa5
7806 APPLE_IR = $_apple_ir
7807 APPLE_REMOTE = $_apple_remote
7808 ARTS = $_arts
7809 AUDIO_INPUT = $_audio_input
7810 BITMAP_FONT = $_bitmap_font
7811 BL = $_bl
7812 CACA = $_caca
7813 CDDA = $_cdda
7814 CDDB = $_cddb
7815 COREAUDIO = $_coreaudio
7816 COREVIDEO = $_corevideo
7817 DART = $_dart
7818 DFBMGA = $_dfbmga
7819 DGA = $_dga
7820 DIRECT3D = $_direct3d
7821 DIRECTFB = $_directfb
7822 DIRECTX = $_directx
7823 DVBIN = $_dvbin
7824 DVDNAV = $_dvdnav
7825 DVDNAV_INTERNAL = $dvdnav_internal
7826 DVDREAD = $_dvdread
7827 DVDREAD_INTERNAL = $_dvdread_internal
7828 DXR2 = $_dxr2
7829 DXR3 = $_dxr3
7830 ESD = $_esd
7831 FAAC=$_faac
7832 FAAD = $_faad
7833 FAAD_INTERNAL = $_faad_internal
7834 FASTMEMCPY = $_fastmemcpy
7835 FBDEV = $_fbdev
7836 FREETYPE = $_freetype
7837 FTP = $_ftp
7838 GIF = $_gif
7839 GGI = $_ggi
7840 GL = $_gl
7841 GL_WIN32 = $_gl_win32
7842 GL_X11 = $_gl_x11
7843 HAVE_POSIX_SELECT = $_posix_select
7844 HAVE_SYS_MMAN_H = $_mman
7845 IVTV = $_ivtv
7846 JACK = $_jack
7847 JOYSTICK = $_joystick
7848 JPEG = $_jpeg
7849 KVA = $_kva
7850 LADSPA = $_ladspa
7851 LIBA52 = $_liba52
7852 LIBA52_INTERNAL = $_liba52_internal
7853 LIBASS = $_ass
7854 LIBBS2B = $_libbs2b
7855 LIBDCA = $_libdca
7856 LIBDV = $_libdv
7857 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7858 LIBLZO = $_liblzo
7859 LIBMAD = $_mad
7860 LIBMENU = $_menu
7861 LIBMENU_DVBIN = $_menu_dvbin
7862 LIBMPEG2 = $_libmpeg2
7863 LIBNEMESI = $_nemesi
7864 LIBNUT = $_libnut
7865 LIBSMBCLIENT = $_smb
7866 LIBTHEORA = $_theora
7867 LIRC = $_lirc
7868 LIVE555 = $_live
7869 MACOSX_BUNDLE = $_macosx_bundle
7870 MACOSX_FINDER = $_macosx_finder
7871 MD5SUM = $_md5sum
7872 MGA = $_mga
7873 MNG = $_mng
7874 MP3LAME = $_mp3lame
7875 MP3LIB = $_mp3lib
7876 MUSEPACK = $_musepack
7877 NAS = $_nas
7878 NATIVE_RTSP = $_native_rtsp
7879 NETWORK = $_network
7880 OPENAL = $_openal
7881 OSS = $_ossaudio
7882 PE_EXECUTABLE = $_pe_executable
7883 PNG = $_png
7884 PNM = $_pnm
7885 PRIORITY = $_priority
7886 PULSE = $_pulse
7887 PVR = $_pvr
7888 QTX_CODECS = $_qtx
7889 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7890 QTX_EMULATION = $_qtx_emulation
7891 QUARTZ = $_quartz
7892 RADIO=$_radio
7893 RADIO_CAPTURE=$_radio_capture
7894 REAL_CODECS = $_real
7895 S3FB = $_s3fb
7896 SDL = $_sdl
7897 SPEEX = $_speex
7898 STREAM_CACHE = $_stream_cache
7899 SGIAUDIO = $_sgiaudio
7900 SUNAUDIO = $_sunaudio
7901 SVGA = $_svga
7902 TDFXFB = $_tdfxfb
7903 TDFXVID = $_tdfxvid
7904 TGA = $_tga
7905 TOOLAME=$_toolame
7906 TREMOR_INTERNAL = $_tremor_internal
7907 TV = $_tv
7908 TV_BSDBT848 = $_tv_bsdbt848
7909 TV_DSHOW = $_tv_dshow
7910 TV_V4L = $_tv_v4l
7911 TV_V4L1 = $_tv_v4l1
7912 TV_V4L2 = $_tv_v4l2
7913 TWOLAME=$_twolame
7914 UNRAR_EXEC = $_unrar_exec
7915 V4L2 = $_v4l2
7916 VCD = $_vcd
7917 VDPAU = $_vdpau
7918 VESA = $_vesa
7919 VIDIX = $_vidix
7920 VIDIX_PCIDB = $_vidix_pcidb_val
7921 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7922 VIDIX_IVTV=$_vidix_drv_ivtv
7923 VIDIX_MACH64=$_vidix_drv_mach64
7924 VIDIX_MGA=$_vidix_drv_mga
7925 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7926 VIDIX_NVIDIA=$_vidix_drv_nvidia
7927 VIDIX_PM2=$_vidix_drv_pm2
7928 VIDIX_PM3=$_vidix_drv_pm3
7929 VIDIX_RADEON=$_vidix_drv_radeon
7930 VIDIX_RAGE128=$_vidix_drv_rage128
7931 VIDIX_S3=$_vidix_drv_s3
7932 VIDIX_SH_VEU=$_vidix_drv_sh_veu
7933 VIDIX_SIS=$_vidix_drv_sis
7934 VIDIX_UNICHROME=$_vidix_drv_unichrome
7935 VORBIS = $_vorbis
7936 VSTREAM = $_vstream
7937 WII = $_wii
7938 WIN32DLL = $_win32dll
7939 WIN32WAVEOUT = $_win32waveout
7940 WIN32_EMULATION = $_win32_emulation
7941 WINVIDIX = $winvidix
7942 X11 = $_x11
7943 X264 = $_x264
7944 XANIM_CODECS = $_xanim
7945 XMGA = $_xmga
7946 XMMS_PLUGINS = $_xmms
7947 XV = $_xv
7948 XVID4 = $_xvid
7949 XVIDIX = $xvidix
7950 XVMC = $_xvmc
7951 XVR100 = $_xvr100
7952 YUV4MPEG = $_yuv4mpeg
7953 ZR = $_zr
7955 # FFmpeg
7956 LIBAVUTIL = $_libavutil
7957 LIBAVCODEC = $_libavcodec
7958 LIBAVFORMAT = $_libavformat
7959 LIBPOSTPROC = $_libpostproc
7960 LIBSWSCALE = $_libswscale
7961 LIBAVCODEC_INTERNALS = $_libavcodec_internals
7962 LIBSWSCALE_INTERNALS = $_libswscale_internals
7963 FFMPEG_SOURCE_PATH = $_ffmpeg_source
7965 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
7966 CONFIG_AANDCT=yes
7967 CONFIG_FFT=yes
7968 CONFIG_FFT_MMX=$fft_mmx
7969 CONFIG_GOLOMB=yes
7970 CONFIG_LPC=yes
7971 CONFIG_MDCT=yes
7972 CONFIG_RDFT=yes
7974 CONFIG_BZLIB=$bzlib
7975 CONFIG_ENCODERS=yes
7976 CONFIG_GPL=yes
7977 CONFIG_MLIB = $_mlib
7978 CONFIG_MUXERS=$_mencoder
7979 CONFIG_VDPAU=$_vdpau
7980 CONFIG_XVMC=$_xvmc
7981 CONFIG_ZLIB=$_zlib
7983 HAVE_PTHREADS = $_pthreads
7984 HAVE_SHM = $_shm
7985 HAVE_W32THREADS = $_w32threads
7986 HAVE_YASM = $_have_yasm
7990 #############################################################################
7992 ff_config_enable () {
7993 _nprefix=$3;
7994 test -z "$_nprefix" && _nprefix='CONFIG'
7995 for part in $1; do
7996 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
7997 echo "#define ${_nprefix}_$part 1"
7998 else
7999 echo "#define ${_nprefix}_$part 0"
8001 done
8004 echo "Creating config.h"
8005 cat > $TMPH << EOF
8006 /*----------------------------------------------------------------------------
8007 ** This file has been automatically generated by configure any changes in it
8008 ** will be lost when you run configure again.
8009 ** Instead of modifying definitions here, use the --enable/--disable options
8010 ** of the configure script! See ./configure --help for details.
8011 *---------------------------------------------------------------------------*/
8013 #ifndef MPLAYER_CONFIG_H
8014 #define MPLAYER_CONFIG_H
8016 /* Undefine this if you do not want to select mono audio (left or right)
8017 with a stereo MPEG layer 2/3 audio stream. The command line option
8018 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8019 right-only), with 0 being the default.
8021 #define CONFIG_FAKE_MONO 1
8023 /* set up audio OUTBURST. Do not change this! */
8024 #define OUTBURST 512
8026 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8027 #undef FAST_OSD
8028 #undef FAST_OSD_TABLE
8030 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8031 #define MPEG12_POSTPROC 1
8032 #define ATTRIBUTE_ALIGNED_MAX 16
8036 #define CONFIGURATION "$_configuration"
8038 #define MPLAYER_DATADIR "$_datadir"
8039 #define MPLAYER_CONFDIR "$_confdir"
8040 #define MPLAYER_LIBDIR "$_libdir"
8042 /* definitions needed by included libraries */
8043 #define HAVE_INTTYPES_H 1
8044 /* libmpeg2 + FFmpeg */
8045 $def_fast_inttypes
8046 /* libdvdcss */
8047 #define HAVE_ERRNO_H 1
8048 /* libdvdcss + libdvdread */
8049 #define HAVE_LIMITS_H 1
8050 /* libdvdcss + libfaad2 */
8051 #define HAVE_UNISTD_H 1
8052 /* libfaad2 + libdvdread */
8053 #define STDC_HEADERS 1
8054 #define HAVE_MEMCPY 1
8055 /* libfaad2 */
8056 #define HAVE_STRING_H 1
8057 #define HAVE_STRINGS_H 1
8058 #define HAVE_SYS_STAT_H 1
8059 #define HAVE_SYS_TYPES_H 1
8060 /* libdvdnav */
8061 #define READ_CACHE_TRACE 0
8062 /* libdvdread */
8063 #define HAVE_DLFCN_H 1
8064 $def_dvdcss
8067 /* system headers */
8068 $def_alloca_h
8069 $def_alsa_asoundlib_h
8070 $def_altivec_h
8071 $def_malloc_h
8072 $def_mman_h
8073 $def_mman_has_map_failed
8074 $def_soundcard_h
8075 $def_sys_asoundlib_h
8076 $def_sys_soundcard_h
8077 $def_sys_sysinfo_h
8078 $def_termios_h
8079 $def_termios_sys_h
8080 $def_winsock2_h
8083 /* system functions */
8084 $def_gethostbyname2
8085 $def_gettimeofday
8086 $def_glob
8087 $def_langinfo
8088 $def_llrint
8089 $def_log2
8090 $def_lrint
8091 $def_lrintf
8092 $def_map_memalign
8093 $def_memalign
8094 $def_nanosleep
8095 $def_posix_select
8096 $def_round
8097 $def_roundf
8098 $def_select
8099 $def_setenv
8100 $def_shm
8101 $def_strsep
8102 $def_swab
8103 $def_sysi86
8104 $def_sysi86_iv
8105 $def_termcap
8106 $def_termios
8107 $def_truncf
8108 $def_vsscanf
8111 /* system-specific features */
8112 $def_asmalign_pot
8113 $def_builtin_expect
8114 $def_dl
8115 $def_extern_asm
8116 $def_extern_prefix
8117 $def_iconv
8118 $def_kstat
8119 $def_macosx_bundle
8120 $def_macosx_finder
8121 $def_maemo
8122 $def_named_asm_args
8123 $def_priority
8124 $def_quicktime
8125 $def_restrict_keyword
8126 $def_rtc
8127 $def_unrar_exec
8130 /* configurable options */
8131 $def_charset
8132 $def_crash_debug
8133 $def_debug
8134 $def_dynamic_plugins
8135 $def_fastmemcpy
8136 $def_menu
8137 $def_runtime_cpudetection
8138 $def_sighandler
8139 $def_sortsub
8140 $def_stream_cache
8141 $def_pthread_cache
8144 /* CPU stuff */
8145 #define __CPU__ $iproc
8146 $def_words_endian
8147 $def_bigendian
8148 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8149 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8152 /* DVD/VCD/CD */
8153 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8154 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8155 $def_bsdi_dvd
8156 $def_cddb
8157 $def_cdio
8158 $def_cdparanoia
8159 $def_cdrom
8160 $def_dvd
8161 $def_dvd_bsd
8162 $def_dvd_darwin
8163 $def_dvd_linux
8164 $def_dvd_openbsd
8165 $def_dvdio
8166 $def_dvdnav
8167 $def_dvdread
8168 $def_hpux_scsi_h
8169 $def_libcdio
8170 $def_sol_scsi_h
8171 $def_vcd
8174 /* codec libraries */
8175 $def_faac
8176 $def_faad
8177 $def_faad_internal
8178 $def_liba52
8179 $def_liba52_internal
8180 $def_libdca
8181 $def_libdv
8182 $def_liblzo
8183 $def_libmpeg2
8184 $def_mad
8185 $def_mp3lame
8186 $def_mp3lame_preset
8187 $def_mp3lame_preset_medium
8188 $def_mp3lib
8189 $def_musepack
8190 $def_speex
8191 $def_theora
8192 $def_toolame
8193 $def_tremor
8194 $def_twolame
8195 $def_vorbis
8196 $def_x264
8197 $def_xvid
8198 $def_zlib
8200 $def_libnut
8203 /* binary codecs */
8204 $def_qtx
8205 $def_qtx_win32
8206 $def_real
8207 $def_real_path
8208 $def_win32_loader
8209 $def_win32dll
8210 #define WIN32_PATH "$_win32codecsdir"
8211 $def_xanim
8212 $def_xanim_path
8213 $def_xmms
8214 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8217 /* Audio output drivers */
8218 $def_alsa
8219 $def_alsa1x
8220 $def_alsa5
8221 $def_alsa9
8222 $def_arts
8223 $def_coreaudio
8224 $def_dart
8225 $def_esd
8226 $def_esd_latency
8227 $def_jack
8228 $def_nas
8229 $def_openal
8230 $def_openal_h
8231 $def_ossaudio
8232 $def_ossaudio_devdsp
8233 $def_ossaudio_devmixer
8234 $def_pulse
8235 $def_sgiaudio
8236 $def_sunaudio
8237 $def_win32waveout
8239 $def_ladspa
8240 $def_libbs2b
8243 /* input */
8244 $def_apple_ir
8245 $def_apple_remote
8246 $def_ioctl_bt848_h_name
8247 $def_ioctl_meteor_h_name
8248 $def_joystick
8249 $def_lirc
8250 $def_lircc
8251 $def_pvr
8252 $def_radio
8253 $def_radio_bsdbt848
8254 $def_radio_capture
8255 $def_radio_v4l
8256 $def_radio_v4l2
8257 $def_tv
8258 $def_tv_bsdbt848
8259 $def_tv_dshow
8260 $def_tv_v4l
8261 $def_tv_v4l1
8262 $def_tv_v4l2
8265 /* font stuff */
8266 $def_ass
8267 $def_bitmap_font
8268 $def_enca
8269 $def_fontconfig
8270 $def_freetype
8271 $def_fribidi
8274 /* networking */
8275 $def_closesocket
8276 $def_ftp
8277 $def_inet6
8278 $def_inet_aton
8279 $def_inet_pton
8280 $def_live
8281 $def_nemesi
8282 $def_network
8283 $def_smb
8284 $def_socklen_t
8285 $def_vstream
8288 /* libvo options */
8289 $def_3dfx
8290 $def_aa
8291 $def_bl
8292 $def_caca
8293 $def_corevideo
8294 $def_dfbmga
8295 $def_dga
8296 $def_dga1
8297 $def_dga2
8298 $def_direct3d
8299 $def_directfb
8300 $def_directfb_version
8301 $def_directx
8302 $def_dvb
8303 $def_dvb_head
8304 $def_dvbin
8305 $def_dxr2
8306 $def_dxr3
8307 $def_fbdev
8308 $def_ggi
8309 $def_ggiwmh
8310 $def_gif
8311 $def_gif_4
8312 $def_gif_tvt_hack
8313 $def_gl
8314 $def_gl_win32
8315 $def_gl_x11
8316 $def_ivtv
8317 $def_jpeg
8318 $def_kva
8319 $def_md5sum
8320 $def_mga
8321 $def_mng
8322 $def_png
8323 $def_pnm
8324 $def_quartz
8325 $def_s3fb
8326 $def_sdl
8327 $def_sdlbuggy
8328 $def_svga
8329 $def_tdfxfb
8330 $def_tdfxvid
8331 $def_tga
8332 $def_v4l2
8333 $def_vdpau
8334 $def_vesa
8335 $def_vidix
8336 $def_vidix_drv_cyberblade
8337 $def_vidix_drv_ivtv
8338 $def_vidix_drv_mach64
8339 $def_vidix_drv_mga
8340 $def_vidix_drv_mga_crtc2
8341 $def_vidix_drv_nvidia
8342 $def_vidix_drv_pm3
8343 $def_vidix_drv_radeon
8344 $def_vidix_drv_rage128
8345 $def_vidix_drv_s3
8346 $def_vidix_drv_sh_veu
8347 $def_vidix_drv_sis
8348 $def_vidix_drv_unichrome
8349 $def_vidix_pfx
8350 $def_vm
8351 $def_wii
8352 $def_x11
8353 $def_xdpms
8354 $def_xf86keysym
8355 $def_xinerama
8356 $def_xmga
8357 $def_xss
8358 $def_xv
8359 $def_xvmc
8360 $def_xvr100
8361 $def_yuv4mpeg
8362 $def_zr
8365 /* FFmpeg */
8366 $def_libavcodec
8367 $def_libavformat
8368 $def_libavutil
8369 $def_libpostproc
8370 $def_libswscale
8371 $def_libavcodec_internals
8372 $def_libswscale_internals
8374 #define CONFIG_DECODERS 1
8375 #define CONFIG_ENCODERS 1
8376 #define CONFIG_DEMUXERS 1
8377 $def_muxers
8379 $def_arpa_inet_h
8380 $def_bswap
8381 $def_bzlib
8382 $def_dcbzl
8383 $def_dos_paths
8384 $def_fast_64bit
8385 $def_fast_unaligned
8386 $def_memalign_hack
8387 $def_mlib
8388 $def_mkstemp
8389 $def_posix_memalign
8390 $def_pthreads
8391 $def_ten_operands
8392 $def_threads
8393 $def_xform_asm
8394 $def_yasm
8396 #define CONFIG_FASTDIV 0
8397 #define CONFIG_FFSERVER 0
8398 #define CONFIG_GPL 1
8399 #define CONFIG_GRAY 0
8400 #define CONFIG_HARDCODED_TABLES 0
8401 #define CONFIG_LIBVORBIS 0
8402 #define CONFIG_POWERPC_PERF 0
8403 #define CONFIG_SMALL 0
8404 #define CONFIG_SWSCALE 1
8405 #define CONFIG_SWSCALE_ALPHA 1
8407 #define HAVE_ATTRIBUTE_PACKED 1
8408 #define HAVE_GETHRTIME 0
8409 #define HAVE_INLINE_ASM 0
8410 #define HAVE_LDBRX 0
8411 #define HAVE_POLL_H 1
8412 #define HAVE_PPC4XX 0
8413 #define HAVE_VIRTUALALLOC 0
8415 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8416 #define CONFIG_AANDCT 1
8417 #define CONFIG_FFT 1
8418 #define CONFIG_GOLOMB 1
8419 #define CONFIG_LPC 1
8420 #define CONFIG_MDCT 1
8421 #define CONFIG_RDFT 1
8423 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8424 $def_ebx_available
8425 #ifndef MP_DEBUG
8426 #define HAVE_EBP_AVAILABLE 1
8427 #else
8428 #define HAVE_EBP_AVAILABLE 0
8429 #endif
8431 #define CONFIG_H263_VAAPI_HWACCEL 0
8432 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8433 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8434 #define CONFIG_H264_VAAPI_HWACCEL 0
8435 #define CONFIG_VC1_VAAPI_HWACCEL 0
8436 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8438 #endif /* MPLAYER_CONFIG_H */
8441 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8442 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8444 #############################################################################
8446 ./version.sh `$_cc -dumpversion`
8448 cat << EOF
8450 Config files successfully generated by ./configure $_configuration !
8452 Install prefix: $_prefix
8453 Data directory: $_datadir
8454 Config direct.: $_confdir
8456 Byte order: $_byte_order
8457 Optimizing for: $_optimizing
8459 Languages:
8460 Messages: $language_msg
8461 Manual pages: $language_man
8462 Documentation: $language_doc
8464 Enabled optional drivers:
8465 Input: $_inputmodules
8466 Codecs: $_codecmodules
8467 Audio output: $_aomodules
8468 Video output: $_vomodules
8470 Disabled optional drivers:
8471 Input: $_noinputmodules
8472 Codecs: $_nocodecmodules
8473 Audio output: $_noaomodules
8474 Video output: $_novomodules
8476 'config.h' and 'config.mak' contain your configuration options.
8477 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8478 compile *** DO NOT REPORT BUGS if you tweak these files ***
8480 'make' will now compile MPlayer and 'make install' will install it.
8481 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8486 if test "$_mtrr" = yes ; then
8487 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8488 echo
8491 if ! x86_32; then
8492 cat <<EOF
8493 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8494 operating system ($system_name). You may encounter a few files that cannot
8495 be played due to missing open source video/audio codec support.
8501 cat <<EOF
8502 Check $TMPLOG if you wonder why an autodetection failed (make sure
8503 development headers/packages are installed).
8505 NOTE: The --enable-* parameters unconditionally force options on, completely
8506 skipping autodetection. This behavior is unlike what you may be used to from
8507 autoconf-based configure scripts that can decide to override you. This greater
8508 level of control comes at a price. You may have to provide the correct compiler
8509 and linker flags yourself.
8510 If you used one of these options (except --enable-menu and similar ones that
8511 turn on internal features) and experience a compilation or linking failure,
8512 make sure you have passed the necessary compiler/linker flags to configure.
8514 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8518 if test "$_warn_CFLAGS" = yes; then
8519 cat <<EOF
8521 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8522 but:
8524 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8526 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8527 To do so, execute 'CFLAGS= ./configure <options>'
8532 # Last move:
8533 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"