sync with en/mplayer.1 rev. 31028
[mplayer/glamo.git] / configure
blobda9edf35c30e9fb758958ee617a5a256fca11aff
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]
222 Optional features:
223 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
224 --disable-mplayer disable MPlayer compilation [enable]
225 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
226 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
227 --disable-largefiles disable support for files > 2GB [enable]
228 --enable-linux-devfs set default devices to devfs [disable]
229 --enable-termcap use termcap database for key codes [autodetect]
230 --enable-termios use termios database for key codes [autodetect]
231 --disable-iconv disable iconv for encoding conversion [autodetect]
232 --disable-langinfo do not use langinfo [autodetect]
233 --enable-lirc enable LIRC (remote control) support [autodetect]
234 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
235 --enable-joystick enable joystick support [disable]
236 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
237 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
238 --disable-vm disable X video mode extensions [autodetect]
239 --disable-xf86keysym disable support for multimedia keys [autodetect]
240 --enable-radio enable radio interface [disable]
241 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
242 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
243 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
244 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
245 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
246 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
247 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
248 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
249 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
250 --disable-network disable networking [enable]
251 --enable-winsock2_h enable winsock2_h [autodetect]
252 --enable-smb enable Samba (SMB) input [autodetect]
253 --enable-live enable LIVE555 Streaming Media [autodetect]
254 --enable-nemesi enable Nemesi Streaming Media [autodetect]
255 --disable-vcd disable VCD support [autodetect]
256 --disable-dvdnav disable libdvdnav [autodetect]
257 --disable-dvdread disable libdvdread [autodetect]
258 --disable-dvdread-internal disable internal libdvdread [autodetect]
259 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
260 --disable-cdparanoia disable cdparanoia [autodetect]
261 --disable-cddb disable cddb [autodetect]
262 --disable-bitmap-font disable bitmap font support [enable]
263 --disable-freetype disable FreeType 2 font rendering [autodetect]
264 --disable-fontconfig disable fontconfig font lookup [autodetect]
265 --disable-unrarexec disable using of UnRAR executable [enabled]
266 --enable-menu enable OSD menu (not DVD menu) [disabled]
267 --disable-sortsub disable subtitle sorting [enabled]
268 --enable-fribidi enable the FriBiDi libs [autodetect]
269 --disable-enca disable ENCA charset oracle library [autodetect]
270 --disable-maemo disable maemo specific features [autodetect]
271 --enable-macosx-finder enable Mac OS X Finder invocation parameter
272 parsing [disabled]
273 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
274 --disable-inet6 disable IPv6 support [autodetect]
275 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
276 --disable-ftp disable FTP support [enabled]
277 --disable-vstream disable TiVo vstream client support [autodetect]
278 --disable-pthreads disable Posix threads support [autodetect]
279 --disable-w32threads disable Win32 threads support [autodetect]
280 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
281 --disable-ass disable 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 [autodetect]
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-xvid-lavc disable Xvid in libavcodec [autodetect]
297 --disable-x264 disable x264 [autodetect]
298 --disable-x264-lavc disable x264 in libavcodec [autodetect]
299 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
300 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
301 decoder) [autodetect]
302 --disable-libnut disable libnut [autodetect]
303 --disable-libavutil_a disable static libavutil [autodetect]
304 --disable-libavcodec_a disable static libavcodec [autodetect]
305 --disable-libavformat_a disable static libavformat [autodetect]
306 --disable-libpostproc_a disable static libpostproc [autodetect]
307 --disable-libswscale_a disable static libswscale [autodetect]
308 --disable-libavutil_so disable shared libavutil [autodetect]
309 --disable-libavcodec_so disable shared libavcodec [autodetect]
310 --disable-libavformat_so disable shared libavformat [autodetect]
311 --disable-libpostproc_so disable shared libpostproc [autodetect]
312 --disable-libswscale_so disable shared libswscale [autodetect]
313 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
314 in libavcodec [enabled]
315 --disable-tremor-internal disable internal Tremor [enabled]
316 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
317 --enable-tremor enable external Tremor [autodetect]
318 --disable-libvorbis disable libvorbis support [autodetect]
319 --disable-speex disable Speex support [autodetect]
320 --enable-theora enable OggTheora libraries [autodetect]
321 --enable-faad enable external FAAD2 (AAC) [autodetect]
322 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
323 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
324 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
325 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
326 --disable-ladspa disable LADSPA plugin support [autodetect]
327 --disable-libbs2b disable libbs2b audio filter support [autodetect]
328 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
329 --disable-mad disable libmad (MPEG audio) support [autodetect]
330 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
331 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
332 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
333 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
334 --enable-xmms enable XMMS input plugin support [disabled]
335 --enable-libdca enable libdca support [autodetect]
336 --disable-mp3lib disable builtin mp3lib [autodetect]
337 --disable-liba52 disable liba52 [autodetect]
338 --enable-liba52-internal enable builtin liba52 [disabled]
339 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
340 --disable-musepack disable musepack support [autodetect]
341 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
342 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
343 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
344 --disable-decoder=DECODER disable specified FFmpeg decoder
345 --enable-decoder=DECODER enable specified FFmpeg decoder
346 --disable-encoder=ENCODER disable specified FFmpeg encoder
347 --enable-encoder=ENCODER enable specified FFmpeg encoder
348 --disable-parser=PARSER disable specified FFmpeg parser
349 --enable-parser=PARSER enable specified FFmpeg parser
350 --disable-protocol=PROTO disable specified FFmpeg protocol
351 --enable-protocol=PROTO enable specified FFmpeg protocol
352 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
367 --enable-dga2 enable DGA 2 support [autodetect]
368 --enable-dga1 enable DGA 1 support [autodetect]
369 --enable-vesa enable VESA video output [autodetect]
370 --enable-svga enable SVGAlib video output [autodetect]
371 --enable-sdl enable SDL video output [autodetect]
372 --enable-kva enable KVA video output [autodetect]
373 --enable-aa enable AAlib video output [autodetect]
374 --enable-caca enable CACA video output [autodetect]
375 --enable-ggi enable GGI video output [autodetect]
376 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
377 --enable-direct3d enable Direct3D video output [autodetect]
378 --enable-directx enable DirectX video output [autodetect]
379 --enable-dxr2 enable DXR2 video output [autodetect]
380 --enable-dxr3 enable DXR3/H+ video output [autodetect]
381 --enable-ivtv enable IVTV TV-Out video output [autodetect]
382 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
383 --enable-dvb enable DVB video output [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-kai disable KAI audio output [autodetect]
424 --disable-dart disable DART audio output [autodetect]
425 --disable-win32waveout disable Windows waveout audio output [autodetect]
426 --disable-coreaudio disable CoreAudio audio output [autodetect]
427 --disable-select disable using select() on the audio device [enable]
429 Language options:
430 --charset=charset convert the console messages to this character set
431 --language-doc=lang language to use for the documentation [en]
432 --language-man=lang language to use for the man pages [en]
433 --language-msg=lang language to use for the messages and the GUI [en]
434 --language=lang default language to use [en]
435 Specific options override --language. You can pass a list of languages separated
436 by whitespace or commas instead of a single language. Nonexisting translations
437 will be dropped from each list. All documentation and man page translations
438 available in the list will be installed, for the messages the first available
439 translation will be used. The value "all" will activate all translations. The
440 LINGUAS environment variable is honored. In all cases the fallback is English.
441 Available values are: all $msg_lang_all
443 Miscellaneous options:
444 --enable-runtime-cpudetection enable runtime CPU detection [disable]
445 --enable-cross-compile enable cross-compilation [autodetect]
446 --cc=COMPILER C compiler to build MPlayer [gcc]
447 --host-cc=COMPILER C compiler for tools needed while building [gcc]
448 --as=ASSEMBLER assembler to build MPlayer [as]
449 --nm=NM nm tool to build MPlayer [nm]
450 --yasm=YASM Yasm assembler to build MPlayer [yasm]
451 --ar=AR librarian to build MPlayer [ar]
452 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
453 --windres=WINDRES windres to build MPlayer [windres]
454 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
455 --enable-static build a statically linked binary
456 --with-install=PATH path to a custom install program
458 Advanced options:
459 --enable-mmx enable MMX [autodetect]
460 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
461 --enable-3dnow enable 3DNow! [autodetect]
462 --enable-3dnowext enable extended 3DNow! [autodetect]
463 --enable-sse enable SSE [autodetect]
464 --enable-sse2 enable SSE2 [autodetect]
465 --enable-ssse3 enable SSSE3 [autodetect]
466 --enable-shm enable shm [autodetect]
467 --enable-altivec enable AltiVec (PowerPC) [autodetect]
468 --enable-armv5te enable DSP extensions (ARM) [autodetect]
469 --enable-armv6 enable ARMv6 (ARM) [autodetect]
470 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
471 --enable-armvfp enable ARM VFP (ARM) [autodetect]
472 --enable-neon enable NEON (ARM) [autodetect]
473 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
474 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
475 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
476 --enable-big-endian force byte order to big-endian [autodetect]
477 --enable-debug[=1-3] compile-in debugging information [disable]
478 --enable-profile compile-in profiling information [disable]
479 --disable-sighandler disable sighandler for crashes [enable]
480 --enable-crash-debug enable automatic gdb attach on crash [disable]
481 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
483 Use these options if autodetection fails:
484 --extra-cflags=FLAGS extra CFLAGS
485 --extra-ldflags=FLAGS extra LDFLAGS
486 --extra-libs=FLAGS extra linker flags
487 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
488 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
489 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
491 --with-freetype-config=PATH path to freetype-config
492 --with-fribidi-config=PATH path to fribidi-config
493 --with-glib-config=PATH path to glib*-config
494 --with-gtk-config=PATH path to gtk*-config
495 --with-sdl-config=PATH path to sdl*-config
496 --with-dvdnav-config=PATH path to dvdnav-config
497 --with-dvdread-config=PATH path to dvdread-config
499 This configure script is NOT autoconf-based, even though its output is similar.
500 It will try to autodetect all configuration options. If you --enable an option
501 it will be forcefully turned on, skipping autodetection. This can break
502 compilation, so you need to know what you are doing.
504 exit 0
505 } #show_help()
507 # GOTCHA: the variables below defines the default behavior for autodetection
508 # and have - unless stated otherwise - at least 2 states : yes no
509 # If autodetection is available then the third state is: auto
510 _mmx=auto
511 _3dnow=auto
512 _3dnowext=auto
513 _mmxext=auto
514 _sse=auto
515 _sse2=auto
516 _ssse3=auto
517 _cmov=auto
518 _fast_cmov=auto
519 _fast_clz=auto
520 _armv5te=auto
521 _armv6=auto
522 _armv6t2=auto
523 _armvfp=auto
524 neon=auto
525 _iwmmxt=auto
526 _mtrr=auto
527 _altivec=auto
528 _install=install
529 _ranlib=ranlib
530 _windres=windres
531 _cc=cc
532 _ar=ar
533 test "$CC" && _cc="$CC"
534 _as=auto
535 _nm=auto
536 _yasm=yasm
537 _runtime_cpudetection=no
538 _cross_compile=auto
539 _prefix="/usr/local"
540 _libavutil_a=auto
541 _libavutil_so=auto
542 _libavcodec_a=auto
543 _libopencore_amrnb=auto
544 _libopencore_amrwb=auto
545 libopenjpeg=auto
546 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
547 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
548 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
549 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
550 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
551 _libavparsers=$_libavparsers_all
552 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
553 _libavbsfs=$_libavbsfs_all
554 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
555 # Disable all hardware accelerators for now.
556 _libavhwaccels=
557 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
558 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
559 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
560 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// -e s/RTSP_MUXER//)
561 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
562 _libavprotocols=$_libavprotocols_all
563 _libavcodec_so=auto
564 _libavformat_a=auto
565 _libavformat_so=auto
566 _libpostproc_a=auto
567 _libpostproc_so=auto
568 _libswscale_a=auto
569 _libswscale_so=auto
570 _libavcodec_mpegaudio_hp=yes
571 _mencoder=yes
572 _mplayer=yes
573 _x11=auto
574 _xshape=auto
575 _xss=auto
576 _dga1=auto
577 _dga2=auto
578 _xv=auto
579 _xvmc=no #auto when complete
580 _vdpau=auto
581 _sdl=auto
582 _kva=auto
583 _direct3d=auto
584 _directx=auto
585 _win32waveout=auto
586 _nas=auto
587 _png=auto
588 _mng=auto
589 _jpeg=auto
590 _pnm=yes
591 _md5sum=yes
592 _yuv4mpeg=yes
593 _gif=auto
594 _gl=auto
595 matrixview=yes
596 _ggi=auto
597 _ggiwmh=auto
598 _aa=auto
599 _caca=auto
600 _svga=auto
601 _vesa=auto
602 _fbdev=auto
603 _dvb=auto
604 _dxr2=auto
605 _dxr3=auto
606 _ivtv=auto
607 _v4l2=auto
608 _iconv=auto
609 _langinfo=auto
610 _rtc=auto
611 _ossaudio=auto
612 _arts=auto
613 _esd=auto
614 _pulse=auto
615 _jack=auto
616 _kai=auto
617 _dart=auto
618 _openal=auto
619 _libcdio=auto
620 _liblzo=auto
621 _mad=auto
622 _mp3lame=auto
623 _mp3lame_lavc=auto
624 _toolame=auto
625 _twolame=auto
626 _tremor=auto
627 _tremor_internal=yes
628 _tremor_low=no
629 _libvorbis=auto
630 _speex=auto
631 _theora=auto
632 _mp3lib=auto
633 _liba52=auto
634 _liba52_internal=no
635 _libdca=auto
636 _libmpeg2=auto
637 _faad=auto
638 _faad_internal=auto
639 _faad_fixed=no
640 _faac=auto
641 _faac_lavc=auto
642 _ladspa=auto
643 _libbs2b=auto
644 _xmms=no
645 _vcd=auto
646 _dvdnav=auto
647 _dvdnavconfig=dvdnav-config
648 _dvdreadconfig=dvdread-config
649 _dvdread=auto
650 _dvdread_internal=auto
651 _libdvdcss_internal=auto
652 _xanim=auto
653 _real=auto
654 _live=auto
655 _nemesi=auto
656 _native_rtsp=yes
657 _xinerama=auto
658 _mga=auto
659 _xmga=auto
660 _vm=auto
661 _xf86keysym=auto
662 _mlib=no #broken, thus disabled
663 _sgiaudio=auto
664 _sunaudio=auto
665 _alsa=auto
666 _fastmemcpy=yes
667 hardcoded_tables=no
668 _unrar_exec=auto
669 _win32dll=auto
670 _select=yes
671 _radio=no
672 _radio_capture=no
673 _radio_v4l=auto
674 _radio_v4l2=auto
675 _radio_bsdbt848=auto
676 _tv=yes
677 _tv_v4l1=auto
678 _tv_v4l2=auto
679 _tv_bsdbt848=auto
680 _tv_dshow=auto
681 _pvr=auto
682 _network=yes
683 _winsock2_h=auto
684 _struct_addrinfo=auto
685 _getaddrinfo=auto
686 _struct_sockaddr_storage=auto
687 _smb=auto
688 _vidix=auto
689 _vidix_pcidb=yes
690 _dhahelper=no
691 _svgalib_helper=no
692 _joystick=no
693 _xvid=auto
694 _xvid_lavc=auto
695 _x264=auto
696 _x264_lavc=auto
697 _libdirac_lavc=auto
698 _libschroedinger_lavc=auto
699 _libnut=auto
700 _lirc=auto
701 _lircc=auto
702 _apple_remote=auto
703 _apple_ir=auto
704 _gui=no
705 _gtk1=no
706 _termcap=auto
707 _termios=auto
708 _3dfx=no
709 _s3fb=no
710 _wii=no
711 _tdfxfb=no
712 _tdfxvid=no
713 _xvr100=auto
714 _tga=yes
715 _directfb=auto
716 _zr=auto
717 _bl=no
718 _largefiles=yes
719 #language=en
720 _shm=auto
721 _linux_devfs=no
722 _charset="UTF-8"
723 _dynamic_plugins=no
724 _crash_debug=no
725 _sighandler=yes
726 _libdv=auto
727 _cdparanoia=auto
728 _cddb=auto
729 _big_endian=auto
730 _bitmap_font=yes
731 _freetype=auto
732 _fontconfig=auto
733 _menu=no
734 _qtx=auto
735 _maemo=auto
736 _coreaudio=auto
737 _corevideo=auto
738 _quartz=auto
739 quicktime=auto
740 _macosx_finder=no
741 _macosx_bundle=auto
742 _sortsub=yes
743 _freetypeconfig='freetype-config'
744 _fribidi=auto
745 _fribidiconfig='fribidi-config'
746 _enca=auto
747 _inet6=auto
748 _gethostbyname2=auto
749 _ftp=yes
750 _musepack=auto
751 _vstream=auto
752 _pthreads=auto
753 _w32threads=auto
754 _ass=auto
755 ass_internal=yes
756 _rpath=no
757 _asmalign_pot=auto
758 _stream_cache=yes
759 _priority=no
760 def_dos_paths="#define HAVE_DOS_PATHS 0"
761 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
762 def_priority="#undef CONFIG_PRIORITY"
763 def_pthread_cache="#undef PTHREAD_CACHE"
764 _need_shmem=yes
765 for ac_option do
766 case "$ac_option" in
767 --help|-help|-h)
768 show_help
770 --prefix=*)
771 _prefix=$(echo $ac_option | cut -d '=' -f 2)
773 --bindir=*)
774 _bindir=$(echo $ac_option | cut -d '=' -f 2)
776 --datadir=*)
777 _datadir=$(echo $ac_option | cut -d '=' -f 2)
779 --mandir=*)
780 _mandir=$(echo $ac_option | cut -d '=' -f 2)
782 --confdir=*)
783 _confdir=$(echo $ac_option | cut -d '=' -f 2)
785 --libdir=*)
786 _libdir=$(echo $ac_option | cut -d '=' -f 2)
788 --codecsdir=*)
789 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
792 --with-install=*)
793 _install=$(echo $ac_option | cut -d '=' -f 2 )
795 --with-xvmclib=*)
796 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
799 --with-sdl-config=*)
800 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
802 --with-freetype-config=*)
803 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
805 --with-fribidi-config=*)
806 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
808 --with-gtk-config=*)
809 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
811 --with-glib-config=*)
812 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
814 --with-dvdnav-config=*)
815 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
817 --with-dvdread-config=*)
818 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
821 --extra-cflags=*)
822 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
824 --extra-ldflags=*)
825 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
827 --extra-libs=*)
828 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
830 --extra-libs-mplayer=*)
831 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
833 --extra-libs-mencoder=*)
834 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
837 --target=*)
838 _target=$(echo $ac_option | cut -d '=' -f 2)
840 --cc=*)
841 _cc=$(echo $ac_option | cut -d '=' -f 2)
843 --host-cc=*)
844 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
846 --as=*)
847 _as=$(echo $ac_option | cut -d '=' -f 2)
849 --nm=*)
850 _nm=$(echo $ac_option | cut -d '=' -f 2)
852 --yasm=*)
853 _yasm=$(echo $ac_option | cut -d '=' -f 2)
855 --ar=*)
856 _ar=$(echo $ac_option | cut -d '=' -f 2)
858 --ranlib=*)
859 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
861 --windres=*)
862 _windres=$(echo $ac_option | cut -d '=' -f 2)
864 --charset=*)
865 _charset=$(echo $ac_option | cut -d '=' -f 2)
867 --language-doc=*)
868 language_doc=$(echo $ac_option | cut -d '=' -f 2)
870 --language-man=*)
871 language_man=$(echo $ac_option | cut -d '=' -f 2)
873 --language-msg=*)
874 language_msg=$(echo $ac_option | cut -d '=' -f 2)
876 --language=*)
877 language=$(echo $ac_option | cut -d '=' -f 2)
880 --enable-static)
881 _ld_static='-static'
883 --disable-static)
884 _ld_static=''
886 --enable-profile)
887 _profile='-p'
889 --disable-profile)
890 _profile=
892 --enable-debug)
893 _debug='-g'
895 --enable-debug=*)
896 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
898 --disable-debug)
899 _debug=
901 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
902 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
903 --enable-cross-compile) _cross_compile=yes ;;
904 --disable-cross-compile) _cross_compile=no ;;
905 --enable-mencoder) _mencoder=yes ;;
906 --disable-mencoder) _mencoder=no ;;
907 --enable-mplayer) _mplayer=yes ;;
908 --disable-mplayer) _mplayer=no ;;
909 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
910 --disable-dynamic-plugins) _dynamic_plugins=no ;;
911 --enable-x11) _x11=yes ;;
912 --disable-x11) _x11=no ;;
913 --enable-xshape) _xshape=yes ;;
914 --disable-xshape) _xshape=no ;;
915 --enable-xss) _xss=yes ;;
916 --disable-xss) _xss=no ;;
917 --enable-xv) _xv=yes ;;
918 --disable-xv) _xv=no ;;
919 --enable-xvmc) _xvmc=yes ;;
920 --disable-xvmc) _xvmc=no ;;
921 --enable-vdpau) _vdpau=yes ;;
922 --disable-vdpau) _vdpau=no ;;
923 --enable-sdl) _sdl=yes ;;
924 --disable-sdl) _sdl=no ;;
925 --enable-kva) _kva=yes ;;
926 --disable-kva) _kva=no ;;
927 --enable-direct3d) _direct3d=yes ;;
928 --disable-direct3d) _direct3d=no ;;
929 --enable-directx) _directx=yes ;;
930 --disable-directx) _directx=no ;;
931 --enable-win32waveout) _win32waveout=yes ;;
932 --disable-win32waveout) _win32waveout=no ;;
933 --enable-nas) _nas=yes ;;
934 --disable-nas) _nas=no ;;
935 --enable-png) _png=yes ;;
936 --disable-png) _png=no ;;
937 --enable-mng) _mng=yes ;;
938 --disable-mng) _mng=no ;;
939 --enable-jpeg) _jpeg=yes ;;
940 --disable-jpeg) _jpeg=no ;;
941 --enable-libopenjpeg) libopenjpeg=yes ;;
942 --disable-libopenjpeg)libopenjpeg=no ;;
943 --enable-pnm) _pnm=yes ;;
944 --disable-pnm) _pnm=no ;;
945 --enable-md5sum) _md5sum=yes ;;
946 --disable-md5sum) _md5sum=no ;;
947 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
948 --disable-yuv4mpeg) _yuv4mpeg=no ;;
949 --enable-gif) _gif=yes ;;
950 --disable-gif) _gif=no ;;
951 --enable-gl) _gl=yes ;;
952 --disable-gl) _gl=no ;;
953 --enable-matrixview) matrixview=yes ;;
954 --disable-matrixview) matrixview=no ;;
955 --enable-ggi) _ggi=yes ;;
956 --disable-ggi) _ggi=no ;;
957 --enable-ggiwmh) _ggiwmh=yes ;;
958 --disable-ggiwmh) _ggiwmh=no ;;
959 --enable-aa) _aa=yes ;;
960 --disable-aa) _aa=no ;;
961 --enable-caca) _caca=yes ;;
962 --disable-caca) _caca=no ;;
963 --enable-svga) _svga=yes ;;
964 --disable-svga) _svga=no ;;
965 --enable-vesa) _vesa=yes ;;
966 --disable-vesa) _vesa=no ;;
967 --enable-fbdev) _fbdev=yes ;;
968 --disable-fbdev) _fbdev=no ;;
969 --enable-dvb) _dvb=yes ;;
970 --disable-dvb) _dvb=no ;;
971 --enable-dxr2) _dxr2=yes ;;
972 --disable-dxr2) _dxr2=no ;;
973 --enable-dxr3) _dxr3=yes ;;
974 --disable-dxr3) _dxr3=no ;;
975 --enable-ivtv) _ivtv=yes ;;
976 --disable-ivtv) _ivtv=no ;;
977 --enable-v4l2) _v4l2=yes ;;
978 --disable-v4l2) _v4l2=no ;;
979 --enable-iconv) _iconv=yes ;;
980 --disable-iconv) _iconv=no ;;
981 --enable-langinfo) _langinfo=yes ;;
982 --disable-langinfo) _langinfo=no ;;
983 --enable-rtc) _rtc=yes ;;
984 --disable-rtc) _rtc=no ;;
985 --enable-libdv) _libdv=yes ;;
986 --disable-libdv) _libdv=no ;;
987 --enable-ossaudio) _ossaudio=yes ;;
988 --disable-ossaudio) _ossaudio=no ;;
989 --enable-arts) _arts=yes ;;
990 --disable-arts) _arts=no ;;
991 --enable-esd) _esd=yes ;;
992 --disable-esd) _esd=no ;;
993 --enable-pulse) _pulse=yes ;;
994 --disable-pulse) _pulse=no ;;
995 --enable-jack) _jack=yes ;;
996 --disable-jack) _jack=no ;;
997 --enable-openal) _openal=yes ;;
998 --disable-openal) _openal=no ;;
999 --enable-kai) _kai=yes ;;
1000 --disable-kai) _kai=no ;;
1001 --enable-dart) _dart=yes ;;
1002 --disable-dart) _dart=no ;;
1003 --enable-mad) _mad=yes ;;
1004 --disable-mad) _mad=no ;;
1005 --enable-mp3lame) _mp3lame=yes ;;
1006 --disable-mp3lame) _mp3lame=no ;;
1007 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1008 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1009 --enable-toolame) _toolame=yes ;;
1010 --disable-toolame) _toolame=no ;;
1011 --enable-twolame) _twolame=yes ;;
1012 --disable-twolame) _twolame=no ;;
1013 --enable-libcdio) _libcdio=yes ;;
1014 --disable-libcdio) _libcdio=no ;;
1015 --enable-liblzo) _liblzo=yes ;;
1016 --disable-liblzo) _liblzo=no ;;
1017 --enable-libvorbis) _libvorbis=yes ;;
1018 --disable-libvorbis) _libvorbis=no ;;
1019 --enable-speex) _speex=yes ;;
1020 --disable-speex) _speex=no ;;
1021 --enable-tremor) _tremor=yes ;;
1022 --disable-tremor) _tremor=no ;;
1023 --enable-tremor-internal) _tremor_internal=yes ;;
1024 --disable-tremor-internal) _tremor_internal=no ;;
1025 --enable-tremor-low) _tremor_low=yes ;;
1026 --disable-tremor-low) _tremor_low=no ;;
1027 --enable-theora) _theora=yes ;;
1028 --disable-theora) _theora=no ;;
1029 --enable-mp3lib) _mp3lib=yes ;;
1030 --disable-mp3lib) _mp3lib=no ;;
1031 --enable-liba52-internal) _liba52_internal=yes ;;
1032 --disable-liba52-internal) _liba52_internal=no ;;
1033 --enable-liba52) _liba52=yes ;;
1034 --disable-liba52) _liba52=no ;;
1035 --enable-libdca) _libdca=yes ;;
1036 --disable-libdca) _libdca=no ;;
1037 --enable-libmpeg2) _libmpeg2=yes ;;
1038 --disable-libmpeg2) _libmpeg2=no ;;
1039 --enable-musepack) _musepack=yes ;;
1040 --disable-musepack) _musepack=no ;;
1041 --enable-faad) _faad=yes ;;
1042 --disable-faad) _faad=no ;;
1043 --enable-faad-internal) _faad_internal=yes ;;
1044 --disable-faad-internal) _faad_internal=no ;;
1045 --enable-faad-fixed) _faad_fixed=yes ;;
1046 --disable-faad-fixed) _faad_fixed=no ;;
1047 --enable-faac) _faac=yes ;;
1048 --disable-faac) _faac=no ;;
1049 --enable-faac-lavc) _faac_lavc=yes ;;
1050 --disable-faac-lavc) _faac_lavc=no ;;
1051 --enable-ladspa) _ladspa=yes ;;
1052 --disable-ladspa) _ladspa=no ;;
1053 --enable-libbs2b) _libbs2b=yes ;;
1054 --disable-libbs2b) _libbs2b=no ;;
1055 --enable-xmms) _xmms=yes ;;
1056 --disable-xmms) _xmms=no ;;
1057 --enable-vcd) _vcd=yes ;;
1058 --disable-vcd) _vcd=no ;;
1059 --enable-dvdread) _dvdread=yes ;;
1060 --disable-dvdread) _dvdread=no ;;
1061 --enable-dvdread-internal) _dvdread_internal=yes ;;
1062 --disable-dvdread-internal) _dvdread_internal=no ;;
1063 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1064 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1065 --enable-dvdnav) _dvdnav=yes ;;
1066 --disable-dvdnav) _dvdnav=no ;;
1067 --enable-xanim) _xanim=yes ;;
1068 --disable-xanim) _xanim=no ;;
1069 --enable-real) _real=yes ;;
1070 --disable-real) _real=no ;;
1071 --enable-live) _live=yes ;;
1072 --disable-live) _live=no ;;
1073 --enable-nemesi) _nemesi=yes ;;
1074 --disable-nemesi) _nemesi=no ;;
1075 --enable-xinerama) _xinerama=yes ;;
1076 --disable-xinerama) _xinerama=no ;;
1077 --enable-mga) _mga=yes ;;
1078 --disable-mga) _mga=no ;;
1079 --enable-xmga) _xmga=yes ;;
1080 --disable-xmga) _xmga=no ;;
1081 --enable-vm) _vm=yes ;;
1082 --disable-vm) _vm=no ;;
1083 --enable-xf86keysym) _xf86keysym=yes ;;
1084 --disable-xf86keysym) _xf86keysym=no ;;
1085 --enable-mlib) _mlib=yes ;;
1086 --disable-mlib) _mlib=no ;;
1087 --enable-sunaudio) _sunaudio=yes ;;
1088 --disable-sunaudio) _sunaudio=no ;;
1089 --enable-sgiaudio) _sgiaudio=yes ;;
1090 --disable-sgiaudio) _sgiaudio=no ;;
1091 --enable-alsa) _alsa=yes ;;
1092 --disable-alsa) _alsa=no ;;
1093 --enable-tv) _tv=yes ;;
1094 --disable-tv) _tv=no ;;
1095 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1096 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1097 --enable-tv-v4l1) _tv_v4l1=yes ;;
1098 --disable-tv-v4l1) _tv_v4l1=no ;;
1099 --enable-tv-v4l2) _tv_v4l2=yes ;;
1100 --disable-tv-v4l2) _tv_v4l2=no ;;
1101 --enable-tv-dshow) _tv_dshow=yes ;;
1102 --disable-tv-dshow) _tv_dshow=no ;;
1103 --enable-radio) _radio=yes ;;
1104 --enable-radio-capture) _radio_capture=yes ;;
1105 --disable-radio-capture) _radio_capture=no ;;
1106 --disable-radio) _radio=no ;;
1107 --enable-radio-v4l) _radio_v4l=yes ;;
1108 --disable-radio-v4l) _radio_v4l=no ;;
1109 --enable-radio-v4l2) _radio_v4l2=yes ;;
1110 --disable-radio-v4l2) _radio_v4l2=no ;;
1111 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1112 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1113 --enable-pvr) _pvr=yes ;;
1114 --disable-pvr) _pvr=no ;;
1115 --enable-fastmemcpy) _fastmemcpy=yes ;;
1116 --disable-fastmemcpy) _fastmemcpy=no ;;
1117 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1118 --disable-hardcoded-tables) hardcoded_tables=no ;;
1119 --enable-network) _network=yes ;;
1120 --disable-network) _network=no ;;
1121 --enable-winsock2_h) _winsock2_h=yes ;;
1122 --disable-winsock2_h) _winsock2_h=no ;;
1123 --enable-smb) _smb=yes ;;
1124 --disable-smb) _smb=no ;;
1125 --enable-vidix) _vidix=yes ;;
1126 --disable-vidix) _vidix=no ;;
1127 --with-vidix-drivers=*)
1128 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1130 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1131 --enable-dhahelper) _dhahelper=yes ;;
1132 --disable-dhahelper) _dhahelper=no ;;
1133 --enable-svgalib_helper) _svgalib_helper=yes ;;
1134 --disable-svgalib_helper) _svgalib_helper=no ;;
1135 --enable-joystick) _joystick=yes ;;
1136 --disable-joystick) _joystick=no ;;
1137 --enable-xvid) _xvid=yes ;;
1138 --disable-xvid) _xvid=no ;;
1139 --enable-xvid-lavc) _xvid_lavc=yes ;;
1140 --disable-xvid-lavc) _xvid_lavc=no ;;
1141 --enable-x264) _x264=yes ;;
1142 --disable-x264) _x264=no ;;
1143 --enable-x264-lavc) _x264_lavc=yes ;;
1144 --disable-x264-lavc) _x264_lavc=no ;;
1145 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1146 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1147 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1148 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1149 --enable-libnut) _libnut=yes ;;
1150 --disable-libnut) _libnut=no ;;
1151 --enable-libavutil_a) _libavutil_a=yes ;;
1152 --disable-libavutil_a) _libavutil_a=no ;;
1153 --enable-libavutil_so) _libavutil_so=yes ;;
1154 --disable-libavutil_so) _libavutil_so=no ;;
1155 --enable-libavcodec_a) _libavcodec_a=yes ;;
1156 --disable-libavcodec_a) _libavcodec_a=no ;;
1157 --enable-libavcodec_so) _libavcodec_so=yes ;;
1158 --disable-libavcodec_so) _libavcodec_so=no ;;
1159 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1160 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1161 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1162 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1163 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1164 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1165 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1166 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1167 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1168 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1169 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1170 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1171 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1172 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1173 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1174 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1175 --enable-libavformat_a) _libavformat_a=yes ;;
1176 --disable-libavformat_a) _libavformat_a=no ;;
1177 --enable-libavformat_so) _libavformat_so=yes ;;
1178 --disable-libavformat_so) _libavformat_so=no ;;
1179 --enable-libpostproc_a) _libpostproc_a=yes ;;
1180 --disable-libpostproc_a) _libpostproc_a=no ;;
1181 --enable-libpostproc_so) _libpostproc_so=yes ;;
1182 --disable-libpostproc_so) _libpostproc_so=no ;;
1183 --enable-libswscale_a) _libswscale_a=yes ;;
1184 --disable-libswscale_a) _libswscale_a=no ;;
1185 --enable-libswscale_so) _libswscale_so=yes ;;
1186 --disable-libswscale_so) _libswscale_so=no ;;
1187 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1188 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1190 --enable-lirc) _lirc=yes ;;
1191 --disable-lirc) _lirc=no ;;
1192 --enable-lircc) _lircc=yes ;;
1193 --disable-lircc) _lircc=no ;;
1194 --enable-apple-remote) _apple_remote=yes ;;
1195 --disable-apple-remote) _apple_remote=no ;;
1196 --enable-apple-ir) _apple_ir=yes ;;
1197 --disable-apple-ir) _apple_ir=no ;;
1198 --enable-gui) _gui=yes ;;
1199 --disable-gui) _gui=no ;;
1200 --enable-gtk1) _gtk1=yes ;;
1201 --disable-gtk1) _gtk1=no ;;
1202 --enable-termcap) _termcap=yes ;;
1203 --disable-termcap) _termcap=no ;;
1204 --enable-termios) _termios=yes ;;
1205 --disable-termios) _termios=no ;;
1206 --enable-3dfx) _3dfx=yes ;;
1207 --disable-3dfx) _3dfx=no ;;
1208 --enable-s3fb) _s3fb=yes ;;
1209 --disable-s3fb) _s3fb=no ;;
1210 --enable-wii) _wii=yes ;;
1211 --disable-wii) _wii=no ;;
1212 --enable-tdfxfb) _tdfxfb=yes ;;
1213 --disable-tdfxfb) _tdfxfb=no ;;
1214 --disable-tdfxvid) _tdfxvid=no ;;
1215 --enable-tdfxvid) _tdfxvid=yes ;;
1216 --disable-xvr100) _xvr100=no ;;
1217 --enable-xvr100) _xvr100=yes ;;
1218 --disable-tga) _tga=no ;;
1219 --enable-tga) _tga=yes ;;
1220 --enable-directfb) _directfb=yes ;;
1221 --disable-directfb) _directfb=no ;;
1222 --enable-zr) _zr=yes ;;
1223 --disable-zr) _zr=no ;;
1224 --enable-bl) _bl=yes ;;
1225 --disable-bl) _bl=no ;;
1226 --enable-mtrr) _mtrr=yes ;;
1227 --disable-mtrr) _mtrr=no ;;
1228 --enable-largefiles) _largefiles=yes ;;
1229 --disable-largefiles) _largefiles=no ;;
1230 --enable-shm) _shm=yes ;;
1231 --disable-shm) _shm=no ;;
1232 --enable-select) _select=yes ;;
1233 --disable-select) _select=no ;;
1234 --enable-linux-devfs) _linux_devfs=yes ;;
1235 --disable-linux-devfs) _linux_devfs=no ;;
1236 --enable-cdparanoia) _cdparanoia=yes ;;
1237 --disable-cdparanoia) _cdparanoia=no ;;
1238 --enable-cddb) _cddb=yes ;;
1239 --disable-cddb) _cddb=no ;;
1240 --enable-big-endian) _big_endian=yes ;;
1241 --disable-big-endian) _big_endian=no ;;
1242 --enable-bitmap-font) _bitmap_font=yes ;;
1243 --disable-bitmap-font) _bitmap_font=no ;;
1244 --enable-freetype) _freetype=yes ;;
1245 --disable-freetype) _freetype=no ;;
1246 --enable-fontconfig) _fontconfig=yes ;;
1247 --disable-fontconfig) _fontconfig=no ;;
1248 --enable-unrarexec) _unrar_exec=yes ;;
1249 --disable-unrarexec) _unrar_exec=no ;;
1250 --enable-ftp) _ftp=yes ;;
1251 --disable-ftp) _ftp=no ;;
1252 --enable-vstream) _vstream=yes ;;
1253 --disable-vstream) _vstream=no ;;
1254 --enable-pthreads) _pthreads=yes ;;
1255 --disable-pthreads) _pthreads=no ;;
1256 --enable-w32threads) _w32threads=yes ;;
1257 --disable-w32threads) _w32threads=no ;;
1258 --enable-ass) _ass=yes ;;
1259 --disable-ass) _ass=no ;;
1260 --enable-ass-internal) ass_internal=yes ;;
1261 --disable-ass-internal) ass_internal=no ;;
1262 --enable-rpath) _rpath=yes ;;
1263 --disable-rpath) _rpath=no ;;
1265 --enable-fribidi) _fribidi=yes ;;
1266 --disable-fribidi) _fribidi=no ;;
1268 --enable-enca) _enca=yes ;;
1269 --disable-enca) _enca=no ;;
1271 --enable-inet6) _inet6=yes ;;
1272 --disable-inet6) _inet6=no ;;
1274 --enable-gethostbyname2) _gethostbyname2=yes ;;
1275 --disable-gethostbyname2) _gethostbyname2=no ;;
1277 --enable-dga1) _dga1=yes ;;
1278 --disable-dga1) _dga1=no ;;
1279 --enable-dga2) _dga2=yes ;;
1280 --disable-dga2) _dga2=no ;;
1282 --enable-menu) _menu=yes ;;
1283 --disable-menu) _menu=no ;;
1285 --enable-qtx) _qtx=yes ;;
1286 --disable-qtx) _qtx=no ;;
1288 --enable-coreaudio) _coreaudio=yes ;;
1289 --disable-coreaudio) _coreaudio=no ;;
1290 --enable-corevideo) _corevideo=yes ;;
1291 --disable-corevideo) _corevideo=no ;;
1292 --enable-quartz) _quartz=yes ;;
1293 --disable-quartz) _quartz=no ;;
1294 --enable-macosx-finder) _macosx_finder=yes ;;
1295 --disable-macosx-finder) _macosx_finder=no ;;
1296 --enable-macosx-bundle) _macosx_bundle=yes ;;
1297 --disable-macosx-bundle) _macosx_bundle=no ;;
1299 --enable-maemo) _maemo=yes ;;
1300 --disable-maemo) _maemo=no ;;
1302 --enable-sortsub) _sortsub=yes ;;
1303 --disable-sortsub) _sortsub=no ;;
1305 --enable-crash-debug) _crash_debug=yes ;;
1306 --disable-crash-debug) _crash_debug=no ;;
1307 --enable-sighandler) _sighandler=yes ;;
1308 --disable-sighandler) _sighandler=no ;;
1309 --enable-win32dll) _win32dll=yes ;;
1310 --disable-win32dll) _win32dll=no ;;
1312 --enable-sse) _sse=yes ;;
1313 --disable-sse) _sse=no ;;
1314 --enable-sse2) _sse2=yes ;;
1315 --disable-sse2) _sse2=no ;;
1316 --enable-ssse3) _ssse3=yes ;;
1317 --disable-ssse3) _ssse3=no ;;
1318 --enable-mmxext) _mmxext=yes ;;
1319 --disable-mmxext) _mmxext=no ;;
1320 --enable-3dnow) _3dnow=yes ;;
1321 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1322 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1323 --disable-3dnowext) _3dnowext=no ;;
1324 --enable-cmov) _cmov=yes ;;
1325 --disable-cmov) _cmov=no ;;
1326 --enable-fast-cmov) _fast_cmov=yes ;;
1327 --disable-fast-cmov) _fast_cmov=no ;;
1328 --enable-fast-clz) _fast_clz=yes ;;
1329 --disable-fast-clz) _fast_clz=no ;;
1330 --enable-altivec) _altivec=yes ;;
1331 --disable-altivec) _altivec=no ;;
1332 --enable-armv5te) _armv5te=yes ;;
1333 --disable-armv5te) _armv5te=no ;;
1334 --enable-armv6) _armv6=yes ;;
1335 --disable-armv6) _armv6=no ;;
1336 --enable-armv6t2) _armv6t2=yes ;;
1337 --disable-armv6t2) _armv6t2=no ;;
1338 --enable-armvfp) _armvfp=yes ;;
1339 --disable-armvfp) _armvfp=no ;;
1340 --enable-neon) neon=yes ;;
1341 --disable-neon) neon=no ;;
1342 --enable-iwmmxt) _iwmmxt=yes ;;
1343 --disable-iwmmxt) _iwmmxt=no ;;
1344 --enable-mmx) _mmx=yes ;;
1345 --disable-mmx) # 3Dnow! and MMX2 require MMX
1346 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1349 echo "Unknown parameter: $ac_option"
1350 exit 1
1353 esac
1354 done
1356 # Atmos: moved this here, to be correct, if --prefix is specified
1357 test -z "$_bindir" && _bindir="$_prefix/bin"
1358 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1359 test -z "$_mandir" && _mandir="$_prefix/share/man"
1360 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1361 test -z "$_libdir" && _libdir="$_prefix/lib"
1363 # Determine our OS name and CPU architecture
1364 if test -z "$_target" ; then
1365 # OS name
1366 system_name=$(uname -s 2>&1)
1367 case "$system_name" in
1368 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1370 Haiku)
1371 system_name=BeOS
1373 IRIX*)
1374 system_name=IRIX
1376 GNU/kFreeBSD)
1377 system_name=FreeBSD
1379 HP-UX*)
1380 system_name=HP-UX
1382 [cC][yY][gG][wW][iI][nN]*)
1383 system_name=CYGWIN
1385 MINGW32*)
1386 system_name=MINGW32
1388 OS/2*)
1389 system_name=OS/2
1392 system_name="$system_name-UNKNOWN"
1394 esac
1397 # host's CPU/instruction set
1398 host_arch=$(uname -p 2>&1)
1399 case "$host_arch" in
1400 i386|sparc|ppc|alpha|arm|mips|vax)
1402 powerpc) # Darwin returns 'powerpc'
1403 host_arch=ppc
1405 *) # uname -p on Linux returns 'unknown' for the processor type,
1406 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1408 # Maybe uname -m (machine hardware name) returns something we
1409 # recognize.
1411 # x86/x86pc is used by QNX
1412 case "$(uname -m 2>&1)" in
1413 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 ;;
1414 ia64) host_arch=ia64 ;;
1415 macppc|ppc) host_arch=ppc ;;
1416 ppc64) host_arch=ppc64 ;;
1417 alpha) host_arch=alpha ;;
1418 sparc) host_arch=sparc ;;
1419 sparc64) host_arch=sparc64 ;;
1420 parisc*|hppa*|9000*) host_arch=hppa ;;
1421 arm*|zaurus|cats) host_arch=arm ;;
1422 sh3|sh4|sh4a) host_arch=sh ;;
1423 s390) host_arch=s390 ;;
1424 s390x) host_arch=s390x ;;
1425 *mips*) host_arch=mips ;;
1426 vax) host_arch=vax ;;
1427 xtensa*) host_arch=xtensa ;;
1428 *) host_arch=UNKNOWN ;;
1429 esac
1431 esac
1432 else # if test -z "$_target"
1433 system_name=$(echo $_target | cut -d '-' -f 2)
1434 case "$(echo $system_name | tr A-Z a-z)" in
1435 linux) system_name=Linux ;;
1436 freebsd) system_name=FreeBSD ;;
1437 gnu/kfreebsd) system_name=FreeBSD ;;
1438 netbsd) system_name=NetBSD ;;
1439 bsd/os) system_name=BSD/OS ;;
1440 openbsd) system_name=OpenBSD ;;
1441 dragonfly) system_name=DragonFly ;;
1442 sunos) system_name=SunOS ;;
1443 qnx) system_name=QNX ;;
1444 morphos) system_name=MorphOS ;;
1445 amigaos) system_name=AmigaOS ;;
1446 mingw32*) system_name=MINGW32 ;;
1447 esac
1448 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1449 host_arch=$(echo $_target | cut -d '-' -f 1)
1450 if test $(echo $host_arch) != "x86_64" ; then
1451 host_arch=$(echo $host_arch | tr '_' '-')
1455 extra_cflags="-I. $extra_cflags"
1456 _timer=timer-linux.c
1457 _getch=getch2.c
1458 if freebsd ; then
1459 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1460 extra_cflags="$extra_cflags -I/usr/local/include"
1463 if netbsd || dragonfly ; then
1464 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1465 extra_cflags="$extra_cflags -I/usr/pkg/include"
1468 if darwin; then
1469 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1470 _timer=timer-darwin.c
1473 if aix ; then
1474 extra_ldflags="$extra_ldflags -lC"
1477 if irix ; then
1478 _ranlib='ar -r'
1479 elif linux ; then
1480 _ranlib='true'
1483 if win32 ; then
1484 _exesuf=".exe"
1485 extra_cflags="$extra_cflags -fno-common"
1486 # -lwinmm is always needed for osdep/timer-win2.c
1487 extra_ldflags="$extra_ldflags -lwinmm"
1488 _pe_executable=yes
1489 _timer=timer-win2.c
1490 _priority=yes
1491 def_dos_paths="#define HAVE_DOS_PATHS 1"
1492 def_priority="#define CONFIG_PRIORITY 1"
1495 if mingw32 ; then
1496 _getch=getch2-win.c
1497 _need_shmem=no
1500 if amigaos ; then
1501 _select=no
1502 _sighandler=no
1503 _stream_cache=no
1504 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1505 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1508 if qnx ; then
1509 extra_ldflags="$extra_ldflags -lph"
1512 if os2 ; then
1513 _exesuf=".exe"
1514 _getch=getch2-os2.c
1515 _need_shmem=no
1516 _priority=yes
1517 def_dos_paths="#define HAVE_DOS_PATHS 1"
1518 def_priority="#define CONFIG_PRIORITY 1"
1521 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1522 test "$I" && break
1523 done
1526 TMPLOG="configure.log"
1527 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1528 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1529 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1530 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1531 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1533 rm -f "$TMPLOG"
1534 echo configuration: $_configuration > "$TMPLOG"
1535 echo >> "$TMPLOG"
1538 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1539 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1543 # Checking CC version...
1544 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1545 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1546 echocheck "$_cc version"
1547 cc_vendor=intel
1548 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1549 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1550 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1551 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1552 # TODO verify older icc/ecc compatibility
1553 case $cc_version in
1555 cc_version="v. ?.??, bad"
1556 cc_fail=yes
1558 10.1|11.0|11.1)
1559 cc_version="$cc_version, ok"
1562 cc_version="$cc_version, bad"
1563 cc_fail=yes
1565 esac
1566 echores "$cc_version"
1567 else
1568 for _cc in "$_cc" gcc cc ; do
1569 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1570 if test "$cc_name_tmp" = "gcc"; then
1571 cc_name=$cc_name_tmp
1572 echocheck "$_cc version"
1573 cc_vendor=gnu
1574 cc_version=$($_cc -dumpversion 2>&1)
1575 case $cc_version in
1576 2.96*)
1577 cc_fail=yes
1580 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1581 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1582 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1584 esac
1585 echores "$cc_version"
1586 break
1588 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1589 if test "$cc_name_tmp" = "Sun C"; then
1590 echocheck "$_cc version"
1591 cc_vendor=sun
1592 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1593 _res_comment="experimental support only"
1594 echores "Sun C $cc_version"
1595 break
1597 done
1598 fi # icc
1599 test "$cc_fail" = yes && die "unsupported compiler version"
1601 if test -z "$_target" && x86 ; then
1602 cat > $TMPC << EOF
1603 int main(void) {
1604 int test[(int)sizeof(char *)-7];
1605 return 0;
1608 cc_check && host_arch=x86_64 || host_arch=i386
1611 echo "Detected operating system: $system_name"
1612 echo "Detected host architecture: $host_arch"
1614 echocheck "host cc"
1615 test "$_host_cc" || _host_cc=$_cc
1616 echores $_host_cc
1618 echocheck "cross compilation"
1619 if test $_cross_compile = auto ; then
1620 cat > $TMPC << EOF
1621 int main(void) { return 0; }
1623 _cross_compile=yes
1624 cc_check && "$TMPEXE" && _cross_compile=no
1626 echores $_cross_compile
1628 if test $_cross_compile = yes; then
1629 tmp_run() {
1630 return 0
1634 # ---
1636 # now that we know what compiler should be used for compilation, try to find
1637 # out which assembler is used by the $_cc compiler
1638 if test "$_as" = auto ; then
1639 _as=$($_cc -print-prog-name=as)
1640 test -z "$_as" && _as=as
1643 if test "$_nm" = auto ; then
1644 _nm=$($_cc -print-prog-name=nm)
1645 test -z "$_nm" && _nm=nm
1648 # XXX: this should be ok..
1649 _cpuinfo="echo"
1651 if test "$_runtime_cpudetection" = no ; then
1653 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1654 # FIXME: Remove the cygwin check once AMD CPUs are supported
1655 if test -r /proc/cpuinfo && ! cygwin; then
1656 # Linux with /proc mounted, extract CPU information from it
1657 _cpuinfo="cat /proc/cpuinfo"
1658 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1659 # FreeBSD with Linux emulation /proc mounted,
1660 # extract CPU information from it
1661 # Don't use it on x86 though, it never reports 3Dnow
1662 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1663 elif darwin && ! x86 ; then
1664 # use hostinfo on Darwin
1665 _cpuinfo="hostinfo"
1666 elif aix; then
1667 # use 'lsattr' on AIX
1668 _cpuinfo="lsattr -E -l proc0 -a type"
1669 elif x86; then
1670 # all other OSes try to extract CPU information from a small helper
1671 # program cpuinfo instead
1672 $_cc -o cpuinfo$_exesuf cpuinfo.c
1673 _cpuinfo="./cpuinfo$_exesuf"
1676 if x86 ; then
1677 # gather more CPU information
1678 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1679 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1680 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1681 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1682 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1684 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1686 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1687 -e s/xmm/sse/ -e s/kni/sse/)
1689 for ext in $pparam ; do
1690 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1691 done
1693 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1694 test $_sse = kernel_check && _mmxext=kernel_check
1696 echocheck "CPU vendor"
1697 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1699 echocheck "CPU type"
1700 echores "$pname"
1703 fi # test "$_runtime_cpudetection" = no
1705 if x86 && test "$_runtime_cpudetection" = no ; then
1706 extcheck() {
1707 if test "$1" = kernel_check ; then
1708 echocheck "kernel support of $2"
1709 cat > $TMPC <<EOF
1710 #include <stdlib.h>
1711 #include <signal.h>
1712 void catch() { exit(1); }
1713 int main(void) {
1714 signal(SIGILL, catch);
1715 __asm__ volatile ("$3":::"memory"); return 0;
1719 if cc_check && tmp_run ; then
1720 eval _$2=yes
1721 echores "yes"
1722 _optimizing="$_optimizing $2"
1723 return 0
1724 else
1725 eval _$2=no
1726 echores "failed"
1727 echo "It seems that your kernel does not correctly support $2."
1728 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1729 return 1
1732 return 0
1735 extcheck $_mmx "mmx" "emms"
1736 extcheck $_mmxext "mmxext" "sfence"
1737 extcheck $_3dnow "3dnow" "femms"
1738 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1739 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1740 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1741 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1742 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1744 echocheck "mtrr support"
1745 if test "$_mtrr" = kernel_check ; then
1746 _mtrr="yes"
1747 _optimizing="$_optimizing mtrr"
1749 echores "$_mtrr"
1751 if test "$_gcc3_ext" != ""; then
1752 # if we had to disable sse/sse2 because the active kernel does not
1753 # support this instruction set extension, we also have to tell
1754 # gcc3 to not generate sse/sse2 instructions for normal C code
1755 cat > $TMPC << EOF
1756 int main(void) { return 0; }
1758 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1764 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1765 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1766 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1767 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1768 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1769 subarch_all='X86_32 X86_64 PPC64'
1770 case "$host_arch" in
1771 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1772 arch='x86'
1773 subarch='x86_32'
1774 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1775 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1776 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1777 iproc=486
1778 proc=i486
1781 if test "$_runtime_cpudetection" = no ; then
1782 case "$pvendor" in
1783 AuthenticAMD)
1784 case "$pfamily" in
1785 3) proc=i386 iproc=386 ;;
1786 4) proc=i486 iproc=486 ;;
1787 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1788 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1789 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1790 proc=k6-3
1791 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1792 proc=geode
1793 elif test "$pmodel" -ge 8; then
1794 proc=k6-2
1795 elif test "$pmodel" -ge 6; then
1796 proc=k6
1797 else
1798 proc=i586
1801 6) iproc=686
1802 # It's a bit difficult to determine the correct type of Family 6
1803 # AMD CPUs just from their signature. Instead, we check directly
1804 # whether it supports SSE.
1805 if test "$_sse" = yes; then
1806 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1807 proc=athlon-xp
1808 else
1809 # Again, gcc treats athlon and athlon-tbird similarly.
1810 proc=athlon
1813 15) iproc=686
1814 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1815 # caught and remedied in the optimization tests below.
1816 proc=k8
1819 *) proc=amdfam10 iproc=686
1820 test $_fast_clz = "auto" && _fast_clz=yes
1822 esac
1824 GenuineIntel)
1825 case "$pfamily" in
1826 3) proc=i386 iproc=386 ;;
1827 4) proc=i486 iproc=486 ;;
1828 5) iproc=586
1829 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1830 proc=pentium-mmx # 4 is desktop, 8 is mobile
1831 else
1832 proc=i586
1835 6) iproc=686
1836 if test "$pmodel" -ge 15; then
1837 proc=core2
1838 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1839 proc=pentium-m
1840 elif test "$pmodel" -ge 7; then
1841 proc=pentium3
1842 elif test "$pmodel" -ge 3; then
1843 proc=pentium2
1844 else
1845 proc=i686
1847 test $_fast_clz = "auto" && _fast_clz=yes
1849 15) iproc=686
1850 # A nocona in 32-bit mode has no more capabilities than a prescott.
1851 if test "$pmodel" -ge 3; then
1852 proc=prescott
1853 else
1854 proc=pentium4
1855 test $_fast_clz = "auto" && _fast_clz=yes
1857 test $_fast_cmov = "auto" && _fast_cmov=no
1859 *) proc=prescott iproc=686 ;;
1860 esac
1862 CentaurHauls)
1863 case "$pfamily" in
1864 5) iproc=586
1865 if test "$pmodel" -ge 8; then
1866 proc=winchip2
1867 elif test "$pmodel" -ge 4; then
1868 proc=winchip-c6
1869 else
1870 proc=i586
1873 6) iproc=686
1874 if test "$pmodel" -ge 9; then
1875 proc=c3-2
1876 else
1877 proc=c3
1878 iproc=586
1881 *) proc=i686 iproc=i686 ;;
1882 esac
1884 unknown)
1885 case "$pfamily" in
1886 3) proc=i386 iproc=386 ;;
1887 4) proc=i486 iproc=486 ;;
1888 *) proc=i586 iproc=586 ;;
1889 esac
1892 proc=i586 iproc=586 ;;
1893 esac
1894 test $_fast_clz = "auto" && _fast_clz=no
1895 fi # test "$_runtime_cpudetection" = no
1898 # check that gcc supports our CPU, if not, fall back to earlier ones
1899 # LGB: check -mcpu and -march swithing step by step with enabling
1900 # to fall back till 386.
1902 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1904 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1905 cpuopt=-mtune
1906 else
1907 cpuopt=-mcpu
1910 echocheck "GCC & CPU optimization abilities"
1911 cat > $TMPC << EOF
1912 int main(void) { return 0; }
1914 if test "$_runtime_cpudetection" = no ; then
1915 if test $cc_vendor != "intel" ; then
1916 cc_check -march=native && proc=native
1918 if test "$proc" = "k8"; then
1919 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1921 if test "$proc" = "athlon-xp"; then
1922 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1924 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1925 cc_check -march=$proc $cpuopt=$proc || proc=k6
1927 if test "$proc" = "k6" || test "$proc" = "c3"; then
1928 if ! cc_check -march=$proc $cpuopt=$proc; then
1929 if cc_check -march=i586 $cpuopt=i686; then
1930 proc=i586-i686
1931 else
1932 proc=i586
1936 if test "$proc" = "prescott" ; then
1937 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1939 if test "$proc" = "core2" ; then
1940 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1942 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
1943 cc_check -march=$proc $cpuopt=$proc || proc=i686
1945 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1946 cc_check -march=$proc $cpuopt=$proc || proc=i586
1948 if test "$proc" = "i586"; then
1949 cc_check -march=$proc $cpuopt=$proc || proc=i486
1951 if test "$proc" = "i486" ; then
1952 cc_check -march=$proc $cpuopt=$proc || proc=i386
1954 if test "$proc" = "i386" ; then
1955 cc_check -march=$proc $cpuopt=$proc || proc=error
1957 if test "$proc" = "error" ; then
1958 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1959 _mcpu=""
1960 _march=""
1961 _optimizing=""
1962 elif test "$proc" = "i586-i686"; then
1963 _march="-march=i586"
1964 _mcpu="$cpuopt=i686"
1965 _optimizing="$proc"
1966 else
1967 _march="-march=$proc"
1968 _mcpu="$cpuopt=$proc"
1969 _optimizing="$proc"
1971 else # if test "$_runtime_cpudetection" = no
1972 _mcpu="$cpuopt=generic"
1973 # at least i486 required, for bswap instruction
1974 _march="-march=i486"
1975 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1976 cc_check $_mcpu || _mcpu=""
1977 cc_check $_march $_mcpu || _march=""
1980 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1981 ## autodetected mcpu/march parameters
1982 if test "$_target" ; then
1983 # TODO: it may be a good idea to check GCC and fall back in all cases
1984 if test "$host_arch" = "i586-i686"; then
1985 _march="-march=i586"
1986 _mcpu="$cpuopt=i686"
1987 else
1988 _march="-march=$host_arch"
1989 _mcpu="$cpuopt=$host_arch"
1992 proc="$host_arch"
1994 case "$proc" in
1995 i386) iproc=386 ;;
1996 i486) iproc=486 ;;
1997 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1998 i686|athlon*|pentium*) iproc=686 ;;
1999 *) iproc=586 ;;
2000 esac
2003 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2004 _fast_cmov="yes"
2005 else
2006 _fast_cmov="no"
2008 test $_fast_clz = "auto" && _fast_clz=yes
2010 echores "$proc"
2013 ia64)
2014 arch='ia64'
2015 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2016 iproc='ia64'
2019 x86_64|amd64)
2020 arch='x86'
2021 subarch='x86_64'
2022 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2023 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2024 iproc='x86_64'
2026 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2027 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2028 cpuopt=-mtune
2029 else
2030 cpuopt=-mcpu
2032 if test "$_runtime_cpudetection" = no ; then
2033 case "$pvendor" in
2034 AuthenticAMD)
2035 case "$pfamily" in
2036 15) proc=k8
2037 test $_fast_clz = "auto" && _fast_clz=no
2039 *) proc=amdfam10;;
2040 esac
2042 GenuineIntel)
2043 case "$pfamily" in
2044 6) proc=core2;;
2046 # 64-bit prescotts exist, but as far as GCC is concerned they
2047 # have the same capabilities as a nocona.
2048 proc=nocona
2049 test $_fast_cmov = "auto" && _fast_cmov=no
2050 test $_fast_clz = "auto" && _fast_clz=no
2052 esac
2055 proc=error;;
2056 esac
2057 fi # test "$_runtime_cpudetection" = no
2059 echocheck "GCC & CPU optimization abilities"
2060 cat > $TMPC << EOF
2061 int main(void) { return 0; }
2063 # This is a stripped-down version of the i386 fallback.
2064 if test "$_runtime_cpudetection" = no ; then
2065 if test $cc_vendor != "intel" ; then
2066 cc_check -march=native && proc=native
2068 # --- AMD processors ---
2069 if test "$proc" = "k8"; then
2070 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2072 # This will fail if gcc version < 3.3, which is ok because earlier
2073 # versions don't really support 64-bit on amd64.
2074 # Is this a valid assumption? -Corey
2075 if test "$proc" = "athlon-xp"; then
2076 cc_check -march=$proc $cpuopt=$proc || proc=error
2078 # --- Intel processors ---
2079 if test "$proc" = "core2"; then
2080 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2082 if test "$proc" = "x86-64"; then
2083 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2085 if test "$proc" = "nocona"; then
2086 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2088 if test "$proc" = "pentium4"; then
2089 cc_check -march=$proc $cpuopt=$proc || proc=error
2092 _march="-march=$proc"
2093 _mcpu="$cpuopt=$proc"
2094 if test "$proc" = "error" ; then
2095 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2096 _mcpu=""
2097 _march=""
2099 else # if test "$_runtime_cpudetection" = no
2100 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2101 _march="-march=x86-64"
2102 _mcpu="$cpuopt=generic"
2103 cc_check $_mcpu || _mcpu="x86-64"
2104 cc_check $_mcpu || _mcpu=""
2105 cc_check $_march $_mcpu || _march=""
2108 _optimizing="$proc"
2109 test $_fast_cmov = "auto" && _fast_cmov=yes
2110 test $_fast_clz = "auto" && _fast_clz=yes
2112 echores "$proc"
2115 sparc|sparc64)
2116 arch='sparc'
2117 iproc='sparc'
2118 if test "$host_arch" = "sparc64" ; then
2119 _vis='yes'
2120 proc='ultrasparc'
2121 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2122 elif sunos ; then
2123 echocheck "CPU type"
2124 karch=$(uname -m)
2125 case "$(echo $karch)" in
2126 sun4) proc=v7 ;;
2127 sun4c) proc=v7 ;;
2128 sun4d) proc=v8 ;;
2129 sun4m) proc=v8 ;;
2130 sun4u) proc=ultrasparc _vis='yes' ;;
2131 sun4v) proc=v9 ;;
2132 *) proc=v8 ;;
2133 esac
2134 echores "$proc"
2135 else
2136 proc=v8
2138 _mcpu="-mcpu=$proc"
2139 _optimizing="$proc"
2142 arm*)
2143 arch='arm'
2144 iproc='arm'
2147 avr32)
2148 arch='avr32'
2149 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2150 iproc='avr32'
2151 test $_fast_clz = "auto" && _fast_clz=yes
2154 sh|sh4)
2155 arch='sh4'
2156 iproc='sh4'
2159 ppc|ppc64|powerpc|powerpc64)
2160 arch='ppc'
2161 def_dcbzl='#define HAVE_DCBZL 0'
2162 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2163 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2164 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2165 iproc='ppc'
2167 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2168 subarch='ppc64'
2169 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2171 echocheck "CPU type"
2172 case $system_name in
2173 Linux)
2174 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2175 if test -n "$($_cpuinfo | grep altivec)"; then
2176 test $_altivec = auto && _altivec=yes
2179 Darwin)
2180 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2181 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2182 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2183 test $_altivec = auto && _altivec=yes
2186 NetBSD)
2187 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2188 case $cc_version in
2189 2*|3.0*|3.1*|3.2*|3.3*)
2192 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2193 test $_altivec = auto && _altivec=yes
2196 esac
2198 AIX)
2199 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2201 esac
2202 if test "$_altivec" = yes; then
2203 echores "$proc altivec"
2204 else
2205 _altivec=no
2206 echores "$proc"
2209 echocheck "GCC & CPU optimization abilities"
2211 if test -n "$proc"; then
2212 case "$proc" in
2213 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2214 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2215 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2216 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2217 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2218 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2219 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2220 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2221 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2222 *) ;;
2223 esac
2224 # gcc 3.1(.1) and up supports 7400 and 7450
2225 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2226 case "$proc" in
2227 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2228 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2229 *) ;;
2230 esac
2232 # gcc 3.2 and up supports 970
2233 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2234 case "$proc" in
2235 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2236 def_dcbzl='#define HAVE_DCBZL 1' ;;
2237 *) ;;
2238 esac
2240 # gcc 3.3 and up supports POWER4
2241 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2242 case "$proc" in
2243 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2244 *) ;;
2245 esac
2247 # gcc 3.4 and up supports 440*
2248 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2249 case "$proc" in
2250 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2251 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2252 *) ;;
2253 esac
2255 # gcc 4.0 and up supports POWER5
2256 if test "$_cc_major" -ge "4"; then
2257 case "$proc" in
2258 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2259 *) ;;
2260 esac
2264 if test -n "$_mcpu"; then
2265 _optimizing=$(echo $_mcpu | cut -c 8-)
2266 echores "$_optimizing"
2267 else
2268 echores "none"
2271 test $_fast_clz = "auto" && _fast_clz=yes
2275 alpha*)
2276 arch='alpha'
2277 iproc='alpha'
2279 echocheck "CPU type"
2280 cat > $TMPC << EOF
2281 int main(void) {
2282 unsigned long ver, mask;
2283 __asm__ ("implver %0" : "=r" (ver));
2284 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2285 printf("%ld-%x\n", ver, ~mask);
2286 return 0;
2289 $_cc -o "$TMPEXE" "$TMPC"
2290 case $("$TMPEXE") in
2292 0-0) proc="ev4"; _mvi="0";;
2293 1-0) proc="ev5"; _mvi="0";;
2294 1-1) proc="ev56"; _mvi="0";;
2295 1-101) proc="pca56"; _mvi="1";;
2296 2-303) proc="ev6"; _mvi="1";;
2297 2-307) proc="ev67"; _mvi="1";;
2298 2-1307) proc="ev68"; _mvi="1";;
2299 esac
2300 echores "$proc"
2302 echocheck "GCC & CPU optimization abilities"
2303 if test "$proc" = "ev68" ; then
2304 cc_check -mcpu=$proc || proc=ev67
2306 if test "$proc" = "ev67" ; then
2307 cc_check -mcpu=$proc || proc=ev6
2309 _mcpu="-mcpu=$proc"
2310 echores "$proc"
2312 test $_fast_clz = "auto" && _fast_clz=yes
2314 _optimizing="$proc"
2317 mips)
2318 arch='mips'
2319 iproc='mips'
2321 if irix ; then
2322 echocheck "CPU type"
2323 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2324 case "$(echo $proc)" in
2325 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2326 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2327 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2328 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2329 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2330 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2331 esac
2332 # gcc < 3.x does not support -mtune.
2333 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2334 _mcpu=''
2336 echores "$proc"
2339 test $_fast_clz = "auto" && _fast_clz=yes
2343 hppa)
2344 arch='pa_risc'
2345 iproc='PA-RISC'
2348 s390)
2349 arch='s390'
2350 iproc='390'
2353 s390x)
2354 arch='s390x'
2355 iproc='390x'
2358 vax)
2359 arch='vax'
2360 iproc='vax'
2363 xtensa)
2364 arch='xtensa'
2365 iproc='xtensa'
2368 generic)
2369 arch='generic'
2373 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2374 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2375 die "unsupported architecture $host_arch"
2377 esac # case "$host_arch" in
2379 if test "$_runtime_cpudetection" = yes ; then
2380 if x86 ; then
2381 test "$_cmov" != no && _cmov=yes
2382 x86_32 && _cmov=no
2383 test "$_mmx" != no && _mmx=yes
2384 test "$_3dnow" != no && _3dnow=yes
2385 test "$_3dnowext" != no && _3dnowext=yes
2386 test "$_mmxext" != no && _mmxext=yes
2387 test "$_sse" != no && _sse=yes
2388 test "$_sse2" != no && _sse2=yes
2389 test "$_ssse3" != no && _ssse3=yes
2390 test "$_mtrr" != no && _mtrr=yes
2392 if ppc; then
2393 _altivec=yes
2398 # endian testing
2399 echocheck "byte order"
2400 if test "$_big_endian" = auto ; then
2401 cat > $TMPC <<EOF
2402 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2403 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2404 int main(void) { return (int)ascii_name; }
2406 if cc_check ; then
2407 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2408 _big_endian=yes
2409 else
2410 _big_endian=no
2412 else
2413 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2416 if test "$_big_endian" = yes ; then
2417 _byte_order='big-endian'
2418 def_words_endian='#define WORDS_BIGENDIAN 1'
2419 def_bigendian='#define HAVE_BIGENDIAN 1'
2420 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2421 else
2422 _byte_order='little-endian'
2423 def_words_endian='#undef WORDS_BIGENDIAN'
2424 def_bigendian='#define HAVE_BIGENDIAN 0'
2425 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2427 echores "$_byte_order"
2430 echocheck "extern symbol prefix"
2431 cat > $TMPC << EOF
2432 int ff_extern;
2434 cc_check -c || die "Symbol mangling check failed."
2435 sym=$($_nm -P -g $TMPEXE)
2436 extern_prefix=${sym%%ff_extern*}
2437 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2438 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2439 echores $extern_prefix
2442 echocheck "assembler support of -pipe option"
2443 cat > $TMPC << EOF
2444 int main(void) { return 0; }
2446 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2447 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2450 echocheck "compiler support of named assembler arguments"
2451 _named_asm_args=yes
2452 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2453 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2454 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2455 _named_asm_args=no
2456 def_named_asm_args="#undef NAMED_ASM_ARGS"
2458 echores $_named_asm_args
2461 if darwin && test "$cc_vendor" = "gnu" ; then
2462 echocheck "GCC support of -mstackrealign"
2463 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2464 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2465 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2466 # wrong code with this flag, but this can be worked around by adding
2467 # -fno-unit-at-a-time as described in the blog post at
2468 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2469 cat > $TMPC << EOF
2470 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2471 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2473 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2474 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2475 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2476 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2477 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2480 # Checking for CFLAGS
2481 _install_strip="-s"
2482 if test "$_profile" != "" || test "$_debug" != "" ; then
2483 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2484 _install_strip=
2485 elif test -z "$CFLAGS" ; then
2486 if test "$cc_vendor" = "intel" ; then
2487 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2488 elif test "$cc_vendor" = "sun" ; then
2489 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2490 elif test "$cc_vendor" != "gnu" ; then
2491 CFLAGS="-O2 $_march $_mcpu $_pipe"
2492 else
2493 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2494 extra_ldflags="$extra_ldflags -ffast-math"
2496 else
2497 _warn_CFLAGS=yes
2500 cat > $TMPC << EOF
2501 int main(void) { return 0; }
2503 if test "$cc_vendor" = "gnu" ; then
2504 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2505 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2506 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2507 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2508 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2509 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2510 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2511 else
2512 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2515 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2516 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2519 if test -n "$LDFLAGS" ; then
2520 extra_ldflags="$extra_ldflags $LDFLAGS"
2521 _warn_CFLAGS=yes
2522 elif test "$cc_vendor" = "intel" ; then
2523 extra_ldflags="$extra_ldflags -i-static"
2525 if test -n "$CPPFLAGS" ; then
2526 extra_cflags="$extra_cflags $CPPFLAGS"
2527 _warn_CFLAGS=yes
2532 if x86_32 ; then
2533 # Checking assembler (_as) compatibility...
2534 # Added workaround for older as that reads from stdin by default - atmos
2535 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2536 echocheck "assembler ($_as $as_version)"
2538 _pref_as_version='2.9.1'
2539 echo 'nop' > $TMPS
2540 if test "$_mmx" = yes ; then
2541 echo 'emms' >> $TMPS
2543 if test "$_3dnow" = yes ; then
2544 _pref_as_version='2.10.1'
2545 echo 'femms' >> $TMPS
2547 if test "$_3dnowext" = yes ; then
2548 _pref_as_version='2.10.1'
2549 echo 'pswapd %mm0, %mm0' >> $TMPS
2551 if test "$_mmxext" = yes ; then
2552 _pref_as_version='2.10.1'
2553 echo 'movntq %mm0, (%eax)' >> $TMPS
2555 if test "$_sse" = yes ; then
2556 _pref_as_version='2.10.1'
2557 echo 'xorps %xmm0, %xmm0' >> $TMPS
2559 #if test "$_sse2" = yes ; then
2560 # _pref_as_version='2.11'
2561 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2563 if test "$_cmov" = yes ; then
2564 _pref_as_version='2.10.1'
2565 echo 'cmovb %eax, %ebx' >> $TMPS
2567 if test "$_ssse3" = yes ; then
2568 _pref_as_version='2.16.92'
2569 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2571 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2573 if test "$as_verc_fail" != yes ; then
2574 echores "ok"
2575 else
2576 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2577 echores "failed"
2578 die "obsolete binutils version"
2581 fi #if x86_32
2583 echocheck ".align is a power of two"
2584 if test "$_asmalign_pot" = auto ; then
2585 _asmalign_pot=no
2586 cat > $TMPC << EOF
2587 int main(void) { __asm__ (".align 3"); return 0; }
2589 cc_check && _asmalign_pot=yes
2591 if test "$_asmalign_pot" = "yes" ; then
2592 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2593 else
2594 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2596 echores $_asmalign_pot
2598 if x86 ; then
2599 echocheck "10 assembler operands"
2600 ten_operands=no
2601 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2602 cat > $TMPC << EOF
2603 int main(void) {
2604 int x=0;
2605 __asm__ volatile(
2607 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2609 return 0;
2612 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2613 echores $ten_operands
2615 echocheck "ebx availability"
2616 ebx_available=no
2617 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2618 cat > $TMPC << EOF
2619 int main(void) {
2620 int x;
2621 __asm__ volatile(
2622 "xor %0, %0"
2623 :"=b"(x)
2624 // just adding ebx to clobber list seems unreliable with some
2625 // compilers, e.g. Haiku's gcc 2.95
2627 // and the above check does not work for OSX 64 bit...
2628 __asm__ volatile("":::"%ebx");
2629 return 0;
2632 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2633 echores $ebx_available
2635 echocheck "PIC"
2636 pic=no
2637 cat > $TMPC << EOF
2638 int main(void) {
2639 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2640 #error PIC not enabled
2641 #endif
2642 return 0;
2645 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2646 echores $pic
2648 echocheck "yasm"
2649 if test -z "$YASMFLAGS" ; then
2650 if darwin ; then
2651 x86_64 && objformat="macho64" || objformat="macho"
2652 elif win32 ; then
2653 objformat="win32"
2654 else
2655 objformat="elf"
2657 # currently tested for Linux x86, x86_64
2658 YASMFLAGS="-f $objformat"
2659 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2660 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2661 case "$objformat" in
2662 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2663 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2664 esac
2665 else
2666 _warn_CFLAGS=yes
2669 echo "pabsw xmm0, xmm0" > $TMPS
2670 yasm_check || _yasm=""
2671 if test $_yasm ; then
2672 def_yasm='#define HAVE_YASM 1'
2673 have_yasm="yes"
2674 echores "$_yasm"
2675 else
2676 def_yasm='#define HAVE_YASM 0'
2677 have_yasm="no"
2678 echores "no"
2681 echocheck "bswap"
2682 def_bswap='#define HAVE_BSWAP 0'
2683 echo 'bswap %eax' > $TMPS
2684 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2685 echores "$bswap"
2686 fi #if x86
2689 #FIXME: This should happen before the check for CFLAGS..
2690 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2691 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2693 # check if AltiVec is supported by the compiler, and how to enable it
2694 echocheck "GCC AltiVec flags"
2695 cat > $TMPC << EOF
2696 int main(void) { return 0; }
2698 if $(cc_check -maltivec -mabi=altivec) ; then
2699 _altivec_gcc_flags="-maltivec -mabi=altivec"
2700 # check if <altivec.h> should be included
2701 cat > $TMPC << EOF
2702 #include <altivec.h>
2703 int main(void) { return 0; }
2705 if $(cc_check $_altivec_gcc_flags) ; then
2706 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2707 inc_altivec_h='#include <altivec.h>'
2708 else
2709 cat > $TMPC << EOF
2710 int main(void) { return 0; }
2712 if $(cc_check -faltivec) ; then
2713 _altivec_gcc_flags="-faltivec"
2714 else
2715 _altivec=no
2716 _altivec_gcc_flags="none, AltiVec disabled"
2720 echores "$_altivec_gcc_flags"
2722 # check if the compiler supports braces for vector declarations
2723 cat > $TMPC << EOF
2724 $inc_altivec_h
2725 int main(void) { (vector int) {1}; return 0; }
2727 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2729 # Disable runtime cpudetection if we cannot generate AltiVec code or
2730 # AltiVec is disabled by the user.
2731 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2732 && _runtime_cpudetection=no
2734 # Show that we are optimizing for AltiVec (if enabled and supported).
2735 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2736 && _optimizing="$_optimizing altivec"
2738 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2739 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2742 if ppc ; then
2743 def_xform_asm='#define HAVE_XFORM_ASM 0'
2744 xform_asm=no
2745 echocheck "XFORM ASM support"
2746 cat > $TMPC << EOF
2747 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2749 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2750 echores "$xform_asm"
2753 if arm ; then
2754 echocheck "ARM pld instruction"
2755 cat > $TMPC << EOF
2756 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2758 pld=no
2759 cc_check && pld=yes
2760 echores "$pld"
2762 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2763 if test $_armv5te = "auto" ; then
2764 cat > $TMPC << EOF
2765 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2767 _armv5te=no
2768 cc_check && _armv5te=yes
2770 echores "$_armv5te"
2772 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2774 echocheck "ARMv6 (SIMD instructions)"
2775 if test $_armv6 = "auto" ; then
2776 cat > $TMPC << EOF
2777 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2779 _armv6=no
2780 cc_check && _armv6=yes
2782 echores "$_armv6"
2784 echocheck "ARMv6t2 (SIMD instructions)"
2785 if test $_armv6t2 = "auto" ; then
2786 cat > $TMPC << EOF
2787 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2789 _armv6t2=no
2790 cc_check && _armv6t2=yes
2792 echores "$_armv6"
2794 echocheck "ARM VFP"
2795 if test $_armvfp = "auto" ; then
2796 cat > $TMPC << EOF
2797 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2799 _armvfp=no
2800 cc_check && _armvfp=yes
2802 echores "$_armvfp"
2804 echocheck "ARM NEON"
2805 if test $neon = "auto" ; then
2806 cat > $TMPC << EOF
2807 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2809 neon=no
2810 cc_check && neon=yes
2812 echores "$neon"
2814 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2815 if test $_iwmmxt = "auto" ; then
2816 cat > $TMPC << EOF
2817 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2819 _iwmmxt=no
2820 cc_check && _iwmmxt=yes
2822 echores "$_iwmmxt"
2825 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2826 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2827 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2828 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2829 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2830 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2831 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2832 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2833 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2834 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2835 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2836 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2837 test "$pld" = yes && cpuexts="PLD $cpuexts"
2838 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2839 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2840 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2841 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2842 test "$neon" = yes && cpuexts="NEON $cpuexts"
2843 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2844 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2845 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2847 # Checking kernel version...
2848 if x86_32 && linux ; then
2849 _k_verc_problem=no
2850 kernel_version=$(uname -r 2>&1)
2851 echocheck "$system_name kernel version"
2852 case "$kernel_version" in
2853 '') kernel_version="?.??"; _k_verc_fail=yes;;
2854 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2855 _k_verc_problem=yes;;
2856 esac
2857 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2858 _k_verc_fail=yes
2860 if test "$_k_verc_fail" ; then
2861 echores "$kernel_version, fail"
2862 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2863 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2864 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2865 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2866 echo "2.2.x you must upgrade it to get SSE support!"
2867 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2868 else
2869 echores "$kernel_version, ok"
2873 ######################
2874 # MAIN TESTS GO HERE #
2875 ######################
2878 echocheck "-lposix"
2879 cat > $TMPC <<EOF
2880 int main(void) { return 0; }
2882 if cc_check -lposix ; then
2883 extra_ldflags="$extra_ldflags -lposix"
2884 echores "yes"
2885 else
2886 echores "no"
2889 echocheck "-lm"
2890 cat > $TMPC <<EOF
2891 int main(void) { return 0; }
2893 if cc_check -lm ; then
2894 _ld_lm="-lm"
2895 echores "yes"
2896 else
2897 _ld_lm=""
2898 echores "no"
2902 echocheck "langinfo"
2903 if test "$_langinfo" = auto ; then
2904 cat > $TMPC <<EOF
2905 #include <langinfo.h>
2906 int main(void) { nl_langinfo(CODESET); return 0; }
2908 _langinfo=no
2909 cc_check && _langinfo=yes
2911 if test "$_langinfo" = yes ; then
2912 def_langinfo='#define HAVE_LANGINFO 1'
2913 else
2914 def_langinfo='#undef HAVE_LANGINFO'
2916 echores "$_langinfo"
2919 echocheck "language"
2920 # Set preferred languages, "all" uses English as main language.
2921 test -z "$language" && language=$LINGUAS
2922 test -z "$language_doc" && language_doc=$language
2923 test -z "$language_man" && language_man=$language
2924 test -z "$language_msg" && language_msg=$language
2925 language_doc=$(echo $language_doc | tr , " ")
2926 language_man=$(echo $language_man | tr , " ")
2927 language_msg=$(echo $language_msg | tr , " ")
2929 test "$language_doc" = "all" && language_doc=$doc_lang_all
2930 test "$language_man" = "all" && language_man=$man_lang_all
2931 test "$language_msg" = "all" && language_msg=en
2933 # Prune non-existing translations from language lists.
2934 # Set message translation to the first available language.
2935 # Fall back on English.
2936 for lang in $language_doc ; do
2937 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2938 done
2939 language_doc=$tmp_language_doc
2940 test -z "$language_doc" && language_doc=en
2942 for lang in $language_man ; do
2943 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2944 done
2945 language_man=$tmp_language_man
2946 test -z "$language_man" && language_man=en
2948 for lang in $language_msg ; do
2949 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2950 done
2951 language_msg=$tmp_language_msg
2952 test -z "$language_msg" && language_msg=en
2953 _mp_help="help/help_mp-${language_msg}.h"
2954 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2957 echocheck "enable sighandler"
2958 if test "$_sighandler" = yes ; then
2959 def_sighandler='#define CONFIG_SIGHANDLER 1'
2960 else
2961 def_sighandler='#undef CONFIG_SIGHANDLER'
2963 echores "$_sighandler"
2965 echocheck "runtime cpudetection"
2966 if test "$_runtime_cpudetection" = yes ; then
2967 _optimizing="Runtime CPU-Detection enabled"
2968 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2969 else
2970 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2972 echores "$_runtime_cpudetection"
2975 echocheck "restrict keyword"
2976 for restrict_keyword in restrict __restrict __restrict__ ; do
2977 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2978 if cc_check; then
2979 def_restrict_keyword=$restrict_keyword
2980 break;
2982 done
2983 if [ -n "$def_restrict_keyword" ]; then
2984 echores "$def_restrict_keyword"
2985 else
2986 echores "none"
2988 # Avoid infinite recursion loop ("#define restrict restrict")
2989 if [ "$def_restrict_keyword" != "restrict" ]; then
2990 def_restrict_keyword="#define restrict $def_restrict_keyword"
2991 else
2992 def_restrict_keyword=""
2996 echocheck "__builtin_expect"
2997 # GCC branch prediction hint
2998 cat > $TMPC << EOF
2999 int foo(int a) {
3000 a = __builtin_expect(a, 10);
3001 return a == 10 ? 0 : 1;
3003 int main(void) { return foo(10) && foo(0); }
3005 _builtin_expect=no
3006 cc_check && _builtin_expect=yes
3007 if test "$_builtin_expect" = yes ; then
3008 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3009 else
3010 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3012 echores "$_builtin_expect"
3015 echocheck "kstat"
3016 cat > $TMPC << EOF
3017 #include <kstat.h>
3018 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3020 _kstat=no
3021 cc_check -lkstat && _kstat=yes
3022 if test "$_kstat" = yes ; then
3023 def_kstat="#define HAVE_LIBKSTAT 1"
3024 extra_ldflags="$extra_ldflags -lkstat"
3025 else
3026 def_kstat="#undef HAVE_LIBKSTAT"
3028 echores "$_kstat"
3031 echocheck "posix4"
3032 # required for nanosleep on some systems
3033 cat > $TMPC << EOF
3034 #include <time.h>
3035 int main(void) { (void) nanosleep(0, 0); return 0; }
3037 _posix4=no
3038 cc_check -lposix4 && _posix4=yes
3039 if test "$_posix4" = yes ; then
3040 extra_ldflags="$extra_ldflags -lposix4"
3042 echores "$_posix4"
3044 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
3045 echocheck $func
3046 cat > $TMPC << EOF
3047 #include <math.h>
3048 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3050 eval _$func=no
3051 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3052 if eval test "x\$_$func" = "xyes"; then
3053 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3054 echores yes
3055 else
3056 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3057 echores no
3059 done
3062 echocheck "mkstemp"
3063 cat > $TMPC << EOF
3064 #include <stdlib.h>
3065 int main(void) { char a; mkstemp(&a); return 0; }
3067 _mkstemp=no
3068 cc_check && _mkstemp=yes
3069 if test "$_mkstemp" = yes ; then
3070 def_mkstemp='#define HAVE_MKSTEMP 1'
3071 else
3072 def_mkstemp='#undef HAVE_MKSTEMP'
3074 echores "$_mkstemp"
3077 echocheck "nanosleep"
3078 # also check for nanosleep
3079 cat > $TMPC << EOF
3080 #include <time.h>
3081 int main(void) { (void) nanosleep(0, 0); return 0; }
3083 _nanosleep=no
3084 cc_check && _nanosleep=yes
3085 if test "$_nanosleep" = yes ; then
3086 def_nanosleep='#define HAVE_NANOSLEEP 1'
3087 else
3088 def_nanosleep='#undef HAVE_NANOSLEEP'
3090 echores "$_nanosleep"
3093 echocheck "socklib"
3094 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3095 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3096 cat > $TMPC << EOF
3097 #include <netdb.h>
3098 #include <sys/socket.h>
3099 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3101 _socklib=no
3102 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3103 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3104 done
3105 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3106 if test $_winsock2_h = auto ; then
3107 _winsock2_h=no
3108 cat > $TMPC << EOF
3109 #include <winsock2.h>
3110 int main(void) { (void) gethostbyname(0); return 0; }
3112 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3114 test "$_ld_sock" && _res_comment="using $_ld_sock"
3115 echores "$_socklib"
3118 if test $_winsock2_h = yes ; then
3119 _ld_sock="-lws2_32"
3120 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3121 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3122 else
3123 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3124 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3128 echocheck "netdb.h, struct addrinfo"
3129 if test "$_struct_addrinfo" = auto; then
3130 _struct_addrinfo=no
3131 cat > $TMPC << EOF
3132 #if HAVE_WINSOCK2_H
3133 #include <winsock2.h>
3134 #include <ws2tcpip.h>
3135 #else
3136 #include <sys/types.h>
3137 #include <sys/socket.h>
3138 #include <netdb.h>
3139 #endif
3140 int main(void) { struct addrinfo ai; return 0; }
3142 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3144 echores "$_struct_addrinfo"
3146 if test "$_struct_addrinfo" = yes; then
3147 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3148 else
3149 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3153 echocheck "netdb.h, getaddrinfo()"
3154 if test "$_getaddrinfo" = auto; then
3155 _getaddrinfo=no
3156 cat > $TMPC << EOF
3157 #if HAVE_WINSOCK2_H
3158 #include <winsock2.h>
3159 #else
3160 #include <sys/types.h>
3161 #include <sys/socket.h>
3162 #include <netdb.h>
3163 #endif
3164 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3166 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3168 echores "$_getaddrinfo"
3170 if test "$_getaddrinfo" = yes; then
3171 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3172 else
3173 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3177 echocheck "sockaddr_storage"
3178 if test "$_struct_sockaddr_storage" = auto; then
3179 _struct_sockaddr_storage=no
3180 cat > $TMPC << EOF
3181 #if HAVE_WINSOCK2_H
3182 #include <winsock2.h>
3183 #else
3184 #include <sys/socket.h>
3185 #endif
3186 int main(void) { struct sockaddr_storage sas; return 0; }
3188 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3190 echores "$_struct_sockaddr_storage"
3192 if test "$_struct_sockaddr_storage" = yes; then
3193 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3194 else
3195 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3199 echocheck "struct ipv6_mreq"
3200 _struct_ipv6_mreq=no
3201 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3202 for header in "netinet/in.h" "ws2tcpip.h" ; do
3203 cat > $TMPC << EOF
3204 #include <$header>
3205 int main(void) { struct ipv6_mreq mreq6; return 0; }
3207 cc_check && _struct_ipv6_mreq=yes && \
3208 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3209 done
3210 echores "$_struct_ipv6_mreq"
3213 echocheck "struct sockaddr_in6"
3214 _struct_sockaddr_in6=no
3215 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3216 for header in "netinet/in.h" "ws2tcpip.h" ; do
3217 cat > $TMPC << EOF
3218 #include <$header>
3219 int main(void) { struct sockaddr_in6 addr; return 0; }
3221 cc_check && _struct_sockaddr_in6=yes && \
3222 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3223 done
3224 echores "$_struct_sockaddr_in6"
3227 echocheck "struct sockaddr sa_len"
3228 _struct_sockaddr_sa_len=no
3229 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3230 cat > $TMPC << EOF
3231 #if HAVE_WINSOCK2_H
3232 #include <winsock2.h>
3233 #else
3234 #include <sys/types.h>
3235 #include <sys/socket.h>
3236 #endif
3237 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3239 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3240 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3241 echores "$_struct_sockaddr_sa_len"
3244 echocheck "arpa/inet.h"
3245 arpa_inet_h=no
3246 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3247 cat > $TMPC << EOF
3248 #include <arpa/inet.h>
3249 int main(void) { return 0; }
3251 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3252 echores "$arpa_inet_h"
3255 echocheck "inet_pton()"
3256 def_inet_pton='#define HAVE_INET_PTON 0'
3257 inet_pton=no
3258 cat > $TMPC << EOF
3259 #include <sys/types.h>
3260 #include <sys/socket.h>
3261 #include <arpa/inet.h>
3262 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3264 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3265 cc_check $_ld_tmp && inet_pton=yes && break
3266 done
3267 if test $inet_pton = yes ; then
3268 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3269 def_inet_pton='#define HAVE_INET_PTON 1'
3271 echores "$inet_pton"
3274 echocheck "inet_aton()"
3275 def_inet_aton='#define HAVE_INET_ATON 0'
3276 inet_aton=no
3277 cat > $TMPC << EOF
3278 #include <sys/types.h>
3279 #include <sys/socket.h>
3280 #include <arpa/inet.h>
3281 int main(void) { (void) inet_aton(0, 0); return 0; }
3283 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3284 cc_check $_ld_tmp && inet_aton=yes && break
3285 done
3286 if test $inet_aton = yes ; then
3287 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3288 def_inet_aton='#define HAVE_INET_ATON 1'
3290 echores "$inet_aton"
3293 echocheck "socklen_t"
3294 _socklen_t=no
3295 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3296 cat > $TMPC << EOF
3297 #include <$header>
3298 int main(void) { socklen_t v = 0; return v; }
3300 cc_check && _socklen_t=yes && break
3301 done
3302 if test "$_socklen_t" = yes ; then
3303 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3304 else
3305 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3307 echores "$_socklen_t"
3310 echocheck "closesocket()"
3311 _closesocket=no
3312 cat > $TMPC << EOF
3313 #include <winsock2.h>
3314 int main(void) { closesocket(~0); return 0; }
3316 cc_check $_ld_sock && _closesocket=yes
3317 if test "$_closesocket" = yes ; then
3318 def_closesocket='#define HAVE_CLOSESOCKET 1'
3319 else
3320 def_closesocket='#define HAVE_CLOSESOCKET 0'
3322 echores "$_closesocket"
3325 echocheck "network"
3326 test $_winsock2_h = no && test $inet_pton = no &&
3327 test $inet_aton = no && _network=no
3328 if test "$_network" = yes ; then
3329 def_network='#define CONFIG_NETWORK 1'
3330 extra_ldflags="$extra_ldflags $_ld_sock"
3331 _inputmodules="network $_inputmodules"
3332 else
3333 _noinputmodules="network $_noinputmodules"
3334 def_network='#undef CONFIG_NETWORK'
3335 _ftp=no
3336 _libavprotocols=$(echo $_libavprotocols | sed -e s/GOPHER_PROTOCOL// -e s/HTTP_PROTOCOL// -e s/RTMP_PROTOCOL// -e s/RTP_PROTOCOL// -e s/TCP_PROTOCOL// -e s/UDP_PROTOCOL//)
3337 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3339 echores "$_network"
3342 echocheck "inet6"
3343 if test "$_inet6" = auto ; then
3344 cat > $TMPC << EOF
3345 #include <sys/types.h>
3346 #if !defined(_WIN32) || defined(__CYGWIN__)
3347 #include <sys/socket.h>
3348 #include <netinet/in.h>
3349 #else
3350 #include <ws2tcpip.h>
3351 #endif
3352 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3354 _inet6=no
3355 if cc_check $_ld_sock ; then
3356 _inet6=yes
3359 if test "$_inet6" = yes ; then
3360 def_inet6='#define HAVE_AF_INET6 1'
3361 else
3362 def_inet6='#undef HAVE_AF_INET6'
3364 echores "$_inet6"
3367 echocheck "gethostbyname2"
3368 if test "$_gethostbyname2" = auto ; then
3369 cat > $TMPC << EOF
3370 #include <sys/types.h>
3371 #include <sys/socket.h>
3372 #include <netdb.h>
3373 int main(void) { gethostbyname2("", AF_INET); return 0; }
3375 _gethostbyname2=no
3376 if cc_check ; then
3377 _gethostbyname2=yes
3380 if test "$_gethostbyname2" = yes ; then
3381 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3382 else
3383 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3385 echores "$_gethostbyname2"
3388 echocheck "inttypes.h (required)"
3389 cat > $TMPC << EOF
3390 #include <inttypes.h>
3391 int main(void) { return 0; }
3393 _inttypes=no
3394 cc_check && _inttypes=yes
3395 echores "$_inttypes"
3397 if test "$_inttypes" = no ; then
3398 echocheck "bitypes.h (inttypes.h predecessor)"
3399 cat > $TMPC << EOF
3400 #include <sys/bitypes.h>
3401 int main(void) { return 0; }
3403 cc_check && _inttypes=yes
3404 if test "$_inttypes" = yes ; then
3405 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."
3406 else
3407 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3412 echocheck "int_fastXY_t in inttypes.h"
3413 cat > $TMPC << EOF
3414 #include <inttypes.h>
3415 int main(void) {
3416 volatile int_fast16_t v= 0;
3417 return v; }
3419 _fast_inttypes=no
3420 cc_check && _fast_inttypes=yes
3421 if test "$_fast_inttypes" = no ; then
3422 def_fast_inttypes='
3423 typedef signed char int_fast8_t;
3424 typedef signed int int_fast16_t;
3425 typedef signed int int_fast32_t;
3426 typedef signed long long int_fast64_t;
3427 typedef unsigned char uint_fast8_t;
3428 typedef unsigned int uint_fast16_t;
3429 typedef unsigned int uint_fast32_t;
3430 typedef unsigned long long uint_fast64_t;'
3432 echores "$_fast_inttypes"
3435 echocheck "malloc.h"
3436 cat > $TMPC << EOF
3437 #include <malloc.h>
3438 int main(void) { (void) malloc(0); return 0; }
3440 _malloc=no
3441 cc_check && _malloc=yes
3442 if test "$_malloc" = yes ; then
3443 def_malloc_h='#define HAVE_MALLOC_H 1'
3444 else
3445 def_malloc_h='#define HAVE_MALLOC_H 0'
3447 # malloc.h emits a warning in FreeBSD and OpenBSD
3448 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3449 echores "$_malloc"
3452 echocheck "memalign()"
3453 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3454 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3455 cat > $TMPC << EOF
3456 #include <malloc.h>
3457 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3459 _memalign=no
3460 cc_check && _memalign=yes
3461 if test "$_memalign" = yes ; then
3462 def_memalign='#define HAVE_MEMALIGN 1'
3463 else
3464 def_memalign='#define HAVE_MEMALIGN 0'
3465 def_map_memalign='#define memalign(a,b) malloc(b)'
3466 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3468 echores "$_memalign"
3471 echocheck "posix_memalign()"
3472 posix_memalign=no
3473 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3474 cat > $TMPC << EOF
3475 #define _XOPEN_SOURCE 600
3476 #include <stdlib.h>
3477 int main(void) { posix_memalign(NULL, 0, 0); }
3479 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3480 echores "$posix_memalign"
3483 echocheck "alloca.h"
3484 cat > $TMPC << EOF
3485 #include <alloca.h>
3486 int main(void) { (void) alloca(0); return 0; }
3488 _alloca=no
3489 cc_check && _alloca=yes
3490 if cc_check ; then
3491 def_alloca_h='#define HAVE_ALLOCA_H 1'
3492 else
3493 def_alloca_h='#undef HAVE_ALLOCA_H'
3495 echores "$_alloca"
3498 echocheck "fastmemcpy"
3499 if test "$_fastmemcpy" = yes ; then
3500 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3501 else
3502 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3504 echores "$_fastmemcpy"
3507 echocheck "hard-coded tables"
3508 if test "$hardcoded_tables" = yes ; then
3509 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3510 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3511 else
3512 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3514 echores "$hardcoded_tables"
3517 echocheck "mman.h"
3518 cat > $TMPC << EOF
3519 #include <sys/types.h>
3520 #include <sys/mman.h>
3521 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3523 _mman=no
3524 cc_check && _mman=yes
3525 if test "$_mman" = yes ; then
3526 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3527 else
3528 def_mman_h='#undef HAVE_SYS_MMAN_H'
3529 os2 && _need_mmap=yes
3531 echores "$_mman"
3533 cat > $TMPC << EOF
3534 #include <sys/types.h>
3535 #include <sys/mman.h>
3536 int main(void) { void *p = MAP_FAILED; return 0; }
3538 _mman_has_map_failed=no
3539 cc_check && _mman_has_map_failed=yes
3540 if test "$_mman_has_map_failed" = yes ; then
3541 def_mman_has_map_failed=''
3542 else
3543 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3546 echocheck "dynamic loader"
3547 cat > $TMPC << EOF
3548 #include <stddef.h>
3549 #include <dlfcn.h>
3550 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3552 _dl=no
3553 for _ld_tmp in "" "-ldl" ; do
3554 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3555 done
3556 if test "$_dl" = yes ; then
3557 def_dl='#define HAVE_LIBDL 1'
3558 else
3559 def_dl='#undef HAVE_LIBDL'
3561 echores "$_dl"
3564 echocheck "dynamic a/v plugins support"
3565 if test "$_dl" = no ; then
3566 _dynamic_plugins=no
3568 if test "$_dynamic_plugins" = yes ; then
3569 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3570 else
3571 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3573 echores "$_dynamic_plugins"
3576 def_threads='#define HAVE_THREADS 0'
3578 echocheck "pthread"
3579 if linux ; then
3580 THREAD_CFLAGS=-D_REENTRANT
3581 elif freebsd || netbsd || openbsd || bsdos ; then
3582 THREAD_CFLAGS=-D_THREAD_SAFE
3584 if test "$_pthreads" = auto ; then
3585 cat > $TMPC << EOF
3586 #include <pthread.h>
3587 void* func(void *arg) { return arg; }
3588 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3590 _pthreads=no
3591 if ! hpux ; then
3592 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3593 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3594 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3595 done
3598 if test "$_pthreads" = yes ; then
3599 test $_ld_pthread && _res_comment="using $_ld_pthread"
3600 def_pthreads='#define HAVE_PTHREADS 1'
3601 def_threads='#define HAVE_THREADS 1'
3602 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3603 else
3604 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3605 def_pthreads='#undef HAVE_PTHREADS'
3606 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3607 mingw32 || _win32dll=no
3609 echores "$_pthreads"
3611 if cygwin ; then
3612 if test "$_pthreads" = yes ; then
3613 def_pthread_cache="#define PTHREAD_CACHE 1"
3614 else
3615 _stream_cache=no
3616 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3620 echocheck "w32threads"
3621 if test "$_pthreads" = yes ; then
3622 _res_comment="using pthread instead"
3623 _w32threads=no
3625 if test "$_w32threads" = auto ; then
3626 _w32threads=no
3627 mingw32 && _w32threads=yes
3629 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3630 echores "$_w32threads"
3632 echocheck "rpath"
3633 netbsd &&_rpath=yes
3634 if test "$_rpath" = yes ; then
3635 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3636 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3637 done
3638 extra_ldflags=$tmp
3640 echores "$_rpath"
3642 echocheck "iconv"
3643 if test "$_iconv" = auto ; then
3644 cat > $TMPC << EOF
3645 #include <stdio.h>
3646 #include <unistd.h>
3647 #include <iconv.h>
3648 #define INBUFSIZE 1024
3649 #define OUTBUFSIZE 4096
3651 char inbuffer[INBUFSIZE];
3652 char outbuffer[OUTBUFSIZE];
3654 int main(void) {
3655 size_t numread;
3656 iconv_t icdsc;
3657 char *tocode="UTF-8";
3658 char *fromcode="cp1250";
3659 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3660 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3661 char *iptr=inbuffer;
3662 char *optr=outbuffer;
3663 size_t inleft=numread;
3664 size_t outleft=OUTBUFSIZE;
3665 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3666 != (size_t)(-1)) {
3667 write(1, outbuffer, OUTBUFSIZE - outleft);
3670 if (iconv_close(icdsc) == -1)
3673 return 0;
3676 _iconv=no
3677 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3678 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3679 _iconv=yes && break
3680 done
3682 if test "$_iconv" = yes ; then
3683 def_iconv='#define CONFIG_ICONV 1'
3684 else
3685 def_iconv='#undef CONFIG_ICONV'
3687 echores "$_iconv"
3690 echocheck "soundcard.h"
3691 _soundcard_h=no
3692 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3693 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3694 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3695 cat > $TMPC << EOF
3696 #include <$_soundcard_header>
3697 int main(void) { return 0; }
3699 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3700 done
3702 if test "$_soundcard_h" = yes ; then
3703 if test $_soundcard_header = "sys/soundcard.h"; then
3704 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3705 else
3706 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3709 echores "$_soundcard_h"
3712 echocheck "sys/dvdio.h"
3713 cat > $TMPC << EOF
3714 #include <unistd.h>
3715 #include <sys/dvdio.h>
3716 int main(void) { return 0; }
3718 _dvdio=no
3719 cc_check && _dvdio=yes
3720 if test "$_dvdio" = yes ; then
3721 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3722 else
3723 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3725 echores "$_dvdio"
3728 echocheck "sys/cdio.h"
3729 cat > $TMPC << EOF
3730 #include <unistd.h>
3731 #include <sys/cdio.h>
3732 int main(void) { return 0; }
3734 _cdio=no
3735 cc_check && _cdio=yes
3736 if test "$_cdio" = yes ; then
3737 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3738 else
3739 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3741 echores "$_cdio"
3744 echocheck "linux/cdrom.h"
3745 cat > $TMPC << EOF
3746 #include <sys/types.h>
3747 #include <linux/cdrom.h>
3748 int main(void) { return 0; }
3750 _cdrom=no
3751 cc_check && _cdrom=yes
3752 if test "$_cdrom" = yes ; then
3753 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3754 else
3755 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3757 echores "$_cdrom"
3760 echocheck "dvd.h"
3761 cat > $TMPC << EOF
3762 #include <dvd.h>
3763 int main(void) { return 0; }
3765 _dvd=no
3766 cc_check && _dvd=yes
3767 if test "$_dvd" = yes ; then
3768 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3769 else
3770 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3772 echores "$_dvd"
3775 if bsdos; then
3776 echocheck "BSDI dvd.h"
3777 cat > $TMPC << EOF
3778 #include <dvd.h>
3779 int main(void) { return 0; }
3781 _bsdi_dvd=no
3782 cc_check && _bsdi_dvd=yes
3783 if test "$_bsdi_dvd" = yes ; then
3784 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3785 else
3786 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3788 echores "$_bsdi_dvd"
3789 fi #if bsdos
3792 if hpux; then
3793 # also used by AIX, but AIX does not support VCD and/or libdvdread
3794 echocheck "HP-UX SCSI header"
3795 cat > $TMPC << EOF
3796 #include <sys/scsi.h>
3797 int main(void) { return 0; }
3799 _hpux_scsi_h=no
3800 cc_check && _hpux_scsi_h=yes
3801 if test "$_hpux_scsi_h" = yes ; then
3802 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3803 else
3804 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3806 echores "$_hpux_scsi_h"
3807 fi #if hpux
3810 if sunos; then
3811 echocheck "userspace SCSI headers (Solaris)"
3812 cat > $TMPC << EOF
3813 #include <unistd.h>
3814 #include <stropts.h>
3815 #include <sys/scsi/scsi_types.h>
3816 #include <sys/scsi/impl/uscsi.h>
3817 int main(void) { return 0; }
3819 _sol_scsi_h=no
3820 cc_check && _sol_scsi_h=yes
3821 if test "$_sol_scsi_h" = yes ; then
3822 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3823 else
3824 def_sol_scsi_h='#undef SOLARIS_USCSI'
3826 echores "$_sol_scsi_h"
3827 fi #if sunos
3830 echocheck "termcap"
3831 if test "$_termcap" = auto ; then
3832 cat > $TMPC <<EOF
3833 #include <stddef.h>
3834 #include <term.h>
3835 int main(void) { tgetent(NULL, NULL); return 0; }
3837 _termcap=no
3838 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3839 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3840 && _termcap=yes && break
3841 done
3843 if test "$_termcap" = yes ; then
3844 def_termcap='#define HAVE_TERMCAP 1'
3845 test $_ld_tmp && _res_comment="using $_ld_tmp"
3846 else
3847 def_termcap='#undef HAVE_TERMCAP'
3849 echores "$_termcap"
3852 echocheck "termios"
3853 def_termios='#undef HAVE_TERMIOS'
3854 def_termios_h='#undef HAVE_TERMIOS_H'
3855 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3856 if test "$_termios" = auto ; then
3857 _termios=no
3858 for _termios_header in "sys/termios.h" "termios.h"; do
3859 cat > $TMPC <<EOF
3860 #include <$_termios_header>
3861 int main(void) { return 0; }
3863 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3864 done
3867 if test "$_termios" = yes ; then
3868 def_termios='#define HAVE_TERMIOS 1'
3869 if test "$_termios_header" = "termios.h" ; then
3870 def_termios_h='#define HAVE_TERMIOS_H 1'
3871 else
3872 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3875 echores "$_termios"
3878 echocheck "shm"
3879 if test "$_shm" = auto ; then
3880 cat > $TMPC << EOF
3881 #include <sys/types.h>
3882 #include <sys/shm.h>
3883 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3885 _shm=no
3886 cc_check && _shm=yes
3888 if test "$_shm" = yes ; then
3889 def_shm='#define HAVE_SHM 1'
3890 else
3891 def_shm='#undef HAVE_SHM'
3893 echores "$_shm"
3896 echocheck "strsep()"
3897 cat > $TMPC << EOF
3898 #include <string.h>
3899 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3901 _strsep=no
3902 cc_check && _strsep=yes
3903 if test "$_strsep" = yes ; then
3904 def_strsep='#define HAVE_STRSEP 1'
3905 _need_strsep=no
3906 else
3907 def_strsep='#undef HAVE_STRSEP'
3908 _need_strsep=yes
3910 echores "$_strsep"
3913 echocheck "vsscanf()"
3914 cat > $TMPC << EOF
3915 #define _ISOC99_SOURCE
3916 #include <stdarg.h>
3917 #include <stdio.h>
3918 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3920 _vsscanf=no
3921 cc_check && _vsscanf=yes
3922 if test "$_vsscanf" = yes ; then
3923 def_vsscanf='#define HAVE_VSSCANF 1'
3924 _need_vsscanf=no
3925 else
3926 def_vsscanf='#undef HAVE_VSSCANF'
3927 _need_vsscanf=yes
3929 echores "$_vsscanf"
3932 echocheck "swab()"
3933 cat > $TMPC << EOF
3934 #define _XOPEN_SOURCE 600
3935 #include <unistd.h>
3936 int main(void) { swab(0, 0, 0); return 0; }
3938 _swab=no
3939 cc_check && _swab=yes
3940 if test "$_swab" = yes ; then
3941 def_swab='#define HAVE_SWAB 1'
3942 _need_swab=no
3943 else
3944 def_swab='#undef HAVE_SWAB'
3945 _need_swab=yes
3947 echores "$_swab"
3949 echocheck "POSIX select()"
3950 cat > $TMPC << EOF
3951 #include <stdio.h>
3952 #include <stdlib.h>
3953 #include <sys/types.h>
3954 #include <string.h>
3955 #include <sys/time.h>
3956 #include <unistd.h>
3957 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3959 _posix_select=no
3960 def_posix_select='#undef HAVE_POSIX_SELECT'
3961 #select() of kLIBC (OS/2) supports socket only
3962 ! os2 && cc_check && _posix_select=yes \
3963 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3964 echores "$_posix_select"
3967 echocheck "audio select()"
3968 if test "$_select" = no ; then
3969 def_select='#undef HAVE_AUDIO_SELECT'
3970 elif test "$_select" = yes ; then
3971 def_select='#define HAVE_AUDIO_SELECT 1'
3973 echores "$_select"
3976 echocheck "gettimeofday()"
3977 cat > $TMPC << EOF
3978 #include <stdio.h>
3979 #include <sys/time.h>
3980 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3982 _gettimeofday=no
3983 cc_check && _gettimeofday=yes
3984 if test "$_gettimeofday" = yes ; then
3985 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3986 _need_gettimeofday=no
3987 else
3988 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3989 _need_gettimeofday=yes
3991 echores "$_gettimeofday"
3994 echocheck "glob()"
3995 cat > $TMPC << EOF
3996 #include <stdio.h>
3997 #include <glob.h>
3998 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4000 _glob=no
4001 cc_check && _glob=yes
4002 if test "$_glob" = yes ; then
4003 def_glob='#define HAVE_GLOB 1'
4004 _need_glob=no
4005 else
4006 def_glob='#undef HAVE_GLOB'
4007 _need_glob=yes
4009 echores "$_glob"
4012 echocheck "setenv()"
4013 cat > $TMPC << EOF
4014 #include <stdlib.h>
4015 int main(void) { setenv("","",0); return 0; }
4017 _setenv=no
4018 cc_check && _setenv=yes
4019 if test "$_setenv" = yes ; then
4020 def_setenv='#define HAVE_SETENV 1'
4021 _need_setenv=no
4022 else
4023 def_setenv='#undef HAVE_SETENV'
4024 _need_setenv=yes
4026 echores "$_setenv"
4029 echocheck "setmode()"
4030 _setmode=no
4031 def_setmode='#define HAVE_SETMODE 0'
4032 cat > $TMPC << EOF
4033 #include <io.h>
4034 int main(void) { setmode(0, 0); return 0; }
4036 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
4037 echores "$_setmode"
4040 if sunos; then
4041 echocheck "sysi86()"
4042 cat > $TMPC << EOF
4043 #include <sys/sysi86.h>
4044 int main(void) { sysi86(0); return 0; }
4046 _sysi86=no
4047 cc_check && _sysi86=yes
4048 if test "$_sysi86" = yes ; then
4049 def_sysi86='#define HAVE_SYSI86 1'
4050 cat > $TMPC << EOF
4051 #include <sys/sysi86.h>
4052 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4054 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4055 else
4056 def_sysi86='#undef HAVE_SYSI86'
4058 echores "$_sysi86"
4059 fi #if sunos
4062 echocheck "sys/sysinfo.h"
4063 cat > $TMPC << EOF
4064 #include <sys/sysinfo.h>
4065 int main(void) {
4066 struct sysinfo s_info;
4067 sysinfo(&s_info);
4068 return 0;
4071 _sys_sysinfo=no
4072 cc_check && _sys_sysinfo=yes
4073 if test "$_sys_sysinfo" = yes ; then
4074 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4075 else
4076 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4078 echores "$_sys_sysinfo"
4081 if darwin; then
4083 echocheck "Mac OS X Finder Support"
4084 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4085 if test "$_macosx_finder" = yes ; then
4086 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4087 extra_ldflags="$extra_ldflags -framework Carbon"
4089 echores "$_macosx_finder"
4091 echocheck "Mac OS X Bundle file locations"
4092 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4093 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4094 if test "$_macosx_bundle" = yes ; then
4095 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4096 extra_ldflags="$extra_ldflags -framework Carbon"
4098 echores "$_macosx_bundle"
4100 echocheck "Apple Remote"
4101 if test "$_apple_remote" = auto ; then
4102 _apple_remote=no
4103 cat > $TMPC <<EOF
4104 #include <stdio.h>
4105 #include <IOKit/IOCFPlugIn.h>
4106 int main(void) {
4107 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4108 CFMutableDictionaryRef hidMatchDictionary;
4109 IOReturn ioReturnValue;
4111 // Set up a matching dictionary to search the I/O Registry by class.
4112 // name for all HID class devices
4113 hidMatchDictionary = IOServiceMatching("AppleIRController");
4115 // Now search I/O Registry for matching devices.
4116 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4117 hidMatchDictionary, &hidObjectIterator);
4119 // If search is unsuccessful, return nonzero.
4120 if (ioReturnValue != kIOReturnSuccess ||
4121 !IOIteratorIsValid(hidObjectIterator)) {
4122 return 1;
4124 return 0;
4127 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4129 if test "$_apple_remote" = yes ; then
4130 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4131 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4132 else
4133 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4135 echores "$_apple_remote"
4137 fi #if darwin
4139 if linux; then
4141 echocheck "Apple IR"
4142 if test "$_apple_ir" = auto ; then
4143 _apple_ir=no
4144 cat > $TMPC <<EOF
4145 #include <linux/types.h>
4146 #include <linux/input.h>
4147 int main(void) {
4148 struct input_event ev;
4149 struct input_id id;
4150 return 0;
4153 cc_check && _apple_ir=yes
4155 if test "$_apple_ir" = yes ; then
4156 def_apple_ir='#define CONFIG_APPLE_IR 1'
4157 else
4158 def_apple_ir='#undef CONFIG_APPLE_IR'
4160 echores "$_apple_ir"
4161 fi #if linux
4163 echocheck "pkg-config"
4164 _pkg_config=pkg-config
4165 if $($_pkg_config --version > /dev/null 2>&1); then
4166 if test "$_ld_static"; then
4167 _pkg_config="$_pkg_config --static"
4169 echores "yes"
4170 else
4171 _pkg_config=false
4172 echores "no"
4176 echocheck "Samba support (libsmbclient)"
4177 if test "$_smb" = yes; then
4178 extra_ldflags="$extra_ldflags -lsmbclient"
4180 if test "$_smb" = auto; then
4181 _smb=no
4182 cat > $TMPC << EOF
4183 #include <libsmbclient.h>
4184 int main(void) { smbc_opendir("smb://"); return 0; }
4186 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4187 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4188 _smb=yes && break
4189 done
4192 if test "$_smb" = yes; then
4193 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4194 _inputmodules="smb $_inputmodules"
4195 else
4196 def_smb="#undef CONFIG_LIBSMBCLIENT"
4197 _noinputmodules="smb $_noinputmodules"
4199 echores "$_smb"
4202 #########
4203 # VIDEO #
4204 #########
4207 echocheck "tdfxfb"
4208 if test "$_tdfxfb" = yes ; then
4209 def_tdfxfb='#define CONFIG_TDFXFB 1'
4210 _vomodules="tdfxfb $_vomodules"
4211 else
4212 def_tdfxfb='#undef CONFIG_TDFXFB'
4213 _novomodules="tdfxfb $_novomodules"
4215 echores "$_tdfxfb"
4217 echocheck "s3fb"
4218 if test "$_s3fb" = yes ; then
4219 def_s3fb='#define CONFIG_S3FB 1'
4220 _vomodules="s3fb $_vomodules"
4221 else
4222 def_s3fb='#undef CONFIG_S3FB'
4223 _novomodules="s3fb $_novomodules"
4225 echores "$_s3fb"
4227 echocheck "wii"
4228 if test "$_wii" = yes ; then
4229 def_wii='#define CONFIG_WII 1'
4230 _vomodules="wii $_vomodules"
4231 else
4232 def_wii='#undef CONFIG_WII'
4233 _novomodules="wii $_novomodules"
4235 echores "$_wii"
4237 echocheck "tdfxvid"
4238 if test "$_tdfxvid" = yes ; then
4239 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4240 _vomodules="tdfx_vid $_vomodules"
4241 else
4242 def_tdfxvid='#undef CONFIG_TDFX_VID'
4243 _novomodules="tdfx_vid $_novomodules"
4245 echores "$_tdfxvid"
4247 echocheck "xvr100"
4248 if test "$_xvr100" = auto ; then
4249 cat > $TMPC << EOF
4250 #include <unistd.h>
4251 #include <sys/fbio.h>
4252 #include <sys/visual_io.h>
4253 int main(void) {
4254 struct vis_identifier ident;
4255 struct fbgattr attr;
4256 ioctl(0, VIS_GETIDENTIFIER, &ident);
4257 ioctl(0, FBIOGATTR, &attr);
4258 return 0;
4261 _xvr100=no
4262 cc_check && _xvr100=yes
4264 if test "$_xvr100" = yes ; then
4265 def_xvr100='#define CONFIG_XVR100 1'
4266 _vomodules="xvr100 $_vomodules"
4267 else
4268 def_tdfxvid='#undef CONFIG_XVR100'
4269 _novomodules="xvr100 $_novomodules"
4271 echores "$_xvr100"
4273 echocheck "tga"
4274 if test "$_tga" = yes ; then
4275 def_tga='#define CONFIG_TGA 1'
4276 _vomodules="tga $_vomodules"
4277 else
4278 def_tga='#undef CONFIG_TGA'
4279 _novomodules="tga $_novomodules"
4281 echores "$_tga"
4284 echocheck "md5sum support"
4285 if test "$_md5sum" = yes; then
4286 def_md5sum="#define CONFIG_MD5SUM 1"
4287 _vomodules="md5sum $_vomodules"
4288 else
4289 def_md5sum="#undef CONFIG_MD5SUM"
4290 _novomodules="md5sum $_novomodules"
4292 echores "$_md5sum"
4295 echocheck "yuv4mpeg support"
4296 if test "$_yuv4mpeg" = yes; then
4297 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4298 _vomodules="yuv4mpeg $_vomodules"
4299 else
4300 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4301 _novomodules="yuv4mpeg $_novomodules"
4303 echores "$_yuv4mpeg"
4306 echocheck "bl"
4307 if test "$_bl" = yes ; then
4308 def_bl='#define CONFIG_BL 1'
4309 _vomodules="bl $_vomodules"
4310 else
4311 def_bl='#undef CONFIG_BL'
4312 _novomodules="bl $_novomodules"
4314 echores "$_bl"
4317 echocheck "DirectFB"
4318 if test "$_directfb" = auto ; then
4319 _directfb=no
4320 cat > $TMPC <<EOF
4321 #include <directfb.h>
4322 int main(void) { DirectFBInit(0, 0); return 0; }
4324 for _inc_tmp in "" -I/usr/local/include/directfb \
4325 -I/usr/include/directfb -I/usr/local/include; do
4326 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4327 extra_cflags="$extra_cflags $_inc_tmp" && break
4328 done
4331 dfb_version() {
4332 expr $1 \* 65536 + $2 \* 256 + $3
4335 if test "$_directfb" = yes; then
4336 cat > $TMPC << EOF
4337 #include <directfb_version.h>
4339 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4342 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4343 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4344 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4345 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4346 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4347 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4348 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4349 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4350 _res_comment="$_directfb_version"
4351 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4352 else
4353 def_directfb_version='#undef DIRECTFBVERSION'
4354 _directfb=no
4355 _res_comment="version >=0.9.13 required"
4357 else
4358 _directfb=no
4359 _res_comment="failed to get version"
4362 echores "$_directfb"
4364 if test "$_directfb" = yes ; then
4365 def_directfb='#define CONFIG_DIRECTFB 1'
4366 _vomodules="directfb $_vomodules"
4367 libs_mplayer="$libs_mplayer -ldirectfb"
4368 else
4369 def_directfb='#undef CONFIG_DIRECTFB'
4370 _novomodules="directfb $_novomodules"
4372 if test "$_dfbmga" = yes; then
4373 _vomodules="dfbmga $_vomodules"
4374 def_dfbmga='#define CONFIG_DFBMGA 1'
4375 else
4376 _novomodules="dfbmga $_novomodules"
4377 def_dfbmga='#undef CONFIG_DFBMGA'
4381 echocheck "X11 headers presence"
4382 _x11_headers="no"
4383 _res_comment="check if the dev(el) packages are installed"
4384 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4385 if test -f "$I/X11/Xlib.h" ; then
4386 _x11_headers="yes"
4387 _res_comment=""
4388 break
4390 done
4391 if test $_cross_compile = no; then
4392 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4393 /usr/include/X11R6 /usr/openwin/include ; do
4394 if test -f "$I/X11/Xlib.h" ; then
4395 extra_cflags="$extra_cflags -I$I"
4396 _x11_headers="yes"
4397 _res_comment="using $I"
4398 break
4400 done
4402 echores "$_x11_headers"
4405 echocheck "X11"
4406 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4407 cat > $TMPC <<EOF
4408 #include <X11/Xlib.h>
4409 #include <X11/Xutil.h>
4410 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4412 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4413 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4414 -L/usr/lib ; do
4415 if netbsd; then
4416 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4417 else
4418 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4420 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4421 && _x11=yes && break
4422 done
4424 if test "$_x11" = yes ; then
4425 def_x11='#define CONFIG_X11 1'
4426 _vomodules="x11 xover $_vomodules"
4427 else
4428 _x11=no
4429 def_x11='#undef CONFIG_X11'
4430 _novomodules="x11 $_novomodules"
4431 _res_comment="check if the dev(el) packages are installed"
4432 # disable stuff that depends on X
4433 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4435 echores "$_x11"
4437 echocheck "Xss screensaver extensions"
4438 if test "$_xss" = auto ; then
4439 cat > $TMPC << EOF
4440 #include <X11/Xlib.h>
4441 #include <X11/extensions/scrnsaver.h>
4442 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4444 _xss=no
4445 cc_check -lXss && _xss=yes
4447 if test "$_xss" = yes ; then
4448 def_xss='#define CONFIG_XSS 1'
4449 libs_mplayer="$libs_mplayer -lXss"
4450 else
4451 def_xss='#undef CONFIG_XSS'
4453 echores "$_xss"
4455 echocheck "DPMS"
4456 _xdpms3=no
4457 _xdpms4=no
4458 if test "$_x11" = yes ; then
4459 cat > $TMPC <<EOF
4460 #include <X11/Xmd.h>
4461 #include <X11/Xlib.h>
4462 #include <X11/Xutil.h>
4463 #include <X11/Xatom.h>
4464 #include <X11/extensions/dpms.h>
4465 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4467 cc_check -lXdpms && _xdpms3=yes
4468 cat > $TMPC <<EOF
4469 #include <X11/Xlib.h>
4470 #include <X11/extensions/dpms.h>
4471 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4473 cc_check -lXext && _xdpms4=yes
4475 if test "$_xdpms4" = yes ; then
4476 def_xdpms='#define CONFIG_XDPMS 1'
4477 _res_comment="using Xdpms 4"
4478 echores "yes"
4479 elif test "$_xdpms3" = yes ; then
4480 def_xdpms='#define CONFIG_XDPMS 1'
4481 libs_mplayer="$libs_mplayer -lXdpms"
4482 _res_comment="using Xdpms 3"
4483 echores "yes"
4484 else
4485 def_xdpms='#undef CONFIG_XDPMS'
4486 echores "no"
4490 echocheck "Xv"
4491 if test "$_xv" = auto ; then
4492 cat > $TMPC <<EOF
4493 #include <X11/Xlib.h>
4494 #include <X11/extensions/Xvlib.h>
4495 int main(void) {
4496 (void) XvGetPortAttribute(0, 0, 0, 0);
4497 (void) XvQueryPortAttributes(0, 0, 0);
4498 return 0; }
4500 _xv=no
4501 cc_check -lXv && _xv=yes
4504 if test "$_xv" = yes ; then
4505 def_xv='#define CONFIG_XV 1'
4506 libs_mplayer="$libs_mplayer -lXv"
4507 _vomodules="xv $_vomodules"
4508 else
4509 def_xv='#undef CONFIG_XV'
4510 _novomodules="xv $_novomodules"
4512 echores "$_xv"
4515 echocheck "XvMC"
4516 if test "$_xv" = yes && test "$_xvmc" != no ; then
4517 _xvmc=no
4518 cat > $TMPC <<EOF
4519 #include <X11/Xlib.h>
4520 #include <X11/extensions/Xvlib.h>
4521 #include <X11/extensions/XvMClib.h>
4522 int main(void) {
4523 (void) XvMCQueryExtension(0,0,0);
4524 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4525 return 0; }
4527 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4528 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4529 done
4531 if test "$_xvmc" = yes ; then
4532 def_xvmc='#define CONFIG_XVMC 1'
4533 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4534 _vomodules="xvmc $_vomodules"
4535 _res_comment="using $_xvmclib"
4536 else
4537 def_xvmc='#define CONFIG_XVMC 0'
4538 _novomodules="xvmc $_novomodules"
4539 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4541 echores "$_xvmc"
4544 echocheck "VDPAU"
4545 if test "$_vdpau" = auto ; then
4546 _vdpau=no
4547 if test "$_dl" = yes ; then
4548 cat > $TMPC <<EOF
4549 #include <vdpau/vdpau_x11.h>
4550 int main(void) {
4551 (void) vdp_device_create_x11(0, 0, 0, 0);
4552 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4554 cc_check -lvdpau && _vdpau=yes
4557 if test "$_vdpau" = yes ; then
4558 def_vdpau='#define CONFIG_VDPAU 1'
4559 libs_mplayer="$libs_mplayer -lvdpau"
4560 _vomodules="vdpau $_vomodules"
4561 else
4562 def_vdpau='#define CONFIG_VDPAU 0'
4563 _novomodules="vdpau $_novomodules"
4564 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4566 echores "$_vdpau"
4569 echocheck "Xinerama"
4570 if test "$_xinerama" = auto ; then
4571 cat > $TMPC <<EOF
4572 #include <X11/Xlib.h>
4573 #include <X11/extensions/Xinerama.h>
4574 int main(void) { (void) XineramaIsActive(0); return 0; }
4576 _xinerama=no
4577 cc_check -lXinerama && _xinerama=yes
4580 if test "$_xinerama" = yes ; then
4581 def_xinerama='#define CONFIG_XINERAMA 1'
4582 libs_mplayer="$libs_mplayer -lXinerama"
4583 else
4584 def_xinerama='#undef CONFIG_XINERAMA'
4586 echores "$_xinerama"
4589 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4590 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4591 # named 'X extensions' or something similar.
4592 # This check may be useful for future mplayer versions (to change resolution)
4593 # If you run into problems, remove '-lXxf86vm'.
4594 echocheck "Xxf86vm"
4595 if test "$_vm" = auto ; then
4596 cat > $TMPC <<EOF
4597 #include <X11/Xlib.h>
4598 #include <X11/extensions/xf86vmode.h>
4599 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4601 _vm=no
4602 cc_check -lXxf86vm && _vm=yes
4604 if test "$_vm" = yes ; then
4605 def_vm='#define CONFIG_XF86VM 1'
4606 libs_mplayer="$libs_mplayer -lXxf86vm"
4607 else
4608 def_vm='#undef CONFIG_XF86VM'
4610 echores "$_vm"
4612 # Check for the presence of special keycodes, like audio control buttons
4613 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4614 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4615 # have these new keycodes.
4616 echocheck "XF86keysym"
4617 if test "$_xf86keysym" = auto; then
4618 _xf86keysym=no
4619 cat > $TMPC <<EOF
4620 #include <X11/Xlib.h>
4621 #include <X11/XF86keysym.h>
4622 int main(void) { return XF86XK_AudioPause; }
4624 cc_check && _xf86keysym=yes
4626 if test "$_xf86keysym" = yes ; then
4627 def_xf86keysym='#define CONFIG_XF86XK 1'
4628 else
4629 def_xf86keysym='#undef CONFIG_XF86XK'
4631 echores "$_xf86keysym"
4633 echocheck "DGA"
4634 if test "$_dga2" = auto && test "$_x11" = yes ; then
4635 cat > $TMPC << EOF
4636 #include <X11/Xlib.h>
4637 #include <X11/extensions/xf86dga.h>
4638 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4640 _dga2=no
4641 cc_check -lXxf86dga && _dga2=yes
4643 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4644 cat > $TMPC << EOF
4645 #include <X11/Xlib.h>
4646 #include <X11/extensions/xf86dga.h>
4647 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4649 _dga1=no
4650 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4653 _dga=no
4654 def_dga='#undef CONFIG_DGA'
4655 def_dga1='#undef CONFIG_DGA1'
4656 def_dga2='#undef CONFIG_DGA2'
4657 if test "$_dga1" = yes ; then
4658 _dga=yes
4659 def_dga1='#define CONFIG_DGA1 1'
4660 _res_comment="using DGA 1.0"
4661 elif test "$_dga2" = yes ; then
4662 _dga=yes
4663 def_dga2='#define CONFIG_DGA2 1'
4664 _res_comment="using DGA 2.0"
4666 if test "$_dga" = yes ; then
4667 def_dga='#define CONFIG_DGA 1'
4668 libs_mplayer="$libs_mplayer -lXxf86dga"
4669 _vomodules="dga $_vomodules"
4670 else
4671 _novomodules="dga $_novomodules"
4673 echores "$_dga"
4676 echocheck "3dfx"
4677 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4678 def_3dfx='#define CONFIG_3DFX 1'
4679 _vomodules="3dfx $_vomodules"
4680 else
4681 def_3dfx='#undef CONFIG_3DFX'
4682 _novomodules="3dfx $_novomodules"
4684 echores "$_3dfx"
4687 echocheck "VIDIX"
4688 def_vidix='#undef CONFIG_VIDIX'
4689 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4690 _vidix_drv_cyberblade=no
4691 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4692 _vidix_drv_ivtv=no
4693 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4694 _vidix_drv_mach64=no
4695 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4696 _vidix_drv_mga=no
4697 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4698 _vidix_drv_mga_crtc2=no
4699 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4700 _vidix_drv_nvidia=no
4701 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4702 _vidix_drv_pm2=no
4703 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4704 _vidix_drv_pm3=no
4705 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4706 _vidix_drv_radeon=no
4707 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4708 _vidix_drv_rage128=no
4709 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4710 _vidix_drv_s3=no
4711 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4712 _vidix_drv_sh_veu=no
4713 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4714 _vidix_drv_sis=no
4715 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4716 _vidix_drv_unichrome=no
4717 if test "$_vidix" = auto ; then
4718 _vidix=no
4719 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4720 && _vidix=yes
4721 x86_64 && win32 && _vidix=no
4722 (ppc || alpha) && linux && _vidix=yes
4724 echores "$_vidix"
4726 if test "$_vidix" = yes ; then
4727 def_vidix='#define CONFIG_VIDIX 1'
4728 _vomodules="cvidix $_vomodules"
4729 # FIXME: ivtv driver temporarily disabled until we have a proper test
4730 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4731 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4733 # some vidix drivers are architecture and os specific, discard them elsewhere
4734 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4735 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4737 for driver in $_vidix_drivers ; do
4738 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4739 eval _vidix_drv_${driver}=yes
4740 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4741 done
4743 echocheck "VIDIX PCI device name database"
4744 echores "$_vidix_pcidb"
4745 if test "$_vidix_pcidb" = yes ; then
4746 _vidix_pcidb_val=1
4747 else
4748 _vidix_pcidb_val=0
4751 echocheck "VIDIX dhahelper support"
4752 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4753 echores "$_dhahelper"
4755 echocheck "VIDIX svgalib_helper support"
4756 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4757 echores "$_svgalib_helper"
4759 else
4760 _novomodules="cvidix $_novomodules"
4763 if test "$_vidix" = yes && win32; then
4764 winvidix=yes
4765 _vomodules="winvidix $_vomodules"
4766 libs_mplayer="$libs_mplayer -lgdi32"
4767 else
4768 _novomodules="winvidix $_novomodules"
4770 if test "$_vidix" = yes && test "$_x11" = yes; then
4771 xvidix=yes
4772 _vomodules="xvidix $_vomodules"
4773 else
4774 _novomodules="xvidix $_novomodules"
4777 echocheck "/dev/mga_vid"
4778 if test "$_mga" = auto ; then
4779 _mga=no
4780 test -c /dev/mga_vid && _mga=yes
4782 if test "$_mga" = yes ; then
4783 def_mga='#define CONFIG_MGA 1'
4784 _vomodules="mga $_vomodules"
4785 else
4786 def_mga='#undef CONFIG_MGA'
4787 _novomodules="mga $_novomodules"
4789 echores "$_mga"
4791 echocheck "xmga"
4792 if test "$_xmga" = auto ; then
4793 _xmga=no
4794 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4796 if test "$_xmga" = yes ; then
4797 def_xmga='#define CONFIG_XMGA 1'
4798 _vomodules="xmga $_vomodules"
4799 else
4800 def_xmga='#undef CONFIG_XMGA'
4801 _novomodules="xmga $_novomodules"
4803 echores "$_xmga"
4806 echocheck "GGI"
4807 if test "$_ggi" = auto ; then
4808 cat > $TMPC << EOF
4809 #include <ggi/ggi.h>
4810 int main(void) { ggiInit(); return 0; }
4812 _ggi=no
4813 cc_check -lggi && _ggi=yes
4815 if test "$_ggi" = yes ; then
4816 def_ggi='#define CONFIG_GGI 1'
4817 libs_mplayer="$libs_mplayer -lggi"
4818 _vomodules="ggi $_vomodules"
4819 else
4820 def_ggi='#undef CONFIG_GGI'
4821 _novomodules="ggi $_novomodules"
4823 echores "$_ggi"
4825 echocheck "GGI extension: libggiwmh"
4826 if test "$_ggiwmh" = auto ; then
4827 _ggiwmh=no
4828 cat > $TMPC << EOF
4829 #include <ggi/ggi.h>
4830 #include <ggi/wmh.h>
4831 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4833 cc_check -lggi -lggiwmh && _ggiwmh=yes
4835 # needed to get right output on obscure combination
4836 # like --disable-ggi --enable-ggiwmh
4837 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4838 def_ggiwmh='#define CONFIG_GGIWMH 1'
4839 libs_mplayer="$libs_mplayer -lggiwmh"
4840 else
4841 _ggiwmh=no
4842 def_ggiwmh='#undef CONFIG_GGIWMH'
4844 echores "$_ggiwmh"
4847 echocheck "AA"
4848 if test "$_aa" = auto ; then
4849 cat > $TMPC << EOF
4850 #include <aalib.h>
4851 extern struct aa_hardware_params aa_defparams;
4852 extern struct aa_renderparams aa_defrenderparams;
4853 int main(void) {
4854 aa_context *c;
4855 aa_renderparams *p;
4856 (void) aa_init(0, 0, 0);
4857 c = aa_autoinit(&aa_defparams);
4858 p = aa_getrenderparams();
4859 aa_autoinitkbd(c,0);
4860 return 0; }
4862 _aa=no
4863 for _ld_tmp in "-laa" ; do
4864 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4865 done
4867 if test "$_aa" = yes ; then
4868 def_aa='#define CONFIG_AA 1'
4869 if cygwin ; then
4870 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4872 _vomodules="aa $_vomodules"
4873 else
4874 def_aa='#undef CONFIG_AA'
4875 _novomodules="aa $_novomodules"
4877 echores "$_aa"
4880 echocheck "CACA"
4881 if test "$_caca" = auto ; then
4882 _caca=no
4883 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4884 cat > $TMPC << EOF
4885 #include <caca.h>
4886 #ifdef CACA_API_VERSION_1
4887 #include <caca0.h>
4888 #endif
4889 int main(void) { (void) caca_init(); return 0; }
4891 cc_check $(caca-config --libs) && _caca=yes
4894 if test "$_caca" = yes ; then
4895 def_caca='#define CONFIG_CACA 1'
4896 extra_cflags="$extra_cflags $(caca-config --cflags)"
4897 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4898 _vomodules="caca $_vomodules"
4899 else
4900 def_caca='#undef CONFIG_CACA'
4901 _novomodules="caca $_novomodules"
4903 echores "$_caca"
4906 echocheck "SVGAlib"
4907 if test "$_svga" = auto ; then
4908 cat > $TMPC << EOF
4909 #include <vga.h>
4910 int main(void) { return 0; }
4912 _svga=no
4913 cc_check -lvga $_ld_lm && _svga=yes
4915 if test "$_svga" = yes ; then
4916 def_svga='#define CONFIG_SVGALIB 1'
4917 libs_mplayer="$libs_mplayer -lvga"
4918 _vomodules="svga $_vomodules"
4919 else
4920 def_svga='#undef CONFIG_SVGALIB'
4921 _novomodules="svga $_novomodules"
4923 echores "$_svga"
4926 echocheck "FBDev"
4927 if test "$_fbdev" = auto ; then
4928 _fbdev=no
4929 linux && _fbdev=yes
4931 if test "$_fbdev" = yes ; then
4932 def_fbdev='#define CONFIG_FBDEV 1'
4933 _vomodules="fbdev $_vomodules"
4934 else
4935 def_fbdev='#undef CONFIG_FBDEV'
4936 _novomodules="fbdev $_novomodules"
4938 echores "$_fbdev"
4942 echocheck "DVB"
4943 if test "$_dvb" = auto ; then
4944 _dvb=no
4945 cat >$TMPC << EOF
4946 #include <poll.h>
4947 #include <sys/ioctl.h>
4948 #include <stdio.h>
4949 #include <time.h>
4950 #include <unistd.h>
4951 #include <linux/dvb/dmx.h>
4952 #include <linux/dvb/frontend.h>
4953 #include <linux/dvb/video.h>
4954 #include <linux/dvb/audio.h>
4955 int main(void) {return 0;}
4957 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4958 cc_check $_inc_tmp && _dvb=yes && \
4959 extra_cflags="$extra_cflags $_inc_tmp" && break
4960 done
4962 echores "$_dvb"
4963 if test "$_dvb" = yes ; then
4964 _dvbin=yes
4965 _inputmodules="dvb $_inputmodules"
4966 def_dvb='#define CONFIG_DVB 1'
4967 def_dvbin='#define CONFIG_DVBIN 1'
4968 _aomodules="mpegpes(dvb) $_aomodules"
4969 _vomodules="mpegpes(dvb) $_vomodules"
4970 else
4971 _dvbin=no
4972 _noinputmodules="dvb $_noinputmodules"
4973 def_dvb='#undef CONFIG_DVB'
4974 def_dvbin='#undef CONFIG_DVBIN '
4975 _aomodules="mpegpes(file) $_aomodules"
4976 _vomodules="mpegpes(file) $_vomodules"
4980 if darwin; then
4982 echocheck "QuickTime"
4983 if test "$quicktime" = auto ; then
4984 cat > $TMPC <<EOF
4985 #include <QuickTime/QuickTime.h>
4986 int main(void) {
4987 ImageDescription *desc;
4988 EnterMovies();
4989 ExitMovies();
4990 return 0;
4993 quicktime=no
4994 cc_check -framework QuickTime && quicktime=yes
4996 if test "$quicktime" = yes ; then
4997 extra_ldflags="$extra_ldflags -framework QuickTime"
4998 def_quicktime='#define CONFIG_QUICKTIME 1'
4999 else
5000 def_quicktime='#undef CONFIG_QUICKTIME'
5001 _quartz=no
5003 echores $quicktime
5005 echocheck "Quartz"
5006 if test "$_quartz" = auto ; then
5007 cat > $TMPC <<EOF
5008 #include <Carbon/Carbon.h>
5009 int main(void) {
5010 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5011 return 0;
5014 _quartz=no
5015 cc_check -framework Carbon && _quartz=yes
5017 if test "$_quartz" = yes ; then
5018 libs_mplayer="$libs_mplayer -framework Carbon"
5019 def_quartz='#define CONFIG_QUARTZ 1'
5020 _vomodules="quartz $_vomodules"
5021 else
5022 def_quartz='#undef CONFIG_QUARTZ'
5023 _novomodules="quartz $_novomodules"
5025 echores $_quartz
5027 echocheck "CoreVideo"
5028 if test "$_corevideo" = auto ; then
5029 cat > $TMPC <<EOF
5030 #include <Carbon/Carbon.h>
5031 #include <CoreServices/CoreServices.h>
5032 #include <OpenGL/OpenGL.h>
5033 #include <QuartzCore/CoreVideo.h>
5034 int main(void) { return 0; }
5036 _corevideo=no
5037 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5039 if test "$_corevideo" = yes ; then
5040 _vomodules="corevideo $_vomodules"
5041 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5042 def_corevideo='#define CONFIG_COREVIDEO 1'
5043 else
5044 _novomodules="corevideo $_novomodules"
5045 def_corevideo='#undef CONFIG_COREVIDEO'
5047 echores "$_corevideo"
5049 fi #if darwin
5052 # make sure this stays below CoreVideo to avoid issues due to namespace
5053 # conflicts between -lGL and -framework OpenGL
5054 echocheck "OpenGL"
5055 #Note: this test is run even with --enable-gl since we autodetect linker flags
5056 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
5057 cat > $TMPC << EOF
5058 #ifdef GL_WIN32
5059 #include <windows.h>
5060 #include <GL/gl.h>
5061 #else
5062 #include <GL/gl.h>
5063 #include <X11/Xlib.h>
5064 #include <GL/glx.h>
5065 #endif
5066 int main(void) {
5067 #ifdef GL_WIN32
5068 HDC dc;
5069 wglCreateContext(dc);
5070 #else
5071 glXCreateContext(NULL, NULL, NULL, True);
5072 #endif
5073 glFinish();
5074 return 0;
5077 _gl=no
5078 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5079 if cc_check $_ld_tmp $_ld_lm ; then
5080 _gl=yes
5081 _gl_x11=yes
5082 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5083 break
5085 done
5086 if cc_check -DGL_WIN32 -lopengl32 ; then
5087 _gl=yes
5088 _gl_win32=yes
5089 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5091 else
5092 _gl=no
5094 if test "$_gl" = yes ; then
5095 def_gl='#define CONFIG_GL 1'
5096 _res_comment="backends:"
5097 if test "$_gl_win32" = yes ; then
5098 def_gl_win32='#define CONFIG_GL_WIN32 1'
5099 _res_comment="$_res_comment win32"
5101 if test "$_gl_x11" = yes ; then
5102 def_gl_x11='#define CONFIG_GL_X11 1'
5103 _res_comment="$_res_comment x11"
5105 _vomodules="opengl $_vomodules"
5106 else
5107 def_gl='#undef CONFIG_GL'
5108 def_gl_win32='#undef CONFIG_GL_WIN32'
5109 def_gl_x11='#undef CONFIG_GL_X11'
5110 _novomodules="opengl $_novomodules"
5112 echores "$_gl"
5115 echocheck "MatrixView"
5116 if test "$_gl" = no ; then
5117 matrixview=no
5119 if test "$matrixview" = yes ; then
5120 _vomodules="matrixview $_vomodules"
5121 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5122 else
5123 _novomodules="matrixview $_novomodules"
5124 def_matrixview='#undef CONFIG_MATRIXVIEW'
5126 echores "$matrixview"
5129 echocheck "PNG support"
5130 if test "$_png" = auto ; then
5131 _png=no
5132 if irix ; then
5133 # Don't check for -lpng on irix since it has its own libpng
5134 # incompatible with the GNU libpng
5135 _res_comment="disabled on irix (not GNU libpng)"
5136 else
5137 cat > $TMPC << EOF
5138 #include <png.h>
5139 #include <string.h>
5140 int main(void) {
5141 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5142 printf("libpng: %s\n", png_libpng_ver);
5143 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5146 cc_check -lpng -lz $_ld_lm && _png=yes
5149 echores "$_png"
5150 if test "$_png" = yes ; then
5151 def_png='#define CONFIG_PNG 1'
5152 extra_ldflags="$extra_ldflags -lpng -lz"
5153 else
5154 def_png='#undef CONFIG_PNG'
5157 echocheck "MNG support"
5158 if test "$_mng" = auto ; then
5159 _mng=no
5160 cat > $TMPC << EOF
5161 #include <libmng.h>
5162 int main(void) {
5163 const char * p_ver = mng_version_text();
5164 return !p_ver || p_ver[0] == 0;
5167 if cc_check -lmng -lz $_ld_lm ; then
5168 _mng=yes
5171 echores "$_mng"
5172 if test "$_mng" = yes ; then
5173 def_mng='#define CONFIG_MNG 1'
5174 extra_ldflags="$extra_ldflags -lmng -lz"
5175 else
5176 def_mng='#undef CONFIG_MNG'
5179 echocheck "JPEG support"
5180 if test "$_jpeg" = auto ; then
5181 _jpeg=no
5182 cat > $TMPC << EOF
5183 #include <stdio.h>
5184 #include <stdlib.h>
5185 #include <setjmp.h>
5186 #include <string.h>
5187 #include <jpeglib.h>
5188 int main(void) { return 0; }
5190 cc_check -ljpeg $_ld_lm && _jpeg=yes
5192 echores "$_jpeg"
5194 if test "$_jpeg" = yes ; then
5195 def_jpeg='#define CONFIG_JPEG 1'
5196 _vomodules="jpeg $_vomodules"
5197 extra_ldflags="$extra_ldflags -ljpeg"
5198 else
5199 def_jpeg='#undef CONFIG_JPEG'
5200 _novomodules="jpeg $_novomodules"
5204 echocheck "OpenJPEG (JPEG2000) support"
5205 if test "$libopenjpeg" = auto ; then
5206 libopenjpeg=no
5207 cat > $TMPC << EOF
5208 #define OPJ_STATIC
5209 #include <openjpeg.h>
5210 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5212 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5214 echores "$libopenjpeg"
5215 if test "$libopenjpeg" = yes ; then
5216 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5217 extra_ldflags="$extra_ldflags -lopenjpeg"
5218 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5219 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5220 _codecmodules="OpenJPEG $_codecmodules"
5221 else
5222 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5223 _nocodecmodules="OpenJPEG $_nocodecmodules"
5227 echocheck "PNM support"
5228 if test "$_pnm" = yes; then
5229 def_pnm="#define CONFIG_PNM 1"
5230 _vomodules="pnm $_vomodules"
5231 else
5232 def_pnm="#undef CONFIG_PNM"
5233 _novomodules="pnm $_novomodules"
5235 echores "$_pnm"
5239 echocheck "GIF support"
5240 # This is to appease people who want to force gif support.
5241 # If it is forced to yes, then we still do checks to determine
5242 # which gif library to use.
5243 if test "$_gif" = yes ; then
5244 _force_gif=yes
5245 _gif=auto
5248 if test "$_gif" = auto ; then
5249 _gif=no
5250 cat > $TMPC << EOF
5251 #include <gif_lib.h>
5252 int main(void) { return 0; }
5254 for _ld_gif in "-lungif" "-lgif" ; do
5255 cc_check $_ld_gif && _gif=yes && break
5256 done
5259 # If no library was found, and the user wants support forced,
5260 # then we force it on with libgif, as this is the safest
5261 # assumption IMHO. (libungif & libregif both create symbolic
5262 # links to libgif. We also assume that no x11 support is needed,
5263 # because if you are forcing this, then you _should_ know what
5264 # you are doing. [ Besides, package maintainers should never
5265 # have compiled x11 deps into libungif in the first place. ] )
5266 # </rant>
5267 # --Joey
5268 if test "$_force_gif" = yes && test "$_gif" = no ; then
5269 _gif=yes
5270 _ld_gif="-lgif"
5273 if test "$_gif" = yes ; then
5274 def_gif='#define CONFIG_GIF 1'
5275 _codecmodules="gif $_codecmodules"
5276 _vomodules="gif89a $_vomodules"
5277 _res_comment="old version, some encoding functions disabled"
5278 def_gif_4='#undef CONFIG_GIF_4'
5279 extra_ldflags="$extra_ldflags $_ld_gif"
5281 cat > $TMPC << EOF
5282 #include <signal.h>
5283 #include <gif_lib.h>
5284 void catch() { exit(1); }
5285 int main(void) {
5286 signal(SIGSEGV, catch); // catch segfault
5287 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5288 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5289 return 0;
5292 if cc_check "$_ld_gif" ; then
5293 def_gif_4='#define CONFIG_GIF_4 1'
5294 _res_comment=""
5296 else
5297 def_gif='#undef CONFIG_GIF'
5298 def_gif_4='#undef CONFIG_GIF_4'
5299 _novomodules="gif89a $_novomodules"
5300 _nocodecmodules="gif $_nocodecmodules"
5302 echores "$_gif"
5305 case "$_gif" in yes*)
5306 echocheck "broken giflib workaround"
5307 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5309 cat > $TMPC << EOF
5310 #include <gif_lib.h>
5311 int main(void) {
5312 GifFileType gif;
5313 printf("UserData is at address %p\n", gif.UserData);
5314 return 0;
5317 if cc_check "$_ld_gif" ; then
5318 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5319 echores "disabled"
5320 else
5321 echores "enabled"
5324 esac
5327 echocheck "VESA support"
5328 if test "$_vesa" = auto ; then
5329 cat > $TMPC << EOF
5330 #include <vbe.h>
5331 int main(void) { vbeVersion(); return 0; }
5333 _vesa=no
5334 cc_check -lvbe -llrmi && _vesa=yes
5336 if test "$_vesa" = yes ; then
5337 def_vesa='#define CONFIG_VESA 1'
5338 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5339 _vomodules="vesa $_vomodules"
5340 else
5341 def_vesa='#undef CONFIG_VESA'
5342 _novomodules="vesa $_novomodules"
5344 echores "$_vesa"
5346 #################
5347 # VIDEO + AUDIO #
5348 #################
5351 echocheck "SDL"
5352 _inc_tmp=""
5353 _ld_tmp=""
5354 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5355 if test -z "$_sdlconfig" ; then
5356 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5357 _sdlconfig="sdl-config"
5358 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5359 _sdlconfig="sdl11-config"
5360 else
5361 _sdlconfig=false
5364 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5365 cat > $TMPC << EOF
5366 #ifdef CONFIG_SDL_SDL_H
5367 #include <SDL/SDL.h>
5368 #else
5369 #include <SDL.h>
5370 #endif
5371 #ifndef __APPLE__
5372 // we allow SDL hacking our main() only on OSX
5373 #undef main
5374 #endif
5375 int main(int argc, char *argv[]) {
5376 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5377 return 0;
5380 _sdl=no
5381 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5382 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5383 _sdl=yes
5384 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5385 break
5387 done
5388 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5389 _res_comment="using $_sdlconfig"
5390 if cygwin ; then
5391 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5392 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5393 elif mingw32 ; then
5394 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5395 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5396 else
5397 _inc_tmp="$($_sdlconfig --cflags)"
5398 _ld_tmp="$($_sdlconfig --libs)"
5400 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5401 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5402 if test "$_sdlversion" -gt 116 ; then
5403 if test "$_sdlversion" -lt 121 ; then
5404 def_sdlbuggy='#define BUGGY_SDL'
5405 else
5406 def_sdlbuggy='#undef BUGGY_SDL'
5408 _sdl=yes
5413 if test "$_sdl" = yes ; then
5414 def_sdl='#define CONFIG_SDL 1'
5415 extra_cflags="$extra_cflags $_inc_tmp"
5416 libs_mplayer="$libs_mplayer $_ld_tmp"
5417 _vomodules="sdl $_vomodules"
5418 _aomodules="sdl $_aomodules"
5419 else
5420 def_sdl='#undef CONFIG_SDL'
5421 _novomodules="sdl $_novomodules"
5422 _noaomodules="sdl $_noaomodules"
5424 echores "$_sdl"
5427 if os2 ; then
5428 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5429 if test "$_kva" = auto; then
5430 cat > $TMPC << EOF
5431 #include <os2.h>
5432 #include <kva.h>
5433 int main( void ) { return 0; }
5435 _kva=no;
5436 cc_check -lkva && _kva=yes
5438 if test "$_kva" = yes ; then
5439 def_kva='#define CONFIG_KVA 1'
5440 libs_mplayer="$libs_mplayer -lkva"
5441 _vomodules="kva $_vomodules"
5442 else
5443 def_kva='#undef CONFIG_KVA'
5444 _novomodules="kva $_novomodules"
5446 echores "$_kva"
5447 fi #if os2
5450 if win32; then
5452 echocheck "Windows waveout"
5453 if test "$_win32waveout" = auto ; then
5454 cat > $TMPC << EOF
5455 #include <windows.h>
5456 #include <mmsystem.h>
5457 int main(void) { return 0; }
5459 _win32waveout=no
5460 cc_check -lwinmm && _win32waveout=yes
5462 if test "$_win32waveout" = yes ; then
5463 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5464 libs_mplayer="$libs_mplayer -lwinmm"
5465 _aomodules="win32 $_aomodules"
5466 else
5467 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5468 _noaomodules="win32 $_noaomodules"
5470 echores "$_win32waveout"
5472 echocheck "Direct3D"
5473 if test "$_direct3d" = auto ; then
5474 cat > $TMPC << EOF
5475 #include <windows.h>
5476 #include <d3d9.h>
5477 int main(void) { return 0; }
5479 _direct3d=no
5480 cc_check && _direct3d=yes
5482 if test "$_direct3d" = yes ; then
5483 def_direct3d='#define CONFIG_DIRECT3D 1'
5484 _vomodules="direct3d $_vomodules"
5485 else
5486 def_direct3d='#undef CONFIG_DIRECT3D'
5487 _novomodules="direct3d $_novomodules"
5489 echores "$_direct3d"
5491 echocheck "Directx"
5492 if test "$_directx" = auto ; then
5493 cat > $TMPC << EOF
5494 #include <windows.h>
5495 #include <ddraw.h>
5496 #include <dsound.h>
5497 int main(void) { return 0; }
5499 _directx=no
5500 cc_check -lgdi32 && _directx=yes
5502 if test "$_directx" = yes ; then
5503 def_directx='#define CONFIG_DIRECTX 1'
5504 libs_mplayer="$libs_mplayer -lgdi32"
5505 _vomodules="directx $_vomodules"
5506 _aomodules="dsound $_aomodules"
5507 else
5508 def_directx='#undef CONFIG_DIRECTX'
5509 _novomodules="directx $_novomodules"
5510 _noaomodules="dsound $_noaomodules"
5512 echores "$_directx"
5514 fi #if win32; then
5517 echocheck "DXR2"
5518 if test "$_dxr2" = auto; then
5519 _dxr2=no
5520 cat > $TMPC << EOF
5521 #include <dxr2ioctl.h>
5522 int main(void) { return 0; }
5524 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5525 cc_check $_inc_tmp && _dxr2=yes && \
5526 extra_cflags="$extra_cflags $_inc_tmp" && break
5527 done
5529 if test "$_dxr2" = yes; then
5530 def_dxr2='#define CONFIG_DXR2 1'
5531 _aomodules="dxr2 $_aomodules"
5532 _vomodules="dxr2 $_vomodules"
5533 else
5534 def_dxr2='#undef CONFIG_DXR2'
5535 _noaomodules="dxr2 $_noaomodules"
5536 _novomodules="dxr2 $_novomodules"
5538 echores "$_dxr2"
5540 echocheck "DXR3/H+"
5541 if test "$_dxr3" = auto ; then
5542 cat > $TMPC << EOF
5543 #include <linux/em8300.h>
5544 int main(void) { return 0; }
5546 _dxr3=no
5547 cc_check && _dxr3=yes
5549 if test "$_dxr3" = yes ; then
5550 def_dxr3='#define CONFIG_DXR3 1'
5551 _vomodules="dxr3 $_vomodules"
5552 else
5553 def_dxr3='#undef CONFIG_DXR3'
5554 _novomodules="dxr3 $_novomodules"
5556 echores "$_dxr3"
5559 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5560 if test "$_ivtv" = auto ; then
5561 cat > $TMPC << EOF
5562 #include <stdlib.h>
5563 #include <inttypes.h>
5564 #include <linux/types.h>
5565 #include <linux/videodev2.h>
5566 #include <linux/ivtv.h>
5567 #include <sys/ioctl.h>
5568 int main(void) {
5569 struct ivtv_cfg_stop_decode sd;
5570 struct ivtv_cfg_start_decode sd1;
5571 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5572 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5573 return 0; }
5575 _ivtv=no
5576 cc_check && _ivtv=yes
5578 if test "$_ivtv" = yes ; then
5579 def_ivtv='#define CONFIG_IVTV 1'
5580 _vomodules="ivtv $_vomodules"
5581 _aomodules="ivtv $_aomodules"
5582 else
5583 def_ivtv='#undef CONFIG_IVTV'
5584 _novomodules="ivtv $_novomodules"
5585 _noaomodules="ivtv $_noaomodules"
5587 echores "$_ivtv"
5590 echocheck "V4L2 MPEG Decoder"
5591 if test "$_v4l2" = auto ; then
5592 cat > $TMPC << EOF
5593 #include <stdlib.h>
5594 #include <inttypes.h>
5595 #include <linux/types.h>
5596 #include <linux/videodev2.h>
5597 #include <linux/version.h>
5598 int main(void) {
5599 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5600 #error kernel headers too old, need 2.6.22
5601 #endif
5602 struct v4l2_ext_controls ctrls;
5603 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5604 return 0;
5607 _v4l2=no
5608 cc_check && _v4l2=yes
5610 if test "$_v4l2" = yes ; then
5611 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5612 _vomodules="v4l2 $_vomodules"
5613 _aomodules="v4l2 $_aomodules"
5614 else
5615 def_v4l2='#undef CONFIG_V4L2_DECODER'
5616 _novomodules="v4l2 $_novomodules"
5617 _noaomodules="v4l2 $_noaomodules"
5619 echores "$_v4l2"
5623 #########
5624 # AUDIO #
5625 #########
5628 echocheck "OSS Audio"
5629 if test "$_ossaudio" = auto ; then
5630 cat > $TMPC << EOF
5631 #include <sys/ioctl.h>
5632 #include <$_soundcard_header>
5633 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5635 _ossaudio=no
5636 cc_check && _ossaudio=yes
5638 if test "$_ossaudio" = yes ; then
5639 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5640 _aomodules="oss $_aomodules"
5641 if test "$_linux_devfs" = yes; then
5642 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5643 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5644 else
5645 cat > $TMPC << EOF
5646 #include <sys/ioctl.h>
5647 #include <$_soundcard_header>
5648 #ifdef OPEN_SOUND_SYSTEM
5649 int main(void) { return 0; }
5650 #else
5651 #error Not the real thing
5652 #endif
5654 _real_ossaudio=no
5655 cc_check && _real_ossaudio=yes
5656 if test "$_real_ossaudio" = yes; then
5657 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5658 elif netbsd || openbsd ; then
5659 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5660 extra_ldflags="$extra_ldflags -lossaudio"
5661 else
5662 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5664 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5666 else
5667 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5668 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5669 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5670 _noaomodules="oss $_noaomodules"
5672 echores "$_ossaudio"
5675 echocheck "aRts"
5676 if test "$_arts" = auto ; then
5677 _arts=no
5678 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5680 cat > $TMPC << EOF
5681 #include <artsc.h>
5682 int main(void) { return 0; }
5684 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5689 if test "$_arts" = yes ; then
5690 def_arts='#define CONFIG_ARTS 1'
5691 _aomodules="arts $_aomodules"
5692 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5693 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5694 else
5695 _noaomodules="arts $_noaomodules"
5697 echores "$_arts"
5700 echocheck "EsounD"
5701 if test "$_esd" = auto ; then
5702 _esd=no
5703 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5705 cat > $TMPC << EOF
5706 #include <esd.h>
5707 int main(void) { int fd = esd_open_sound("test"); return fd; }
5709 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5713 echores "$_esd"
5715 if test "$_esd" = yes ; then
5716 def_esd='#define CONFIG_ESD 1'
5717 _aomodules="esd $_aomodules"
5718 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5719 extra_cflags="$extra_cflags $(esd-config --cflags)"
5721 echocheck "esd_get_latency()"
5722 cat > $TMPC << EOF
5723 #include <esd.h>
5724 int main(void) { return esd_get_latency(0); }
5726 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5727 echores "$_esd_latency"
5728 else
5729 def_esd='#undef CONFIG_ESD'
5730 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5731 _noaomodules="esd $_noaomodules"
5735 echocheck "NAS"
5736 if test "$_nas" = auto ; then
5737 cat > $TMPC << EOF
5738 #include <audio/audiolib.h>
5739 int main(void) { return 0; }
5741 _nas=no
5742 cc_check $_ld_lm -laudio -lXt && _nas=yes
5744 if test "$_nas" = yes ; then
5745 def_nas='#define CONFIG_NAS 1'
5746 libs_mplayer="$libs_mplayer -laudio -lXt"
5747 _aomodules="nas $_aomodules"
5748 else
5749 _noaomodules="nas $_noaomodules"
5750 def_nas='#undef CONFIG_NAS'
5752 echores "$_nas"
5755 echocheck "pulse"
5756 if test "$_pulse" = auto ; then
5757 _pulse=no
5758 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5760 cat > $TMPC << EOF
5761 #include <pulse/pulseaudio.h>
5762 int main(void) { return 0; }
5764 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5768 echores "$_pulse"
5770 if test "$_pulse" = yes ; then
5771 def_pulse='#define CONFIG_PULSE 1'
5772 _aomodules="pulse $_aomodules"
5773 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5774 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5775 else
5776 def_pulse='#undef CONFIG_PULSE'
5777 _noaomodules="pulse $_noaomodules"
5781 echocheck "JACK"
5782 if test "$_jack" = auto ; then
5783 _jack=yes
5785 cat > $TMPC << EOF
5786 #include <jack/jack.h>
5787 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5789 if cc_check -ljack ; then
5790 libs_mplayer="$libs_mplayer -ljack"
5791 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5792 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5793 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5794 else
5795 _jack=no
5799 if test "$_jack" = yes ; then
5800 def_jack='#define CONFIG_JACK 1'
5801 _aomodules="jack $_aomodules"
5802 else
5803 _noaomodules="jack $_noaomodules"
5805 echores "$_jack"
5807 echocheck "OpenAL"
5808 if test "$_openal" = auto ; then
5809 _openal=no
5810 cat > $TMPC << EOF
5811 #ifdef OPENAL_AL_H
5812 #include <OpenAL/al.h>
5813 #else
5814 #include <AL/al.h>
5815 #endif
5816 int main(void) {
5817 alSourceQueueBuffers(0, 0, 0);
5818 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5819 return 0;
5822 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5823 cc_check $I && _openal=yes && break
5824 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5825 done
5826 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5828 if test "$_openal" = yes ; then
5829 def_openal='#define CONFIG_OPENAL 1'
5830 _aomodules="openal $_aomodules"
5831 else
5832 _noaomodules="openal $_noaomodules"
5834 echores "$_openal"
5836 echocheck "ALSA audio"
5837 if test "$_alloca" != yes ; then
5838 _alsa=no
5839 _res_comment="alloca missing"
5841 if test "$_alsa" != no ; then
5842 _alsa=no
5843 cat > $TMPC << EOF
5844 #include <sys/time.h>
5845 #include <sys/asoundlib.h>
5846 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5847 #error "alsa version != 0.5.x"
5848 #endif
5849 int main(void) { return 0; }
5851 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5853 cat > $TMPC << EOF
5854 #include <sys/time.h>
5855 #include <sys/asoundlib.h>
5856 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5857 #error "alsa version != 0.9.x"
5858 #endif
5859 int main(void) { return 0; }
5861 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5862 cat > $TMPC << EOF
5863 #include <sys/time.h>
5864 #include <alsa/asoundlib.h>
5865 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5866 #error "alsa version != 0.9.x"
5867 #endif
5868 int main(void) { return 0; }
5870 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5872 cat > $TMPC << EOF
5873 #include <sys/time.h>
5874 #include <sys/asoundlib.h>
5875 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5876 #error "alsa version != 1.0.x"
5877 #endif
5878 int main(void) { return 0; }
5880 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5881 cat > $TMPC << EOF
5882 #include <sys/time.h>
5883 #include <alsa/asoundlib.h>
5884 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5885 #error "alsa version != 1.0.x"
5886 #endif
5887 int main(void) { return 0; }
5889 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5891 def_alsa='#undef CONFIG_ALSA'
5892 def_alsa5='#undef CONFIG_ALSA5'
5893 def_alsa9='#undef CONFIG_ALSA9'
5894 def_alsa1x='#undef CONFIG_ALSA1X'
5895 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5896 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5897 if test "$_alsaver" ; then
5898 _alsa=yes
5899 if test "$_alsaver" = '0.5.x' ; then
5900 _alsa5=yes
5901 _aomodules="alsa5 $_aomodules"
5902 def_alsa5='#define CONFIG_ALSA5 1'
5903 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5904 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5905 elif test "$_alsaver" = '0.9.x-sys' ; then
5906 _alsa9=yes
5907 _aomodules="alsa $_aomodules"
5908 def_alsa='#define CONFIG_ALSA 1'
5909 def_alsa9='#define CONFIG_ALSA9 1'
5910 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5911 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5912 elif test "$_alsaver" = '0.9.x-alsa' ; then
5913 _alsa9=yes
5914 _aomodules="alsa $_aomodules"
5915 def_alsa='#define CONFIG_ALSA 1'
5916 def_alsa9='#define CONFIG_ALSA9 1'
5917 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5918 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5919 elif test "$_alsaver" = '1.0.x-sys' ; then
5920 _alsa1x=yes
5921 _aomodules="alsa $_aomodules"
5922 def_alsa='#define CONFIG_ALSA 1'
5923 def_alsa1x="#define CONFIG_ALSA1X 1"
5924 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5925 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5926 elif test "$_alsaver" = '1.0.x-alsa' ; then
5927 _alsa1x=yes
5928 _aomodules="alsa $_aomodules"
5929 def_alsa='#define CONFIG_ALSA 1'
5930 def_alsa1x="#define CONFIG_ALSA1X 1"
5931 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5932 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5933 else
5934 _alsa=no
5935 _res_comment="unknown version"
5937 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5938 else
5939 _noaomodules="alsa $_noaomodules"
5941 echores "$_alsa"
5944 echocheck "Sun audio"
5945 if test "$_sunaudio" = auto ; then
5946 cat > $TMPC << EOF
5947 #include <sys/types.h>
5948 #include <sys/audioio.h>
5949 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5951 _sunaudio=no
5952 cc_check && _sunaudio=yes
5954 if test "$_sunaudio" = yes ; then
5955 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5956 _aomodules="sun $_aomodules"
5957 else
5958 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5959 _noaomodules="sun $_noaomodules"
5961 echores "$_sunaudio"
5964 def_mlib='#define CONFIG_MLIB 0'
5965 if sunos; then
5966 echocheck "Sun mediaLib"
5967 if test "$_mlib" = auto ; then
5968 _mlib=no
5969 cat > $TMPC << EOF
5970 #include <mlib.h>
5971 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5973 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5975 echores "$_mlib"
5976 fi #if sunos
5979 if darwin; then
5980 echocheck "CoreAudio"
5981 if test "$_coreaudio" = auto ; then
5982 cat > $TMPC <<EOF
5983 #include <CoreAudio/CoreAudio.h>
5984 #include <AudioToolbox/AudioToolbox.h>
5985 #include <AudioUnit/AudioUnit.h>
5986 int main(void) { return 0; }
5988 _coreaudio=no
5989 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5991 if test "$_coreaudio" = yes ; then
5992 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5993 def_coreaudio='#define CONFIG_COREAUDIO 1'
5994 _aomodules="coreaudio $_aomodules"
5995 else
5996 def_coreaudio='#undef CONFIG_COREAUDIO'
5997 _noaomodules="coreaudio $_noaomodules"
5999 echores $_coreaudio
6000 fi #if darwin
6003 if irix; then
6004 echocheck "SGI audio"
6005 if test "$_sgiaudio" = auto ; then
6006 # check for SGI audio
6007 cat > $TMPC << EOF
6008 #include <dmedia/audio.h>
6009 int main(void) { return 0; }
6011 _sgiaudio=no
6012 cc_check && _sgiaudio=yes
6014 if test "$_sgiaudio" = "yes" ; then
6015 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6016 libs_mplayer="$libs_mplayer -laudio"
6017 _aomodules="sgi $_aomodules"
6018 else
6019 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6020 _noaomodules="sgi $_noaomodules"
6022 echores "$_sgiaudio"
6023 fi #if irix
6026 if os2 ; then
6027 echocheck "KAI (UNIAUD/DART)"
6028 if test "$_kai" = auto; then
6029 cat > $TMPC << EOF
6030 #include <os2.h>
6031 #include <kai.h>
6032 int main(void) { return 0; }
6034 _kai=no;
6035 cc_check -lkai && _kai=yes
6037 if test "$_kai" = yes ; then
6038 def_kai='#define CONFIG_KAI 1'
6039 libs_mplayer="$libs_mplayer -lkai"
6040 _aomodules="kai $_aomodules"
6041 else
6042 def_kai='#undef CONFIG_KAI'
6043 _noaomodules="kai $_noaomodules"
6045 echores "$_kai"
6047 echocheck "DART"
6048 if test "$_dart" = auto; then
6049 cat > $TMPC << EOF
6050 #include <os2.h>
6051 #include <dart.h>
6052 int main( void ) { return 0; }
6054 _dart=no;
6055 cc_check -ldart && _dart=yes
6057 if test "$_dart" = yes ; then
6058 def_dart='#define CONFIG_DART 1'
6059 libs_mplayer="$libs_mplayer -ldart"
6060 _aomodules="dart $_aomodules"
6061 else
6062 def_dart='#undef CONFIG_DART'
6063 _noaomodules="dart $_noaomodules"
6065 echores "$_dart"
6066 fi #if os2
6069 # set default CD/DVD devices
6070 if win32 || os2 ; then
6071 default_cdrom_device="D:"
6072 elif darwin ; then
6073 default_cdrom_device="/dev/disk1"
6074 elif dragonfly ; then
6075 default_cdrom_device="/dev/cd0"
6076 elif freebsd ; then
6077 default_cdrom_device="/dev/acd0"
6078 elif openbsd ; then
6079 default_cdrom_device="/dev/rcd0a"
6080 elif sunos ; then
6081 default_cdrom_device="/vol/dev/aliases/cdrom0"
6082 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6083 # file system and the volfs service.
6084 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6085 elif amigaos ; then
6086 default_cdrom_device="a1ide.device:2"
6087 else
6088 default_cdrom_device="/dev/cdrom"
6091 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6092 default_dvd_device=$default_cdrom_device
6093 elif darwin ; then
6094 default_dvd_device="/dev/rdiskN"
6095 else
6096 default_dvd_device="/dev/dvd"
6100 echocheck "VCD support"
6101 if test "$_vcd" = auto; then
6102 _vcd=no
6103 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
6104 _vcd=yes
6105 elif mingw32; then
6106 cat > $TMPC << EOF
6107 #include <ddk/ntddcdrm.h>
6108 int main(void) { return 0; }
6110 cc_check && _vcd=yes
6113 if test "$_vcd" = yes; then
6114 _inputmodules="vcd $_inputmodules"
6115 def_vcd='#define CONFIG_VCD 1'
6116 else
6117 def_vcd='#undef CONFIG_VCD'
6118 _noinputmodules="vcd $_noinputmodules"
6119 _res_comment="not supported on this OS"
6121 echores "$_vcd"
6125 echocheck "dvdread"
6126 if test "$_dvdread_internal" = auto ; then
6127 _dvdread_internal=no
6128 _dvdread=no
6129 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6130 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6131 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6132 || darwin || win32 || os2; then
6133 _dvdread_internal=yes
6134 _dvdread=yes
6135 extra_cflags="-Ilibdvdread4 $extra_cflags"
6137 elif test "$_dvdread" = auto ; then
6138 _dvdread=no
6139 if test "$_dl" = yes; then
6140 cat > $TMPC << EOF
6141 #include <inttypes.h>
6142 #include <dvdread/dvd_reader.h>
6143 #include <dvdread/ifo_types.h>
6144 #include <dvdread/ifo_read.h>
6145 #include <dvdread/nav_read.h>
6146 int main(void) { return 0; }
6148 _dvdreadcflags=$($_dvdreadconfig --cflags)
6149 _dvdreadlibs=$($_dvdreadconfig --libs)
6150 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6151 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6152 _dvdread=yes
6153 extra_cflags="$extra_cflags $_dvdreadcflags"
6154 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6155 _res_comment="external"
6160 if test "$_dvdread_internal" = yes; then
6161 def_dvdread='#define CONFIG_DVDREAD 1'
6162 _inputmodules="dvdread(internal) $_inputmodules"
6163 _largefiles=yes
6164 _res_comment="internal"
6165 elif test "$_dvdread" = yes; then
6166 def_dvdread='#define CONFIG_DVDREAD 1'
6167 _largefiles=yes
6168 extra_ldflags="$extra_ldflags -ldvdread"
6169 _inputmodules="dvdread(external) $_inputmodules"
6170 _res_comment="external"
6171 else
6172 def_dvdread='#undef CONFIG_DVDREAD'
6173 _noinputmodules="dvdread $_noinputmodules"
6175 echores "$_dvdread"
6178 echocheck "internal libdvdcss"
6179 if test "$_libdvdcss_internal" = auto ; then
6180 _libdvdcss_internal=no
6181 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6182 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6184 if test "$_libdvdcss_internal" = yes ; then
6185 if linux || netbsd || openbsd || bsdos ; then
6186 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6187 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6188 elif freebsd || dragonfly ; then
6189 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6190 elif darwin ; then
6191 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6192 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6193 elif cygwin ; then
6194 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6195 elif beos ; then
6196 cflags_libdvdcss="-DSYS_BEOS"
6197 elif os2 ; then
6198 cflags_libdvdcss="-DSYS_OS2"
6200 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6201 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6202 _inputmodules="libdvdcss(internal) $_inputmodules"
6203 _largefiles=yes
6204 else
6205 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6207 echores "$_libdvdcss_internal"
6210 echocheck "cdparanoia"
6211 if test "$_cdparanoia" = auto ; then
6212 cat > $TMPC <<EOF
6213 #include <cdda_interface.h>
6214 #include <cdda_paranoia.h>
6215 // This need a better test. How ?
6216 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6218 _cdparanoia=no
6219 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6220 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6221 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6222 done
6224 if test "$_cdparanoia" = yes ; then
6225 _cdda='yes'
6226 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6227 openbsd && extra_ldflags="$extra_ldflags -lutil"
6229 echores "$_cdparanoia"
6232 echocheck "libcdio"
6233 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6234 cat > $TMPC << EOF
6235 #include <stdio.h>
6236 #include <cdio/version.h>
6237 #include <cdio/cdda.h>
6238 #include <cdio/paranoia.h>
6239 int main(void) {
6240 void *test = cdda_verbose_set;
6241 printf("%s\n", CDIO_VERSION);
6242 return test == (void *)1;
6245 _libcdio=no
6246 for _ld_tmp in "" "-lwinmm" ; do
6247 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6248 cc_check $_ld_tmp $_ld_lm \
6249 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6250 done
6251 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6252 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6253 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6254 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6255 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6258 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6259 _cdda='yes'
6260 def_libcdio='#define CONFIG_LIBCDIO 1'
6261 def_havelibcdio='yes'
6262 else
6263 if test "$_cdparanoia" = yes ; then
6264 _res_comment="using cdparanoia"
6266 def_libcdio='#undef CONFIG_LIBCDIO'
6267 def_havelibcdio='no'
6269 echores "$_libcdio"
6271 if test "$_cdda" = yes ; then
6272 test $_cddb = auto && test $_network = yes && _cddb=yes
6273 def_cdparanoia='#define CONFIG_CDDA 1'
6274 _inputmodules="cdda $_inputmodules"
6275 else
6276 def_cdparanoia='#undef CONFIG_CDDA'
6277 _noinputmodules="cdda $_noinputmodules"
6280 if test "$_cddb" = yes ; then
6281 def_cddb='#define CONFIG_CDDB 1'
6282 _inputmodules="cddb $_inputmodules"
6283 else
6284 _cddb=no
6285 def_cddb='#undef CONFIG_CDDB'
6286 _noinputmodules="cddb $_noinputmodules"
6289 echocheck "bitmap font support"
6290 if test "$_bitmap_font" = yes ; then
6291 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6292 else
6293 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6295 echores "$_bitmap_font"
6298 echocheck "freetype >= 2.0.9"
6300 # freetype depends on iconv
6301 if test "$_iconv" = no ; then
6302 _freetype=no
6303 _res_comment="iconv support needed"
6306 if test "$_freetype" = auto ; then
6307 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6308 cat > $TMPC << EOF
6309 #include <stdio.h>
6310 #include <ft2build.h>
6311 #include FT_FREETYPE_H
6312 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6313 #error "Need FreeType 2.0.9 or newer"
6314 #endif
6315 int main(void) {
6316 FT_Library library;
6317 FT_Int major=-1,minor=-1,patch=-1;
6318 int err=FT_Init_FreeType(&library);
6319 return 0;
6322 _freetype=no
6323 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6324 else
6325 _freetype=no
6328 if test "$_freetype" = yes ; then
6329 def_freetype='#define CONFIG_FREETYPE 1'
6330 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6331 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6332 else
6333 def_freetype='#undef CONFIG_FREETYPE'
6335 echores "$_freetype"
6337 if test "$_freetype" = no ; then
6338 _fontconfig=no
6339 _res_comment="FreeType support needed"
6341 echocheck "fontconfig"
6342 if test "$_fontconfig" = auto ; then
6343 cat > $TMPC << EOF
6344 #include <stdio.h>
6345 #include <stdlib.h>
6346 #include <fontconfig/fontconfig.h>
6347 #if FC_VERSION < 20402
6348 #error At least version 2.4.2 of fontconfig required
6349 #endif
6350 int main(void) {
6351 int err = FcInit();
6352 if (err == FcFalse) {
6353 printf("Couldn't initialize fontconfig lib\n");
6354 exit(err);
6356 return 0;
6359 _fontconfig=no
6360 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6361 _ld_tmp="-lfontconfig $_ld_tmp"
6362 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6363 done
6364 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6365 _inc_tmp=$($_pkg_config --cflags fontconfig)
6366 _ld_tmp=$($_pkg_config --libs fontconfig)
6367 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6368 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6371 if test "$_fontconfig" = yes ; then
6372 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6373 else
6374 def_fontconfig='#undef CONFIG_FONTCONFIG'
6376 echores "$_fontconfig"
6379 echocheck "SSA/ASS support"
6380 # libass depends on FreeType
6381 if test "$_freetype" = no ; then
6382 _ass=no
6383 ass_internal=no
6384 _res_comment="FreeType support needed"
6387 if test "$_ass" = auto ; then
6388 cat > $TMPC << EOF
6389 #include <ft2build.h>
6390 #include FT_FREETYPE_H
6391 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6392 #error "Need FreeType 2.2.1 or newer"
6393 #endif
6394 int main(void) { return 0; }
6396 _ass=no
6397 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6398 if test "$_ass" = no ; then
6399 ass_internal=no
6400 _res_comment="FreeType >= 2.2.1 needed"
6401 elif test "$ass_internal" = no ; then
6402 _res_comment="external"
6403 extra_ldflags="$extra_ldflags -lass"
6406 if test "$_ass" = yes ; then
6407 def_ass='#define CONFIG_ASS 1'
6408 else
6409 def_ass='#undef CONFIG_ASS'
6411 if test "$ass_internal" = yes ; then
6412 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6413 else
6414 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6416 echores "$_ass"
6419 echocheck "fribidi with charsets"
6420 _inc_tmp=""
6421 _ld_tmp=""
6422 if test "$_fribidi" = auto ; then
6423 cat > $TMPC << EOF
6424 #include <stdio.h>
6425 #include <stdlib.h>
6426 /* workaround for fribidi 0.10.4 and below */
6427 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6428 #include <fribidi/fribidi.h>
6429 int main(void) {
6430 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6431 printf("Fribidi headers are not consistents with the library!\n");
6432 exit(1);
6434 return 0;
6437 _fribidi=no
6438 _inc_tmp=""
6439 _ld_tmp="-lfribidi"
6440 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6441 if $_fribidiconfig --version > /dev/null 2>&1 &&
6442 test "$_fribidi" = no ; then
6443 _inc_tmp="$($_fribidiconfig --cflags)"
6444 _ld_tmp="$($_fribidiconfig --libs)"
6445 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6448 if test "$_fribidi" = yes ; then
6449 def_fribidi='#define CONFIG_FRIBIDI 1'
6450 extra_cflags="$extra_cflags $_inc_tmp"
6451 extra_ldflags="$extra_ldflags $_ld_tmp"
6452 else
6453 def_fribidi='#undef CONFIG_FRIBIDI'
6455 echores "$_fribidi"
6458 echocheck "ENCA"
6459 if test "$_enca" = auto ; then
6460 cat > $TMPC << EOF
6461 #include <sys/types.h>
6462 #include <enca.h>
6463 int main(void) {
6464 const char **langs;
6465 size_t langcnt;
6466 langs = enca_get_languages(&langcnt);
6467 return 0;
6470 _enca=no
6471 cc_check -lenca $_ld_lm && _enca=yes
6473 if test "$_enca" = yes ; then
6474 def_enca='#define CONFIG_ENCA 1'
6475 extra_ldflags="$extra_ldflags -lenca"
6476 else
6477 def_enca='#undef CONFIG_ENCA'
6479 echores "$_enca"
6482 echocheck "zlib"
6483 cat > $TMPC << EOF
6484 #include <zlib.h>
6485 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6487 _zlib=no
6488 cc_check -lz && _zlib=yes
6489 if test "$_zlib" = yes ; then
6490 def_zlib='#define CONFIG_ZLIB 1'
6491 extra_ldflags="$extra_ldflags -lz"
6492 else
6493 def_zlib='#define CONFIG_ZLIB 0'
6494 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6495 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6497 echores "$_zlib"
6500 echocheck "bzlib"
6501 bzlib=no
6502 def_bzlib='#define CONFIG_BZLIB 0'
6503 cat > $TMPC << EOF
6504 #include <bzlib.h>
6505 int main(void) { BZ2_bzlibVersion(); return 0; }
6507 cc_check -lbz2 && bzlib=yes
6508 if test "$bzlib" = yes ; then
6509 def_bzlib='#define CONFIG_BZLIB 1'
6510 extra_ldflags="$extra_ldflags -lbz2"
6512 echores "$bzlib"
6515 echocheck "RTC"
6516 if test "$_rtc" = auto ; then
6517 cat > $TMPC << EOF
6518 #include <sys/ioctl.h>
6519 #ifdef __linux__
6520 #include <linux/rtc.h>
6521 #else
6522 #include <rtc.h>
6523 #define RTC_PIE_ON RTCIO_PIE_ON
6524 #endif
6525 int main(void) { return RTC_PIE_ON; }
6527 _rtc=no
6528 cc_check && _rtc=yes
6529 ppc && _rtc=no
6531 if test "$_rtc" = yes ; then
6532 def_rtc='#define HAVE_RTC 1'
6533 else
6534 def_rtc='#undef HAVE_RTC'
6536 echores "$_rtc"
6539 echocheck "liblzo2 support"
6540 if test "$_liblzo" = auto ; then
6541 _liblzo=no
6542 cat > $TMPC << EOF
6543 #include <lzo/lzo1x.h>
6544 int main(void) { lzo_init();return 0; }
6546 cc_check -llzo2 && _liblzo=yes
6548 if test "$_liblzo" = yes ; then
6549 def_liblzo='#define CONFIG_LIBLZO 1'
6550 extra_ldflags="$extra_ldflags -llzo2"
6551 _codecmodules="liblzo $_codecmodules"
6552 else
6553 def_liblzo='#undef CONFIG_LIBLZO'
6554 _nocodecmodules="liblzo $_nocodecmodules"
6556 echores "$_liblzo"
6559 echocheck "mad support"
6560 if test "$_mad" = auto ; then
6561 _mad=no
6562 cat > $TMPC << EOF
6563 #include <mad.h>
6564 int main(void) { return 0; }
6566 cc_check -lmad && _mad=yes
6568 if test "$_mad" = yes ; then
6569 def_mad='#define CONFIG_LIBMAD 1'
6570 extra_ldflags="$extra_ldflags -lmad"
6571 _codecmodules="libmad $_codecmodules"
6572 else
6573 def_mad='#undef CONFIG_LIBMAD'
6574 _nocodecmodules="libmad $_nocodecmodules"
6576 echores "$_mad"
6578 echocheck "Twolame"
6579 if test "$_twolame" = auto ; then
6580 cat > $TMPC <<EOF
6581 #include <twolame.h>
6582 int main(void) { twolame_init(); return 0; }
6584 _twolame=no
6585 cc_check -ltwolame $_ld_lm && _twolame=yes
6587 if test "$_twolame" = yes ; then
6588 def_twolame='#define CONFIG_TWOLAME 1'
6589 libs_mencoder="$libs_mencoder -ltwolame"
6590 _codecmodules="twolame $_codecmodules"
6591 else
6592 def_twolame='#undef CONFIG_TWOLAME'
6593 _nocodecmodules="twolame $_nocodecmodules"
6595 echores "$_twolame"
6597 echocheck "Toolame"
6598 if test "$_toolame" = auto ; then
6599 _toolame=no
6600 if test "$_twolame" = yes ; then
6601 _res_comment="disabled by twolame"
6602 else
6603 cat > $TMPC <<EOF
6604 #include <toolame.h>
6605 int main(void) { toolame_init(); return 0; }
6607 cc_check -ltoolame $_ld_lm && _toolame=yes
6610 if test "$_toolame" = yes ; then
6611 def_toolame='#define CONFIG_TOOLAME 1'
6612 libs_mencoder="$libs_mencoder -ltoolame"
6613 _codecmodules="toolame $_codecmodules"
6614 else
6615 def_toolame='#undef CONFIG_TOOLAME'
6616 _nocodecmodules="toolame $_nocodecmodules"
6618 if test "$_toolamedir" ; then
6619 _res_comment="using $_toolamedir"
6621 echores "$_toolame"
6623 echocheck "OggVorbis support"
6624 if test "$_tremor_internal" = yes; then
6625 _libvorbis=no
6626 elif test "$_tremor" = auto; then
6627 _tremor=no
6628 cat > $TMPC << EOF
6629 #include <tremor/ivorbiscodec.h>
6630 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6632 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6634 if test "$_libvorbis" = auto; then
6635 _libvorbis=no
6636 cat > $TMPC << EOF
6637 #include <vorbis/codec.h>
6638 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6640 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6642 if test "$_tremor_internal" = yes ; then
6643 _vorbis=yes
6644 def_vorbis='#define CONFIG_OGGVORBIS 1'
6645 def_tremor='#define CONFIG_TREMOR 1'
6646 _codecmodules="tremor(internal) $_codecmodules"
6647 _res_comment="internal Tremor"
6648 if test "$_tremor_low" = yes ; then
6649 cflags_tremor_low="-D_LOW_ACCURACY_"
6650 _res_comment="internal low accuracy Tremor"
6652 elif test "$_tremor" = yes ; then
6653 _vorbis=yes
6654 def_vorbis='#define CONFIG_OGGVORBIS 1'
6655 def_tremor='#define CONFIG_TREMOR 1'
6656 _codecmodules="tremor(external) $_codecmodules"
6657 _res_comment="external Tremor"
6658 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6659 elif test "$_libvorbis" = yes ; then
6660 _vorbis=yes
6661 def_vorbis='#define CONFIG_OGGVORBIS 1'
6662 _codecmodules="libvorbis $_codecmodules"
6663 _res_comment="libvorbis"
6664 extra_ldflags="$extra_ldflags -lvorbis -logg"
6665 else
6666 _vorbis=no
6667 _nocodecmodules="libvorbis $_nocodecmodules"
6669 echores "$_vorbis"
6671 echocheck "libspeex (version >= 1.1 required)"
6672 if test "$_speex" = auto ; then
6673 _speex=no
6674 cat > $TMPC << EOF
6675 #include <speex/speex.h>
6676 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6678 cc_check -lspeex $_ld_lm && _speex=yes
6680 if test "$_speex" = yes ; then
6681 def_speex='#define CONFIG_SPEEX 1'
6682 extra_ldflags="$extra_ldflags -lspeex"
6683 _codecmodules="speex $_codecmodules"
6684 else
6685 def_speex='#undef CONFIG_SPEEX'
6686 _nocodecmodules="speex $_nocodecmodules"
6688 echores "$_speex"
6690 echocheck "OggTheora support"
6691 if test "$_theora" = auto ; then
6692 _theora=no
6693 cat > $TMPC << EOF
6694 #include <theora/theora.h>
6695 #include <string.h>
6696 int main(void) {
6697 /* Theora is in flux, make sure that all interface routines and datatypes
6698 * exist and work the way we expect it, so we don't break MPlayer. */
6699 ogg_packet op;
6700 theora_comment tc;
6701 theora_info inf;
6702 theora_state st;
6703 yuv_buffer yuv;
6704 int r;
6705 double t;
6707 theora_info_init(&inf);
6708 theora_comment_init(&tc);
6710 return 0;
6712 /* we don't want to execute this kind of nonsense; just for making sure
6713 * that compilation works... */
6714 memset(&op, 0, sizeof(op));
6715 r = theora_decode_header(&inf, &tc, &op);
6716 r = theora_decode_init(&st, &inf);
6717 t = theora_granule_time(&st, op.granulepos);
6718 r = theora_decode_packetin(&st, &op);
6719 r = theora_decode_YUVout(&st, &yuv);
6720 theora_clear(&st);
6722 return 0;
6725 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6726 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6727 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6728 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6729 if test _theora = no; then
6730 _ld_theora="-ltheora -logg"
6731 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6733 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6734 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6735 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6736 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6737 extra_ldflags="$extra_ldflags $_ld_theora" &&
6738 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6739 if test _theora = no; then
6740 _ld_theora="-ltheora -logg"
6741 cc_check tremor/bitwise.c $_ld_theora &&
6742 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6746 if test "$_theora" = yes ; then
6747 def_theora='#define CONFIG_OGGTHEORA 1'
6748 _codecmodules="libtheora $_codecmodules"
6749 # when --enable-theora is forced, we'd better provide a probably sane
6750 # $_ld_theora than nothing
6751 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6752 else
6753 def_theora='#undef CONFIG_OGGTHEORA'
6754 _nocodecmodules="libtheora $_nocodecmodules"
6756 echores "$_theora"
6758 echocheck "internal mp3lib support"
6759 if test "$_mp3lib" = auto ; then
6760 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6762 if test "$_mp3lib" = yes ; then
6763 def_mp3lib='#define CONFIG_MP3LIB 1'
6764 _codecmodules="mp3lib(internal) $_codecmodules"
6765 else
6766 def_mp3lib='#undef CONFIG_MP3LIB'
6767 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6769 echores "$_mp3lib"
6771 echocheck "liba52 support"
6772 if test "$_liba52_internal" = auto ; then
6773 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
6775 def_liba52='#undef CONFIG_LIBA52'
6776 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6777 if test "$_liba52_internal" = yes ; then
6778 _liba52=yes
6779 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6780 _res_comment="internal"
6781 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6782 _liba52=no
6783 cat > $TMPC << EOF
6784 #include <inttypes.h>
6785 #include <a52dec/a52.h>
6786 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6788 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6790 if test "$_liba52" = yes ; then
6791 def_liba52='#define CONFIG_LIBA52 1'
6792 _codecmodules="liba52($_res_comment) $_codecmodules"
6793 else
6794 _nocodecmodules="liba52 $_nocodecmodules"
6796 echores "$_liba52"
6798 echocheck "internal libmpeg2 support"
6799 if test "$_libmpeg2" = auto ; then
6800 _libmpeg2=yes
6801 if alpha && test cc_vendor=gnu; then
6802 case $cc_version in
6803 2*|3.0*|3.1*) # cannot compile MVI instructions
6804 _libmpeg2=no
6805 _res_comment="broken gcc"
6807 esac
6810 if test "$_libmpeg2" = yes ; then
6811 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6812 _codecmodules="libmpeg2(internal) $_codecmodules"
6813 else
6814 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6815 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6817 echores "$_libmpeg2"
6819 echocheck "libdca support"
6820 if test "$_libdca" = auto ; then
6821 _libdca=no
6822 cat > $TMPC << EOF
6823 #include <inttypes.h>
6824 #include <dts.h>
6825 int main(void) { dts_init(0); return 0; }
6827 for _ld_dca in -ldca -ldts ; do
6828 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6829 && _libdca=yes && break
6830 done
6832 if test "$_libdca" = yes ; then
6833 def_libdca='#define CONFIG_LIBDCA 1'
6834 _codecmodules="libdca $_codecmodules"
6835 else
6836 def_libdca='#undef CONFIG_LIBDCA'
6837 _nocodecmodules="libdca $_nocodecmodules"
6839 echores "$_libdca"
6841 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6842 if test "$_musepack" = auto ; then
6843 _musepack=no
6844 cat > $TMPC << EOF
6845 #include <stddef.h>
6846 #include <mpcdec/mpcdec.h>
6847 int main(void) {
6848 mpc_streaminfo info;
6849 mpc_decoder decoder;
6850 mpc_decoder_set_streaminfo(&decoder, &info);
6851 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6852 return 0;
6855 cc_check -lmpcdec $_ld_lm && _musepack=yes
6857 if test "$_musepack" = yes ; then
6858 def_musepack='#define CONFIG_MUSEPACK 1'
6859 extra_ldflags="$extra_ldflags -lmpcdec"
6860 _codecmodules="musepack $_codecmodules"
6861 else
6862 def_musepack='#undef CONFIG_MUSEPACK'
6863 _nocodecmodules="musepack $_nocodecmodules"
6865 echores "$_musepack"
6868 echocheck "FAAC support"
6869 if test "$_faac" = auto ; then
6870 cat > $TMPC <<EOF
6871 #include <inttypes.h>
6872 #include <faac.h>
6873 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6875 _faac=no
6876 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6877 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6878 done
6880 if test "$_faac" = yes ; then
6881 def_faac="#define CONFIG_FAAC 1"
6882 test "$_faac_lavc" = auto && _faac_lavc=yes
6883 if test "$_faac_lavc" = yes ; then
6884 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6885 libs_mplayer="$libs_mplayer $_ld_faac"
6886 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6888 _codecmodules="faac $_codecmodules"
6889 else
6890 _faac_lavc=no
6891 def_faac="#undef CONFIG_FAAC"
6892 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6893 _nocodecmodules="faac $_nocodecmodules"
6895 _res_comment="in libavcodec: $_faac_lavc"
6896 echores "$_faac"
6899 echocheck "FAAD2 support"
6900 if test "$_faad_internal" = auto ; then
6901 if x86_32 && test cc_vendor=gnu; then
6902 case $cc_version in
6903 3.1*|3.2) # ICE/insn with these versions
6904 _faad_internal=no
6905 _res_comment="broken gcc"
6908 _faad=yes
6909 _faad_internal=yes
6911 esac
6912 else
6913 _faad=yes
6914 _faad_internal=yes
6917 if test "$_faad" = auto ; then
6918 cat > $TMPC << EOF
6919 #include <faad.h>
6920 #ifndef FAAD_MIN_STREAMSIZE
6921 #error Too old version
6922 #endif
6923 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6924 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6926 cc_check -lfaad $_ld_lm && _faad=yes
6929 def_faad='#undef CONFIG_FAAD'
6930 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6931 if test "$_faad_internal" = yes ; then
6932 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6933 _res_comment="internal floating-point"
6934 if test "$_faad_fixed" = yes ; then
6935 # The FIXED_POINT implementation of FAAD2 improves performance
6936 # on some platforms, especially for SBR files.
6937 cflags_faad_fixed="-DFIXED_POINT"
6938 _res_comment="internal fixed-point"
6940 elif test "$_faad" = yes ; then
6941 extra_ldflags="$extra_ldflags -lfaad"
6944 if test "$_faad" = yes ; then
6945 def_faad='#define CONFIG_FAAD 1'
6946 if test "$_faad_internal" = yes ; then
6947 _codecmodules="faad2(internal) $_codecmodules"
6948 else
6949 _codecmodules="faad2 $_codecmodules"
6951 else
6952 _faad=no
6953 _nocodecmodules="faad2 $_nocodecmodules"
6955 echores "$_faad"
6958 echocheck "LADSPA plugin support"
6959 if test "$_ladspa" = auto ; then
6960 cat > $TMPC <<EOF
6961 #include <stdio.h>
6962 #include <ladspa.h>
6963 int main(void) {
6964 const LADSPA_Descriptor *ld = NULL;
6965 return 0;
6968 _ladspa=no
6969 cc_check && _ladspa=yes
6971 if test "$_ladspa" = yes; then
6972 def_ladspa="#define CONFIG_LADSPA 1"
6973 else
6974 def_ladspa="#undef CONFIG_LADSPA"
6976 echores "$_ladspa"
6979 echocheck "libbs2b audio filter support"
6980 if test "$_libbs2b" = auto ; then
6981 cat > $TMPC <<EOF
6982 #include <bs2b.h>
6983 #if BS2B_VERSION_MAJOR < 3
6984 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6985 #endif
6986 int main(void) {
6987 t_bs2bdp filter;
6988 filter=bs2b_open();
6989 bs2b_close(filter);
6990 return 0;
6993 _libbs2b=no
6994 if $_pkg_config --exists libbs2b ; then
6995 _inc_tmp=$($_pkg_config --cflags libbs2b)
6996 _ld_tmp=$($_pkg_config --libs libbs2b)
6997 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6998 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6999 else
7000 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7001 -I/usr/local/include/bs2b ; do
7002 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7003 extra_ldflags="$extra_ldflags -lbs2b"
7004 extra_cflags="$extra_cflags $_inc_tmp"
7005 _libbs2b=yes
7006 break
7008 done
7011 def_libbs2b="#undef CONFIG_LIBBS2B"
7012 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7013 echores "$_libbs2b"
7016 if test -z "$_codecsdir" ; then
7017 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7018 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7019 if test -d "$dir" ; then
7020 _codecsdir="$dir"
7021 break;
7023 done
7025 # Fall back on default directory.
7026 if test -z "$_codecsdir" ; then
7027 _codecsdir="$_libdir/codecs"
7028 mingw32 || os2 && _codecsdir="codecs"
7032 echocheck "Win32 codecs"
7033 if test "$_win32dll" = auto ; then
7034 _win32dll=no
7035 if x86_32 && ! qnx; then
7036 _win32dll=yes
7039 if test "$_win32dll" = yes ; then
7040 def_win32dll='#define CONFIG_WIN32DLL 1'
7041 if ! win32 ; then
7042 def_win32_loader='#define WIN32_LOADER 1'
7043 _win32_emulation=yes
7044 else
7045 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7046 _res_comment="using native windows"
7048 _codecmodules="win32 $_codecmodules"
7049 else
7050 def_win32dll='#undef CONFIG_WIN32DLL'
7051 def_win32_loader='#undef WIN32_LOADER'
7052 _nocodecmodules="win32 $_nocodecmodules"
7054 echores "$_win32dll"
7057 echocheck "XAnim codecs"
7058 if test "$_xanim" = auto ; then
7059 _xanim=no
7060 _res_comment="dynamic loader support needed"
7061 if test "$_dl" = yes ; then
7062 _xanim=yes
7065 if test "$_xanim" = yes ; then
7066 def_xanim='#define CONFIG_XANIM 1'
7067 _codecmodules="xanim $_codecmodules"
7068 else
7069 def_xanim='#undef CONFIG_XANIM'
7070 _nocodecmodules="xanim $_nocodecmodules"
7072 echores "$_xanim"
7075 echocheck "RealPlayer codecs"
7076 if test "$_real" = auto ; then
7077 _real=no
7078 _res_comment="dynamic loader support needed"
7079 if test "$_dl" = yes || test "$_win32dll" = yes &&
7080 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7081 _real=yes
7084 if test "$_real" = yes ; then
7085 def_real='#define CONFIG_REALCODECS 1'
7086 _codecmodules="real $_codecmodules"
7087 else
7088 def_real='#undef CONFIG_REALCODECS'
7089 _nocodecmodules="real $_nocodecmodules"
7091 echores "$_real"
7094 echocheck "QuickTime codecs"
7095 _qtx_emulation=no
7096 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7097 if test "$_qtx" = auto ; then
7098 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7100 if test "$_qtx" = yes ; then
7101 def_qtx='#define CONFIG_QTX_CODECS 1'
7102 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7103 _codecmodules="qtx $_codecmodules"
7104 darwin || win32 || _qtx_emulation=yes
7105 else
7106 def_qtx='#undef CONFIG_QTX_CODECS'
7107 _nocodecmodules="qtx $_nocodecmodules"
7109 echores "$_qtx"
7111 echocheck "Nemesi Streaming Media libraries"
7112 if test "$_nemesi" = auto && test "$_network" = yes ; then
7113 _nemesi=no
7114 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7115 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7116 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7117 _nemesi=yes
7120 if test "$_nemesi" = yes; then
7121 _native_rtsp=no
7122 def_nemesi='#define CONFIG_LIBNEMESI 1'
7123 _inputmodules="nemesi $_inputmodules"
7124 else
7125 _native_rtsp="$_network"
7126 _nemesi=no
7127 def_nemesi='#undef CONFIG_LIBNEMESI'
7128 _noinputmodules="nemesi $_noinputmodules"
7130 echores "$_nemesi"
7132 echocheck "LIVE555 Streaming Media libraries"
7133 if test "$_live" = auto && test "$_network" = yes ; then
7134 cat > $TMPCPP << EOF
7135 #include <liveMedia.hh>
7136 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7137 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7138 #endif
7139 int main(void) { return 0; }
7142 _live=no
7143 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
7144 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7145 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7146 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7147 $_livelibdir/groupsock/libgroupsock.a \
7148 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7149 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7150 $extra_ldflags -lstdc++" \
7151 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7152 -I$_livelibdir/UsageEnvironment/include \
7153 -I$_livelibdir/BasicUsageEnvironment/include \
7154 -I$_livelibdir/groupsock/include" && \
7155 _live=yes && break
7156 done
7157 if test "$_live" != yes ; then
7158 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7159 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7160 _live_dist=yes
7164 if test "$_live" = yes && test "$_network" = yes; then
7165 test $_livelibdir && _res_comment="using $_livelibdir"
7166 def_live='#define CONFIG_LIVE555 1'
7167 _inputmodules="live555 $_inputmodules"
7168 elif test "$_live_dist" = yes && test "$_network" = yes; then
7169 _res_comment="using distribution version"
7170 _live="yes"
7171 def_live='#define CONFIG_LIVE555 1'
7172 extra_ldflags="$extra_ldflags $ld_tmp"
7173 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7174 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7175 _inputmodules="live555 $_inputmodules"
7176 else
7177 _live=no
7178 def_live='#undef CONFIG_LIVE555'
7179 _noinputmodules="live555 $_noinputmodules"
7181 echores "$_live"
7184 echocheck "FFmpeg libavutil"
7185 if test "$_libavutil_a" = auto ; then
7186 if test -d libavutil ; then
7187 _libavutil_a=yes
7188 _res_comment="static"
7189 else
7190 die "MPlayer will not compile without libavutil in the source tree."
7192 elif test "$_libavutil_so" = auto ; then
7193 _libavutil_so=no
7194 cat > $TMPC << EOF
7195 #include <libavutil/common.h>
7196 int main(void) { av_clip(1, 1, 1); return 0; }
7198 if $_pkg_config --exists libavutil ; then
7199 _inc_libavutil=$($_pkg_config --cflags libavutil)
7200 _ld_tmp=$($_pkg_config --libs libavutil)
7201 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7202 && _libavutil_so=yes
7203 elif cc_check -lavutil $_ld_lm ; then
7204 extra_ldflags="$extra_ldflags -lavutil"
7205 _libavutil_so=yes
7206 _res_comment="using libavutil.so, but static libavutil is recommended"
7209 _libavutil=no
7210 def_libavutil='#undef CONFIG_LIBAVUTIL'
7211 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7212 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7213 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7214 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7215 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7216 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7217 # neither static nor shared libavutil is available, but it is mandatory ...
7218 if test "$_libavutil" = no ; then
7219 die "You need static or shared libavutil, MPlayer will not compile without!"
7221 echores "$_libavutil"
7223 echocheck "FFmpeg libavcodec"
7224 if test "$_libavcodec_a" = auto ; then
7225 _libavcodec_a=no
7226 if test -d libavcodec && test -f libavcodec/utils.c ; then
7227 _libavcodec_a="yes"
7228 _res_comment="static"
7230 elif test "$_libavcodec_so" = auto ; then
7231 _libavcodec_so=no
7232 _res_comment="libavcodec.so is discouraged over static libavcodec"
7233 cat > $TMPC << EOF
7234 #include <libavcodec/avcodec.h>
7235 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7237 if $_pkg_config --exists libavcodec ; then
7238 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7239 _ld_tmp=$($_pkg_config --libs libavcodec)
7240 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7241 && _libavcodec_so=yes
7242 elif cc_check -lavcodec $_ld_lm ; then
7243 extra_ldflags="$extra_ldflags -lavcodec"
7244 _libavcodec_so=yes
7245 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7248 _libavcodec=no
7249 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7250 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7251 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7252 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7253 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7254 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7255 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7256 test "$_libavcodec_mpegaudio_hp" = yes \
7257 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7258 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7259 if test "$_libavcodec_a" = yes ; then
7260 _codecmodules="libavcodec(internal) $_codecmodules"
7261 elif test "$_libavcodec_so" = yes ; then
7262 _codecmodules="libavcodec.so $_codecmodules"
7263 else
7264 _nocodecmodules="libavcodec $_nocodecmodules"
7266 echores "$_libavcodec"
7268 echocheck "FFmpeg libavformat"
7269 if test "$_libavformat_a" = auto ; then
7270 _libavformat_a=no
7271 if test -d libavformat && test -f libavformat/utils.c ; then
7272 _libavformat_a=yes
7273 _res_comment="static"
7275 elif test "$_libavformat_so" = auto ; then
7276 _libavformat_so=no
7277 cat > $TMPC <<EOF
7278 #include <libavformat/avformat.h>
7279 #include <libavcodec/opt.h>
7280 int main(void) { av_alloc_format_context(); return 0; }
7282 if $_pkg_config --exists libavformat ; then
7283 _inc_libavformat=$($_pkg_config --cflags libavformat)
7284 _ld_tmp=$($_pkg_config --libs libavformat)
7285 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7286 && _libavformat_so=yes
7287 elif cc_check $_ld_lm -lavformat ; then
7288 extra_ldflags="$extra_ldflags -lavformat"
7289 _libavformat_so=yes
7290 _res_comment="using libavformat.so, but static libavformat is recommended"
7293 _libavformat=no
7294 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7295 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7296 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7297 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7298 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7299 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7300 test "$_libavformat_so" = yes \
7301 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7302 echores "$_libavformat"
7304 echocheck "FFmpeg libpostproc"
7305 if test "$_libpostproc_a" = auto ; then
7306 _libpostproc_a=no
7307 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7308 _libpostproc_a='yes'
7309 _res_comment="static"
7311 elif test "$_libpostproc_so" = auto ; then
7312 _libpostproc_so=no
7313 cat > $TMPC << EOF
7314 #include <inttypes.h>
7315 #include <libpostproc/postprocess.h>
7316 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7318 if cc_check -lpostproc $_ld_lm ; then
7319 extra_ldflags="$extra_ldflags -lpostproc"
7320 _libpostproc_so=yes
7321 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7324 _libpostproc=no
7325 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7326 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7327 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7328 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7329 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7330 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7331 test "$_libpostproc_so" = yes \
7332 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7333 echores "$_libpostproc"
7335 echocheck "FFmpeg libswscale"
7336 if test "$_libswscale_a" = auto ; then
7337 _libswscale_a=no
7338 if test -d libswscale && test -f libswscale/swscale.h ; then
7339 _libswscale_a='yes'
7340 _res_comment="static"
7342 elif test "$_libswscale_so" = auto ; then
7343 _libswscale_so=no
7344 _res_comment="using libswscale.so, but static libswscale is recommended"
7345 cat > $TMPC << EOF
7346 #include <libswscale/swscale.h>
7347 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7349 if $_pkg_config --exists libswscale ; then
7350 _inc_libswscale=$($_pkg_config --cflags libswscale)
7351 _ld_tmp=$($_pkg_config --libs libswscale)
7352 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7353 && _libswscale_so=yes
7354 elif cc_check -lswscale ; then
7355 extra_ldflags="$extra_ldflags -lswscale"
7356 _libswscale_so=yes
7359 _libswscale=no
7360 def_libswscale='#undef CONFIG_LIBSWSCALE'
7361 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7362 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7363 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7364 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7365 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7366 test "$_libswscale_so" = yes \
7367 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7368 echores "$_libswscale"
7370 echocheck "libopencore_amr narrowband"
7371 if test "$_libopencore_amrnb" = auto ; then
7372 _libopencore_amrnb=no
7373 cat > $TMPC << EOF
7374 #include <opencore-amrnb/interf_dec.h>
7375 int main(void) { Decoder_Interface_init(); return 0; }
7377 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7378 if test "$_libavcodec_a" != yes ; then
7379 _libopencore_amrnb=no
7380 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7383 if test "$_libopencore_amrnb" = yes ; then
7384 _libopencore_amr=yes
7385 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7386 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7387 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7388 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7389 _codecmodules="libopencore_amrnb $_codecmodules"
7390 else
7391 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7392 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7394 echores "$_libopencore_amrnb"
7397 echocheck "libopencore_amr wideband"
7398 if test "$_libopencore_amrwb" = auto ; then
7399 _libopencore_amrwb=no
7400 cat > $TMPC << EOF
7401 #include <opencore-amrwb/dec_if.h>
7402 int main(void) { D_IF_init(); return 0; }
7404 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7405 if test "$_libavcodec_a" != yes ; then
7406 _libopencore_amrwb=no
7407 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7410 if test "$_libopencore_amrwb" = yes ; then
7411 _libopencore_amr=yes
7412 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7413 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7414 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7415 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7416 _codecmodules="libopencore_amrwb $_codecmodules"
7417 else
7418 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7419 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7421 echores "$_libopencore_amrwb"
7423 echocheck "libdv-0.9.5+"
7424 if test "$_libdv" = auto ; then
7425 _libdv=no
7426 cat > $TMPC <<EOF
7427 #include <libdv/dv.h>
7428 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7430 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7432 if test "$_libdv" = yes ; then
7433 def_libdv='#define CONFIG_LIBDV095 1'
7434 extra_ldflags="$extra_ldflags -ldv"
7435 _codecmodules="libdv $_codecmodules"
7436 else
7437 def_libdv='#undef CONFIG_LIBDV095'
7438 _nocodecmodules="libdv $_nocodecmodules"
7440 echores "$_libdv"
7443 echocheck "Xvid"
7444 if test "$_xvid" = auto ; then
7445 _xvid=no
7446 cat > $TMPC << EOF
7447 #include <xvid.h>
7448 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7450 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7451 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7452 done
7455 if test "$_xvid" = yes ; then
7456 def_xvid='#define CONFIG_XVID4 1'
7457 _codecmodules="xvid $_codecmodules"
7458 else
7459 def_xvid='#undef CONFIG_XVID4'
7460 _nocodecmodules="xvid $_nocodecmodules"
7462 echores "$_xvid"
7464 echocheck "Xvid two pass plugin"
7465 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7466 cat > $TMPC << EOF
7467 #include <xvid.h>
7468 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7470 cc_check && _xvid_lavc=yes
7472 if test "$_xvid_lavc" = yes ; then
7473 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7474 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7475 else
7476 _xvid_lavc=no
7477 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7479 echores "$_xvid_lavc"
7482 echocheck "x264"
7483 if test "$_x264" = auto ; then
7484 cat > $TMPC << EOF
7485 #include <inttypes.h>
7486 #include <x264.h>
7487 #if X264_BUILD < 83
7488 #error We do not support old versions of x264. Get the latest from git.
7489 #endif
7490 int main(void) { x264_encoder_open((void*)0); return 0; }
7492 _x264=no
7493 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7494 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7495 done
7498 if test "$_x264" = yes ; then
7499 def_x264='#define CONFIG_X264 1'
7500 _codecmodules="x264 $_codecmodules"
7501 test "$_x264_lavc" = auto && _x264_lavc=yes
7502 if test "$_x264_lavc" = yes ; then
7503 def_x264_lavc='#define CONFIG_LIBX264 1'
7504 libs_mplayer="$libs_mplayer $_ld_x264"
7505 _libavencoders="$_libavencoders LIBX264_ENCODER"
7507 else
7508 _x264_lavc=no
7509 def_x264='#undef CONFIG_X264'
7510 def_x264_lavc='#define CONFIG_LIBX264 0'
7511 _nocodecmodules="x264 $_nocodecmodules"
7513 _res_comment="in libavcodec: $_x264_lavc"
7514 echores "$_x264"
7517 echocheck "libdirac"
7518 if test "$_libdirac_lavc" = auto; then
7519 _libdirac_lavc=no
7520 if test "$_libavcodec_a" != yes; then
7521 _res_comment="libavcodec (static) is required by libdirac, sorry"
7522 else
7523 cat > $TMPC << EOF
7524 #include <libdirac_encoder/dirac_encoder.h>
7525 #include <libdirac_decoder/dirac_parser.h>
7526 int main(void)
7528 dirac_encoder_context_t enc_ctx;
7529 dirac_decoder_t *dec_handle;
7530 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7531 dec_handle = dirac_decoder_init(0);
7532 if (dec_handle)
7533 dirac_decoder_close(dec_handle);
7534 return 0;
7537 if $_pkg_config --exists dirac ; then
7538 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7539 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7540 cc_check $_inc_dirac $_ld_dirac &&
7541 _libdirac_lavc=yes &&
7542 extra_cflags="$extra_cflags $_inc_dirac" &&
7543 extra_ldflags="$extra_ldflags $_ld_dirac"
7547 if test "$_libdirac_lavc" = yes ; then
7548 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7549 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7550 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7551 _codecmodules="libdirac $_codecmodules"
7552 else
7553 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7554 _nocodecmodules="libdirac $_nocodecmodules"
7556 echores "$_libdirac_lavc"
7559 echocheck "libschroedinger"
7560 if test "$_libschroedinger_lavc" = auto ; then
7561 _libschroedinger_lavc=no
7562 if test "$_libavcodec_a" != yes; then
7563 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7564 else
7565 cat > $TMPC << EOF
7566 #include <schroedinger/schro.h>
7567 int main(void) { schro_init(); return 0; }
7569 if $_pkg_config --exists schroedinger-1.0 ; then
7570 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7571 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7572 cc_check $_inc_schroedinger $_ld_schroedinger &&
7573 _libschroedinger_lavc=yes &&
7574 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7575 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7579 if test "$_libschroedinger_lavc" = yes ; then
7580 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7581 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7582 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7583 _codecmodules="libschroedinger $_codecmodules"
7584 else
7585 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7586 _nocodecmodules="libschroedinger $_nocodecmodules"
7588 echores "$_libschroedinger_lavc"
7590 echocheck "libnut"
7591 if test "$_libnut" = auto ; then
7592 cat > $TMPC << EOF
7593 #include <stdio.h>
7594 #include <stdlib.h>
7595 #include <inttypes.h>
7596 #include <libnut.h>
7597 nut_context_tt * nut;
7598 int main(void) { (void)nut_error(0); return 0; }
7600 _libnut=no
7601 cc_check -lnut && _libnut=yes
7604 if test "$_libnut" = yes ; then
7605 def_libnut='#define CONFIG_LIBNUT 1'
7606 extra_ldflags="$extra_ldflags -lnut"
7607 else
7608 def_libnut='#undef CONFIG_LIBNUT'
7610 echores "$_libnut"
7612 #check must be done after libavcodec one
7613 echocheck "zr"
7614 if test "$_zr" = auto ; then
7615 #36067's seem to identify themselves as 36057PQC's, so the line
7616 #below should work for 36067's and 36057's.
7617 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7618 _zr=yes
7619 else
7620 _zr=no
7623 if test "$_zr" = yes ; then
7624 if test "$_libavcodec_a" = yes ; then
7625 def_zr='#define CONFIG_ZR 1'
7626 _vomodules="zr zr2 $_vomodules"
7627 else
7628 _res_comment="libavcodec (static) is required by zr, sorry"
7629 _novomodules="zr $_novomodules"
7630 def_zr='#undef CONFIG_ZR'
7632 else
7633 def_zr='#undef CONFIG_ZR'
7634 _novomodules="zr zr2 $_novomodules"
7636 echores "$_zr"
7638 # mencoder requires (optional) those libs: libmp3lame
7639 if test "$_mencoder" != no ; then
7641 echocheck "libmp3lame"
7642 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7643 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7644 if test "$_mp3lame" = auto ; then
7645 _mp3lame=no
7646 cat > $TMPC <<EOF
7647 #include <lame/lame.h>
7648 int main(void) { lame_version_t lv; (void) lame_init();
7649 get_lame_version_numerical(&lv);
7650 return 0; }
7652 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7654 if test "$_mp3lame" = yes ; then
7655 def_mp3lame="#define CONFIG_MP3LAME 1"
7656 _ld_mp3lame=-lmp3lame
7657 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7658 cat > $TMPC << EOF
7659 #include <lame/lame.h>
7660 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7662 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7663 cat > $TMPC << EOF
7664 #include <lame/lame.h>
7665 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7667 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7668 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7669 if test "$_mp3lame_lavc" = yes ; then
7670 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7671 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7672 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7674 else
7675 _mp3lame_lavc=no
7676 def_mp3lame='#undef CONFIG_MP3LAME'
7677 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7679 _res_comment="in libavcodec: $_mp3lame_lavc"
7680 echores "$_mp3lame"
7682 fi # test "$_mencoder" != no
7684 echocheck "mencoder"
7685 if test "$_mencoder" = yes ; then
7686 def_muxers='#define CONFIG_MUXERS 1'
7687 else
7688 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7689 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7690 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7691 _libavmuxers=""
7692 def_muxers='#define CONFIG_MUXERS 0'
7694 echores "$_mencoder"
7697 echocheck "UnRAR executable"
7698 if test "$_unrar_exec" = auto ; then
7699 _unrar_exec="yes"
7700 mingw32 && _unrar_exec="no"
7702 if test "$_unrar_exec" = yes ; then
7703 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7704 else
7705 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7707 echores "$_unrar_exec"
7709 echocheck "TV interface"
7710 if test "$_tv" = yes ; then
7711 def_tv='#define CONFIG_TV 1'
7712 _inputmodules="tv $_inputmodules"
7713 else
7714 _noinputmodules="tv $_noinputmodules"
7715 def_tv='#undef CONFIG_TV'
7717 echores "$_tv"
7720 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7721 echocheck "*BSD BT848 bt8xx header"
7722 _ioctl_bt848_h=no
7723 for file in "machine/ioctl_bt848.h" \
7724 "dev/bktr/ioctl_bt848.h" \
7725 "dev/video/bktr/ioctl_bt848.h" \
7726 "dev/ic/bt8xx.h" ; do
7727 cat > $TMPC <<EOF
7728 #include <sys/types.h>
7729 #include <sys/ioctl.h>
7730 #include <$file>
7731 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7733 if cc_check ; then
7734 _ioctl_bt848_h=yes
7735 _ioctl_bt848_h_name="$file"
7736 break;
7738 done
7739 if test "$_ioctl_bt848_h" = yes ; then
7740 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7741 _res_comment="using $_ioctl_bt848_h_name"
7742 else
7743 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7745 echores "$_ioctl_bt848_h"
7747 echocheck "*BSD ioctl_meteor.h"
7748 _ioctl_meteor_h=no
7749 for file in "machine/ioctl_meteor.h" \
7750 "dev/bktr/ioctl_meteor.h" \
7751 "dev/video/bktr/ioctl_meteor.h" ; do
7752 cat > $TMPC <<EOF
7753 #include <sys/types.h>
7754 #include <$file>
7755 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7757 if cc_check ; then
7758 _ioctl_meteor_h=yes
7759 _ioctl_meteor_h_name="$file"
7760 break;
7762 done
7763 if test "$_ioctl_meteor_h" = yes ; then
7764 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7765 _res_comment="using $_ioctl_meteor_h_name"
7766 else
7767 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7769 echores "$_ioctl_meteor_h"
7771 echocheck "*BSD BrookTree 848 TV interface"
7772 if test "$_tv_bsdbt848" = auto ; then
7773 _tv_bsdbt848=no
7774 if test "$_tv" = yes ; then
7775 cat > $TMPC <<EOF
7776 #include <sys/types.h>
7777 $def_ioctl_meteor_h_name
7778 $def_ioctl_bt848_h_name
7779 #ifdef IOCTL_METEOR_H_NAME
7780 #include IOCTL_METEOR_H_NAME
7781 #endif
7782 #ifdef IOCTL_BT848_H_NAME
7783 #include IOCTL_BT848_H_NAME
7784 #endif
7785 int main(void) {
7786 ioctl(0, METEORSINPUT, 0);
7787 ioctl(0, TVTUNER_GETFREQ, 0);
7788 return 0;
7791 cc_check && _tv_bsdbt848=yes
7794 if test "$_tv_bsdbt848" = yes ; then
7795 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7796 _inputmodules="tv-bsdbt848 $_inputmodules"
7797 else
7798 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7799 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7801 echores "$_tv_bsdbt848"
7802 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7805 echocheck "DirectShow TV interface"
7806 if test "$_tv_dshow" = auto ; then
7807 _tv_dshow=no
7808 if test "$_tv" = yes && win32 ; then
7809 cat > $TMPC <<EOF
7810 #include <ole2.h>
7811 int main(void) {
7812 void* p;
7813 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7814 return 0;
7817 cc_check -lole32 -luuid && _tv_dshow=yes
7820 if test "$_tv_dshow" = yes ; then
7821 _inputmodules="tv-dshow $_inputmodules"
7822 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7823 extra_ldflags="$extra_ldflags -lole32 -luuid"
7824 else
7825 _noinputmodules="tv-dshow $_noinputmodules"
7826 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7828 echores "$_tv_dshow"
7831 echocheck "Video 4 Linux TV interface"
7832 if test "$_tv_v4l1" = auto ; then
7833 _tv_v4l1=no
7834 if test "$_tv" = yes && linux ; then
7835 cat > $TMPC <<EOF
7836 #include <stdlib.h>
7837 #include <linux/videodev.h>
7838 int main(void) { return 0; }
7840 cc_check && _tv_v4l1=yes
7843 if test "$_tv_v4l1" = yes ; then
7844 _audio_input=yes
7845 _tv_v4l=yes
7846 def_tv_v4l='#define CONFIG_TV_V4L 1'
7847 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7848 _inputmodules="tv-v4l $_inputmodules"
7849 else
7850 _noinputmodules="tv-v4l1 $_noinputmodules"
7851 def_tv_v4l='#undef CONFIG_TV_V4L'
7853 echores "$_tv_v4l1"
7856 echocheck "Video 4 Linux 2 TV interface"
7857 if test "$_tv_v4l2" = auto ; then
7858 _tv_v4l2=no
7859 if test "$_tv" = yes && linux ; then
7860 cat > $TMPC <<EOF
7861 #include <stdlib.h>
7862 #include <linux/types.h>
7863 #include <linux/videodev2.h>
7864 int main(void) { return 0; }
7866 cc_check && _tv_v4l2=yes
7869 if test "$_tv_v4l2" = yes ; then
7870 _audio_input=yes
7871 _tv_v4l=yes
7872 def_tv_v4l='#define CONFIG_TV_V4L 1'
7873 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7874 _inputmodules="tv-v4l2 $_inputmodules"
7875 else
7876 _noinputmodules="tv-v4l2 $_noinputmodules"
7877 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7879 echores "$_tv_v4l2"
7882 echocheck "Radio interface"
7883 if test "$_radio" = yes ; then
7884 def_radio='#define CONFIG_RADIO 1'
7885 _inputmodules="radio $_inputmodules"
7886 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7887 _radio_capture=no
7889 if test "$_radio_capture" = yes ; then
7890 _audio_input=yes
7891 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7892 else
7893 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7895 else
7896 _noinputmodules="radio $_noinputmodules"
7897 def_radio='#undef CONFIG_RADIO'
7898 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7899 _radio_capture=no
7901 echores "$_radio"
7902 echocheck "Capture for Radio interface"
7903 echores "$_radio_capture"
7905 echocheck "Video 4 Linux 2 Radio interface"
7906 if test "$_radio_v4l2" = auto ; then
7907 _radio_v4l2=no
7908 if test "$_radio" = yes && linux ; then
7909 cat > $TMPC <<EOF
7910 #include <stdlib.h>
7911 #include <linux/types.h>
7912 #include <linux/videodev2.h>
7913 int main(void) { return 0; }
7915 cc_check && _radio_v4l2=yes
7918 if test "$_radio_v4l2" = yes ; then
7919 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7920 else
7921 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7923 echores "$_radio_v4l2"
7925 echocheck "Video 4 Linux Radio interface"
7926 if test "$_radio_v4l" = auto ; then
7927 _radio_v4l=no
7928 if test "$_radio" = yes && linux ; then
7929 cat > $TMPC <<EOF
7930 #include <stdlib.h>
7931 #include <linux/videodev.h>
7932 int main(void) { return 0; }
7934 cc_check && _radio_v4l=yes
7937 if test "$_radio_v4l" = yes ; then
7938 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7939 else
7940 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7942 echores "$_radio_v4l"
7944 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7945 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7946 echocheck "*BSD BrookTree 848 Radio interface"
7947 _radio_bsdbt848=no
7948 cat > $TMPC <<EOF
7949 #include <sys/types.h>
7950 $def_ioctl_bt848_h_name
7951 #ifdef IOCTL_BT848_H_NAME
7952 #include IOCTL_BT848_H_NAME
7953 #endif
7954 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7956 cc_check && _radio_bsdbt848=yes
7957 echores "$_radio_bsdbt848"
7958 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7960 if test "$_radio_bsdbt848" = yes ; then
7961 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7962 else
7963 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7966 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7967 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7968 die "Radio driver requires BSD BT848, V4L or V4L2!"
7971 echocheck "Video 4 Linux 2 MPEG PVR interface"
7972 if test "$_pvr" = auto ; then
7973 _pvr=no
7974 if test "$_tv_v4l2" = yes && linux ; then
7975 cat > $TMPC <<EOF
7976 #include <stdlib.h>
7977 #include <inttypes.h>
7978 #include <linux/types.h>
7979 #include <linux/videodev2.h>
7980 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7982 cc_check && _pvr=yes
7985 if test "$_pvr" = yes ; then
7986 def_pvr='#define CONFIG_PVR 1'
7987 _inputmodules="pvr $_inputmodules"
7988 else
7989 _noinputmodules="pvr $_noinputmodules"
7990 def_pvr='#undef CONFIG_PVR'
7992 echores "$_pvr"
7995 echocheck "ftp"
7996 if ! beos && test "$_ftp" = yes ; then
7997 def_ftp='#define CONFIG_FTP 1'
7998 _inputmodules="ftp $_inputmodules"
7999 else
8000 _noinputmodules="ftp $_noinputmodules"
8001 def_ftp='#undef CONFIG_FTP'
8003 echores "$_ftp"
8005 echocheck "vstream client"
8006 if test "$_vstream" = auto ; then
8007 _vstream=no
8008 cat > $TMPC <<EOF
8009 #include <vstream-client.h>
8010 void vstream_error(const char *format, ... ) {}
8011 int main(void) { vstream_start(); return 0; }
8013 cc_check -lvstream-client && _vstream=yes
8015 if test "$_vstream" = yes ; then
8016 def_vstream='#define CONFIG_VSTREAM 1'
8017 _inputmodules="vstream $_inputmodules"
8018 extra_ldflags="$extra_ldflags -lvstream-client"
8019 else
8020 _noinputmodules="vstream $_noinputmodules"
8021 def_vstream='#undef CONFIG_VSTREAM'
8023 echores "$_vstream"
8026 echocheck "OSD menu"
8027 if test "$_menu" = yes ; then
8028 def_menu='#define CONFIG_MENU 1'
8029 test $_dvbin = "yes" && _menu_dvbin=yes
8030 else
8031 def_menu='#undef CONFIG_MENU'
8032 _menu_dvbin=no
8034 echores "$_menu"
8037 echocheck "Subtitles sorting"
8038 if test "$_sortsub" = yes ; then
8039 def_sortsub='#define CONFIG_SORTSUB 1'
8040 else
8041 def_sortsub='#undef CONFIG_SORTSUB'
8043 echores "$_sortsub"
8046 echocheck "XMMS inputplugin support"
8047 if test "$_xmms" = yes ; then
8048 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8049 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8050 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8051 else
8052 _xmmsplugindir=/usr/lib/xmms/Input
8053 _xmmslibdir=/usr/lib
8056 def_xmms='#define CONFIG_XMMS 1'
8057 if darwin ; then
8058 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8059 else
8060 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8062 else
8063 def_xmms='#undef CONFIG_XMMS'
8065 echores "$_xmms"
8068 # --------------- GUI specific tests begin -------------------
8069 echocheck "GUI"
8070 echo "$_gui"
8071 if test "$_gui" = yes ; then
8073 # Required libraries
8074 if test "$_libavcodec" != yes ||
8075 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8076 die "The GUI requires libavcodec with PNG support (needs zlib)."
8078 test "$_freetype" = no && test "$_bitmap_font" = no && \
8079 die "The GUI requires either FreeType or bitmap font support."
8080 if ! win32 ; then
8081 _gui_gtk=yes
8082 test "$_x11" != yes && die "X11 support required for GUI compilation."
8084 echocheck "XShape extension"
8085 if test "$_xshape" = auto ; then
8086 _xshape=no
8087 cat > $TMPC << EOF
8088 #include <X11/Xlib.h>
8089 #include <X11/Xproto.h>
8090 #include <X11/Xutil.h>
8091 #include <X11/extensions/shape.h>
8092 #include <stdlib.h>
8093 int main(void) {
8094 char *name = ":0.0";
8095 Display *wsDisplay;
8096 int exitvar = 0;
8097 int eventbase, errorbase;
8098 if (getenv("DISPLAY"))
8099 name=getenv("DISPLAY");
8100 wsDisplay=XOpenDisplay(name);
8101 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8102 exitvar=1;
8103 XCloseDisplay(wsDisplay);
8104 return exitvar;
8107 cc_check -lXext && _xshape=yes
8109 if test "$_xshape" = yes ; then
8110 def_xshape='#define CONFIG_XSHAPE 1'
8111 else
8112 die "The GUI requires the X11 extension XShape (which was not found)."
8114 echores "$_xshape"
8116 #Check for GTK
8117 if test "$_gtk1" = no ; then
8118 #Check for GTK2 :
8119 echocheck "GTK+ version"
8121 if $_pkg_config gtk+-2.0 --exists ; then
8122 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8123 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8124 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8125 echores "$_gtk"
8127 # Check for GLIB2
8128 if $_pkg_config glib-2.0 --exists ; then
8129 echocheck "glib version"
8130 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8131 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8132 echores "$_glib"
8134 def_gui='#define CONFIG_GUI 1'
8135 def_gtk2='#define CONFIG_GTK2 1'
8136 else
8137 _gtk1=yes
8138 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8140 else
8141 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8142 _gtk1=yes
8146 if test "$_gtk1" = yes ; then
8147 # Check for old GTK (1.2.x)
8148 echocheck "GTK version"
8149 if test -z "$_gtkconfig" ; then
8150 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8151 _gtkconfig="gtk-config"
8152 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8153 _gtkconfig="gtk12-config"
8154 else
8155 die "The GUI requires GTK devel packages (which were not found)."
8158 _gtk=$($_gtkconfig --version 2>&1)
8159 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8160 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8161 echores "$_gtk (using $_gtkconfig)"
8163 # Check for GLIB
8164 echocheck "glib version"
8165 if test -z "$_glibconfig" ; then
8166 if ( glib-config --version ) >/dev/null 2>&1 ; then
8167 _glibconfig="glib-config"
8168 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8169 _glibconfig="glib12-config"
8170 else
8171 die "The GUI requires GLIB devel packages (which were not found)"
8174 _glib=$($_glibconfig --version 2>&1)
8175 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8176 echores "$_glib (using $_glibconfig)"
8178 def_gui='#define CONFIG_GUI 1'
8179 def_gtk2='#undef CONFIG_GTK2'
8182 else #if ! win32
8183 _gui_win32=yes
8184 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8185 def_gui='#define CONFIG_GUI 1'
8186 def_gtk2='#undef CONFIG_GTK2'
8187 fi #if ! win32
8189 else #if test "$_gui"
8190 def_gui='#undef CONFIG_GUI'
8191 def_gtk2='#undef CONFIG_GTK2'
8192 fi #if test "$_gui"
8193 # --------------- GUI specific tests end -------------------
8196 if test "$_charset" != "noconv" ; then
8197 def_charset="#define MSG_CHARSET \"$_charset\""
8198 else
8199 def_charset="#undef MSG_CHARSET"
8200 _charset="UTF-8"
8203 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8204 echocheck "iconv program"
8205 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8206 if test "$?" -ne 0 ; then
8207 echores "no"
8208 echo "No working iconv program found, use "
8209 echo "--charset=UTF-8 to continue anyway."
8210 echo "If you also have problems with iconv library functions use --charset=noconv."
8211 echo "Messages in the GTK-2 interface will be broken then."
8212 exit 1
8213 else
8214 echores "yes"
8218 #############################################################################
8220 echocheck "automatic gdb attach"
8221 if test "$_crash_debug" = yes ; then
8222 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8223 else
8224 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8225 _crash_debug=no
8227 echores "$_crash_debug"
8229 echocheck "compiler support for noexecstack"
8230 cat > $TMPC <<EOF
8231 int main(void) { return 0; }
8233 if cc_check -Wl,-z,noexecstack ; then
8234 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8235 echores "yes"
8236 else
8237 echores "no"
8240 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8241 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8242 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8243 echores "yes"
8244 else
8245 echores "no"
8249 # Dynamic linking flags
8250 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8251 _ld_dl_dynamic=''
8252 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8253 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8254 _ld_dl_dynamic='-rdynamic'
8257 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8258 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8259 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8261 def_debug='#undef MP_DEBUG'
8262 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8265 echocheck "joystick"
8266 def_joystick='#undef CONFIG_JOYSTICK'
8267 if test "$_joystick" = yes ; then
8268 if linux ; then
8269 # TODO add some check
8270 def_joystick='#define CONFIG_JOYSTICK 1'
8271 else
8272 _joystick="no"
8273 _res_comment="unsupported under $system_name"
8276 echores "$_joystick"
8278 echocheck "lirc"
8279 if test "$_lirc" = auto ; then
8280 _lirc=no
8281 cat > $TMPC <<EOF
8282 #include <lirc/lirc_client.h>
8283 int main(void) { return 0; }
8285 cc_check -llirc_client && _lirc=yes
8287 if test "$_lirc" = yes ; then
8288 def_lirc='#define CONFIG_LIRC 1'
8289 libs_mplayer="$libs_mplayer -llirc_client"
8290 else
8291 def_lirc='#undef CONFIG_LIRC'
8293 echores "$_lirc"
8295 echocheck "lircc"
8296 if test "$_lircc" = auto ; then
8297 _lircc=no
8298 cat > $TMPC <<EOF
8299 #include <lirc/lircc.h>
8300 int main(void) { return 0; }
8302 cc_check -llircc && _lircc=yes
8304 if test "$_lircc" = yes ; then
8305 def_lircc='#define CONFIG_LIRCC 1'
8306 libs_mplayer="$libs_mplayer -llircc"
8307 else
8308 def_lircc='#undef CONFIG_LIRCC'
8310 echores "$_lircc"
8312 if arm; then
8313 # Detect maemo development platform libraries availability (http://www.maemo.org),
8314 # they are used when run on Nokia 770|8x0
8315 echocheck "maemo (Nokia 770|8x0)"
8316 if test "$_maemo" = auto ; then
8317 _maemo=no
8318 cat > $TMPC << EOF
8319 #include <libosso.h>
8320 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8322 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8324 if test "$_maemo" = yes ; then
8325 def_maemo='#define CONFIG_MAEMO 1'
8326 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8327 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8328 else
8329 def_maemo='#undef CONFIG_MAEMO'
8331 echores "$_maemo"
8334 #############################################################################
8336 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8337 # the OMF format needs to come after the 'extern symbol prefix' check, which
8338 # uses nm.
8339 if os2 ; then
8340 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8343 # linker paths should be the same for mencoder and mplayer
8344 _ld_tmp=""
8345 for I in $libs_mplayer ; do
8346 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8347 if test -z "$_tmp" ; then
8348 extra_ldflags="$extra_ldflags $I"
8349 else
8350 _ld_tmp="$_ld_tmp $I"
8352 done
8353 libs_mplayer=$_ld_tmp
8356 #############################################################################
8357 # 64 bit file offsets?
8358 if test "$_largefiles" = yes || freebsd ; then
8359 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8360 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8361 # dvdread support requires this (for off64_t)
8362 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8366 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8368 # This must be the last test to be performed. Any other tests following it
8369 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8370 # against libdvdread (to permit MPlayer to use its own copy of the library).
8371 # So any compilation using the flags added here but not linking against
8372 # libdvdread can fail.
8373 echocheck "DVD support (libdvdnav)"
8374 dvdnav_internal=no
8375 if test "$_dvdnav" = auto ; then
8376 if test "$_dvdread_internal" = yes ; then
8377 _dvdnav=yes
8378 dvdnav_internal=yes
8379 _res_comment="internal"
8380 else
8381 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8384 if test "$_dvdnav" = auto ; then
8385 cat > $TMPC <<EOF
8386 #include <inttypes.h>
8387 #include <dvdnav/dvdnav.h>
8388 int main(void) { dvdnav_t *dvd=0; return 0; }
8390 _dvdnav=no
8391 _dvdnavdir=$($_dvdnavconfig --cflags)
8392 _dvdnavlibs=$($_dvdnavconfig --libs)
8393 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8395 if test "$_dvdnav" = yes ; then
8396 _largefiles=yes
8397 def_dvdnav='#define CONFIG_DVDNAV 1'
8398 if test "$dvdnav_internal" = yes ; then
8399 cflags_libdvdnav="-Ilibdvdnav"
8400 _inputmodules="dvdnav(internal) $_inputmodules"
8401 else
8402 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8403 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8404 _inputmodules="dvdnav $_inputmodules"
8406 else
8407 def_dvdnav='#undef CONFIG_DVDNAV'
8408 _noinputmodules="dvdnav $_noinputmodules"
8410 echores "$_dvdnav"
8412 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8413 # Read dvdnav comment above.
8415 mak_enable () {
8416 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8417 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8418 nprefix=$3;
8419 for part in $list; do
8420 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8421 echo "${nprefix}_$part = yes"
8423 done
8426 #############################################################################
8427 echo "Creating config.mak"
8428 cat > config.mak << EOF
8429 # -------- Generated by configure -----------
8431 # Ensure that locale settings do not interfere with shell commands.
8432 export LC_ALL = C
8434 CONFIGURATION = $_configuration
8436 CHARSET = $_charset
8437 DOC_LANGS = $language_doc
8438 DOC_LANG_ALL = $doc_lang_all
8439 MAN_LANGS = $language_man
8440 MAN_LANG_ALL = $man_lang_all
8442 prefix = \$(DESTDIR)$_prefix
8443 BINDIR = \$(DESTDIR)$_bindir
8444 DATADIR = \$(DESTDIR)$_datadir
8445 LIBDIR = \$(DESTDIR)$_libdir
8446 MANDIR = \$(DESTDIR)$_mandir
8447 CONFDIR = \$(DESTDIR)$_confdir
8449 AR = $_ar
8450 AS = $_cc
8451 CC = $_cc
8452 CXX = $_cc
8453 HOST_CC = $_host_cc
8454 INSTALL = $_install
8455 INSTALLSTRIP = $_install_strip
8456 WINDRES = $_windres
8458 CFLAGS = $CFLAGS $extra_cflags
8459 ASFLAGS = \$(CFLAGS)
8460 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8462 CFLAGS_DHAHELPER = $cflags_dhahelper
8463 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8464 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8465 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8466 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8467 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8468 CFLAGS_STACKREALIGN = $cflags_stackrealign
8469 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8470 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8472 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8473 EXTRALIBS_MPLAYER = $libs_mplayer
8474 EXTRALIBS_MENCODER = $libs_mencoder
8476 GETCH = $_getch
8477 HELP_FILE = $_mp_help
8478 TIMER = $_timer
8480 EXESUF = $_exesuf
8481 EXESUFS_ALL = .exe
8483 ARCH = $arch
8484 $(mak_enable "$arch_all" "$arch" ARCH)
8485 $(mak_enable "$subarch_all" "$subarch" ARCH)
8486 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
8488 MENCODER = $_mencoder
8489 MPLAYER = $_mplayer
8491 NEED_GETTIMEOFDAY = $_need_gettimeofday
8492 NEED_GLOB = $_need_glob
8493 NEED_MMAP = $_need_mmap
8494 NEED_SETENV = $_need_setenv
8495 NEED_SHMEM = $_need_shmem
8496 NEED_STRSEP = $_need_strsep
8497 NEED_SWAB = $_need_swab
8498 NEED_VSSCANF = $_need_vsscanf
8500 # features
8501 3DFX = $_3dfx
8502 AA = $_aa
8503 ALSA1X = $_alsa1x
8504 ALSA9 = $_alsa9
8505 ALSA5 = $_alsa5
8506 APPLE_IR = $_apple_ir
8507 APPLE_REMOTE = $_apple_remote
8508 ARTS = $_arts
8509 AUDIO_INPUT = $_audio_input
8510 BITMAP_FONT = $_bitmap_font
8511 BL = $_bl
8512 CACA = $_caca
8513 CDDA = $_cdda
8514 CDDB = $_cddb
8515 COREAUDIO = $_coreaudio
8516 COREVIDEO = $_corevideo
8517 DART = $_dart
8518 DFBMGA = $_dfbmga
8519 DGA = $_dga
8520 DIRECT3D = $_direct3d
8521 DIRECTFB = $_directfb
8522 DIRECTX = $_directx
8523 DVBIN = $_dvbin
8524 DVDNAV = $_dvdnav
8525 DVDNAV_INTERNAL = $dvdnav_internal
8526 DVDREAD = $_dvdread
8527 DVDREAD_INTERNAL = $_dvdread_internal
8528 DXR2 = $_dxr2
8529 DXR3 = $_dxr3
8530 ESD = $_esd
8531 FAAC=$_faac
8532 FAAD = $_faad
8533 FAAD_INTERNAL = $_faad_internal
8534 FASTMEMCPY = $_fastmemcpy
8535 FBDEV = $_fbdev
8536 FREETYPE = $_freetype
8537 FTP = $_ftp
8538 GIF = $_gif
8539 GGI = $_ggi
8540 GL = $_gl
8541 GL_WIN32 = $_gl_win32
8542 GL_X11 = $_gl_x11
8543 MATRIXVIEW = $matrixview
8544 GUI = $_gui
8545 GUI_GTK = $_gui_gtk
8546 GUI_WIN32 = $_gui_win32
8547 HAVE_POSIX_SELECT = $_posix_select
8548 HAVE_SYS_MMAN_H = $_mman
8549 IVTV = $_ivtv
8550 JACK = $_jack
8551 JOYSTICK = $_joystick
8552 JPEG = $_jpeg
8553 KAI = $_kai
8554 KVA = $_kva
8555 LADSPA = $_ladspa
8556 LIBA52 = $_liba52
8557 LIBA52_INTERNAL = $_liba52_internal
8558 LIBASS = $_ass
8559 LIBASS_INTERNAL = $ass_internal
8560 LIBBS2B = $_libbs2b
8561 LIBDCA = $_libdca
8562 LIBDV = $_libdv
8563 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8564 LIBLZO = $_liblzo
8565 LIBMAD = $_mad
8566 LIBMENU = $_menu
8567 LIBMENU_DVBIN = $_menu_dvbin
8568 LIBMPEG2 = $_libmpeg2
8569 LIBNEMESI = $_nemesi
8570 LIBNUT = $_libnut
8571 LIBSMBCLIENT = $_smb
8572 LIBTHEORA = $_theora
8573 LIRC = $_lirc
8574 LIVE555 = $_live
8575 MACOSX_FINDER = $_macosx_finder
8576 MD5SUM = $_md5sum
8577 MGA = $_mga
8578 MNG = $_mng
8579 MP3LAME = $_mp3lame
8580 MP3LIB = $_mp3lib
8581 MUSEPACK = $_musepack
8582 NAS = $_nas
8583 NATIVE_RTSP = $_native_rtsp
8584 NETWORK = $_network
8585 OPENAL = $_openal
8586 OSS = $_ossaudio
8587 PE_EXECUTABLE = $_pe_executable
8588 PNG = $_png
8589 PNM = $_pnm
8590 PRIORITY = $_priority
8591 PULSE = $_pulse
8592 PVR = $_pvr
8593 QTX_CODECS = $_qtx
8594 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8595 QTX_EMULATION = $_qtx_emulation
8596 QUARTZ = $_quartz
8597 RADIO=$_radio
8598 RADIO_CAPTURE=$_radio_capture
8599 REAL_CODECS = $_real
8600 S3FB = $_s3fb
8601 SDL = $_sdl
8602 SPEEX = $_speex
8603 STREAM_CACHE = $_stream_cache
8604 SGIAUDIO = $_sgiaudio
8605 SUNAUDIO = $_sunaudio
8606 SVGA = $_svga
8607 TDFXFB = $_tdfxfb
8608 TDFXVID = $_tdfxvid
8609 TGA = $_tga
8610 TOOLAME=$_toolame
8611 TREMOR_INTERNAL = $_tremor_internal
8612 TV = $_tv
8613 TV_BSDBT848 = $_tv_bsdbt848
8614 TV_DSHOW = $_tv_dshow
8615 TV_V4L = $_tv_v4l
8616 TV_V4L1 = $_tv_v4l1
8617 TV_V4L2 = $_tv_v4l2
8618 TWOLAME=$_twolame
8619 UNRAR_EXEC = $_unrar_exec
8620 V4L2 = $_v4l2
8621 VCD = $_vcd
8622 VDPAU = $_vdpau
8623 VESA = $_vesa
8624 VIDIX = $_vidix
8625 VIDIX_PCIDB = $_vidix_pcidb_val
8626 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8627 VIDIX_IVTV=$_vidix_drv_ivtv
8628 VIDIX_MACH64=$_vidix_drv_mach64
8629 VIDIX_MGA=$_vidix_drv_mga
8630 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8631 VIDIX_NVIDIA=$_vidix_drv_nvidia
8632 VIDIX_PM2=$_vidix_drv_pm2
8633 VIDIX_PM3=$_vidix_drv_pm3
8634 VIDIX_RADEON=$_vidix_drv_radeon
8635 VIDIX_RAGE128=$_vidix_drv_rage128
8636 VIDIX_S3=$_vidix_drv_s3
8637 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8638 VIDIX_SIS=$_vidix_drv_sis
8639 VIDIX_UNICHROME=$_vidix_drv_unichrome
8640 VORBIS = $_vorbis
8641 VSTREAM = $_vstream
8642 WII = $_wii
8643 WIN32DLL = $_win32dll
8644 WIN32WAVEOUT = $_win32waveout
8645 WIN32_EMULATION = $_win32_emulation
8646 WINVIDIX = $winvidix
8647 X11 = $_x11
8648 X264 = $_x264
8649 XANIM_CODECS = $_xanim
8650 XMGA = $_xmga
8651 XMMS_PLUGINS = $_xmms
8652 XV = $_xv
8653 XVID4 = $_xvid
8654 XVIDIX = $xvidix
8655 XVMC = $_xvmc
8656 XVR100 = $_xvr100
8657 YUV4MPEG = $_yuv4mpeg
8658 ZR = $_zr
8660 # FFmpeg
8661 LIBAVUTIL = $_libavutil
8662 LIBAVUTIL_A = $_libavutil_a
8663 LIBAVUTIL_SO = $_libavutil_so
8664 LIBAVCODEC = $_libavcodec
8665 LIBAVCODEC_A = $_libavcodec_a
8666 LIBAVCODEC_SO = $_libavcodec_so
8667 LIBAVFORMAT = $_libavformat
8668 LIBAVFORMAT_A = $_libavformat_a
8669 LIBAVFORMAT_SO = $_libavformat_so
8670 LIBPOSTPROC = $_libpostproc
8671 LIBPOSTPROC_A = $_libpostproc_a
8672 LIBPOSTPROC_SO = $_libpostproc_so
8673 LIBSWSCALE = $_libswscale
8674 LIBSWSCALE_A = $_libswscale_a
8675 LIBSWSCALE_SO = $_libswscale_so
8677 HOSTCC = \$(HOST_CC)
8678 HOSTCFLAGS = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8679 HOSTLIBS = -lm
8680 CC_O = -o \$@
8681 LD = gcc
8682 RANLIB = $_ranlib
8683 YASM = $_yasm
8684 YASMFLAGS = $YASMFLAGS
8686 CONFIG_STATIC = yes
8687 SRC_PATH = ..
8688 BUILD_ROOT = ..
8689 LIBPREF = lib
8690 LIBSUF = .a
8691 LIBNAME = \$(LIBPREF)\$(NAME)\$(LIBSUF)
8692 FULLNAME = \$(NAME)\$(BUILDSUF)
8694 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8695 CONFIG_AANDCT = yes
8696 CONFIG_DCT = yes
8697 CONFIG_DWT = yes
8698 CONFIG_FFT = yes
8699 CONFIG_GOLOMB = yes
8700 CONFIG_H264DSP = yes
8701 CONFIG_LPC = yes
8702 CONFIG_LSP = yes
8703 CONFIG_MDCT = yes
8704 CONFIG_RDFT = yes
8706 $mak_hardcoded_tables
8707 $mak_libavcodec_mpegaudio_hp
8708 !CONFIG_LIBRTMP = yes
8710 CONFIG_BZLIB = $bzlib
8711 CONFIG_ENCODERS = yes
8712 CONFIG_GPL = yes
8713 CONFIG_LIBDIRAC_DECODER = $_libdirac_lavc
8714 CONFIG_LIBDIRAC_ENCODER = $_libdirac_lavc
8715 CONFIG_LIBFAAC_ENCODER = $_faac_lavc
8716 CONFIG_LIBMP3LAME_ENCODER = $_mp3lame_lavc
8717 CONFIG_LIBOPENCORE_AMRNB_DECODER = $_libopencore_amrnb
8718 CONFIG_LIBOPENCORE_AMRNB_ENCODER = $_libopencore_amrnb
8719 CONFIG_LIBOPENCORE_AMRWB_DECODER = $_libopencore_amrwb
8720 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8721 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8722 CONFIG_LIBSCHROEDINGER_DECODER = $_libschroedinger_lavc
8723 CONFIG_LIBSCHROEDINGER_ENCODER = $_libschroedinger_lavc
8724 CONFIG_LIBVORBIS_ENCODER = $_libvorbis
8725 CONFIG_LIBX264_ENCODER = $_x264_lavc
8726 CONFIG_LIBXVID_ENCODER = $_xvid_lavc
8727 CONFIG_MLIB = $_mlib
8728 CONFIG_MUXERS = $_mencoder
8729 CONFIG_POSTPROC = yes
8730 CONFIG_VDPAU = $_vdpau
8731 CONFIG_XVMC = $_xvmc
8732 CONFIG_ZLIB = $_zlib
8734 HAVE_PTHREADS = $_pthreads
8735 HAVE_SHM = $_shm
8736 HAVE_W32THREADS = $_w32threads
8737 HAVE_YASM = $have_yasm
8739 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8740 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8741 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8742 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8743 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8744 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8745 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8746 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8749 #############################################################################
8751 ff_config_enable () {
8752 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8753 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8754 _nprefix=$3;
8755 test -z "$_nprefix" && _nprefix='CONFIG'
8756 for part in $list; do
8757 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8758 echo "#define ${_nprefix}_$part 1"
8759 else
8760 echo "#define ${_nprefix}_$part 0"
8762 done
8765 echo "Creating config.h"
8766 cat > $TMPH << EOF
8767 /*----------------------------------------------------------------------------
8768 ** This file has been automatically generated by configure any changes in it
8769 ** will be lost when you run configure again.
8770 ** Instead of modifying definitions here, use the --enable/--disable options
8771 ** of the configure script! See ./configure --help for details.
8772 *---------------------------------------------------------------------------*/
8774 #ifndef MPLAYER_CONFIG_H
8775 #define MPLAYER_CONFIG_H
8777 /* Undefine this if you do not want to select mono audio (left or right)
8778 with a stereo MPEG layer 2/3 audio stream. The command line option
8779 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8780 right-only), with 0 being the default.
8782 #define CONFIG_FAKE_MONO 1
8784 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8785 #define MAX_OUTBURST 65536
8787 /* set up audio OUTBURST. Do not change this! */
8788 #define OUTBURST 512
8790 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8791 #undef FAST_OSD
8792 #undef FAST_OSD_TABLE
8794 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8795 #define MPEG12_POSTPROC 1
8796 #define ATTRIBUTE_ALIGNED_MAX 16
8800 #define CONFIGURATION "$_configuration"
8802 #define MPLAYER_DATADIR "$_datadir"
8803 #define MPLAYER_CONFDIR "$_confdir"
8804 #define MPLAYER_LIBDIR "$_libdir"
8806 /* definitions needed by included libraries */
8807 #define HAVE_INTTYPES_H 1
8808 /* libmpeg2 + FFmpeg */
8809 $def_fast_inttypes
8810 /* libdvdcss */
8811 #define HAVE_ERRNO_H 1
8812 /* libdvdcss + libdvdread */
8813 #define HAVE_LIMITS_H 1
8814 /* libdvdcss + libfaad2 */
8815 #define HAVE_UNISTD_H 1
8816 /* libfaad2 + libdvdread */
8817 #define STDC_HEADERS 1
8818 #define HAVE_MEMCPY 1
8819 /* libfaad2 */
8820 #define HAVE_STRING_H 1
8821 #define HAVE_STRINGS_H 1
8822 #define HAVE_SYS_STAT_H 1
8823 #define HAVE_SYS_TYPES_H 1
8824 /* libdvdnav */
8825 #define READ_CACHE_TRACE 0
8826 /* libdvdread */
8827 #define HAVE_DLFCN_H 1
8828 $def_dvdcss
8831 /* system headers */
8832 $def_alloca_h
8833 $def_alsa_asoundlib_h
8834 $def_altivec_h
8835 $def_malloc_h
8836 $def_mman_h
8837 $def_mman_has_map_failed
8838 $def_soundcard_h
8839 $def_sys_asoundlib_h
8840 $def_sys_soundcard_h
8841 $def_sys_sysinfo_h
8842 $def_termios_h
8843 $def_termios_sys_h
8844 $def_winsock2_h
8847 /* system functions */
8848 $def_gethostbyname2
8849 $def_gettimeofday
8850 $def_glob
8851 $def_langinfo
8852 $def_lrintf
8853 $def_map_memalign
8854 $def_memalign
8855 $def_nanosleep
8856 $def_posix_select
8857 $def_select
8858 $def_setenv
8859 $def_setmode
8860 $def_shm
8861 $def_strsep
8862 $def_swab
8863 $def_sysi86
8864 $def_sysi86_iv
8865 $def_termcap
8866 $def_termios
8867 $def_vsscanf
8870 /* system-specific features */
8871 $def_asmalign_pot
8872 $def_builtin_expect
8873 $def_dl
8874 $def_dos_paths
8875 $def_extern_asm
8876 $def_extern_prefix
8877 $def_iconv
8878 $def_kstat
8879 $def_macosx_bundle
8880 $def_macosx_finder
8881 $def_maemo
8882 $def_named_asm_args
8883 $def_priority
8884 $def_quicktime
8885 $def_restrict_keyword
8886 $def_rtc
8887 $def_unrar_exec
8890 /* configurable options */
8891 $def_charset
8892 $def_crash_debug
8893 $def_debug
8894 $def_dynamic_plugins
8895 $def_fastmemcpy
8896 $def_menu
8897 $def_runtime_cpudetection
8898 $def_sighandler
8899 $def_sortsub
8900 $def_stream_cache
8901 $def_pthread_cache
8904 /* CPU stuff */
8905 #define __CPU__ $iproc
8906 $def_words_endian
8907 $def_bigendian
8908 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8909 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8910 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8913 /* DVD/VCD/CD */
8914 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8915 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8916 $def_bsdi_dvd
8917 $def_cddb
8918 $def_cdio
8919 $def_cdparanoia
8920 $def_cdrom
8921 $def_dvd
8922 $def_dvd_bsd
8923 $def_dvd_darwin
8924 $def_dvd_linux
8925 $def_dvd_openbsd
8926 $def_dvdio
8927 $def_dvdnav
8928 $def_dvdread
8929 $def_hpux_scsi_h
8930 $def_libcdio
8931 $def_sol_scsi_h
8932 $def_vcd
8935 /* codec libraries */
8936 $def_faac
8937 $def_faad
8938 $def_faad_internal
8939 $def_liba52
8940 $def_liba52_internal
8941 $def_libdca
8942 $def_libdv
8943 $def_liblzo
8944 $def_libmpeg2
8945 $def_mad
8946 $def_mp3lame
8947 $def_mp3lame_preset
8948 $def_mp3lame_preset_medium
8949 $def_mp3lib
8950 $def_musepack
8951 $def_speex
8952 $def_theora
8953 $def_toolame
8954 $def_tremor
8955 $def_twolame
8956 $def_vorbis
8957 $def_x264
8958 $def_xvid
8959 $def_zlib
8961 $def_libnut
8964 /* binary codecs */
8965 $def_qtx
8966 $def_qtx_win32
8967 $def_real
8968 $def_win32_loader
8969 $def_win32dll
8970 $def_xanim
8971 $def_xmms
8972 #define BINARY_CODECS_PATH "$_codecsdir"
8973 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8976 /* GUI */
8977 $def_gtk2
8978 $def_gui
8979 $def_xshape
8982 /* Audio output drivers */
8983 $def_alsa
8984 $def_alsa1x
8985 $def_alsa5
8986 $def_alsa9
8987 $def_arts
8988 $def_coreaudio
8989 $def_dart
8990 $def_esd
8991 $def_esd_latency
8992 $def_jack
8993 $def_kai
8994 $def_nas
8995 $def_openal
8996 $def_openal_h
8997 $def_ossaudio
8998 $def_ossaudio_devdsp
8999 $def_ossaudio_devmixer
9000 $def_pulse
9001 $def_sgiaudio
9002 $def_sunaudio
9003 $def_win32waveout
9005 $def_ladspa
9006 $def_libbs2b
9009 /* input */
9010 $def_apple_ir
9011 $def_apple_remote
9012 $def_ioctl_bt848_h_name
9013 $def_ioctl_meteor_h_name
9014 $def_joystick
9015 $def_lirc
9016 $def_lircc
9017 $def_pvr
9018 $def_radio
9019 $def_radio_bsdbt848
9020 $def_radio_capture
9021 $def_radio_v4l
9022 $def_radio_v4l2
9023 $def_tv
9024 $def_tv_bsdbt848
9025 $def_tv_dshow
9026 $def_tv_v4l
9027 $def_tv_v4l1
9028 $def_tv_v4l2
9031 /* font stuff */
9032 $def_ass
9033 $def_ass_internal
9034 $def_bitmap_font
9035 $def_enca
9036 $def_fontconfig
9037 $def_freetype
9038 $def_fribidi
9041 /* networking */
9042 $def_closesocket
9043 $def_ftp
9044 $def_inet6
9045 $def_inet_aton
9046 $def_inet_pton
9047 $def_live
9048 $def_nemesi
9049 $def_network
9050 $def_smb
9051 $def_socklen_t
9052 $def_struct_ipv6_mreq
9053 $def_struct_sockaddr_in6
9054 $def_struct_sockaddr_sa_len
9055 $def_vstream
9056 $def_addrinfo
9057 $def_getaddrinfo
9058 $def_sockaddr_storage
9061 /* libvo options */
9062 $def_3dfx
9063 $def_aa
9064 $def_bl
9065 $def_caca
9066 $def_corevideo
9067 $def_dfbmga
9068 $def_dga
9069 $def_dga1
9070 $def_dga2
9071 $def_direct3d
9072 $def_directfb
9073 $def_directfb_version
9074 $def_directx
9075 $def_dvb
9076 $def_dvbin
9077 $def_dxr2
9078 $def_dxr3
9079 $def_fbdev
9080 $def_ggi
9081 $def_ggiwmh
9082 $def_gif
9083 $def_gif_4
9084 $def_gif_tvt_hack
9085 $def_gl
9086 $def_gl_win32
9087 $def_gl_x11
9088 $def_matrixview
9089 $def_ivtv
9090 $def_jpeg
9091 $def_kva
9092 $def_md5sum
9093 $def_mga
9094 $def_mng
9095 $def_png
9096 $def_pnm
9097 $def_quartz
9098 $def_s3fb
9099 $def_sdl
9100 $def_sdl_sdl_h
9101 $def_sdlbuggy
9102 $def_svga
9103 $def_tdfxfb
9104 $def_tdfxvid
9105 $def_tga
9106 $def_v4l2
9107 $def_vdpau
9108 $def_vesa
9109 $def_vidix
9110 $def_vidix_drv_cyberblade
9111 $def_vidix_drv_ivtv
9112 $def_vidix_drv_mach64
9113 $def_vidix_drv_mga
9114 $def_vidix_drv_mga_crtc2
9115 $def_vidix_drv_nvidia
9116 $def_vidix_drv_pm3
9117 $def_vidix_drv_radeon
9118 $def_vidix_drv_rage128
9119 $def_vidix_drv_s3
9120 $def_vidix_drv_sh_veu
9121 $def_vidix_drv_sis
9122 $def_vidix_drv_unichrome
9123 $def_vidix_pfx
9124 $def_vm
9125 $def_wii
9126 $def_x11
9127 $def_xdpms
9128 $def_xf86keysym
9129 $def_xinerama
9130 $def_xmga
9131 $def_xss
9132 $def_xv
9133 $def_xvmc
9134 $def_xvr100
9135 $def_yuv4mpeg
9136 $def_zr
9139 /* FFmpeg */
9140 $def_libavcodec
9141 $def_libavcodec_a
9142 $def_libavcodec_so
9143 $def_libavformat
9144 $def_libavformat_a
9145 $def_libavformat_so
9146 $def_libavutil
9147 $def_libavutil_a
9148 $def_libavutil_so
9149 $def_libpostproc
9150 $def_libpostproc_a
9151 $def_libpostproc_so
9152 $def_libswscale
9153 $def_libswscale_a
9154 $def_libswscale_so
9156 #define CONFIG_DECODERS 1
9157 #define CONFIG_ENCODERS 1
9158 #define CONFIG_DEMUXERS 1
9159 $def_muxers
9161 $def_arpa_inet_h
9162 $def_bswap
9163 $def_bzlib
9164 $def_dcbzl
9165 $def_exp2
9166 $def_exp2f
9167 $def_fast_64bit
9168 $def_fast_unaligned
9169 $def_hardcoded_tables
9170 $def_libavcodec_mpegaudio_hp
9171 $def_llrint
9172 $def_local_aligned_8
9173 $def_local_aligned_16
9174 $def_log2
9175 $def_log2f
9176 $def_lrint
9177 $def_memalign_hack
9178 $def_mlib
9179 $def_mkstemp
9180 $def_posix_memalign
9181 $def_pthreads
9182 $def_round
9183 $def_roundf
9184 $def_ten_operands
9185 $def_threads
9186 $def_truncf
9187 $def_xform_asm
9188 $def_yasm
9190 #define CONFIG_FASTDIV 0
9191 #define CONFIG_FFSERVER 0
9192 #define CONFIG_GPL 1
9193 #define CONFIG_GRAY 0
9194 #define CONFIG_LIBRTMP 0
9195 #define CONFIG_LIBVORBIS 0
9196 #define CONFIG_POWERPC_PERF 0
9197 #define CONFIG_SMALL 0
9198 #define CONFIG_SWSCALE_ALPHA 1
9200 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9201 #define CONFIG_IPV6 1
9202 #else
9203 #define CONFIG_IPV6 0
9204 #endif
9206 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9207 #define av_alias __attribute__((may_alias))
9208 #define HAVE_ATTRIBUTE_PACKED 1
9209 #define HAVE_GETHRTIME 0
9210 #define HAVE_INLINE_ASM 1
9211 #define HAVE_LDBRX 0
9212 #define HAVE_POLL_H 1
9213 #define HAVE_PPC4XX 0
9214 #define HAVE_STRERROR_R 0
9215 #define HAVE_SYS_SELECT_H 0
9216 #define HAVE_VFP_ARGS 1
9217 #define HAVE_VIRTUALALLOC 0
9219 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9220 #define CONFIG_AANDCT 1
9221 #define CONFIG_DCT 1
9222 #define CONFIG_DWT 1
9223 #define CONFIG_FFT 1
9224 #define CONFIG_GOLOMB 1
9225 #define CONFIG_H264DSP 1
9226 #define CONFIG_LPC 1
9227 #define CONFIG_MDCT 1
9228 #define CONFIG_RDFT 1
9230 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9231 $def_ebx_available
9232 #ifndef MP_DEBUG
9233 #define HAVE_EBP_AVAILABLE 1
9234 #else
9235 #define HAVE_EBP_AVAILABLE 0
9236 #endif
9238 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9239 #define FFMPEG_LICENSE "GPL version 2 or later"
9241 /* External libraries used through libavcodec. */
9242 $def_faac_lavc
9243 $def_libdirac_lavc
9244 $def_libopencore_amrnb
9245 $def_libopencore_amrwb
9246 $def_libopenjpeg
9247 $def_libschroedinger_lavc
9248 $def_mp3lame_lavc
9249 $def_x264_lavc
9250 $def_xvid_lavc
9252 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9253 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9254 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9255 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9256 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9257 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9258 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9259 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9261 #endif /* MPLAYER_CONFIG_H */
9264 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9265 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9267 ############################################################################
9269 # Create avconfig.h for FFmpeg.
9270 cat > "$TMPH" << EOF
9271 /* Generated by mpconfigure */
9272 #ifndef AVUTIL_AVCONFIG_H
9273 #define AVUTIL_AVCONFIG_H
9274 $def_av_bigendian
9275 #endif /* AVUTIL_AVCONFIG_H */
9278 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9279 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9281 #############################################################################
9283 cat << EOF
9285 Config files successfully generated by ./configure $_configuration !
9287 Install prefix: $_prefix
9288 Data directory: $_datadir
9289 Config direct.: $_confdir
9291 Byte order: $_byte_order
9292 Optimizing for: $_optimizing
9294 Languages:
9295 Messages/GUI: $language_msg
9296 Manual pages: $language_man
9297 Documentation: $language_doc
9299 Enabled optional drivers:
9300 Input: $_inputmodules
9301 Codecs: $_codecmodules
9302 Audio output: $_aomodules
9303 Video output: $_vomodules
9305 Disabled optional drivers:
9306 Input: $_noinputmodules
9307 Codecs: $_nocodecmodules
9308 Audio output: $_noaomodules
9309 Video output: $_novomodules
9311 'config.h' and 'config.mak' contain your configuration options.
9312 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9313 compile *** DO NOT REPORT BUGS if you tweak these files ***
9315 'make' will now compile MPlayer and 'make install' will install it.
9316 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9321 if test "$_mtrr" = yes ; then
9322 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9323 echo
9326 if ! x86_32; then
9327 cat <<EOF
9328 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9329 operating system ($system_name). You may encounter a few files that cannot
9330 be played due to missing open source video/audio codec support.
9336 cat <<EOF
9337 Check $TMPLOG if you wonder why an autodetection failed (make sure
9338 development headers/packages are installed).
9340 NOTE: The --enable-* parameters unconditionally force options on, completely
9341 skipping autodetection. This behavior is unlike what you may be used to from
9342 autoconf-based configure scripts that can decide to override you. This greater
9343 level of control comes at a price. You may have to provide the correct compiler
9344 and linker flags yourself.
9345 If you used one of these options (except --enable-menu and similar ones that
9346 turn on internal features) and experience a compilation or linking failure,
9347 make sure you have passed the necessary compiler/linker flags to configure.
9349 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9353 if test "$_warn_CFLAGS" = yes; then
9354 cat <<EOF
9356 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9357 but:
9359 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9361 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9362 To do so, execute 'CFLAGS= ./configure <options>'
9367 # Last move:
9368 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"