Move Zoran video controller check after the libavcodec one.
[mplayer/glamo.git] / configure
blob67b402162630c3c6ec2640a060fc129f499e116e
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: check the cvs 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 "$_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 # if test "$_feature" = yes ; then
33 # _def_feature='#define HAVE_FEATURE 1'
34 # else
35 # _def_feature='#undef HAVE_FEATURE'
36 # fi
37 # echores "$_feature"
39 # Furthermore you need to add the variable _feature to the list of default
40 # settings and set it to one of yes/no/auto. Also add appropriate
41 # --enable-feature/--disable-feature command line options.
42 # The results of the check should be written to config.h and config.mak
43 # at the end of this script. The variable names used for this should be
44 # uniform, i.e. if the option is named 'feature':
46 # _feature : should have a value of yes/no/auto
47 # _def_feature : '#define ... 1' or '#undef ...' for conditional compilation
48 # _ld_feature : '-L/path/dir -lfeature' GCC options
50 #############################################################################
52 # Prevent locale nonsense from breaking basic text processing utils
53 LC_ALL=C
54 export LC_ALL
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 $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMP="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMP"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 tmp_run() {
83 "$TMPEXE" >> "$TMPLOG" 2>&1
86 # Display error message, flushes tempfile, exit
87 die () {
88 echo
89 echo "Error: $@" >&2
90 echo >&2
91 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
92 echo "Check \"$TMPLOG\" if you do not understand why it failed."
93 exit 1
96 # OS test booleans functions
97 issystem() {
98 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
100 linux() { issystem "Linux" || issystem "uClinux" ; return "$?" ; }
101 sunos() { issystem "SunOS" ; return "$?" ; }
102 hpux() { issystem "HP-UX" ; return "$?" ; }
103 irix() { issystem "IRIX" ; return "$?" ; }
104 aix() { issystem "AIX" ; return "$?" ; }
105 cygwin() { issystem "CYGWIN" ; return "$?" ; }
106 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; return "$?" ; }
107 netbsd() { issystem "NetBSD" ; return "$?" ; }
108 bsdos() { issystem "BSD/OS" ; return "$?" ; }
109 openbsd() { issystem "OpenBSD" ; return "$?" ; }
110 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
111 qnx() { issystem "QNX" ; return "$?" ; }
112 darwin() { issystem "Darwin" ; return "$?" ; }
113 gnu() { issystem "GNU" ; return "$?" ; }
114 mingw32() { issystem "MINGW32" ; return "$?" ; }
115 morphos() { issystem "MorphOS" ; return "$?" ; }
116 amigaos() { issystem "AmigaOS" ; return "$?" ; }
117 win32() { cygwin || mingw32 ; return "$?" ; }
118 beos() { issystem "BEOS" ; return "$?" ; }
120 # arch test boolean functions
121 # x86/x86pc is used by QNX
122 x86_32() {
123 case "$host_arch" in
124 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
125 *) return 1 ;;
126 esac
129 x86_64() {
130 case "$host_arch" in
131 x86_64|amd64) return 0 ;;
132 *) return 1 ;;
133 esac
136 x86() {
137 x86_32 || x86_64
140 ppc() {
141 case "$host_arch" in
142 ppc|powerpc) return 0;;
143 *) return 1;;
144 esac
147 alpha() {
148 case "$host_arch" in
149 alpha) return 0;;
150 *) return 1;;
151 esac
154 arm() {
155 case "$host_arch" in
156 arm) return 0;;
157 *) return 1;;
158 esac
161 sh3() {
162 case "$host_arch" in
163 sh3) return 0;;
164 *) return 1;;
165 esac
168 # Use this before starting a check
169 echocheck() {
170 echo "============ Checking for $@ ============" >> "$TMPLOG"
171 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
174 # Use this to echo the results of a check
175 echores() {
176 if test "$_res_comment" ; then
177 _res_comment="($_res_comment)"
179 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
180 echo "##########################################" >> "$TMPLOG"
181 echo "" >> "$TMPLOG"
182 echo "$@ $_res_comment"
183 _res_comment=""
185 #############################################################################
187 # Check how echo works in this /bin/sh
188 case `echo -n` in
189 -n) _echo_n= _echo_c='\c' ;; # SysV echo
190 *) _echo_n='-n ' _echo_c= ;; # BSD echo
191 esac
193 LANGUAGES=`echo help/help_mp-??.h help/help_mp-??_??.h | sed "s:help/help_mp-\(..\).h:\1:g" | sed "s:help/help_mp-\(.....\).h:\1:g"`
195 show_help(){
196 cat << EOF
197 Usage: $0 [OPTIONS]...
199 Configuration:
200 -h, --help display this help and exit
202 Installation directories:
203 --prefix=DIR prefix directory for installation [/usr/local]
204 --bindir=DIR directory for installing binaries [PREFIX/bin]
205 --datadir=DIR directory for installing machine independent
206 data files (skins, etc) [PREFIX/share/mplayer]
207 --mandir=DIR directory for installing man pages [PREFIX/share/man]
208 --confdir=DIR directory for installing configuration files
209 [PREFIX/etc/mplayer]
210 --libdir=DIR directory for object code libraries [PREFIX/lib]
211 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
212 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
213 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
214 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
216 Optional features:
217 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
218 --disable-mplayer disable MPlayer compilation [enable]
219 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
220 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
221 --disable-largefiles disable support for files > 2GB [enable]
222 --enable-linux-devfs set default devices to devfs [disable]
223 --enable-termcap use termcap database for key codes [autodetect]
224 --enable-termios use termios database for key codes [autodetect]
225 --disable-iconv disable iconv for encoding conversion [autodetect]
226 --disable-langinfo do not use langinfo [autodetect]
227 --enable-lirc enable LIRC (remote control) support [autodetect]
228 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
229 --enable-joystick enable joystick support [disable]
230 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
231 --disable-vm disable X video mode extensions [autodetect]
232 --disable-xf86keysym disable support for multimedia keys [autodetect]
233 --enable-radio enable radio interface [disable]
234 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
235 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
236 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
237 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
238 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
239 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
240 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
241 --disable-tv-teletext disable TV teletext interface [autodetect]
242 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
243 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
244 --disable-network disable networking [enable]
245 --enable-winsock2 enable winsock2 [autodetect]
246 --enable-smb enable Samba (SMB) input [autodetect]
247 --enable-live enable LIVE555 Streaming Media [autodetect]
248 --enable-nemesi enable Nemesi Streaming Media [autodetect]
249 --disable-dvdnav disable libdvdnav [autodetect]
250 --disable-dvdread disable libdvdread [autodetect]
251 --disable-dvdread-internal disable internal libdvdread [autodetect]
252 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
253 --disable-cdparanoia disable cdparanoia [autodetect]
254 --disable-cddb disable cddb [autodetect]
255 --disable-bitmap-font disable bitmap font support [enable]
256 --disable-freetype disable FreeType 2 font rendering [autodetect]
257 --disable-fontconfig disable fontconfig font lookup [autodetect]
258 --disable-unrarexec disable using of UnRAR executable [enabled]
259 --enable-menu enable OSD menu (not DVD menu) [disabled]
260 --disable-sortsub disable subtitle sorting [enabled]
261 --enable-fribidi enable the FriBiDi libs [autodetect]
262 --disable-enca disable ENCA charset oracle library [autodetect]
263 --disable-macosx disable Mac OS X specific features [autodetect]
264 --disable-maemo disable maemo specific features [autodetect]
265 --enable-macosx-finder-support enable Mac OS X Finder invocation
266 parameter parsing [disabled]
267 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
268 --disable-inet6 disable IPv6 support [autodetect]
269 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
270 --disable-ftp disable FTP support [enabled]
271 --disable-vstream disable TiVo vstream client support [autodetect]
272 --disable-pthreads disable Posix threads support [autodetect]
273 --disable-w32threads disable Win32 threads support [autodetect]
274 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
275 --enable-rpath enable runtime linker path for extra libs [disabled]
277 Codecs:
278 --enable-gif enable GIF support [autodetect]
279 --enable-png enable PNG input/output support [autodetect]
280 --enable-jpeg enable JPEG input/output support [autodetect]
281 --enable-libcdio enable external libcdio [autodetect]
282 --enable-liblzo enable external liblzo [autodetect]
283 --disable-win32dll disable Win32 DLL support [enabled]
284 --disable-qtx disable QuickTime codecs support [enabled]
285 --disable-xanim disable XAnim codecs support [enabled]
286 --disable-real disable RealPlayer codecs support [enabled]
287 --disable-xvid disable XviD [autodetect]
288 --disable-x264 disable x264 [autodetect]
289 --disable-libnut disable libnut [autodetect]
290 --disable-libavutil_a disable static libavutil [autodetect]
291 --disable-libavcodec_a disable static libavcodec [autodetect]
292 --disable-libavformat_a disable static libavformat [autodetect]
293 --disable-libpostproc_a disable static libpostproc [autodetect]
294 --disable-libavutil_so disable shared libavutil [autodetect]
295 --disable-libavcodec_so disable shared libavcodec [autodetect]
296 --disable-libavformat_so disable shared libavformat [autodetect]
297 --disable-libpostproc_so disable shared libpostproc [autodetect]
298 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
299 in libavcodec [enabled]
300 --disable-tremor-internal disable internal Tremor [enabled]
301 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
302 --enable-tremor-external enable external Tremor [autodetect]
303 --disable-libvorbis disable libvorbis support [autodetect]
304 --disable-speex disable Speex support [autodetect]
305 --enable-theora enable OggTheora libraries [autodetect]
306 --enable-faad-external enable external FAAD2 (AAC) [autodetect]
307 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
308 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
309 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
310 --disable-ladspa disable LADSPA plugin support [autodetect]
311 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
312 --disable-mad disable libmad (MPEG audio) support [autodetect]
313 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
314 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
315 --enable-xmms enable XMMS input plugin support [disabled]
316 --enable-libdca enable libdca support [autodetect]
317 --disable-mp3lib disable builtin mp3lib [enabled]
318 --disable-liba52 disable builtin liba52 [enabled]
319 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
320 --disable-musepack disable musepack support [autodetect]
321 --disable-libamr_nb disable libamr narrowband [autodetect]
322 --disable-libamr_wb disable libamr wideband [autodetect]
323 --disable-decoder=DECODER disable specified FFmpeg decoder
324 --enable-decoder=DECODER enable specified FFmpeg decoder
325 --disable-encoder=ENCODER disable specified FFmpeg encoder
326 --enable-encoder=ENCODER enable specified FFmpeg encoder
327 --disable-parser=PARSER disable specified FFmpeg parser
328 --enable-parser=PARSER enable specified FFmpeg parser
329 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
330 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
331 --disable-muxer=MUXER disable specified FFmpeg muxer
332 --enable-muxer=MUXER enable specified FFmpeg muxer
334 Video output:
335 --disable-vidix-internal disable internal VIDIX [for x86 *nix]
336 --disable-vidix-external disable external VIDIX [for x86 *nix]
337 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
338 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
339 nvidia,pm2,pm3,radeon,rage128,savage,sis,unichrome
340 --disable-vidix-pcidb disable VIDIX PCI device name database
341 --enable-gl enable OpenGL video output [autodetect]
342 --enable-dga2 enable DGA 2 support [autodetect]
343 --enable-dga1 enable DGA 1 support [autodetect]
344 --enable-vesa enable VESA video output [autodetect]
345 --enable-svga enable SVGAlib video output [autodetect]
346 --enable-sdl enable SDL video output [autodetect]
347 --enable-aa enable AAlib video output [autodetect]
348 --enable-caca enable CACA video output [autodetect]
349 --enable-ggi enable GGI video output [autodetect]
350 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
351 --enable-directx enable DirectX video output [autodetect]
352 --enable-dxr2 enable DXR2 video output [autodetect]
353 --enable-dxr3 enable DXR3/H+ video output [autodetect]
354 --enable-ivtv enable IVTV TV-Out video output [autodetect]
355 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
356 --enable-dvb enable DVB video output [autodetect]
357 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
358 --enable-mga enable mga_vid video output [autodetect]
359 --enable-xmga enable mga_vid X11 video output [autodetect]
360 --enable-xv enable Xv video output [autodetect]
361 --enable-xvmc enable XvMC acceleration [disable]
362 --enable-vm enable XF86VidMode support [autodetect]
363 --enable-xinerama enable Xinerama support [autodetect]
364 --enable-x11 enable X11 video output [autodetect]
365 --enable-xshape enable XShape support [autodetect]
366 --disable-xss disable screensaver support via xss [autodetect]
367 --enable-fbdev enable FBDev video output [autodetect]
368 --enable-mlib enable mediaLib video output (Solaris) [disable]
369 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
370 --enable-tdfxfb enable tdfxfb video output [disable]
371 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
372 --enable-directfb enable DirectFB video output [autodetect]
373 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
374 --enable-bl enable Blinkenlights video output [disable]
375 --enable-tdfxvid enable tdfx_vid video output [disable]
376 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
377 --disable-tga disable Targa video output [enable]
378 --disable-pnm disable PNM video output [enable]
379 --disable-md5sum disable md5sum video output [enable]
381 Audio output:
382 --disable-alsa disable ALSA audio output [autodetect]
383 --disable-ossaudio disable OSS audio output [autodetect]
384 --disable-arts disable aRts audio output [autodetect]
385 --disable-esd disable esd audio output [autodetect]
386 --disable-pulse disable Pulseaudio audio output [autodetect]
387 --disable-jack disable JACK audio output [autodetect]
388 --disable-openal disable OpenAL audio output [autodetect]
389 --disable-nas disable NAS audio output [autodetect]
390 --disable-sgiaudio disable SGI audio output [autodetect]
391 --disable-sunaudio disable Sun audio output [autodetect]
392 --disable-win32waveout disable Windows waveout audio output [autodetect]
393 --disable-select disable using select() on the audio device [enable]
395 Miscellaneous options:
396 --enable-runtime-cpudetection enable runtime CPU detection [disable]
397 --enable-cross-compile enable cross-compilation [autodetect]
398 --cc=COMPILER C compiler to build MPlayer [gcc]
399 --host-cc=COMPILER C compiler for tools needed while building [gcc]
400 --as=ASSEMBLER assembler to build MPlayer [as]
401 --ar=AR librarian to build MPlayer [ar]
402 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
403 --windres=WINDRES windres to build MPlayer [windres]
404 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
405 --enable-static build a statically linked binary
406 --charset=charset convert the console messages to this character set
407 --language=list a white space or comma separated list of languages for
408 translated man pages, the first language is used for
409 messages and the GUI (the environment variable
410 \$LINGUAS is also honored) [en]
411 (Available: $LANGUAGES all)
412 --with-install=PATH path to a custom install program
413 --enable-color-console enable color console output (UNSUPPORTED) [disable]
415 Advanced options:
416 --enable-mmx enable MMX [autodetect]
417 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
418 --enable-3dnow enable 3DNow! [autodetect]
419 --enable-3dnowext enable extended 3DNow! [autodetect]
420 --enable-sse enable SSE [autodetect]
421 --enable-sse2 enable SSE2 [autodetect]
422 --enable-ssse3 enable SSSE3 [autodetect]
423 --enable-shm enable shm [autodetect]
424 --enable-altivec enable AltiVec (PowerPC) [autodetect]
425 --enable-armv5te enable DSP extensions (ARM) [autodetect]
426 --enable-armv6 enable ARMv6 (ARM) [autodetect]
427 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
428 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
429 --enable-big-endian force byte order to big-endian [autodetect]
430 --enable-debug[=1-3] compile-in debugging information [disable]
431 --enable-profile compile-in profiling information [disable]
432 --disable-sighandler disable sighandler for crashes [enable]
433 --enable-crash-debug enable automatic gdb attach on crash [disable]
434 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
436 Hazardous options AKA "DO NOT REPORT ANY BUGS!"
437 --disable-gcc-check disable gcc version checking [enable]
439 Use these options if autodetection fails (Options marked with (*) accept
440 multiple paths separated by ':'):
441 --extra-libs=FLAGS extra linker flags
442 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
443 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
444 --with-extraincdir=DIR extra header search paths in DIR (*)
445 --with-extralibdir=DIR extra linker search paths in DIR (*)
446 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
448 --with-freetype-config=PATH path to freetype-config
449 --with-fribidi-config=PATH path to fribidi-config
450 --with-glib-config=PATH path to glib*-config
451 --with-gtk-config=PATH path to gtk*-config
452 --with-sdl-config=PATH path to sdl*-config
453 --with-dvdnav-config=PATH path to dvdnav-config
455 This configure script is NOT autoconf-based, even though its output is similar.
456 It will try to autodetect all configuration options. If you --enable an option
457 it will be forcefully turned on, skipping autodetection. This can break
458 compilation, so you need to know what you are doing.
460 exit 0
461 } #show_help()
463 # GOTCHA: the variables below defines the default behavior for autodetection
464 # and have - unless stated otherwise - at least 2 states : yes no
465 # If autodetection is available then the third state is: auto
466 _mmx=auto
467 _3dnow=auto
468 _3dnowext=auto
469 _mmxext=auto
470 _sse=auto
471 _sse2=auto
472 _ssse3=auto
473 _cmov=auto
474 _fast_cmov=auto
475 _armv5te=auto
476 _armv6=auto
477 _iwmmxt=auto
478 _mtrr=auto
479 _altivec=auto
480 _install=install
481 _ranlib=ranlib
482 _windres=windres
483 _ldconfig=ldconfig
484 _cc=cc
485 _ar=ar
486 test "$CC" && _cc="$CC"
487 _gcc_check=yes
488 _as=auto
489 _runtime_cpudetection=no
490 _cross_compile=auto
491 _prefix="/usr/local"
492 _libavutil_a=auto
493 _libavutil_so=auto
494 _libavcodec_a=auto
495 _libamr_nb=auto
496 _libamr_wb=auto
497 _libavdecoders_all=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
498 _libavdecoders=` echo $_libavdecoders_all | sed -e s/LIBFAAD_DECODER// -e s/MPEG4AAC_DECODER// -e s/LIBA52_DECODER// -e s/LIBGSM_DECODER// -e s/LIBGSM_MS_DECODER// -e s/LIBVORBIS_DECODER// `
499 _libavencoders_all=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
500 _libavencoders=` echo $_libavencoders_all | sed -e s/LIBGSM_ENCODER// -e s/LIBGSM_MS_ENCODER// -e s/LIBTHEORA_ENCODER// -e s/LIBVORBIS_ENCODER// `
501 _libavparsers_all=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
502 _libavparsers=$_libavparsers_all
503 _libavbsfs_all=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
504 _libavbsfs=$_libavbsfs_all
505 _libavdemuxers_all=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
506 _libavdemuxers=`echo $_libavdemuxers_all | sed -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/LIBNUT_DEMUXER// -e s/AVISYNTH_DEMUXER// `
507 _libavmuxers_all=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
508 _libavmuxers=`echo $_libavmuxers_all | sed -e s/RTP_MUXER// `
509 _libavprotocols_all=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
510 _libavcodec_so=auto
511 _libavformat_a=auto
512 _libavformat_so=auto
513 _libpostproc_a=auto
514 _libpostproc_so=auto
515 _libavcodec_mpegaudio_hp=yes
516 _mencoder=yes
517 _mplayer=yes
518 _x11=auto
519 _xshape=auto
520 _xss=auto
521 _dga1=auto
522 _dga2=auto
523 _xv=auto
524 _xvmc=no #auto when complete
525 _sdl=auto
526 _directx=auto
527 _win32waveout=auto
528 _nas=auto
529 _png=auto
530 _jpeg=auto
531 _pnm=yes
532 _md5sum=yes
533 _gif=auto
534 _gl=auto
535 _ggi=auto
536 _ggiwmh=auto
537 _aa=auto
538 _caca=auto
539 _svga=auto
540 _vesa=auto
541 _fbdev=auto
542 _dvb=auto
543 _dvbhead=auto
544 _dxr2=auto
545 _dxr3=auto
546 _ivtv=auto
547 _v4l2=auto
548 _iconv=auto
549 _langinfo=auto
550 _rtc=auto
551 _ossaudio=auto
552 _arts=auto
553 _esd=auto
554 _pulse=auto
555 _jack=auto
556 _openal=auto
557 _libcdio=auto
558 _liblzo=auto
559 _mad=auto
560 _toolame=auto
561 _twolame=auto
562 _tremor_internal=yes
563 _tremor_low=no
564 _tremor_external=auto
565 _libvorbis=auto
566 _speex=auto
567 _theora=auto
568 _mp3lib=yes
569 _liba52=yes
570 _libdca=auto
571 _libmpeg2=yes
572 _faad_internal=auto
573 _faad_external=auto
574 _faad_fixed=no
575 _faac=auto
576 _ladspa=auto
577 _xmms=no
578 _dvdnav=auto
579 _dvdnavconfig=dvdnav-config
580 _dvdread=auto
581 _dvdread_internal=auto
582 _libdvdcss_internal=auto
583 _xanim=auto
584 _real=auto
585 _live=auto
586 _nemesi=auto
587 _native_rtsp=yes
588 _xinerama=auto
589 _mga=auto
590 _xmga=auto
591 _vm=auto
592 _xf86keysym=auto
593 _mlib=no #broken, thus disabled
594 _sgiaudio=auto
595 _sunaudio=auto
596 _alsa=auto
597 _fastmemcpy=yes
598 _unrar_exec=auto
599 _win32dll=auto
600 _select=yes
601 _radio=no
602 _radio_capture=no
603 _radio_v4l=auto
604 _radio_v4l2=auto
605 _radio_bsdbt848=auto
606 _tv=yes
607 _tv_v4l1=auto
608 _tv_v4l2=auto
609 _tv_bsdbt848=auto
610 _tv_dshow=auto
611 _tv_teletext=auto
612 _pvr=auto
613 _network=yes
614 _winsock2=auto
615 _smbsupport=auto
616 _vidix_internal=auto
617 _vidix_external=auto
618 _vidix_pcidb=yes
619 _joystick=no
620 _xvid=auto
621 _x264=auto
622 _libnut=auto
623 _lirc=auto
624 _lircc=auto
625 _apple_remote=auto
626 _gui=no
627 _gtk1=no
628 _termcap=auto
629 _termios=auto
630 _3dfx=no
631 _s3fb=no
632 _tdfxfb=no
633 _tdfxvid=no
634 _xvr100=auto
635 _tga=yes
636 _directfb=auto
637 _zr=auto
638 _bl=no
639 _largefiles=yes
640 #_language=en
641 _shm=auto
642 _linux_devfs=no
643 _charset="UTF-8"
644 _dynamic_plugins=no
645 _crash_debug=no
646 _sighandler=yes
647 _libdv=auto
648 _cdparanoia=auto
649 _cddb=auto
650 _big_endian=auto
651 _bitmap_font=yes
652 _freetype=auto
653 _fontconfig=auto
654 _menu=no
655 _qtx=auto
656 _macosx=auto
657 _maemo=auto
658 _macosx_finder_support=no
659 _macosx_bundle=auto
660 _sortsub=yes
661 _freetypeconfig='freetype-config'
662 _fribidi=auto
663 _fribidiconfig='fribidi-config'
664 _enca=auto
665 _inet6=auto
666 _gethostbyname2=auto
667 _ftp=yes
668 _musepack=auto
669 _vstream=auto
670 _pthreads=auto
671 _w32threads=auto
672 _ass=auto
673 _rpath=no
674 _asmalign_pot=auto
675 _color_console=no
676 _stream_cache=yes
677 _def_stream_cache="#define USE_STREAM_CACHE 1"
678 _need_shmem=yes
679 for ac_option do
680 case "$ac_option" in
681 --help|-help|-h)
682 show_help
684 --prefix=*)
685 _prefix=`echo $ac_option | cut -d '=' -f 2`
687 --bindir=*)
688 _bindir=`echo $ac_option | cut -d '=' -f 2`
690 --datadir=*)
691 _datadir=`echo $ac_option | cut -d '=' -f 2`
693 --mandir=*)
694 _mandir=`echo $ac_option | cut -d '=' -f 2`
696 --confdir=*)
697 _confdir=`echo $ac_option | cut -d '=' -f 2`
699 --libdir=*)
700 _libdir=`echo $ac_option | cut -d '=' -f 2`
702 --codecsdir=*)
703 _codecsdir=`echo $ac_option | cut -d '=' -f 2`
705 --win32codecsdir=*)
706 _win32codecsdir=`echo $ac_option | cut -d '=' -f 2`
708 --xanimcodecsdir=*)
709 _xanimcodecsdir=`echo $ac_option | cut -d '=' -f 2`
711 --realcodecsdir=*)
712 _realcodecsdir=`echo $ac_option | cut -d '=' -f 2`
714 --with-extraincdir=*)
715 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
717 --with-extralibdir=*)
718 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
721 --with-install=*)
722 _install=`echo $ac_option | cut -d '=' -f 2 `
724 --with-xvmclib=*)
725 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
728 --with-sdl-config=*)
729 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
731 --with-freetype-config=*)
732 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
734 --with-fribidi-config=*)
735 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
737 --with-gtk-config=*)
738 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
740 --with-glib-config=*)
741 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
743 --with-dvdnav-config=*)
744 _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
747 --extra-libs=*)
748 _extra_libs=`echo $ac_option | cut -d '=' -f 2`
750 --extra-libs-mplayer=*)
751 _libs_mplayer=`echo $ac_option | cut -d '=' -f 2`
753 --extra-libs-mencoder=*)
754 _libs_mencoder=`echo $ac_option | cut -d '=' -f 2`
757 --target=*)
758 _target=`echo $ac_option | cut -d '=' -f 2`
760 --cc=*)
761 _cc=`echo $ac_option | cut -d '=' -f 2`
763 --host-cc=*)
764 _host_cc=`echo $ac_option | cut -d '=' -f 2`
766 --as=*)
767 _as=`echo $ac_option | cut -d '=' -f 2`
769 --ar=*)
770 _ar=`echo $ac_option | cut -d '=' -f 2`
772 --ranlib=*)
773 _ranlib=`echo $ac_option | cut -d '=' -f 2`
775 --windres=*)
776 _windres=`echo $ac_option | cut -d '=' -f 2`
778 --charset=*)
779 _charset=`echo $ac_option | cut -d '=' -f 2`
781 --language=*)
782 _language=`echo $ac_option | cut -d '=' -f 2`
785 --enable-static)
786 _ld_static='-static'
788 --disable-static)
789 _ld_static=''
791 --enable-profile)
792 _profile='-p'
794 --disable-profile)
795 _profile=
797 --enable-debug)
798 _debug='-g'
800 --enable-debug=*)
801 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
803 --disable-debug)
804 _debug=
806 --enable-gcc-check) _gcc_check=yes ;;
807 --disable-gcc-check) _gcc_check=no ;;
808 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
809 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
810 --enable-cross-compile) _cross_compile=yes ;;
811 --disable-cross-compile) _cross_compile=no ;;
812 --enable-mencoder) _mencoder=yes ;;
813 --disable-mencoder) _mencoder=no ;;
814 --enable-mplayer) _mplayer=yes ;;
815 --disable-mplayer) _mplayer=no ;;
816 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
817 --disable-dynamic-plugins) _dynamic_plugins=no ;;
818 --enable-x11) _x11=yes ;;
819 --disable-x11) _x11=no ;;
820 --enable-xshape) _xshape=yes ;;
821 --disable-xshape) _xshape=no ;;
822 --enable-xss) _xss=yes ;;
823 --disable-xss) _xss=no ;;
824 --enable-xv) _xv=yes ;;
825 --disable-xv) _xv=no ;;
826 --enable-xvmc) _xvmc=yes ;;
827 --disable-xvmc) _xvmc=no ;;
828 --enable-sdl) _sdl=yes ;;
829 --disable-sdl) _sdl=no ;;
830 --enable-directx) _directx=yes ;;
831 --disable-directx) _directx=no ;;
832 --enable-win32waveout) _win32waveout=yes ;;
833 --disable-win32waveout) _win32waveout=no ;;
834 --enable-nas) _nas=yes ;;
835 --disable-nas) _nas=no ;;
836 --enable-png) _png=yes ;;
837 --disable-png) _png=no ;;
838 --enable-jpeg) _jpeg=yes ;;
839 --disable-jpeg) _jpeg=no ;;
840 --enable-pnm) _pnm=yes ;;
841 --disable-pnm) _pnm=no ;;
842 --enable-md5sum) _md5sum=yes ;;
843 --disable-md5sum) _md5sum=no ;;
844 --enable-gif) _gif=yes ;;
845 --disable-gif) _gif=no ;;
846 --enable-gl) _gl=yes ;;
847 --disable-gl) _gl=no ;;
848 --enable-ggi) _ggi=yes ;;
849 --disable-ggi) _ggi=no ;;
850 --enable-ggiwmh) _ggiwmh=yes ;;
851 --disable-ggiwmh) _ggiwmh=no ;;
852 --enable-aa) _aa=yes ;;
853 --disable-aa) _aa=no ;;
854 --enable-caca) _caca=yes ;;
855 --disable-caca) _caca=no ;;
856 --enable-svga) _svga=yes ;;
857 --disable-svga) _svga=no ;;
858 --enable-vesa) _vesa=yes ;;
859 --disable-vesa) _vesa=no ;;
860 --enable-fbdev) _fbdev=yes ;;
861 --disable-fbdev) _fbdev=no ;;
862 --enable-dvb) _dvb=yes ;;
863 --disable-dvb) _dvb=no ;;
864 --enable-dvbhead) _dvbhead=yes ;;
865 --disable-dvbhead) _dvbhead=no ;;
866 --enable-dxr2) _dxr2=yes ;;
867 --disable-dxr2) _dxr2=no ;;
868 --enable-dxr3) _dxr3=yes ;;
869 --disable-dxr3) _dxr3=no ;;
870 --enable-ivtv) _ivtv=yes ;;
871 --disable-ivtv) _ivtv=no ;;
872 --enable-v4l2) _v4l2=yes ;;
873 --disable-v4l2) _v4l2=no ;;
874 --enable-iconv) _iconv=yes ;;
875 --disable-iconv) _iconv=no ;;
876 --enable-langinfo) _langinfo=yes ;;
877 --disable-langinfo) _langinfo=no ;;
878 --enable-rtc) _rtc=yes ;;
879 --disable-rtc) _rtc=no ;;
880 --enable-libdv) _libdv=yes ;;
881 --disable-libdv) _libdv=no ;;
882 --enable-ossaudio) _ossaudio=yes ;;
883 --disable-ossaudio) _ossaudio=no ;;
884 --enable-arts) _arts=yes ;;
885 --disable-arts) _arts=no ;;
886 --enable-esd) _esd=yes ;;
887 --disable-esd) _esd=no ;;
888 --enable-pulse) _pulse=yes ;;
889 --disable-pulse) _pulse=no ;;
890 --enable-jack) _jack=yes ;;
891 --disable-jack) _jack=no ;;
892 --enable-openal) _openal=yes ;;
893 --disable-openal) _openal=no ;;
894 --enable-mad) _mad=yes ;;
895 --disable-mad) _mad=no ;;
896 --enable-toolame) _toolame=yes ;;
897 --disable-toolame) _toolame=no ;;
898 --enable-twolame) _twolame=yes ;;
899 --disable-twolame) _twolame=no ;;
900 --enable-libcdio) _libcdio=yes ;;
901 --disable-libcdio) _libcdio=no ;;
902 --enable-liblzo) _liblzo=yes ;;
903 --disable-liblzo) _liblzo=no ;;
904 --enable-libvorbis) _libvorbis=yes ;;
905 --disable-libvorbis) _libvorbis=no ;;
906 --enable-speex) _speex=yes ;;
907 --disable-speex) _speex=no ;;
908 --enable-tremor-internal) _tremor_internal=yes ;;
909 --disable-tremor-internal) _tremor_internal=no ;;
910 --enable-tremor-low) _tremor_low=yes ;;
911 --disable-tremor-low) _tremor_low=no ;;
912 --enable-tremor-external) _tremor_external=yes ;;
913 --disable-tremor-external) _tremor_external=no ;;
914 --enable-theora) _theora=yes ;;
915 --disable-theora) _theora=no ;;
916 --enable-mp3lib) _mp3lib=yes ;;
917 --disable-mp3lib) _mp3lib=no ;;
918 --enable-liba52) _liba52=yes ;;
919 --disable-liba52) _liba52=no ;;
920 --enable-libdca) _libdca=yes ;;
921 --disable-libdca) _libdca=no ;;
922 --enable-libmpeg2) _libmpeg2=yes ;;
923 --disable-libmpeg2) _libmpeg2=no ;;
924 --enable-musepack) _musepack=yes ;;
925 --disable-musepack) _musepack=no ;;
926 --enable-faad-internal) _faad_internal=yes ;;
927 --disable-faad-internal) _faad_internal=no ;;
928 --enable-faad-external) _faad_external=yes ;;
929 --disable-faad-external) _faad_external=no ;;
930 --enable-faad-fixed) _faad_fixed=yes ;;
931 --disable-faad-fixed) _faad_fixed=no ;;
932 --enable-faac) _faac=yes ;;
933 --disable-faac) _faac=no ;;
934 --enable-ladspa) _ladspa=yes ;;
935 --disable-ladspa) _ladspa=no ;;
936 --enable-xmms) _xmms=yes ;;
937 --disable-xmms) _xmms=no ;;
938 --enable-dvdread) _dvdread=yes ;;
939 --disable-dvdread) _dvdread=no ;;
940 --enable-dvdread-internal) _dvdread_internal=yes ;;
941 --disable-dvdread-internal) _dvdread_internal=no ;;
942 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
943 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
944 --enable-dvdnav) _dvdnav=yes ;;
945 --disable-dvdnav) _dvdnav=no ;;
946 --enable-xanim) _xanim=yes ;;
947 --disable-xanim) _xanim=no ;;
948 --enable-real) _real=yes ;;
949 --disable-real) _real=no ;;
950 --enable-live) _live=yes ;;
951 --disable-live) _live=no ;;
952 --enable-nemesi) _nemesi=yes ;;
953 --disable-nemesi) _nemesi=no ;;
954 --enable-xinerama) _xinerama=yes ;;
955 --disable-xinerama) _xinerama=no ;;
956 --enable-mga) _mga=yes ;;
957 --disable-mga) _mga=no ;;
958 --enable-xmga) _xmga=yes ;;
959 --disable-xmga) _xmga=no ;;
960 --enable-vm) _vm=yes ;;
961 --disable-vm) _vm=no ;;
962 --enable-xf86keysym) _xf86keysym=yes ;;
963 --disable-xf86keysym) _xf86keysym=no ;;
964 --enable-mlib) _mlib=yes ;;
965 --disable-mlib) _mlib=no ;;
966 --enable-sunaudio) _sunaudio=yes ;;
967 --disable-sunaudio) _sunaudio=no ;;
968 --enable-sgiaudio) _sgiaudio=yes ;;
969 --disable-sgiaudio) _sgiaudio=no ;;
970 --enable-alsa) _alsa=yes ;;
971 --disable-alsa) _alsa=no ;;
972 --enable-tv) _tv=yes ;;
973 --disable-tv) _tv=no ;;
974 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
975 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
976 --enable-tv-v4l1) _tv_v4l1=yes ;;
977 --disable-tv-v4l1) _tv_v4l1=no ;;
978 --enable-tv-v4l2) _tv_v4l2=yes ;;
979 --disable-tv-v4l2) _tv_v4l2=no ;;
980 --enable-tv-dshow) _tv_dshow=yes ;;
981 --disable-tv-dshow) _tv_dshow=no ;;
982 --enable-tv-teletext) _tv_teletext=yes ;;
983 --disable-tv-teletext) _tv_teletext=no ;;
984 --enable-radio) _radio=yes ;;
985 --enable-radio-capture) _radio_capture=yes ;;
986 --disable-radio-capture) _radio_capture=no ;;
987 --disable-radio) _radio=no ;;
988 --enable-radio-v4l) _radio_v4l=yes ;;
989 --disable-radio-v4l) _radio_v4l=no ;;
990 --enable-radio-v4l2) _radio_v4l2=yes ;;
991 --disable-radio-v4l2) _radio_v4l2=no ;;
992 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
993 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
994 --enable-pvr) _pvr=yes ;;
995 --disable-pvr) _pvr=no ;;
996 --enable-fastmemcpy) _fastmemcpy=yes ;;
997 --disable-fastmemcpy) _fastmemcpy=no ;;
998 --enable-network) _network=yes ;;
999 --disable-network) _network=no ;;
1000 --enable-winsock2) _winsock2=yes ;;
1001 --disable-winsock2) _winsock2=no ;;
1002 --enable-smb) _smbsupport=yes ;;
1003 --disable-smb) _smbsupport=no ;;
1004 --enable-vidix-internal) _vidix_internal=yes ;;
1005 --disable-vidix-internal) _vidix_internal=no ;;
1006 --enable-vidix-external) _vidix_external=yes ;;
1007 --disable-vidix-external) _vidix_external=no ;;
1008 --with-vidix-drivers=*)
1009 _vidix_drivers=`echo $ac_option | cut -d '=' -f 2`
1011 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1012 --enable-joystick) _joystick=yes ;;
1013 --disable-joystick) _joystick=no ;;
1014 --enable-xvid) _xvid=yes ;;
1015 --disable-xvid) _xvid=no ;;
1016 --enable-x264) _x264=yes ;;
1017 --disable-x264) _x264=no ;;
1018 --enable-libnut) _libnut=yes ;;
1019 --disable-libnut) _libnut=no ;;
1020 --enable-libavutil_a) _libavutil_a=yes ;;
1021 --disable-libavutil_a) _libavutil_a=no ;;
1022 --enable-libavutil_so) _libavutil_so=yes ;;
1023 --disable-libavutil_so) _libavutil_so=no ;;
1024 --enable-libavcodec_a) _libavcodec_a=yes ;;
1025 --disable-libavcodec_a) _libavcodec_a=no ;;
1026 --enable-libavcodec_so) _libavcodec_so=yes ;;
1027 --disable-libavcodec_so) _libavcodec_so=no ;;
1028 --enable-libamr_nb) _libamr_nb=yes ;;
1029 --disable-libamr_nb) _libamr_nb=no ;;
1030 --enable-libamr_wb) _libamr_wb=yes ;;
1031 --disable-libamr_wb) _libamr_wb=no ;;
1032 --enable-decoder=*) _libavdecoders="$_libavdecoders `echo $ac_option | cut -d '=' -f 2`" ;;
1033 --disable-decoder=*) _libavdecoders=`echo $_libavdecoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1034 --enable-encoder=*) _libavencoders="$_libavencoders `echo $ac_option | cut -d '=' -f 2`" ;;
1035 --disable-encoder=*) _libavencoders=`echo $_libavencoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1036 --enable-parser=*) _libavparsers="$_libavparsers `echo $ac_option | cut -d '=' -f 2`" ;;
1037 --disable-parser=*) _libavparsers=`echo $_libavparsers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1038 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers `echo $ac_option | cut -d '=' -f 2`" ;;
1039 --disable-demuxer=*) _libavdemuxers=`echo $_libavdemuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1040 --enable-muxer=*) _libavmuxers="$_libavmuxers `echo $ac_option | cut -d '=' -f 2`" ;;
1041 --disable-muxer=*) _libavmuxers=`echo $_libavmuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1042 --enable-libavformat_a) _libavformat_a=yes ;;
1043 --disable-libavformat_a) _libavformat_a=no ;;
1044 --enable-libavformat_so) _libavformat_so=yes ;;
1045 --disable-libavformat_so) _libavformat_so=no ;;
1046 --enable-libpostproc_a) _libpostproc_a=yes ;;
1047 --disable-libpostproc_a) _libpostproc_a=no ;;
1048 --enable-libpostproc_so) _libpostproc_so=yes ;;
1049 --disable-libpostproc_so) _libpostproc_so=no ;;
1050 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1051 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1053 --enable-lirc) _lirc=yes ;;
1054 --disable-lirc) _lirc=no ;;
1055 --enable-lircc) _lircc=yes ;;
1056 --disable-lircc) _lircc=no ;;
1057 --enable-apple-remote) _apple_remote=yes ;;
1058 --disable-apple-remote) _apple_remote=no ;;
1059 --enable-gui) _gui=yes ;;
1060 --disable-gui) _gui=no ;;
1061 --enable-gtk1) _gtk1=yes ;;
1062 --disable-gtk1) _gtk1=no ;;
1063 --enable-termcap) _termcap=yes ;;
1064 --disable-termcap) _termcap=no ;;
1065 --enable-termios) _termios=yes ;;
1066 --disable-termios) _termios=no ;;
1067 --enable-3dfx) _3dfx=yes ;;
1068 --disable-3dfx) _3dfx=no ;;
1069 --enable-s3fb) _s3fb=yes ;;
1070 --disable-s3fb) _s3fb=no ;;
1071 --enable-tdfxfb) _tdfxfb=yes ;;
1072 --disable-tdfxfb) _tdfxfb=no ;;
1073 --disable-tdfxvid) _tdfxvid=no ;;
1074 --enable-tdfxvid) _tdfxvid=yes ;;
1075 --disable-xvr100) _xvr100=no ;;
1076 --enable-xvr100) _xvr100=yes ;;
1077 --disable-tga) _tga=no ;;
1078 --enable-tga) _tga=yes ;;
1079 --enable-directfb) _directfb=yes ;;
1080 --disable-directfb) _directfb=no ;;
1081 --enable-zr) _zr=yes ;;
1082 --disable-zr) _zr=no ;;
1083 --enable-bl) _bl=yes ;;
1084 --disable-bl) _bl=no ;;
1085 --enable-mtrr) _mtrr=yes ;;
1086 --disable-mtrr) _mtrr=no ;;
1087 --enable-largefiles) _largefiles=yes ;;
1088 --disable-largefiles) _largefiles=no ;;
1089 --enable-shm) _shm=yes ;;
1090 --disable-shm) _shm=no ;;
1091 --enable-select) _select=yes ;;
1092 --disable-select) _select=no ;;
1093 --enable-linux-devfs) _linux_devfs=yes ;;
1094 --disable-linux-devfs) _linux_devfs=no ;;
1095 --enable-cdparanoia) _cdparanoia=yes ;;
1096 --disable-cdparanoia) _cdparanoia=no ;;
1097 --enable-cddb) _cddb=yes ;;
1098 --disable-cddb) _cddb=no ;;
1099 --enable-big-endian) _big_endian=yes ;;
1100 --disable-big-endian) _big_endian=no ;;
1101 --enable-bitmap-font) _bitmap_font=yes ;;
1102 --disable-bitmap-font) _bitmap_font=no ;;
1103 --enable-freetype) _freetype=yes ;;
1104 --disable-freetype) _freetype=no ;;
1105 --enable-fontconfig) _fontconfig=yes ;;
1106 --disable-fontconfig) _fontconfig=no ;;
1107 --enable-unrarexec) _unrar_exec=yes ;;
1108 --disable-unrarexec) _unrar_exec=no ;;
1109 --enable-ftp) _ftp=yes ;;
1110 --disable-ftp) _ftp=no ;;
1111 --enable-vstream) _vstream=yes ;;
1112 --disable-vstream) _vstream=no ;;
1113 --enable-pthreads) _pthreads=yes ;;
1114 --disable-pthreads) _pthreads=no ;;
1115 --enable-w32threads) _w32threads=yes ;;
1116 --disable-w32threads) _w32threads=no ;;
1117 --enable-ass) _ass=yes ;;
1118 --disable-ass) _ass=no ;;
1119 --enable-rpath) _rpath=yes ;;
1120 --disable-rpath) _rpath=no ;;
1121 --enable-color-console) _color_console=yes ;;
1122 --disable-color-console) _color_console=no ;;
1124 --enable-fribidi) _fribidi=yes ;;
1125 --disable-fribidi) _fribidi=no ;;
1127 --enable-enca) _enca=yes ;;
1128 --disable-enca) _enca=no ;;
1130 --enable-inet6) _inet6=yes ;;
1131 --disable-inet6) _inet6=no ;;
1133 --enable-gethostbyname2) _gethostbyname2=yes ;;
1134 --disable-gethostbyname2) _gethostbyname2=no ;;
1136 --enable-dga1) _dga1=yes ;;
1137 --disable-dga1) _dga1=no ;;
1138 --enable-dga2) _dga2=yes ;;
1139 --disable-dga2) _dga2=no ;;
1141 --enable-menu) _menu=yes ;;
1142 --disable-menu) _menu=no ;;
1144 --enable-qtx) _qtx=yes ;;
1145 --disable-qtx) _qtx=no ;;
1147 --enable-macosx) _macosx=yes ;;
1148 --disable-macosx) _macosx=no ;;
1149 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1150 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1151 --enable-macosx-bundle) _macosx_bundle=yes;;
1152 --disable-macosx-bundle) _macosx_bundle=no;;
1154 --enable-maemo) _maemo=yes ;;
1155 --disable-maemo) _maemo=no ;;
1157 --enable-sortsub) _sortsub=yes ;;
1158 --disable-sortsub) _sortsub=no ;;
1160 --enable-crash-debug) _crash_debug=yes ;;
1161 --disable-crash-debug) _crash_debug=no ;;
1162 --enable-sighandler) _sighandler=yes ;;
1163 --disable-sighandler) _sighandler=no ;;
1164 --enable-win32dll) _win32dll=yes ;;
1165 --disable-win32dll) _win32dll=no ;;
1167 --enable-sse) _sse=yes ;;
1168 --disable-sse) _sse=no ;;
1169 --enable-sse2) _sse2=yes ;;
1170 --disable-sse2) _sse2=no ;;
1171 --enable-ssse3) _ssse3=yes ;;
1172 --disable-ssse3) _ssse3=no ;;
1173 --enable-mmxext) _mmxext=yes ;;
1174 --disable-mmxext) _mmxext=no ;;
1175 --enable-3dnow) _3dnow=yes ;;
1176 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1177 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1178 --disable-3dnowext) _3dnowext=no ;;
1179 --enable-cmov) _cmov=yes ;;
1180 --disable-cmov) _cmov=no ;;
1181 --enable-fast-cmov) _fast_cmov=yes ;;
1182 --disable-fast-cmov) _fast_cmov=no ;;
1183 --enable-altivec) _altivec=yes ;;
1184 --disable-altivec) _altivec=no ;;
1185 --enable-armv5te) _armv5te=yes ;;
1186 --disable-armv5te) _armv5te=no ;;
1187 --enable-armv6) _armv6=yes ;;
1188 --disable-armv6) _armv6=no ;;
1189 --enable-iwmmxt) _iwmmxt=yes ;;
1190 --disable-iwmmxt) _iwmmxt=no ;;
1191 --enable-mmx) _mmx=yes ;;
1192 --disable-mmx) # 3Dnow! and MMX2 require MMX
1193 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1196 echo "Unknown parameter: $ac_option"
1197 exit 1
1200 esac
1201 done
1203 # Atmos: moved this here, to be correct, if --prefix is specified
1204 test -z "$_bindir" && _bindir="$_prefix/bin"
1205 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1206 test -z "$_mandir" && _mandir="$_prefix/share/man"
1207 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1208 test -z "$_libdir" && _libdir="$_prefix/lib"
1210 # Determine our OS name and CPU architecture
1211 if test -z "$_target" ; then
1212 # OS name
1213 system_name=`uname -s 2>&1`
1214 case "$system_name" in
1215 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS|AIX|AmigaOS)
1217 IRIX*)
1218 system_name=IRIX
1220 GNU/kFreeBSD)
1221 system_name=FreeBSD
1223 HP-UX*)
1224 system_name=HP-UX
1226 [cC][yY][gG][wW][iI][nN]*)
1227 system_name=CYGWIN
1229 MINGW32*)
1230 system_name=MINGW32
1233 system_name="$system_name-UNKNOWN"
1235 esac
1238 # host's CPU/instruction set
1239 host_arch=`uname -p 2>&1`
1240 case "$host_arch" in
1241 i386|sparc|ppc|alpha|arm|sh3|mips|vax)
1243 powerpc) # Darwin returns 'powerpc'
1244 host_arch=ppc
1246 *) # uname -p on Linux returns 'unknown' for the processor type,
1247 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1249 # Maybe uname -m (machine hardware name) returns something we
1250 # recognize.
1252 # x86/x86pc is used by QNX
1253 case "`uname -m 2>&1`" in
1254 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 ;;
1255 ia64) host_arch=ia64 ;;
1256 x86_64|amd64)
1257 if [ -n "`$_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
1258 -z "`echo $CFLAGS | grep -- -m32`" ]; then
1259 host_arch=x86_64
1260 else
1261 host_arch=i386
1264 macppc|ppc|ppc64) host_arch=ppc ;;
1265 alpha) host_arch=alpha ;;
1266 sparc) host_arch=sparc ;;
1267 sparc64) host_arch=sparc64 ;;
1268 parisc*|hppa*|9000*) host_arch=hppa ;;
1269 arm*|zaurus|cats) host_arch=arm ;;
1270 sh3) host_arch=sh3 ;;
1271 s390) host_arch=s390 ;;
1272 s390x) host_arch=s390x ;;
1273 mips*) host_arch=mips ;;
1274 vax) host_arch=vax ;;
1275 xtensa*) host_arch=xtensa ;;
1276 *) host_arch=UNKNOWN ;;
1277 esac
1279 esac
1280 else # if test -z "$_target"
1281 system_name=`echo $_target | cut -d '-' -f 2`
1282 case "`echo $system_name | tr A-Z a-z`" in
1283 linux) system_name=Linux ;;
1284 freebsd) system_name=FreeBSD ;;
1285 gnu/kfreebsd) system_name=FreeBSD ;;
1286 netbsd) system_name=NetBSD ;;
1287 bsd/os) system_name=BSD/OS ;;
1288 openbsd) system_name=OpenBSD ;;
1289 sunos) system_name=SunOS ;;
1290 qnx) system_name=QNX ;;
1291 morphos) system_name=MorphOS ;;
1292 amigaos) system_name=AmigaOS ;;
1293 mingw32msvc) system_name=MINGW32 ;;
1294 esac
1295 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1296 host_arch=`echo $_target | cut -d '-' -f 1`
1297 if test `echo $host_arch` != "x86_64" ; then
1298 host_arch=`echo $host_arch | tr '_' '-'`
1302 echo "Detected operating system: $system_name"
1303 echo "Detected host architecture: $host_arch"
1305 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1306 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1310 if openbsd ; then
1311 _ldconfig="ldconfig -R"
1314 if freebsd ; then
1315 _ld_extra="$_ld_extra -L/usr/local/lib"
1316 _inc_extra="$_inc_extra -I/usr/local/include"
1319 if darwin; then
1320 _ld_extra="$_ld_extra -L/usr/local/lib"
1321 _inc_extra="$_inc_extra -I/usr/local/include"
1324 if aix ; then
1325 _ld_extra="$_ld_extra -lC"
1328 if irix ; then
1329 _ranlib='ar -r'
1330 elif linux ; then
1331 _ranlib='true'
1334 if win32 ; then
1335 _exesuf=".exe"
1336 # -lwinmm is always needed for osdep/timer-win2.c
1337 _ld_extra="$_ld_extra -lwinmm"
1338 _confwin32='TARGET_WIN32 = yes'
1339 else
1340 _confwin32='TARGET_WIN32 = no'
1343 if mingw32 ; then
1344 _need_shmem=no
1347 if cygwin ; then
1348 _def_confwin32='#define WIN32'
1351 if amigaos ; then
1352 _select=no
1353 _sighandler=no
1354 _stream_cache=no
1355 _def_stream_cache="#undef USE_STREAM_CACHE"
1358 if qnx ; then
1359 _ld_extra="$_ld_extra -lph"
1362 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1363 test "$I" && break
1364 done
1367 TMPLOG="configure.log"
1368 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1369 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1370 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1371 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1372 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1374 rm -f "$TMPLOG"
1375 echo configuration: $_configuration > "$TMPLOG"
1376 echo >> "$TMPLOG"
1379 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
1380 # if used as 'head -1' instead of 'head -n 1', but older versions don't
1381 # know about '-n'.
1382 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
1383 _head() { head -$1 2>/dev/null ; }
1384 else
1385 _head() { head -n $1 2>/dev/null ; }
1387 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
1388 _tail() { tail -$1 2>/dev/null ; }
1389 else
1390 _tail() { tail -n $1 2>/dev/null ; }
1393 # Checking CC version...
1394 if test "$_gcc_check" = yes ; then
1395 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1396 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
1397 echocheck "$_cc version"
1398 cc_vendor=intel
1399 cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1`
1400 cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
1401 _cc_major=`echo $cc_version | cut -d '.' -f 1`
1402 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
1403 # TODO verify older icc/ecc compatibility
1404 case $cc_version in
1406 cc_version="v. ?.??, bad"
1407 cc_verc_fail=yes
1409 8.0|9.1|10.0|10.1)
1410 cc_version="$cc_version, ok"
1411 cc_verc_fail=no
1414 cc_version="$cc_version, bad"
1415 cc_verc_fail=yes
1417 esac
1418 echores "$cc_version"
1419 else
1420 for _cc in "$_cc" gcc cc ; do
1421 echocheck "$_cc version"
1422 cc_vendor=gnu
1423 cc_name=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1`
1424 cc_version=`$_cc -dumpversion 2>&1`
1425 if test "$?" -gt 0; then
1426 cc_version="not found"
1428 case $cc_version in
1430 cc_version="v. ?.??, bad"
1431 cc_verc_fail=yes
1433 2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
1434 _cc_major=`echo $cc_version | cut -d '.' -f 1`
1435 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
1436 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
1437 cc_version="$cc_version, ok"
1438 cc_verc_fail=no
1440 'not found')
1441 cc_verc_fail=yes
1444 cc_version="$cc_version, bad"
1445 cc_verc_fail=yes
1447 esac
1448 echores "$cc_version"
1449 test "$cc_verc_fail" = "no" && break
1450 done
1451 fi # icc
1452 if test "$cc_verc_fail" = yes ; then
1453 cat <<EOF
1455 *** Please downgrade/upgrade C compiler to version gcc-2.95, 3.x or 4.x! ***
1457 You are not using a supported compiler. We do not have the time to make sure
1458 everything works with compilers other than the ones we use. Use either the
1459 same compiler as we do, or use --disable-gcc-check but DO *NOT* REPORT BUGS
1460 unless you can reproduce them after recompiling with a 2.95.x or 3/4.x version!
1462 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
1463 mplayer and lame (which is used for mencoder). If you get compile errors,
1464 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
1465 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
1466 bugs!
1468 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
1471 die "Bad gcc version"
1473 else
1474 cat <<EOF
1476 ******************************************************************************
1478 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
1479 Ok. You know. Do it.
1481 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
1482 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
1483 Lame which is used by mencoder produces weird errors, too.
1485 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
1486 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
1488 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
1490 ******************************************************************************
1494 read _answer
1497 echocheck "host cc"
1498 test "$_host_cc" || _host_cc=$_cc
1499 echores $_host_cc
1501 echocheck "cross compilation"
1502 if test $_cross_compile = auto ; then
1503 cat > $TMPC << EOF
1504 int main(void) { return 0; }
1506 _cross_compile=yes
1507 cc_check && "$TMPEXE" && _cross_compile=no
1509 echores $_cross_compile
1511 if test $_cross_compile = yes; then
1512 tmp_run() {
1513 return 0
1517 # ---
1519 # now that we know what compiler should be used for compilation, try to find
1520 # out which assembler is used by the $_cc compiler
1521 if test "$_as" = auto ; then
1522 _as=`$_cc -print-prog-name=as`
1523 test -z "$_as" && _as=as
1526 # XXX: this should be ok..
1527 _cpuinfo="echo"
1529 if test "$_runtime_cpudetection" = no ; then
1531 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1532 # FIXME: Remove the cygwin check once AMD CPUs are supported
1533 if test -r /proc/cpuinfo && ! cygwin; then
1534 # Linux with /proc mounted, extract CPU information from it
1535 _cpuinfo="cat /proc/cpuinfo"
1536 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1537 # FreeBSD with Linux emulation /proc mounted,
1538 # extract CPU information from it
1539 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1540 elif darwin && ! x86_32 ; then
1541 # use hostinfo on Darwin
1542 _cpuinfo="hostinfo"
1543 elif aix; then
1544 # use 'lsattr' on AIX
1545 _cpuinfo="lsattr -E -l proc0 -a type"
1546 elif x86; then
1547 # all other OSes try to extract CPU information from a small helper
1548 # program cpuinfo instead
1549 $_cc -o cpuinfo$_exesuf cpuinfo.c
1550 _cpuinfo="./cpuinfo$_exesuf"
1553 if x86 ; then
1554 # gather more CPU information
1555 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
1556 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1557 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1558 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1559 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1561 exts=`$_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | _head 1`
1563 pparam=`echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1564 -e s/xmm/sse/ -e s/kni/sse/`
1566 for ext in $pparam ; do
1567 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1568 done
1570 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1571 test $_sse = kernel_check && _mmxext=kernel_check
1573 echocheck "CPU vendor"
1574 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1576 echocheck "CPU type"
1577 echores "$pname"
1580 fi # test "$_runtime_cpudetection" = no
1582 if x86 && test "$_runtime_cpudetection" = no ; then
1583 extcheck() {
1584 if test "$1" = kernel_check ; then
1585 echocheck "kernel support of $2"
1586 cat > $TMPC <<EOF
1587 #include <signal.h>
1588 void catch() { exit(1); }
1589 int main(void){
1590 signal(SIGILL, catch);
1591 __asm__ __volatile__ ("$3":::"memory");return(0);
1595 if cc_check && tmp_run ; then
1596 eval _$2=yes
1597 echores "yes"
1598 _optimizing="$_optimizing $2"
1599 return 0
1600 else
1601 eval _$2=no
1602 echores "failed"
1603 echo "It seems that your kernel does not correctly support $2."
1604 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1605 return 1
1608 return 0
1611 extcheck $_mmx "mmx" "emms"
1612 extcheck $_mmxext "mmxext" "sfence"
1613 extcheck $_3dnow "3dnow" "femms"
1614 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1615 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1616 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1617 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1618 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1620 echocheck "mtrr support"
1621 if test "$_mtrr" = kernel_check ; then
1622 _mtrr="yes"
1623 _optimizing="$_optimizing mtrr"
1625 echores "$_mtrr"
1627 if test "$_gcc3_ext" != ""; then
1628 # if we had to disable sse/sse2 because the active kernel does not
1629 # support this instruction set extension, we also have to tell
1630 # gcc3 to not generate sse/sse2 instructions for normal C code
1631 cat > $TMPC << EOF
1632 int main(void) { return 0; }
1634 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1640 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM ARMV4L SH3 POWERPC PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1641 case "$host_arch" in
1642 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1643 _arch='X86 X86_32'
1644 _target_arch_x86="ARCH_X86 = yes"
1645 _target_arch="ARCH_X86_32 = yes"
1646 _def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1647 iproc=486
1648 proc=i486
1651 if test "$_runtime_cpudetection" = no ; then
1652 case "$pvendor" in
1653 AuthenticAMD)
1654 case "$pfamily" in
1655 3) proc=i386 iproc=386 ;;
1656 4) proc=i486 iproc=486 ;;
1657 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1658 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1659 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1660 proc=k6-3
1661 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1662 proc=geode
1663 elif test "$pmodel" -ge 8; then
1664 proc=k6-2
1665 elif test "$pmodel" -ge 6; then
1666 proc=k6
1667 else
1668 proc=i586
1671 6) iproc=686
1672 # It's a bit difficult to determine the correct type of Family 6
1673 # AMD CPUs just from their signature. Instead, we check directly
1674 # whether it supports SSE.
1675 if test "$_sse" = yes; then
1676 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1677 proc=athlon-xp
1678 else
1679 # Again, gcc treats athlon and athlon-tbird similarly.
1680 proc=athlon
1683 15) iproc=686
1684 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1685 # caught and remedied in the optimization tests below.
1686 proc=k8
1689 *) proc=k8 iproc=686 ;;
1690 esac
1692 GenuineIntel)
1693 case "$pfamily" in
1694 3) proc=i386 iproc=386 ;;
1695 4) proc=i486 iproc=486 ;;
1696 5) iproc=586
1697 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1698 proc=pentium-mmx # 4 is desktop, 8 is mobile
1699 else
1700 proc=i586
1703 6) iproc=686
1704 if test "$pmodel" -ge 15; then
1705 proc=core2
1706 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1707 proc=pentium-m
1708 elif test "$pmodel" -ge 7; then
1709 proc=pentium3
1710 elif test "$pmodel" -ge 3; then
1711 proc=pentium2
1712 else
1713 proc=i686
1716 15) iproc=686
1717 # A nocona in 32-bit mode has no more capabilities than a prescott.
1718 if test "$pmodel" -ge 3; then
1719 proc=prescott
1720 else
1721 proc=pentium4
1723 test $_fast_cmov = "auto" && _fast_cmov=no
1725 *) proc=prescott iproc=686 ;;
1726 esac
1728 CentaurHauls)
1729 case "$pfamily" in
1730 5) iproc=586
1731 if test "$pmodel" -ge 8; then
1732 proc=winchip2
1733 elif test "$pmodel" -ge 4; then
1734 proc=winchip-c6
1735 else
1736 proc=i586
1739 6) iproc=686
1740 if test "$pmodel" -ge 9; then
1741 proc=c3-2
1742 else
1743 proc=c3
1744 iproc=586
1747 *) proc=i686 iproc=i686 ;;
1748 esac
1750 unknown)
1751 case "$pfamily" in
1752 3) proc=i386 iproc=386 ;;
1753 4) proc=i486 iproc=486 ;;
1754 *) proc=i586 iproc=586 ;;
1755 esac
1758 proc=i586 iproc=586 ;;
1759 esac
1760 fi # test "$_runtime_cpudetection" = no
1763 # check that gcc supports our CPU, if not, fall back to earlier ones
1764 # LGB: check -mcpu and -march swithing step by step with enabling
1765 # to fall back till 386.
1767 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1769 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1770 cpuopt=-mtune
1771 else
1772 cpuopt=-mcpu
1775 echocheck "GCC & CPU optimization abilities"
1776 cat > $TMPC << EOF
1777 int main(void) { return 0; }
1779 if test "$_runtime_cpudetection" = no ; then
1780 cc_check -march=native && proc=native
1781 if test "$proc" = "k8"; then
1782 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1784 if test "$proc" = "athlon-xp"; then
1785 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1787 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1788 cc_check -march=$proc $cpuopt=$proc || proc=k6
1790 if test "$proc" = "k6" || test "$proc" = "c3"; then
1791 if ! cc_check -march=$proc $cpuopt=$proc; then
1792 if cc_check -march=i586 $cpuopt=i686; then
1793 proc=i586-i686
1794 else
1795 proc=i586
1799 if test "$proc" = "prescott" ; then
1800 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1802 if test "$proc" = "core2" ; then
1803 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1805 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
1806 cc_check -march=$proc $cpuopt=$proc || proc=i686
1808 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1809 cc_check -march=$proc $cpuopt=$proc || proc=i586
1811 if test "$proc" = "i586"; then
1812 cc_check -march=$proc $cpuopt=$proc || proc=i486
1814 if test "$proc" = "i486" ; then
1815 cc_check -march=$proc $cpuopt=$proc || proc=i386
1817 if test "$proc" = "i386" ; then
1818 cc_check -march=$proc $cpuopt=$proc || proc=error
1820 if test "$proc" = "error" ; then
1821 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1822 _mcpu=""
1823 _march=""
1824 _optimizing=""
1825 elif test "$proc" = "i586-i686"; then
1826 _march="-march=i586"
1827 _mcpu="$cpuopt=i686"
1828 _optimizing="$proc"
1829 else
1830 _march="-march=$proc"
1831 _mcpu="$cpuopt=$proc"
1832 _optimizing="$proc"
1834 else # if test "$_runtime_cpudetection" = no
1835 _mcpu="$cpuopt=generic"
1836 # at least i486 required, for bswap instruction
1837 _march="-march=i486"
1838 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1839 cc_check $_mcpu || _mcpu=""
1840 cc_check $_march $_mcpu || _march=""
1843 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1844 ## autodetected mcpu/march parameters
1845 if test "$_target" ; then
1846 # TODO: it may be a good idea to check GCC and fall back in all cases
1847 if test "$host_arch" = "i586-i686"; then
1848 _march="-march=i586"
1849 _mcpu="$cpuopt=i686"
1850 else
1851 _march="-march=$host_arch"
1852 _mcpu="$cpuopt=$host_arch"
1855 proc="$host_arch"
1857 case "$proc" in
1858 i386) iproc=386 ;;
1859 i486) iproc=486 ;;
1860 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1861 i686|athlon*|pentium*) iproc=686 ;;
1862 *) iproc=586 ;;
1863 esac
1866 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1867 _fast_cmov="yes"
1868 else
1869 _fast_cmov="no"
1872 echores "$proc"
1875 ia64)
1876 _arch='IA64'
1877 _target_arch='ARCH_IA64 = yes'
1878 iproc='ia64'
1879 proc=''
1880 _march=''
1881 _mcpu=''
1882 _optimizing=''
1885 x86_64|amd64)
1886 _arch='X86 X86_64'
1887 _target_arch='ARCH_X86_64 = yes'
1888 _target_arch_x86="ARCH_X86 = yes"
1889 _def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1890 iproc='x86_64'
1892 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1893 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1894 cpuopt=-mtune
1895 else
1896 cpuopt=-mcpu
1898 if test "$_runtime_cpudetection" = no ; then
1899 case "$pvendor" in
1900 AuthenticAMD)
1901 proc=k8;;
1902 GenuineIntel)
1903 case "$pfamily" in
1904 6) proc=core2;;
1906 # 64-bit prescotts exist, but as far as GCC is concerned they
1907 # have the same capabilities as a nocona.
1908 proc=nocona
1909 test $_fast_cmov = "auto" && _fast_cmov=no
1911 esac
1914 proc=error;;
1915 esac
1916 fi # test "$_runtime_cpudetection" = no
1918 echocheck "GCC & CPU optimization abilities"
1919 cat > $TMPC << EOF
1920 int main(void) { return 0; }
1922 # This is a stripped-down version of the i386 fallback.
1923 if test "$_runtime_cpudetection" = no ; then
1924 cc_check -march=native && proc=native
1925 # --- AMD processors ---
1926 if test "$proc" = "k8"; then
1927 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1929 # This will fail if gcc version < 3.3, which is ok because earlier
1930 # versions don't really support 64-bit on amd64.
1931 # Is this a valid assumption? -Corey
1932 if test "$proc" = "athlon-xp"; then
1933 cc_check -march=$proc $cpuopt=$proc || proc=error
1935 # --- Intel processors ---
1936 if test "$proc" = "core2"; then
1937 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1939 if test "$proc" = "nocona"; then
1940 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1942 if test "$proc" = "pentium4"; then
1943 cc_check -march=$proc $cpuopt=$proc || proc=error
1946 _march="-march=$proc"
1947 _mcpu="$cpuopt=$proc"
1948 if test "$proc" = "error" ; then
1949 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1950 _mcpu=""
1951 _march=""
1953 else # if test "$_runtime_cpudetection" = no
1954 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1955 _march="-march=x86-64"
1956 _mcpu="$cpuopt=generic"
1957 cc_check $_mcpu || _mcpu="x86-64"
1958 cc_check $_mcpu || _mcpu=""
1959 cc_check $_march $_mcpu || _march=""
1962 _optimizing=""
1964 echores "$proc"
1967 sparc)
1968 _arch='SPARC'
1969 _target_arch='ARCH_SPARC = yes'
1970 iproc='sparc'
1971 if sunos ; then
1972 echocheck "CPU type"
1973 karch=`uname -m`
1974 case "`echo $karch`" in
1975 sun4) proc=v7 ;;
1976 sun4c) proc=v7 ;;
1977 sun4d) proc=v8 ;;
1978 sun4m) proc=v8 ;;
1979 sun4u) proc=ultrasparc _vis='yes' ;;
1980 sun4v) proc=v9 ;;
1981 *) proc=v8 ;;
1982 esac
1983 echores "$proc"
1984 else
1985 proc=v8
1987 _march=''
1988 _mcpu="-mcpu=$proc"
1989 _optimizing="$proc"
1992 sparc64)
1993 _arch='SPARC'
1994 _target_arch='ARCH_SPARC = yes'
1995 _vis='yes'
1996 iproc='sparc'
1997 proc='ultrasparc'
1998 _march=''
1999 _mcpu="-mcpu=$proc"
2000 _optimizing="$proc"
2003 arm|armv4l|armv5tel)
2004 _arch='ARM ARMV4L'
2005 _target_arch='ARCH_ARMV4L = yes'
2006 iproc='arm'
2007 proc=''
2008 _march=''
2009 _mcpu=''
2010 _optimizing=''
2013 sh3)
2014 _arch='SH3'
2015 _target_arch='ARCH_SH3 = yes'
2016 iproc='sh3'
2017 proc=''
2018 _march='-m3'
2019 _mcpu='-ml'
2020 _optimizing=''
2023 ppc|powerpc)
2024 _arch='POWERPC PPC'
2025 _def_dcbzl='#undef HAVE_DCBZL'
2026 _target_arch='ARCH_POWERPC = yes'
2027 iproc='ppc'
2028 proc=''
2029 _march=''
2030 _mcpu=''
2031 _optimizing=''
2033 echocheck "CPU type"
2034 case $system_name in
2035 Linux)
2036 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
2037 if test -n "`$_cpuinfo | grep altivec`"; then
2038 test $_altivec = auto && _altivec=yes
2041 Darwin)
2042 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
2043 if [ `sysctl -n hw.vectorunit` -eq 1 -o \
2044 "`sysctl -n hw.optional.altivec 2> /dev/null`" = "1" ]; then
2045 test $_altivec = auto && _altivec=yes
2048 NetBSD)
2049 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2050 case $cc_version in
2051 2*|3.0*|3.1*|3.2*|3.3*)
2054 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
2055 test $_altivec = auto && _altivec=yes
2058 esac
2060 AIX)
2061 proc=`$_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//'`
2063 esac
2064 if test "$_altivec" = yes; then
2065 echores "$proc altivec"
2066 else
2067 _altivec=no
2068 echores "$proc"
2071 echocheck "GCC & CPU optimization abilities"
2073 if test -n "$proc"; then
2074 case "$proc" in
2075 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2076 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2077 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2078 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2079 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2080 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2081 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2082 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2083 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2084 *) ;;
2085 esac
2086 # gcc 3.1(.1) and up supports 7400 and 7450
2087 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2088 case "$proc" in
2089 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2090 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2091 *) ;;
2092 esac
2094 # gcc 3.2 and up supports 970
2095 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2096 case "$proc" in
2097 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2098 _def_dcbzl='#define HAVE_DCBZL 1' ;;
2099 *) ;;
2100 esac
2102 # gcc 3.3 and up supports POWER4
2103 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2104 case "$proc" in
2105 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2106 *) ;;
2107 esac
2109 # gcc 3.4 and up supports 440*
2110 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2111 case "$proc" in
2112 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2113 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2114 *) ;;
2115 esac
2117 # gcc 4.0 and up supports POWER5
2118 if test "$_cc_major" -ge "4"; then
2119 case "$proc" in
2120 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2121 *) ;;
2122 esac
2126 if test -n "$_mcpu"; then
2127 _optimizing=`echo $_mcpu | cut -c 8-`
2128 echores "$_optimizing"
2129 else
2130 echores "none"
2135 alpha)
2136 _arch='ALPHA'
2137 _target_arch='ARCH_ALPHA = yes'
2138 iproc='alpha'
2139 _march=''
2141 echocheck "CPU type"
2142 cat > $TMPC << EOF
2143 int main(void) {
2144 unsigned long ver, mask;
2145 asm ("implver %0" : "=r" (ver));
2146 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
2147 printf("%ld-%x\n", ver, ~mask);
2148 return 0;
2151 $_cc -o "$TMPEXE" "$TMPC"
2152 case `"$TMPEXE"` in
2154 0-0) proc="ev4"; _mvi="0";;
2155 1-0) proc="ev5"; _mvi="0";;
2156 1-1) proc="ev56"; _mvi="0";;
2157 1-101) proc="pca56"; _mvi="1";;
2158 2-303) proc="ev6"; _mvi="1";;
2159 2-307) proc="ev67"; _mvi="1";;
2160 2-1307) proc="ev68"; _mvi="1";;
2161 esac
2162 echores "$proc"
2164 echocheck "GCC & CPU optimization abilities"
2165 if test "$proc" = "ev68" ; then
2166 cc_check -mcpu=$proc || proc=ev67
2168 if test "$proc" = "ev67" ; then
2169 cc_check -mcpu=$proc || proc=ev6
2171 _mcpu="-mcpu=$proc"
2172 echores "$proc"
2174 _optimizing="$proc"
2176 echocheck "MVI instruction support in GCC"
2177 if test "$_cc_major" -ge "3" && test "$_mvi" = "1" ; then
2178 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
2179 echores "yes"
2180 else
2181 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
2182 echores "no, GCC = `$_cc -dumpversion 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
2186 mips)
2187 _arch='SGI_MIPS'
2188 _target_arch='ARCH_SGI_MIPS = yes'
2189 iproc='sgi-mips'
2190 proc=''
2191 _march=''
2192 _mcpu=''
2193 _optimizing=''
2195 if irix ; then
2196 echocheck "CPU type"
2197 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
2198 case "`echo $proc`" in
2199 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2200 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2201 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2202 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2203 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2204 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2205 esac
2206 # gcc < 3.x does not support -mtune.
2207 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2208 _mcpu=''
2210 echores "$proc"
2215 hppa)
2216 _arch='PA_RISC'
2217 _target_arch='ARCH_PA_RISC = yes'
2218 iproc='PA-RISC'
2219 proc=''
2220 _march=''
2221 _mcpu=''
2222 _optimizing=''
2225 s390)
2226 _arch='S390'
2227 _target_arch='ARCH_S390 = yes'
2228 iproc='390'
2229 proc=''
2230 _march=''
2231 _mcpu=''
2232 _optimizing=''
2235 s390x)
2236 _arch='S390X'
2237 _target_arch='ARCH_S390X = yes'
2238 iproc='390x'
2239 proc=''
2240 _march=''
2241 _mcpu=''
2242 _optimizing=''
2245 vax)
2246 _arch='VAX'
2247 _target_arch='ARCH_VAX = yes'
2248 iproc='vax'
2249 proc=''
2250 _march=''
2251 _mcpu=''
2252 _optimizing=''
2255 xtensa)
2256 _arch='XTENSA'
2257 _target_arch='ARCH_XTENSA = yes'
2258 iproc='xtensa'
2259 proc=''
2260 _march=''
2261 _mcpu=''
2262 _optimizing=''
2265 generic)
2266 _arch='GENERIC'
2267 _target_arch='ARCH_GENERIC = yes'
2268 iproc=''
2269 proc=''
2270 _march=''
2271 _mcpu=''
2272 _optimizing=''
2276 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2277 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2278 die "unsupported architecture $host_arch"
2280 esac # case "$host_arch" in
2282 if test "$_runtime_cpudetection" = yes ; then
2283 if x86 ; then
2284 test "$_cmov" != no && _cmov=yes
2285 x86_32 && _cmov=no
2286 test "$_mmx" != no && _mmx=yes
2287 test "$_3dnow" != no && _3dnow=yes
2288 test "$_3dnowext" != no && _3dnowext=yes
2289 test "$_mmxext" != no && _mmxext=yes
2290 test "$_sse" != no && _sse=yes
2291 test "$_sse2" != no && _sse2=yes
2292 test "$_ssse3" != no && _ssse3=yes
2293 test "$_mtrr" != no && _mtrr=yes
2295 if ppc; then
2296 _altivec=yes
2302 echocheck "assembler support of -pipe option"
2303 cat > $TMPC << EOF
2304 int main(void) { return 0; }
2306 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2309 echocheck "compiler support of named assembler arguments"
2310 _named_asm_args=yes
2311 _def_named_asm_args="#define NAMED_ASM_ARGS 1"
2312 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2313 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2314 _named_asm_args=no
2315 _def_named_asm_args="#undef NAMED_ASM_ARGS"
2317 echores $_named_asm_args
2320 if darwin && test "$cc_vendor" = "gnu" ; then
2321 echocheck "GCC support of -mstackrealign"
2322 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2323 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2324 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2325 # wrong code with this flag, but this can be worked around by adding
2326 # -fno-unit-at-a-time as described in the blog post at
2327 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2328 cat > $TMPC << EOF
2329 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2330 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2332 cc_check -O4 -mstackrealign && tmp_run && _stackrealign=-mstackrealign
2333 test -z "$_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2334 && tmp_run && _stackrealign="-mstackrealign -fno-unit-at-a-time"
2335 test -n "$_stackrealign" && echores "yes" || echores "no"
2336 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2339 # Checking for CFLAGS
2340 _install_strip="-s"
2341 if test "$_profile" != "" || test "$_debug" != "" ; then
2342 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2343 _install_strip=
2344 elif test -z "$CFLAGS" ; then
2345 if test "$cc_vendor" = "intel" ; then
2346 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2347 elif test "$cc_vendor" != "gnu" ; then
2348 CFLAGS="-O2 $_march $_mcpu $_pipe"
2349 else
2350 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2352 else
2353 _warn_CFLAGS=yes
2355 if test -n "$LDFLAGS" ; then
2356 _ld_extra="$_ld_extra $LDFLAGS"
2357 _warn_CFLAGS=yes
2358 elif test "$cc_vendor" = "intel" ; then
2359 _ld_extra="$_ld_extra -i-static"
2361 if test -n "$CPPFLAGS" ; then
2362 _inc_extra="$_inc_extra $CPPFLAGS"
2363 _warn_CFLAGS=yes
2368 if x86_32 ; then
2369 # Checking assembler (_as) compatibility...
2370 # Added workaround for older as that reads from stdin by default - atmos
2371 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
2372 echocheck "assembler ($_as $as_version)"
2374 _pref_as_version='2.9.1'
2375 echo 'nop' > $TMPS
2376 if test "$_mmx" = yes ; then
2377 echo 'emms' >> $TMPS
2379 if test "$_3dnow" = yes ; then
2380 _pref_as_version='2.10.1'
2381 echo 'femms' >> $TMPS
2383 if test "$_3dnowext" = yes ; then
2384 _pref_as_version='2.10.1'
2385 echo 'pswapd %mm0, %mm0' >> $TMPS
2387 if test "$_mmxext" = yes ; then
2388 _pref_as_version='2.10.1'
2389 echo 'movntq %mm0, (%eax)' >> $TMPS
2391 if test "$_sse" = yes ; then
2392 _pref_as_version='2.10.1'
2393 echo 'xorps %xmm0, %xmm0' >> $TMPS
2395 #if test "$_sse2" = yes ; then
2396 # _pref_as_version='2.11'
2397 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2399 if test "$_cmov" = yes ; then
2400 _pref_as_version='2.10.1'
2401 echo 'cmovb %eax, %ebx' >> $TMPS
2403 if test "$_ssse3" = yes ; then
2404 _pref_as_version='2.16.92'
2405 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2407 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2409 if test "$as_verc_fail" != yes ; then
2410 echores "ok"
2411 else
2412 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2413 echores "failed"
2414 die "obsolete binutils version"
2417 fi #if x86_32
2419 echocheck ".align is a power of two"
2420 if test "$_asmalign_pot" = auto ; then
2421 _asmalign_pot=no
2422 cat > $TMPC << EOF
2423 main(void) { asm (".align 3"); }
2425 cc_check && _asmalign_pot=yes
2427 if test "$_asmalign_pot" = "yes" ; then
2428 _def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2429 else
2430 _def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2432 echores $_asmalign_pot
2435 #FIXME: This should happen before the check for CFLAGS..
2436 if ppc ; then
2438 # check if altivec is supported by the compiler, and how to enable it
2440 _altivec_gcc_flags=''
2442 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2443 echocheck "GCC altivec support"
2445 p=''
2446 cat > $TMPC << EOF
2447 int main(void) {
2448 return 0;
2451 FSF_flags='-maltivec -mabi=altivec'
2452 Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2454 # check for Darwin-style flags first, since
2455 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2456 # accepts but ignores FSF-style flags...
2458 if test -z "$p"; then
2459 cc_check $Darwin_flags && p='Darwin'
2461 if test -z "$p"; then
2462 cc_check $FSF_flags && p='FSF'
2465 case $p in
2466 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2467 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2468 *) _altivec=no ;;
2469 esac
2471 if test -z "$p"; then
2472 p=none
2473 else
2474 p="$p-style ($_altivec_gcc_flags)"
2477 echores "$p"
2480 # check if <altivec.h> should be included
2482 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2484 if test "$_altivec" = yes ; then
2485 echocheck "altivec.h"
2486 cat > $TMPC << EOF
2487 #include <altivec.h>
2488 int main(void) { return 0; }
2490 _have_altivec_h=no
2491 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2492 if test "$_have_altivec_h" = yes ; then
2493 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2495 echores "$_have_altivec_h"
2498 # disable runtime cpudetection if
2499 # - we cannot generate altivec code
2500 # - altivec is disabled by the user
2502 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2503 _runtime_cpudetection=no
2506 # show that we are optimizing for altivec (if enabled and supported)
2508 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2509 _optimizing="$_optimizing altivec"
2512 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2514 if test "$_altivec" = yes ; then
2515 #FIXME: _mcpu is used for CFLAGS, this needs to be set earlier
2516 #_mcpu="$_mcpu $_altivec_gcc_flags"
2517 CFLAGS="$CFLAGS $_altivec_gcc_flags"
2521 if arm ; then
2522 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2523 if test $_armv5te = "auto" ; then
2524 cat > $TMPC << EOF
2525 int main(void) {
2526 __asm__ __volatile__ ("qadd r0, r0, r0");
2529 _armv5te=no
2530 cc_check && _armv5te=yes
2532 echores "$_armv5te"
2534 echocheck "ARMv6 (SIMD instructions)"
2535 if test $_armv6 = "auto" ; then
2536 cat > $TMPC << EOF
2537 int main(void) { __asm__ __volatile__ ("sadd16 r0, r0, r0"); }
2539 _armv6=no
2540 cc_check && _armv6=yes
2542 echores "$_armv6"
2544 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2545 if test $_iwmmxt = "auto" ; then
2546 cat > $TMPC << EOF
2547 int main(void) {
2548 __asm__ __volatile__ ("wunpckelub wr6, wr4");
2551 _iwmmxt=no
2552 cc_check && _iwmmxt=yes
2554 echores "$_iwmmxt"
2557 _cpuexts_all='ALTIVEC MMX MMX2 3DNOW 3DNOWEX SSE SSE2 SSSE3 FAST_CMOV CMOV ARMV5TE ARMV6 IWMMXT MLIB MMI SH4 VIS MVI'
2558 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2559 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2560 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2561 test "$_3dnow" = yes && _cpuexts="3DNOW $_cpuexts"
2562 test "$_3dnowext" = yes && _cpuexts="3DNOWEX $_cpuexts"
2563 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2564 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2565 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2566 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2567 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2568 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2569 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2570 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2571 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2572 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2574 # Checking kernel version...
2575 if x86_32 && linux ; then
2576 _k_verc_problem=no
2577 kernel_version=`uname -r 2>&1`
2578 echocheck "$system_name kernel version"
2579 case "$kernel_version" in
2580 '') kernel_version="?.??"; _k_verc_fail=yes;;
2581 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2582 _k_verc_problem=yes;;
2583 esac
2584 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2585 _k_verc_fail=yes
2587 if test "$_k_verc_fail" ; then
2588 echores "$kernel_version, fail"
2589 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2590 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2591 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2592 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2593 echo "2.2.x you must upgrade it to get SSE support!"
2594 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2595 else
2596 echores "$kernel_version, ok"
2600 ######################
2601 # MAIN TESTS GO HERE #
2602 ######################
2605 echocheck "-lposix"
2606 cat > $TMPC <<EOF
2607 int main(void) { return 0; }
2609 if cc_check -lposix ; then
2610 _ld_extra="$_ld_extra -lposix"
2611 echores "yes"
2612 else
2613 echores "no"
2616 echocheck "-lm"
2617 cat > $TMPC <<EOF
2618 int main(void) { return 0; }
2620 if cc_check -lm ; then
2621 _ld_lm="-lm"
2622 echores "yes"
2623 else
2624 _ld_lm=""
2625 echores "no"
2629 echocheck "langinfo"
2630 if test "$_langinfo" = auto ; then
2631 cat > $TMPC <<EOF
2632 #include <langinfo.h>
2633 int main(void) { nl_langinfo(CODESET); return 0; }
2635 _langinfo=no
2636 cc_check && _langinfo=yes
2638 if test "$_langinfo" = yes ; then
2639 _def_langinfo='#define USE_LANGINFO 1'
2640 else
2641 _def_langinfo='#undef USE_LANGINFO'
2643 echores "$_langinfo"
2646 echocheck "language"
2647 test -z "$_language" && _language=$LINGUAS
2648 _language=`echo $_language | sed 's/,/ /g'`
2649 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2650 for lang in $_language ; do
2651 test "$lang" = all && lang=en
2652 if test -f "help/help_mp-${lang}.h" ; then
2653 _language=$lang
2654 break
2655 else
2656 echo ${_echo_n} "$lang not found, ${_echo_c}"
2657 _language=`echo $_language | sed "s/$lang *//"`
2659 done
2660 test -z "$_language" && _language=en
2661 _mp_help="help/help_mp-${_language}.h"
2662 test -f $_mp_help || die "$_mp_help not found"
2663 for lang in $LANGUAGES ; do
2664 if test -f "DOCS/man/$lang/mplayer.1" ; then
2665 MAN_LANG="$lang $MAN_LANG"
2667 done
2668 _doc_lang=$_language
2669 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2670 echores "using $_language (man pages: $MAN_LANG)"
2673 echocheck "enable sighandler"
2674 if test "$_sighandler" = yes ; then
2675 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2676 else
2677 _def_sighandler='#undef ENABLE_SIGHANDLER'
2679 echores "$_sighandler"
2681 echocheck "runtime cpudetection"
2682 if test "$_runtime_cpudetection" = yes ; then
2683 _optimizing="Runtime CPU-Detection enabled"
2684 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2685 else
2686 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2688 echores "$_runtime_cpudetection"
2691 echocheck "restrict keyword"
2692 for restrict_keyword in restrict __restrict __restrict__ ; do
2693 echo "void foo(char * $restrict_keyword p); int main(void){}" > $TMPC
2694 if cc_check; then
2695 _def_restrict_keyword=$restrict_keyword
2696 break;
2698 done
2699 if [ -n "$_def_restrict_keyword" ]; then
2700 echores "$_def_restrict_keyword"
2701 else
2702 echores "none"
2704 # Avoid infinite recursion loop ("#define restrict restrict")
2705 if [ "$_def_restrict_keyword" != "restrict" ]; then
2706 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2707 else
2708 _def_restrict_keyword=""
2712 echocheck "__builtin_expect"
2713 # GCC branch prediction hint
2714 cat > $TMPC << EOF
2715 int foo (int a) {
2716 a = __builtin_expect (a, 10);
2717 return a == 10 ? 0 : 1;
2719 int main(void) { return foo(10) && foo(0); }
2721 _builtin_expect=no
2722 cc_check && _builtin_expect=yes
2723 if test "$_builtin_expect" = yes ; then
2724 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2725 else
2726 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2728 echores "$_builtin_expect"
2731 echocheck "kstat"
2732 cat > $TMPC << EOF
2733 #include <kstat.h>
2734 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2736 _kstat=no
2737 cc_check -lkstat && _kstat=yes
2738 if test "$_kstat" = yes ; then
2739 _def_kstat="#define HAVE_LIBKSTAT 1"
2740 _ld_extra="$_ld_extra -lkstat"
2741 else
2742 _def_kstat="#undef HAVE_LIBKSTAT"
2744 echores "$_kstat"
2747 echocheck "posix4"
2748 # required for nanosleep on some systems
2749 cat > $TMPC << EOF
2750 #include <time.h>
2751 int main(void) { (void) nanosleep(0, 0); return 0; }
2753 _posix4=no
2754 cc_check -lposix4 && _posix4=yes
2755 if test "$_posix4" = yes ; then
2756 _ld_extra="$_ld_extra -lposix4"
2758 echores "$_posix4"
2760 for func in llrint lrint lrintf round roundf; do
2761 echocheck $func
2762 cat > $TMPC << EOF
2763 #include <math.h>
2764 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2766 eval _$func=no
2767 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2768 if eval test "x\$_$func" = "xyes"; then
2769 eval _def_$func="\"#define HAVE_`echo $func | tr '[a-z]' '[A-Z]'` 1\""
2770 echores yes
2771 else
2772 eval _def_$func="\"#undef HAVE_`echo $func | tr '[a-z]' '[A-Z]'`\""
2773 echores no
2775 done
2778 echocheck "mkstemp"
2779 cat > $TMPC << EOF
2780 #include <stdlib.h>
2781 int main(void) { char a; mkstemp(&a); return 0; }
2783 _mkstemp=no
2784 cc_check && _mkstemp=yes
2785 if test "$_mkstemp" = yes ; then
2786 _def_mkstemp='#define HAVE_MKSTEMP 1'
2787 else
2788 _def_mkstemp='#undef HAVE_MKSTEMP'
2790 echores "$_mkstemp"
2793 echocheck "nanosleep"
2794 # also check for nanosleep
2795 cat > $TMPC << EOF
2796 #include <time.h>
2797 int main(void) { (void) nanosleep(0, 0); return 0; }
2799 _nanosleep=no
2800 cc_check && _nanosleep=yes
2801 if test "$_nanosleep" = yes ; then
2802 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2803 else
2804 _def_nanosleep='#undef HAVE_NANOSLEEP'
2806 echores "$_nanosleep"
2809 echocheck "socklib"
2810 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2811 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2812 cat > $TMPC << EOF
2813 #include <netdb.h>
2814 #include <sys/socket.h>
2815 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2817 _socklib=no
2818 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2819 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2820 done
2821 if test $_winsock2 = auto && ! cygwin ; then
2822 _winsock2=no
2823 cat > $TMPC << EOF
2824 #include <winsock2.h>
2825 int main(void) { (void) gethostbyname(0); return 0; }
2827 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2829 test "$_ld_sock" && _res_comment="using $_ld_sock"
2830 echores "$_socklib"
2833 if test $_winsock2 = yes ; then
2834 _ld_sock="-lws2_32"
2835 _def_winsock2='#define HAVE_WINSOCK2 1'
2836 else
2837 _def_winsock2='#undef HAVE_WINSOCK2'
2841 _use_aton=no
2842 echocheck "inet_pton()"
2843 cat > $TMPC << EOF
2844 #include <sys/types.h>
2845 #include <sys/socket.h>
2846 #include <arpa/inet.h>
2847 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2849 if test "$_winsock2" = yes ; then
2850 _res_comment="using winsock2 functions instead"
2851 echores "no"
2852 elif cc_check $_ld_sock ; then
2853 # NOTE: Linux has libresolv but does not need it
2855 _res_comment="using $_ld_sock"
2856 echores "yes"
2857 elif cc_check $_ld_sock -lresolv ; then
2858 # NOTE: needed for SunOS at least
2859 _ld_sock="$_ld_sock -lresolv"
2860 _res_comment="using $_ld_sock"
2861 echores "yes"
2862 else
2863 _res_comment="trying inet_aton next"
2864 echores "no"
2866 echocheck "inet_aton()"
2867 cat > $TMPC << EOF
2868 #include <sys/types.h>
2869 #include <sys/socket.h>
2870 #include <arpa/inet.h>
2871 int main(void) { (void) inet_aton(0, 0); return 0; }
2873 _use_aton=yes
2874 if cc_check $_ld_sock ; then
2875 # NOTE: Linux has libresolv but does not need it
2877 _res_comment="using $_ld_sock"
2878 elif cc_check $_ld_sock -lresolv ; then
2879 # NOTE: needed for SunOS at least
2880 _ld_sock="$_ld_sock -lresolv"
2881 _res_comment="using $_ld_sock"
2882 else
2883 _use_aton=no
2884 _network=no
2885 _res_comment="network support disabled"
2887 echores "$_use_aton"
2890 _def_use_aton='#undef USE_ATON'
2891 if test "$_use_aton" = yes; then
2892 _def_use_aton='#define USE_ATON 1'
2895 echocheck "network"
2896 # FIXME network check
2897 if test "$_network" = yes ; then
2898 _def_network='#define MPLAYER_NETWORK 1'
2899 _ld_extra="$_ld_extra $_ld_sock"
2900 _inputmodules="network $_inputmodules"
2901 else
2902 _noinputmodules="network $_noinputmodules"
2903 _def_network='#undef MPLAYER_NETWORK'
2904 _ftp=no
2906 echores "$_network"
2908 echocheck "inttypes.h (required)"
2909 cat > $TMPC << EOF
2910 #include <inttypes.h>
2911 int main(void) { return 0; }
2913 _inttypes=no
2914 cc_check && _inttypes=yes
2915 echores "$_inttypes"
2917 if test "$_inttypes" = no ; then
2918 echocheck "bitypes.h (inttypes.h predecessor)"
2919 cat > $TMPC << EOF
2920 #include <sys/bitypes.h>
2921 int main(void) { return 0; }
2923 cc_check && _inttypes=yes
2924 if test "$_inttypes" = yes ; then
2925 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."
2926 else
2927 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
2932 echocheck "int_fastXY_t in inttypes.h"
2933 cat > $TMPC << EOF
2934 #include <inttypes.h>
2935 int main(void) {
2936 volatile int_fast16_t v= 0;
2937 return v; }
2939 _fast_inttypes=no
2940 cc_check && _fast_inttypes=yes
2941 if test "$_fast_inttypes" = no ; then
2942 _def_fast_inttypes='
2943 typedef signed char int_fast8_t;
2944 typedef signed int int_fast16_t;
2945 typedef signed int int_fast32_t;
2946 typedef signed long long int_fast64_t;
2947 typedef unsigned char uint_fast8_t;
2948 typedef unsigned int uint_fast16_t;
2949 typedef unsigned int uint_fast32_t;
2950 typedef unsigned long long uint_fast64_t;'
2952 echores "$_fast_inttypes"
2955 echocheck "word size"
2956 _mp_wordsize="#undef MP_WORDSIZE"
2957 cat > $TMPC << EOF
2958 #include <stdio.h>
2959 #include <sys/types.h>
2960 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2962 cc_check && _wordsize=`$TMPEXE` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2963 echores "$_wordsize"
2966 echocheck "malloc.h"
2967 cat > $TMPC << EOF
2968 #include <malloc.h>
2969 int main(void) { (void) malloc(0); return 0; }
2971 _malloc=no
2972 cc_check && _malloc=yes
2973 if test "$_malloc" = yes ; then
2974 _def_malloc='#define HAVE_MALLOC_H 1'
2975 else
2976 _def_malloc='#undef HAVE_MALLOC_H'
2978 # malloc.h emits a warning in FreeBSD and OpenBSD
2979 freebsd || openbsd && _def_malloc='#undef HAVE_MALLOC_H'
2980 echores "$_malloc"
2983 echocheck "memalign()"
2984 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2985 cat > $TMPC << EOF
2986 #include <malloc.h>
2987 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2989 _memalign=no
2990 cc_check && _memalign=yes
2991 if test "$_memalign" = yes ; then
2992 _def_memalign='#define HAVE_MEMALIGN 1'
2993 else
2994 _def_memalign='#undef HAVE_MEMALIGN'
2995 _def_map_memalign='#define memalign(a,b) malloc(b)'
2996 darwin || _def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
2998 echores "$_memalign"
3001 echocheck "alloca.h"
3002 cat > $TMPC << EOF
3003 #include <alloca.h>
3004 int main(void) { (void) alloca(0); return 0; }
3006 _alloca=no
3007 cc_check && _alloca=yes
3008 if cc_check ; then
3009 _def_alloca='#define HAVE_ALLOCA_H 1'
3010 else
3011 _def_alloca='#undef HAVE_ALLOCA_H'
3013 echores "$_alloca"
3016 echocheck "mman.h"
3017 cat > $TMPC << EOF
3018 #include <sys/types.h>
3019 #include <sys/mman.h>
3020 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3022 _mman=no
3023 cc_check && _mman=yes
3024 if test "$_mman" = yes ; then
3025 _def_mman='#define HAVE_SYS_MMAN_H 1'
3026 else
3027 _def_mman='#undef HAVE_SYS_MMAN_H'
3029 echores "$_mman"
3031 cat > $TMPC << EOF
3032 #include <sys/types.h>
3033 #include <sys/mman.h>
3034 int main(void) { void *p = MAP_FAILED; return 0; }
3036 _mman_has_map_failed=no
3037 cc_check && _mman_has_map_failed=yes
3038 if test "$_mman_has_map_failed" = yes ; then
3039 _def_mman_has_map_failed=''
3040 else
3041 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3044 echocheck "dynamic loader"
3045 cat > $TMPC << EOF
3046 #include <dlfcn.h>
3047 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
3049 _dl=no
3050 for _ld_tmp in "" "-ldl" ; do
3051 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3052 done
3053 if test "$_dl" = yes ; then
3054 _def_dl='#define HAVE_LIBDL 1'
3055 else
3056 _def_dl='#undef HAVE_LIBDL'
3058 echores "$_dl"
3061 echocheck "dynamic a/v plugins support"
3062 if test "$_dl" = no ; then
3063 _dynamic_plugins=no
3065 if test "$_dynamic_plugins" = yes ; then
3066 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
3067 else
3068 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
3070 echores "$_dynamic_plugins"
3073 _def_threads='#undef HAVE_THREADS'
3075 echocheck "pthread"
3076 if test "$_pthreads" = auto ; then
3077 cat > $TMPC << EOF
3078 #include <pthread.h>
3079 void* func(void *arg) { return arg; }
3080 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
3082 _pthreads=no
3083 if ! hpux ; then
3084 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3085 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3086 cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3087 done
3090 if test "$_pthreads" = yes ; then
3091 _res_comment="using $_ld_pthread"
3092 _def_pthreads='#define HAVE_PTHREADS 1'
3093 _def_threads='#define HAVE_THREADS 1'
3094 else
3095 _res_comment="v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled"
3096 _def_pthreads='#undef HAVE_PTHREADS'
3097 _nas=no ; _tv_v4l1=no ; _macosx=no
3098 mingw32 || _win32dll=no
3100 echores "$_pthreads"
3102 echocheck "w32threads"
3103 if test "$_pthreads" = yes ; then
3104 _res_comment="using pthread instead"
3105 _w32threads=no
3107 if test "$_w32threads" = auto ; then
3108 _w32threads=no
3109 mingw32 && _w32threads=yes
3111 test "$_w32threads" = yes && _def_threads='#define HAVE_THREADS 1'
3112 echores "$_w32threads"
3114 echocheck "rpath"
3115 netbsd &&_rpath=yes
3116 if test "$_rpath" = yes ; then
3117 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
3118 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
3119 done
3120 _ld_extra=$tmp
3122 echores "$_rpath"
3124 echocheck "iconv"
3125 if test "$_iconv" = auto ; then
3126 cat > $TMPC << EOF
3127 #include <stdio.h>
3128 #include <unistd.h>
3129 #include <iconv.h>
3130 #define INBUFSIZE 1024
3131 #define OUTBUFSIZE 4096
3133 char inbuffer[INBUFSIZE];
3134 char outbuffer[OUTBUFSIZE];
3136 int main(void) {
3137 size_t numread;
3138 iconv_t icdsc;
3139 char *tocode="UTF-8";
3140 char *fromcode="cp1250";
3141 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
3142 while ((numread = read (0, inbuffer, INBUFSIZE))) {
3143 char *iptr=inbuffer;
3144 char *optr=outbuffer;
3145 size_t inleft=numread;
3146 size_t outleft=OUTBUFSIZE;
3147 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3148 != (size_t)(-1)) {
3149 write (1, outbuffer, OUTBUFSIZE - outleft);
3152 if (iconv_close(icdsc) == -1)
3157 _iconv=no
3158 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3159 cc_check $_ld_lm $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \
3160 _iconv=yes && break
3161 done
3163 if test "$_iconv" = yes ; then
3164 _def_iconv='#define USE_ICONV 1'
3165 else
3166 _def_iconv='#undef USE_ICONV'
3168 echores "$_iconv"
3171 echocheck "soundcard.h"
3172 _soundcard_h=no
3173 _def_soundcard='#undef HAVE_SOUNDCARD_H'
3174 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
3175 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3176 cat > $TMPC << EOF
3177 #include <$_soundcard_header>
3178 int main(void) { return 0; }
3180 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3181 done
3183 if test "$_soundcard_h" = yes ; then
3184 if test $_soundcard_header = "sys/soundcard.h"; then
3185 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
3186 else
3187 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
3190 echores "$_soundcard_h"
3193 echocheck "sys/dvdio.h"
3194 cat > $TMPC << EOF
3195 #include <unistd.h>
3196 #include <sys/dvdio.h>
3197 int main(void) { return 0; }
3199 _dvdio=no
3200 cc_check && _dvdio=yes
3201 if test "$_dvdio" = yes ; then
3202 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3203 else
3204 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3206 echores "$_dvdio"
3209 echocheck "sys/cdio.h"
3210 cat > $TMPC << EOF
3211 #include <unistd.h>
3212 #include <sys/cdio.h>
3213 int main(void) { return 0; }
3215 _cdio=no
3216 cc_check && _cdio=yes
3217 if test "$_cdio" = yes ; then
3218 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3219 else
3220 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3222 echores "$_cdio"
3225 echocheck "linux/cdrom.h"
3226 cat > $TMPC << EOF
3227 #include <sys/types.h>
3228 #include <linux/cdrom.h>
3229 int main(void) { return 0; }
3231 _cdrom=no
3232 cc_check && _cdrom=yes
3233 if test "$_cdrom" = yes ; then
3234 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3235 else
3236 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3238 echores "$_cdrom"
3241 echocheck "dvd.h"
3242 cat > $TMPC << EOF
3243 #include <dvd.h>
3244 int main(void) { return 0; }
3246 _dvd=no
3247 cc_check && _dvd=yes
3248 if test "$_dvd" = yes ; then
3249 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3250 else
3251 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3253 echores "$_dvd"
3256 if bsdos; then
3257 echocheck "BSDI dvd.h"
3258 cat > $TMPC << EOF
3259 #include <dvd.h>
3260 int main(void) { return 0; }
3262 _bsdi_dvd=no
3263 cc_check && _bsdi_dvd=yes
3264 if test "$_bsdi_dvd" = yes ; then
3265 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3266 else
3267 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3269 echores "$_bsdi_dvd"
3270 fi #if bsdos
3273 if hpux; then
3274 # also used by AIX, but AIX does not support VCD and/or libdvdread
3275 echocheck "HP-UX SCSI header"
3276 cat > $TMPC << EOF
3277 #include <sys/scsi.h>
3278 int main(void) { return 0; }
3280 _hpux_scsi_h=no
3281 cc_check && _hpux_scsi_h=yes
3282 if test "$_hpux_scsi_h" = yes ; then
3283 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3284 else
3285 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3287 echores "$_hpux_scsi_h"
3288 fi #if hpux
3291 if sunos; then
3292 echocheck "userspace SCSI headers (Solaris)"
3293 cat > $TMPC << EOF
3294 # include <unistd.h>
3295 # include <stropts.h>
3296 # include <sys/scsi/scsi_types.h>
3297 # include <sys/scsi/impl/uscsi.h>
3298 int main(void) { return 0; }
3300 _sol_scsi_h=no
3301 cc_check && _sol_scsi_h=yes
3302 if test "$_sol_scsi_h" = yes ; then
3303 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
3304 else
3305 _def_sol_scsi_h='#undef SOLARIS_USCSI'
3307 echores "$_sol_scsi_h"
3308 fi #if sunos
3311 echocheck "termcap"
3312 if test "$_termcap" = auto ; then
3313 cat > $TMPC <<EOF
3314 int main(void) { tgetent(); return 0; }
3316 _termcap=no
3317 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3318 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
3319 && _termcap=yes && break
3320 done
3322 if test "$_termcap" = yes ; then
3323 _def_termcap='#define USE_TERMCAP 1'
3324 _res_comment="using $_ld_tmp"
3325 else
3326 _def_termcap='#undef USE_TERMCAP'
3328 echores "$_termcap"
3331 echocheck "termios"
3332 _def_termios='#undef HAVE_TERMIOS'
3333 _def_termios_h='#undef HAVE_TERMIOS_H'
3334 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3335 if test "$_termios" = auto ; then
3336 _termios=no
3337 for _termios_header in "sys/termios.h" "termios.h"; do
3338 cat > $TMPC <<EOF
3339 #include <$_termios_header>
3340 int main(void) { return 0; }
3342 cc_check && _termios=yes && _res_comment="$_termios_header" && break
3343 done
3346 if test "$_termios" = yes ; then
3347 _def_termios='#define HAVE_TERMIOS 1'
3348 if test "$_termios_header" = "termios.h" ; then
3349 _def_termios_h='#define HAVE_TERMIOS_H 1'
3350 else
3351 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3354 echores "$_termios"
3357 echocheck "shm"
3358 if test "$_shm" = auto ; then
3359 cat > $TMPC << EOF
3360 #include <sys/types.h>
3361 #include <sys/shm.h>
3362 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3364 _shm=no
3365 cc_check && _shm=yes
3367 if test "$_shm" = yes ; then
3368 _def_shm='#define HAVE_SHM 1'
3369 else
3370 _def_shm='#undef HAVE_SHM'
3372 echores "$_shm"
3375 echocheck "strsep()"
3376 cat > $TMPC << EOF
3377 #include <string.h>
3378 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3380 _strsep=no
3381 cc_check && _strsep=yes
3382 if test "$_strsep" = yes ; then
3383 _def_strsep='#define HAVE_STRSEP 1'
3384 _need_strsep=no
3385 else
3386 _def_strsep='#undef HAVE_STRSEP'
3387 _need_strsep=yes
3389 echores "$_strsep"
3392 echocheck "vsscanf()"
3393 cat > $TMPC << EOF
3394 #include <stdarg.h>
3395 int main(void) { vsscanf(0, 0, 0); return 0; }
3397 _vsscanf=no
3398 cc_check && _vsscanf=yes
3399 if test "$_vsscanf" = yes ; then
3400 _def_vsscanf='#define HAVE_VSSCANF 1'
3401 _need_vsscanf=no
3402 else
3403 _def_vsscanf='#undef HAVE_VSSCANF'
3404 _need_vsscanf=yes
3406 echores "$_vsscanf"
3409 echocheck "swab()"
3410 cat > $TMPC << EOF
3411 #include <unistd.h>
3412 int main(void) { swab(0, 0, 0); return 0; }
3414 _swab=no
3415 cc_check && _swab=yes
3416 if test "$_swab" = yes ; then
3417 _def_swab='#define HAVE_SWAB 1'
3418 _need_swab=no
3419 else
3420 _def_swab='#undef HAVE_SWAB'
3421 _need_swab=yes
3423 echores "$_swab"
3425 echocheck "POSIX select()"
3426 cat > $TMPC << EOF
3427 #include <stdio.h>
3428 #include <stdlib.h>
3429 #include <sys/types.h>
3430 #include <string.h>
3431 #include <sys/time.h>
3432 #include <unistd.h>
3433 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3435 _posix_select=no
3436 _def_posix_select='#undef HAVE_POSIX_SELECT'
3437 cc_check && _posix_select=yes \
3438 && _def_posix_select='#define HAVE_POSIX_SELECT 1'
3439 echores "$_posix_select"
3442 echocheck "gettimeofday()"
3443 cat > $TMPC << EOF
3444 #include <stdio.h>
3445 #include <sys/time.h>
3446 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3448 _gettimeofday=no
3449 cc_check && _gettimeofday=yes
3450 if test "$_gettimeofday" = yes ; then
3451 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3452 _need_gettimeofday=no
3453 else
3454 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3455 _need_gettimeofday=yes
3457 echores "$_gettimeofday"
3460 echocheck "glob()"
3461 cat > $TMPC << EOF
3462 #include <stdio.h>
3463 #include <glob.h>
3464 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3466 _glob=no
3467 cc_check && _glob=yes
3468 if test "$_glob" = yes ; then
3469 _def_glob='#define HAVE_GLOB 1'
3470 _need_glob=no
3471 else
3472 _def_glob='#undef HAVE_GLOB'
3473 _need_glob=yes
3475 echores "$_glob"
3478 echocheck "setenv()"
3479 cat > $TMPC << EOF
3480 #include <stdlib.h>
3481 int main (void){ setenv("","",0); return 0; }
3483 _setenv=no
3484 cc_check && _setenv=yes
3485 if test "$_setenv" = yes ; then
3486 _def_setenv='#define HAVE_SETENV 1'
3487 _need_setenv=no
3488 else
3489 _def_setenv='#undef HAVE_SETENV'
3490 _need_setenv=yes
3492 echores "$_setenv"
3495 if sunos; then
3496 echocheck "sysi86()"
3497 cat > $TMPC << EOF
3498 #include <sys/sysi86.h>
3499 int main (void) { sysi86(0); return 0; }
3501 _sysi86=no
3502 cc_check && _sysi86=yes
3503 if test "$_sysi86" = yes ; then
3504 _def_sysi86='#define HAVE_SYSI86 1'
3505 cat > $TMPC << EOF
3506 #include <sys/sysi86.h>
3507 int main (void) { int sysi86(int, void*); sysi86(0); return 0; }
3509 cc_check && _def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3510 else
3511 _def_sysi86='#undef HAVE_SYSI86'
3513 echores "$_sysi86"
3514 fi #if sunos
3517 echocheck "sys/sysinfo.h"
3518 cat > $TMPC << EOF
3519 #include <sys/sysinfo.h>
3520 int main(void) {
3521 struct sysinfo s_info;
3522 sysinfo(&s_info);
3523 return 0;
3526 _sys_sysinfo=no
3527 cc_check && _sys_sysinfo=yes
3528 if test "$_sys_sysinfo" = yes ; then
3529 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3530 else
3531 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3533 echores "$_sys_sysinfo"
3536 if darwin; then
3538 echocheck "Mac OS X APIs"
3539 if test "$_macosx" = auto ; then
3540 productName=`/usr/bin/sw_vers -productName`
3541 if test "$productName" = "Mac OS X" ||
3542 test "$productName" = "Mac OS X Server" ; then
3543 _macosx=yes
3544 else
3545 _macosx=no
3546 _def_macosx='#undef MACOSX'
3547 _noaomodules="macosx $_noaomodules"
3548 _novomodules="quartz $_novomodules"
3551 if test "$_macosx" = yes ; then
3552 cat > $TMPC <<EOF
3553 #include <Carbon/Carbon.h>
3554 #include <QuickTime/QuickTime.h>
3555 #include <CoreAudio/CoreAudio.h>
3556 int main(void) {
3557 EnterMovies();
3558 ExitMovies();
3559 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3562 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3563 _ld_extra="$_ld_extra -framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3564 _def_macosx='#define MACOSX 1'
3565 _aosrc="$_aosrc ao_macosx.c"
3566 _aomodules="macosx $_aomodules"
3567 _vosrc="$_vosrc vo_quartz.c"
3568 _vomodules="quartz $_vomodules"
3569 else
3570 _macosx=no
3571 _def_macosx='#undef MACOSX'
3572 _noaomodules="macosx $_noaomodules"
3573 _novomodules="quartz $_novomodules"
3575 cat > $TMPC <<EOF
3576 #include <Carbon/Carbon.h>
3577 #include <QuartzCore/CoreVideo.h>
3578 int main(void) {}
3580 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3581 _vosrc="$_vosrc vo_macosx.m"
3582 _vomodules="macosx $_vomodules"
3583 _ld_extra="$_ld_extra -framework Cocoa -framework QuartzCore -framework OpenGL"
3584 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3585 _macosx_corevideo=yes
3586 else
3587 _novomodules="macosx $_novomodules"
3588 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3589 _macosx_corevideo=no
3592 echores "$_macosx"
3594 echocheck "Mac OS X Finder Support"
3595 if test "$_macosx_finder_support" = auto ; then
3596 _macosx_finder_support=$_macosx
3598 if test "$_macosx_finder_support" = yes; then
3599 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3600 _macosx_finder_support=yes
3601 else
3602 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3603 _macosx_finder_support=no
3605 echores "$_macosx_finder_support"
3607 echocheck "Mac OS X Bundle file locations"
3608 if test "$_macosx_bundle" = auto ; then
3609 _macosx_bundle=$_macosx_finder_support
3611 if test "$_macosx_bundle" = yes; then
3612 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3613 else
3614 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3615 _macosx_bundle=no
3617 echores "$_macosx_bundle"
3619 echocheck "Apple Remote"
3620 if test "$_apple_remote" = auto ; then
3621 _apple_remote=no
3622 cat > $TMPC <<EOF
3623 #include <stdio.h>
3624 #include <IOKit/IOCFPlugIn.h>
3625 int main (int argc, const char * argv[])
3627 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3628 CFMutableDictionaryRef hidMatchDictionary;
3629 IOReturn ioReturnValue;
3631 // Set up a matching dictionary to search the I/O Registry by class.
3632 // name for all HID class devices
3633 hidMatchDictionary = IOServiceMatching("AppleIRController");
3635 // Now search I/O Registry for matching devices.
3636 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3637 hidMatchDictionary, &hidObjectIterator);
3639 // If search is unsuccessful, return nonzero.
3640 if (ioReturnValue != kIOReturnSuccess ||
3641 !IOIteratorIsValid(hidObjectIterator)) {
3642 return 1;
3644 return 0;
3647 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3649 if test "$_apple_remote" = yes ; then
3650 _def_apple_remote='#define HAVE_APPLE_REMOTE 1'
3651 _ld_extra="$_ld_extra -framework IOKit"
3652 else
3653 _def_apple_remote='#undef HAVE_APPLE_REMOTE'
3655 echores "$_apple_remote"
3657 fi #if darwin
3660 echocheck "pkg-config"
3661 _pkg_config=pkg-config
3662 if `$_pkg_config --version > /dev/null 2>&1`; then
3663 if test "$_ld_static"; then
3664 _pkg_config="$_pkg_config --static"
3666 echores "yes"
3667 else
3668 _pkg_config=false
3669 echores "no"
3673 echocheck "Samba support (libsmbclient)"
3674 if test "$_smbsupport" = yes; then
3675 _ld_extra="$_ld_extra -lsmbclient"
3677 if test "$_smbsupport" = auto; then
3678 _smbsupport=no
3679 cat > $TMPC << EOF
3680 #include <libsmbclient.h>
3681 int main(void) { smbc_opendir("smb://"); return 0; }
3683 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3684 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \
3685 _smbsupport=yes && break
3686 done
3689 if test "$_smbsupport" = yes; then
3690 _def_smbsupport="#define LIBSMBCLIENT"
3691 _inputmodules="smb $_inputmodules"
3692 else
3693 _def_smbsupport="#undef LIBSMBCLIENT"
3694 _noinputmodules="smb $_noinputmodules"
3696 echores "$_smbsupport"
3699 #########
3700 # VIDEO #
3701 #########
3704 echocheck "tdfxfb"
3705 if test "$_tdfxfb" = yes ; then
3706 _def_tdfxfb='#define HAVE_TDFXFB 1'
3707 _vosrc="$_vosrc vo_tdfxfb.c"
3708 _vomodules="tdfxfb $_vomodules"
3709 else
3710 _def_tdfxfb='#undef HAVE_TDFXFB'
3711 _novomodules="tdfxfb $_novomodules"
3713 echores "$_tdfxfb"
3715 echocheck "s3fb"
3716 if test "$_s3fb" = yes ; then
3717 _def_s3fb='#define HAVE_S3FB 1'
3718 _vosrc="$_vosrc vo_s3fb.c"
3719 _vomodules="s3fb $_vomodules"
3720 else
3721 _def_s3fb='#undef HAVE_S3FB'
3722 _novomodules="s3fb $_novomodules"
3724 echores "$_s3fb"
3726 echocheck "tdfxvid"
3727 if test "$_tdfxvid" = yes ; then
3728 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3729 _vosrc="$_vosrc vo_tdfx_vid.c"
3730 _vomodules="tdfx_vid $_vomodules"
3731 else
3732 _def_tdfxvid='#undef HAVE_TDFX_VID'
3733 _novomodules="tdfx_vid $_novomodules"
3735 echores "$_tdfxvid"
3737 echocheck "xvr100"
3738 if test "$_xvr100" = auto ; then
3739 cat > $TMPC << EOF
3740 #include <unistd.h>
3741 #include <sys/fbio.h>
3742 #include <sys/visual_io.h>
3743 int main(void) {
3744 struct vis_identifier ident;
3745 struct fbgattr attr;
3747 ioctl(0, VIS_GETIDENTIFIER, &ident);
3748 ioctl(0, FBIOGATTR, &attr);
3751 _xvr100=no
3752 cc_check && _xvr100=yes
3754 if test "$_xvr100" = yes ; then
3755 _def_xvr100='#define HAVE_XVR100 1'
3756 _vosrc="$_vosrc vo_xvr100.c"
3757 _vomodules="xvr100 $_vomodules"
3758 else
3759 _def_tdfxvid='#undef HAVE_XVR100'
3760 _novomodules="xvr100 $_novomodules"
3762 echores "$_xvr100"
3764 echocheck "tga"
3765 if test "$_tga" = yes ; then
3766 _def_tga='#define HAVE_TGA 1'
3767 _vosrc="$_vosrc vo_tga.c"
3768 _vomodules="tga $_vomodules"
3769 else
3770 _def_tga='#undef HAVE_TGA'
3771 _novomodules="tga $_novomodules"
3773 echores "$_tga"
3776 echocheck "md5sum support"
3777 if test "$_md5sum" = yes; then
3778 _def_md5sum="#define HAVE_MD5SUM"
3779 _vosrc="$_vosrc vo_md5sum.c"
3780 _vomodules="md5sum $_vomodules"
3781 else
3782 _def_md5sum="#undef HAVE_MD5SUM"
3783 _novomodules="md5sum $_novomodules"
3785 echores "$_md5sum"
3788 echocheck "bl"
3789 if test "$_bl" = yes ; then
3790 _def_bl='#define HAVE_BL 1'
3791 _vosrc="$_vosrc vo_bl.c"
3792 _vomodules="bl $_vomodules"
3793 else
3794 _def_bl='#undef HAVE_BL'
3795 _novomodules="bl $_novomodules"
3797 echores "$_bl"
3800 echocheck "DirectFB"
3801 if test "$_directfb" = auto ; then
3802 _directfb=no
3803 cat > $TMPC <<EOF
3804 #include <directfb.h>
3805 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3807 for _inc_tmp in "" -I/usr/local/include/directfb \
3808 -I/usr/include/directfb -I/usr/local/include; do
3809 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
3810 _inc_extra="$_inc_extra $_inc_tmp" && break
3811 done
3814 dfb_version() {
3815 expr $1 \* 65536 + $2 \* 256 + $3
3818 if test "$_directfb" = yes; then
3819 cat > $TMPC << EOF
3820 #include <directfb_version.h>
3822 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
3825 if $_cc -E $TMPC $_inc_extra > "$TMPEXE"; then
3826 _directfb_version=`sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()'`
3827 _dfb_major=`echo $_directfb_version | cut -d . -f 1`
3828 _dfb_minor=`echo $_directfb_version | cut -d . -f 2`
3829 _dfb_micro=`echo $_directfb_version | cut -d . -f 3`
3830 _dfb_version=`dfb_version $_dfb_major $_dfb_minor $_dfb_micro`
3831 if test "$_dfb_version" -ge `dfb_version 0 9 13`; then
3832 _def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
3833 _res_comment="$_directfb_version"
3834 test "$_dfb_version" -ge `dfb_version 0 9 15` && _dfbmga=yes
3835 else
3836 _def_directfb_version='#undef DIRECTFBVERSION'
3837 _directfb=no
3838 _res_comment="version >=0.9.13 required"
3840 else
3841 _directfb=no
3842 _res_comment="failed to get version"
3845 echores "$_directfb"
3847 if test "$_directfb" = yes ; then
3848 _def_directfb='#define HAVE_DIRECTFB 1'
3849 _vosrc="$_vosrc vo_directfb2.c"
3850 _vomodules="directfb $_vomodules"
3851 _libs_mplayer="$_libs_mplayer -ldirectfb"
3852 else
3853 _def_directfb='#undef HAVE_DIRECTFB'
3854 _novomodules="directfb $_novomodules"
3856 if test "$_dfbmga" = yes; then
3857 _vosrc="$_vosrc vo_dfbmga.c"
3858 _vomodules="dfbmga $_vomodules"
3859 _def_dfbmga='#define HAVE_DFBMGA 1'
3860 else
3861 _novomodules="dfbmga $_novomodules"
3862 _def_dfbmga='#undef HAVE_DFBMGA'
3866 echocheck "X11 headers presence"
3867 _x11_headers="no"
3868 _res_comment="check if the dev(el) packages are installed"
3869 for I in `echo $_inc_extra | sed s/-I//g` /usr/include ; do
3870 if test -f "$I/X11/Xlib.h" ; then
3871 _x11_headers="yes"
3872 _res_comment=""
3873 break
3875 done
3876 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/openwin/include ; do
3877 if test -f "$I/X11/Xlib.h" ; then
3878 _inc_extra="$_inc_extra -I$I"
3879 _x11_headers="yes"
3880 _res_comment="using $I"
3881 break
3883 done
3884 echores "$_x11_headers"
3887 echocheck "X11"
3888 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3889 cat > $TMPC <<EOF
3890 #include <X11/Xlib.h>
3891 #include <X11/Xutil.h>
3892 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3894 for I in "" -L/usr/X11R6/lib -L/usr/lib/X11R6 -L/usr/X11/lib \
3895 -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 -L/usr/lib ; do
3896 if netbsd; then
3897 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R`echo $I | sed s/^-L//`"
3898 else
3899 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3901 cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" \
3902 && _x11=yes && break
3903 done
3905 if test "$_x11" = yes ; then
3906 _def_x11='#define HAVE_X11 1'
3907 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3908 _vomodules="x11 xover $_vomodules"
3909 else
3910 _x11=no
3911 _def_x11='#undef HAVE_X11'
3912 _novomodules="x11 $_novomodules"
3913 _res_comment="check if the dev(el) packages are installed"
3914 # disable stuff that depends on X
3915 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no
3917 echores "$_x11"
3919 echocheck "Xss screensaver extensions"
3920 if test "$_xss" = auto ; then
3921 cat > $TMPC << EOF
3922 #include <X11/Xlib.h>
3923 #include <X11/extensions/scrnsaver.h>
3924 int main(void) {
3925 XScreenSaverSuspend(NULL, True);
3926 return 0;
3929 _xss=no
3930 cc_check -lXss && _xss=yes
3932 if test "$_xss" = yes ; then
3933 _def_xss='#define HAVE_XSS 1'
3934 _libs_mplayer="$_libs_mplayer -lXss"
3935 else
3936 _def_xss='#undef HAVE_XSS'
3938 echores "$_xss"
3940 echocheck "DPMS"
3941 _xdpms3=no
3942 _xdpms4=no
3943 if test "$_x11" = yes ; then
3944 cat > $TMPC <<EOF
3945 #include <X11/Xmd.h>
3946 #include <X11/Xlib.h>
3947 #include <X11/Xutil.h>
3948 #include <X11/Xatom.h>
3949 #include <X11/extensions/dpms.h>
3950 int main(void) {
3951 (void) DPMSQueryExtension(0, 0, 0);
3954 cc_check -lXdpms && _xdpms3=yes
3955 cat > $TMPC <<EOF
3956 #include <X11/Xlib.h>
3957 #include <X11/extensions/dpms.h>
3958 int main(void) {
3959 (void) DPMSQueryExtension(0, 0, 0);
3962 cc_check -lXext && _xdpms4=yes
3964 if test "$_xdpms4" = yes ; then
3965 _def_xdpms='#define HAVE_XDPMS 1'
3966 _res_comment="using Xdpms 4"
3967 echores "yes"
3968 elif test "$_xdpms3" = yes ; then
3969 _def_xdpms='#define HAVE_XDPMS 1'
3970 _libs_mplayer="$_libs_mplayer -lXdpms"
3971 _res_comment="using Xdpms 3"
3972 echores "yes"
3973 else
3974 _def_xdpms='#undef HAVE_XDPMS'
3975 echores "no"
3979 echocheck "Xv"
3980 if test "$_xv" = auto ; then
3981 cat > $TMPC <<EOF
3982 #include <X11/Xlib.h>
3983 #include <X11/extensions/Xvlib.h>
3984 int main(void) {
3985 (void) XvGetPortAttribute(0, 0, 0, 0);
3986 (void) XvQueryPortAttributes(0, 0, 0);
3987 return 0; }
3989 _xv=no
3990 cc_check -lXv && _xv=yes
3993 if test "$_xv" = yes ; then
3994 _def_xv='#define HAVE_XV 1'
3995 _libs_mplayer="$_libs_mplayer -lXv"
3996 _vosrc="$_vosrc vo_xv.c"
3997 _vomodules="xv $_vomodules"
3998 else
3999 _def_xv='#undef HAVE_XV'
4000 _novomodules="xv $_novomodules"
4002 echores "$_xv"
4005 echocheck "XvMC"
4006 if test "$_xv" = yes && test "$_xvmc" != no ; then
4007 _xvmc=no
4008 cat > $TMPC <<EOF
4009 #include <X11/Xlib.h>
4010 #include <X11/extensions/Xvlib.h>
4011 #include <X11/extensions/XvMClib.h>
4012 int main(void) {
4013 (void) XvMCQueryExtension(0,0,0);
4014 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4015 return 0; }
4017 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4018 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4019 done
4021 if test "$_xvmc" = yes ; then
4022 _def_xvmc='#define HAVE_XVMC 1'
4023 _libs_mplayer="$_libs_mplayer -lXvMC -l$_xvmclib"
4024 _vosrc="$_vosrc vo_xvmc.c"
4025 _vomodules="xvmc $_vomodules"
4026 _res_comment="using $_xvmclib"
4027 else
4028 _def_xvmc='#undef HAVE_XVMC'
4029 _novomodules="xvmc $_novomodules"
4030 _libavdecoders=`echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER// `
4032 echores "$_xvmc"
4035 echocheck "Xinerama"
4036 if test "$_xinerama" = auto ; then
4037 cat > $TMPC <<EOF
4038 #include <X11/Xlib.h>
4039 #include <X11/extensions/Xinerama.h>
4040 int main(void) { (void) XineramaIsActive(0); return 0; }
4042 _xinerama=no
4043 cc_check -lXinerama && _xinerama=yes
4046 if test "$_xinerama" = yes ; then
4047 _def_xinerama='#define HAVE_XINERAMA 1'
4048 _libs_mplayer="$_libs_mplayer -lXinerama"
4049 else
4050 _def_xinerama='#undef HAVE_XINERAMA'
4052 echores "$_xinerama"
4055 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4056 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4057 # named 'X extensions' or something similar.
4058 # This check may be useful for future mplayer versions (to change resolution)
4059 # If you run into problems, remove '-lXxf86vm'.
4060 echocheck "Xxf86vm"
4061 if test "$_vm" = auto ; then
4062 cat > $TMPC <<EOF
4063 #include <X11/Xlib.h>
4064 #include <X11/extensions/xf86vmode.h>
4065 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4067 _vm=no
4068 cc_check -lXxf86vm && _vm=yes
4070 if test "$_vm" = yes ; then
4071 _def_vm='#define HAVE_XF86VM 1'
4072 _libs_mplayer="$_libs_mplayer -lXxf86vm"
4073 else
4074 _def_vm='#undef HAVE_XF86VM'
4076 echores "$_vm"
4078 # Check for the presence of special keycodes, like audio control buttons
4079 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4080 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4081 # have these new keycodes.
4082 echocheck "XF86keysym"
4083 if test "$_xf86keysym" = auto; then
4084 _xf86keysym=no
4085 cat > $TMPC <<EOF
4086 #include <X11/Xlib.h>
4087 #include <X11/XF86keysym.h>
4088 int main(void) { return XF86XK_AudioPause; }
4090 cc_check && _xf86keysym=yes
4092 if test "$_xf86keysym" = yes ; then
4093 _def_xf86keysym='#define HAVE_XF86XK 1'
4094 else
4095 _def_xf86keysym='#undef HAVE_XF86XK'
4097 echores "$_xf86keysym"
4099 echocheck "DGA"
4100 if test "$_dga2" = auto && test "$_x11" = yes ; then
4101 cat > $TMPC << EOF
4102 #include <X11/Xlib.h>
4103 #include <X11/extensions/xf86dga.h>
4104 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4106 _dga2=no
4107 cc_check -lXxf86dga && _dga2=yes
4109 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4110 cat > $TMPC << EOF
4111 #include <X11/Xlib.h>
4112 #include <X11/extensions/xf86dga.h>
4113 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4115 _dga1=no
4116 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4119 _dga=no
4120 _def_dga='#undef HAVE_DGA'
4121 _def_dga1='#undef HAVE_DGA1'
4122 _def_dga2='#undef HAVE_DGA2'
4123 if test "$_dga1" = yes ; then
4124 _dga=yes
4125 _def_dga1='#define HAVE_DGA1 1'
4126 _res_comment="using DGA 1.0"
4127 elif test "$_dga2" = yes ; then
4128 _dga=yes
4129 _def_dga2='#define HAVE_DGA2 1'
4130 _res_comment="using DGA 2.0"
4132 if test "$_dga" = yes ; then
4133 _def_dga='#define HAVE_DGA 1'
4134 _libs_mplayer="$_libs_mplayer -lXxf86dga"
4135 _vosrc="$_vosrc vo_dga.c"
4136 _vomodules="dga $_vomodules"
4137 else
4138 _novomodules="dga $_novomodules"
4140 echores "$_dga"
4143 echocheck "3dfx"
4144 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4145 _def_3dfx='#define HAVE_3DFX 1'
4146 _vosrc="$_vosrc vo_3dfx.c"
4147 _vomodules="3dfx $_vomodules"
4148 else
4149 _def_3dfx='#undef HAVE_3DFX'
4150 _novomodules="3dfx $_novomodules"
4152 echores "$_3dfx"
4155 echocheck "OpenGL"
4156 #Note: this test is run even with --enable-gl since we autodetect linker flags
4157 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4158 cat > $TMPC << EOF
4159 #include <GL/gl.h>
4160 #ifdef GL_WIN32
4161 #include <windows.h>
4162 #include <GL/glext.h>
4163 #else
4164 #include <X11/Xlib.h>
4165 #include <GL/glx.h>
4166 #endif
4167 int main(void) {
4168 #ifdef GL_WIN32
4169 HDC dc;
4170 wglCreateContext(dc);
4171 #else
4172 glXCreateContext(NULL, NULL, NULL, True);
4173 #endif
4174 glFinish();
4175 return 0;
4178 _gl=no
4179 if cc_check -lGL $_ld_lm ; then
4180 _gl=yes
4181 _libs_mplayer="$_libs_mplayer -lGL $_ld_dl"
4182 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4183 _gl=yes
4184 _libs_mplayer="$_libs_mplayer -lGL $_ld_pthread $_ld_dl"
4185 elif cc_check -DGL_WIN32 -lopengl32 ; then
4186 _gl=yes
4187 _gl_win32=yes
4188 _libs_mplayer="$_libs_mplayer -lopengl32 -lgdi32"
4190 else
4191 _gl=no
4193 if test "$_gl" = yes ; then
4194 _def_gl='#define HAVE_GL 1'
4195 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
4196 if test "$_gl_win32" = yes ; then
4197 _def_gl_win32='#define GL_WIN32 1'
4198 _vosrc="$_vosrc w32_common.c"
4199 _res_comment="win32 version"
4201 _vomodules="opengl $_vomodules"
4202 else
4203 _def_gl='#undef HAVE_GL'
4204 _def_gl_win32='#undef GL_WIN32'
4205 _novomodules="opengl $_novomodules"
4207 echores "$_gl"
4210 echocheck "VIDIX"
4211 _vidix=no
4212 _def_vidix='#undef CONFIG_VIDIX'
4213 _def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4214 _vidix_drv_cyberblade=no
4215 _def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4216 _vidix_drv_ivtv=no
4217 _def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4218 _vidix_drv_ivtv=no
4219 _def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4220 _vidix_drv_mach64=no
4221 _def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4222 _vidix_drv_mga=no
4223 _def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4224 _vidix_drv_mga_crtc2=no
4225 _def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4226 _vidix_drv_nvidia=no
4227 _def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4228 _vidix_drv_pm2=no
4229 _def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4230 _vidix_drv_pm3=no
4231 _def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4232 _vidix_drv_radeon=no
4233 _def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4234 _vidix_drv_rage128=no
4235 _def_vidix_drv_savage='#undef CONFIG_VIDIX_DRV_SAVAGE'
4236 _vidix_drv_savage=no
4237 _def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4238 _vidix_drv_sis=no
4239 _def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4240 _vidix_drv_unichrome=no
4241 if test "$_vidix_internal" = auto ; then
4242 _vidix_internal=no
4243 x86 && _vidix_internal=yes
4244 ppc && linux && _vidix_internal=yes
4245 alpha && linux && _vidix_internal=yes
4246 qnx || beos || darwin && _vidix_internal=no
4248 if test "$_vidix_internal" = yes; then
4249 _res_comment="internal"
4250 _vidix_external=no
4251 _vidix=yes
4252 elif test "$_vidix_external" = auto; then
4253 _vidix_external=no
4254 cat > $TMPC <<EOF
4255 #include <vidix/vidix.h>
4256 int main(void) { return 0; }
4258 cc_check -lvidix && _vidix_external=yes && _res_comment="external" \
4259 && _vidix=yes
4261 echores "$_vidix"
4263 if test "$_vidix" = yes ; then
4264 _def_vidix='#define CONFIG_VIDIX 1'
4265 _vosrc="$_vosrc vo_cvidix.c"
4266 _vomodules="cvidix $_vomodules"
4267 test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 savage sis unichrome"
4268 test $_ivtv = "yes" || _vidix_drivers=`echo $_vidix_drivers | sed s/ivtv//`
4270 # some vidix drivers are meant to work on x86 only, discard them elsewhere
4271 x86 || _vidix_drivers=`echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome//`
4273 for driver in $_vidix_drivers ; do
4274 uc_driver=`echo $driver | tr '[a-z]' '[A-Z]'`
4275 eval _vidix_drv_${driver}=yes
4276 eval _def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4277 done
4278 else
4279 _novomodules="cvidix $_novomodules"
4282 if test "$_vidix_internal" = yes ; then
4283 _def_vidix_pfx="#define MP_VIDIX_PFX \"$_libdir\" \"/mplayer/vidix/\" "
4284 elif test "$_vidix_external" = yes ; then
4285 _libs_mplayer="$_libs_mplayer -lvidix"
4286 _def_vidix_pfx='#define MP_VIDIX_PFX "" '
4289 if test "$_vidix" = yes && win32; then
4290 _vosrc="$_vosrc vo_winvidix.c"
4291 _vomodules="winvidix $_vomodules"
4292 _libs_mplayer="$_libs_mplayer -lgdi32"
4293 else
4294 _novomodules="winvidix $_novomodules"
4296 if test "$_vidix" = yes && test "$_x11" = yes; then
4297 _vosrc="$_vosrc vo_xvidix.c"
4298 _vomodules="xvidix $_vomodules"
4299 else
4300 _novomodules="xvidix $_novomodules"
4303 echocheck "VIDIX PCI device name database"
4304 echores "$_vidix_pcidb"
4305 if test "$_vidix_pcidb" = yes ; then
4306 _vidix_pcidb_val=1
4307 else
4308 _vidix_pcidb_val=0
4311 echocheck "/dev/mga_vid"
4312 if test "$_mga" = auto ; then
4313 _mga=no
4314 test -c /dev/mga_vid && _mga=yes
4316 if test "$_mga" = yes ; then
4317 _def_mga='#define HAVE_MGA 1'
4318 _vosrc="$_vosrc vo_mga.c"
4319 _vomodules="mga $_vomodules"
4320 else
4321 _def_mga='#undef HAVE_MGA'
4322 _novomodules="mga $_novomodules"
4324 echores "$_mga"
4327 echocheck "xmga"
4328 if test "$_xmga" = auto ; then
4329 _xmga=no
4330 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4332 if test "$_xmga" = yes ; then
4333 _def_xmga='#define HAVE_XMGA 1'
4334 _vosrc="$_vosrc vo_xmga.c"
4335 _vomodules="xmga $_vomodules"
4336 else
4337 _def_xmga='#undef HAVE_XMGA'
4338 _novomodules="xmga $_novomodules"
4340 echores "$_xmga"
4343 echocheck "GGI"
4344 if test "$_ggi" = auto ; then
4345 cat > $TMPC << EOF
4346 #include <ggi/ggi.h>
4347 int main(void) { ggiInit(); return 0; }
4349 _ggi=no
4350 cc_check -lggi && _ggi=yes
4352 if test "$_ggi" = yes ; then
4353 _def_ggi='#define HAVE_GGI 1'
4354 _libs_mplayer="$_libs_mplayer -lggi"
4355 _vosrc="$_vosrc vo_ggi.c"
4356 _vomodules="ggi $_vomodules"
4357 else
4358 _def_ggi='#undef HAVE_GGI'
4359 _novomodules="ggi $_novomodules"
4361 echores "$_ggi"
4363 echocheck "GGI extension: libggiwmh"
4364 if test "$_ggiwmh" = auto ; then
4365 _ggiwmh=no
4366 cat > $TMPC << EOF
4367 #include <ggi/ggi.h>
4368 #include <ggi/wmh.h>
4369 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4371 cc_check -lggi -lggiwmh && _ggiwmh=yes
4373 # needed to get right output on obscure combination
4374 # like --disable-ggi --enable-ggiwmh
4375 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4376 _def_ggiwmh='#define HAVE_GGIWMH 1'
4377 _libs_mplayer="$_libs_mplayer -lggiwmh"
4378 else
4379 _ggiwmh=no
4380 _def_ggiwmh='#undef HAVE_GGIWMH'
4382 echores "$_ggiwmh"
4385 echocheck "AA"
4386 if test "$_aa" = auto ; then
4387 cat > $TMPC << EOF
4388 #include <aalib.h>
4389 extern struct aa_hardware_params aa_defparams;
4390 extern struct aa_renderparams aa_defrenderparams;
4391 int main(void) {
4392 aa_context *c;
4393 aa_renderparams *p;
4394 (void) aa_init(0, 0, 0);
4395 c = aa_autoinit(&aa_defparams);
4396 p = aa_getrenderparams();
4397 aa_autoinitkbd(c,0);
4398 return 0; }
4400 _aa=no
4401 for _ld_tmp in "-laa" ; do
4402 cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" && _aa=yes && break
4403 done
4405 if test "$_aa" = yes ; then
4406 _def_aa='#define HAVE_AA 1'
4407 if cygwin ; then
4408 _libs_mplayer="$_libs_mplayer `aalib-config --libs | cut -d " " -f 2,5,6`"
4410 _vosrc="$_vosrc vo_aa.c"
4411 _vomodules="aa $_vomodules"
4412 else
4413 _def_aa='#undef HAVE_AA'
4414 _novomodules="aa $_novomodules"
4416 echores "$_aa"
4419 echocheck "CACA"
4420 if test "$_caca" = auto ; then
4421 _caca=no
4422 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4423 cat > $TMPC << EOF
4424 #include <caca.h>
4425 #ifdef CACA_API_VERSION_1
4426 #include <caca0.h>
4427 #endif
4428 int main(void) { (void) caca_init(); return 0; }
4430 cc_check `caca-config --libs` && _caca=yes
4433 if test "$_caca" = yes ; then
4434 _def_caca='#define HAVE_CACA 1'
4435 _inc_extra="$_inc_extra `caca-config --cflags`"
4436 _libs_mplayer="$_libs_mplayer `caca-config --libs`"
4437 _vosrc="$_vosrc vo_caca.c"
4438 _vomodules="caca $_vomodules"
4439 else
4440 _def_caca='#undef HAVE_CACA'
4441 _novomodules="caca $_novomodules"
4443 echores "$_caca"
4446 echocheck "SVGAlib"
4447 if test "$_svga" = auto ; then
4448 cat > $TMPC << EOF
4449 #include <vga.h>
4450 int main(void) { return 0; }
4452 _svga=no
4453 cc_check -lvga $_ld_lm && _svga=yes
4455 if test "$_svga" = yes ; then
4456 _def_svga='#define HAVE_SVGALIB 1'
4457 _libs_mplayer="$_libs_mplayer -lvga"
4458 _vosrc="$_vosrc vo_svga.c"
4459 _vomodules="svga $_vomodules"
4460 else
4461 _def_svga='#undef HAVE_SVGALIB'
4462 _novomodules="svga $_novomodules"
4464 echores "$_svga"
4467 echocheck "FBDev"
4468 if test "$_fbdev" = auto ; then
4469 _fbdev=no
4470 linux && _fbdev=yes
4472 if test "$_fbdev" = yes ; then
4473 _def_fbdev='#define HAVE_FBDEV 1'
4474 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
4475 _vomodules="fbdev $_vomodules"
4476 else
4477 _def_fbdev='#undef HAVE_FBDEV'
4478 _novomodules="fbdev $_novomodules"
4480 echores "$_fbdev"
4484 echocheck "DVB"
4485 if test "$_dvb" = auto ; then
4486 _dvb=no
4487 cat >$TMPC << EOF
4488 #include <sys/poll.h>
4489 #include <sys/ioctl.h>
4490 #include <stdio.h>
4491 #include <time.h>
4492 #include <unistd.h>
4494 #include <ost/dmx.h>
4495 #include <ost/frontend.h>
4496 #include <ost/sec.h>
4497 #include <ost/video.h>
4498 #include <ost/audio.h>
4499 int main(void) {return 0;}
4501 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4502 cc_check $_inc_tmp && _dvb=yes && \
4503 _inc_extra="$_inc_extra $_inc_tmp" && break
4504 done
4506 echores "$_dvb"
4507 if test "$_dvb" = yes ; then
4508 _def_dvb='#define HAVE_DVB 1'
4509 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4510 _aomodules="mpegpes(dvb) $_aomodules"
4511 _vomodules="mpegpes(dvb) $_vomodules"
4514 echocheck "DVB HEAD"
4515 if test "$_dvbhead" = auto ; then
4516 _dvbhead=no
4518 cat >$TMPC << EOF
4519 #include <sys/poll.h>
4520 #include <sys/ioctl.h>
4521 #include <stdio.h>
4522 #include <time.h>
4523 #include <unistd.h>
4525 #include <linux/dvb/dmx.h>
4526 #include <linux/dvb/frontend.h>
4527 #include <linux/dvb/video.h>
4528 #include <linux/dvb/audio.h>
4529 int main(void) {return 0;}
4531 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4532 cc_check $_inc_tmp && _dvbhead=yes && \
4533 _inc_extra="$_inc_extra $_inc_tmp" && break
4534 done
4536 echores "$_dvbhead"
4537 if test "$_dvbhead" = yes ; then
4538 _def_dvb='#define HAVE_DVB_HEAD 1'
4539 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4540 _aomodules="mpegpes(dvb) $_aomodules"
4541 _vomodules="mpegpes(dvb) $_vomodules"
4544 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4545 _def_dvb='#undef HAVE_DVB'
4546 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4547 _aomodules="mpegpes(file) $_aomodules"
4548 _vomodules="mpegpes(file) $_vomodules"
4551 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4552 _dvbin=yes
4553 _inputmodules="dvb $_inputmodules"
4554 else
4555 _dvbin=no
4556 _noinputmodules="dvb $_noinputmodules"
4562 echocheck "PNG support"
4563 if test "$_png" = auto ; then
4564 _png=no
4565 if irix ; then
4566 # Don't check for -lpng on irix since it has its own libpng
4567 # incompatible with the GNU libpng
4568 _res_comment="disabled on irix (not GNU libpng)"
4569 else
4570 cat > $TMPC << EOF
4571 #include <png.h>
4572 #include <string.h>
4573 int main(void) {
4574 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4575 printf("libpng: %s\n", png_libpng_ver);
4576 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4579 if cc_check -lpng -lz $_ld_lm ; then
4580 if tmp_run ; then
4581 _png=yes
4582 else
4583 _res_comment="mismatch of library and header versions"
4588 echores "$_png"
4589 if test "$_png" = yes ; then
4590 _def_png='#define HAVE_PNG 1'
4591 _ld_extra="$_ld_extra -lpng -lz"
4592 _vosrc="$_vosrc vo_png.c"
4593 _vomodules="png $_vomodules"
4594 else
4595 _def_png='#undef HAVE_PNG'
4596 _novomodules="png $_novomodules"
4599 echocheck "JPEG support"
4600 if test "$_jpeg" = auto ; then
4601 _jpeg=no
4602 cat > $TMPC << EOF
4603 #include <stdio.h>
4604 #include <stdlib.h>
4605 #include <setjmp.h>
4606 #include <string.h>
4607 #include <jpeglib.h>
4608 int main(void) {
4609 return 0;
4612 if cc_check -ljpeg $_ld_lm ; then
4613 if tmp_run ; then
4614 _jpeg=yes
4618 echores "$_jpeg"
4620 if test "$_jpeg" = yes ; then
4621 _def_jpeg='#define HAVE_JPEG 1'
4622 _vosrc="$_vosrc vo_jpeg.c"
4623 _vomodules="jpeg $_vomodules"
4624 _ld_extra="$_ld_extra -ljpeg"
4625 else
4626 _def_jpeg='#undef HAVE_JPEG'
4627 _novomodules="jpeg $_novomodules"
4632 echocheck "PNM support"
4633 if test "$_pnm" = yes; then
4634 _def_pnm="#define HAVE_PNM"
4635 _vosrc="$_vosrc vo_pnm.c"
4636 _vomodules="pnm $_vomodules"
4637 else
4638 _def_pnm="#undef HAVE_PNM"
4639 _novomodules="pnm $_novomodules"
4641 echores "$_pnm"
4645 echocheck "GIF support"
4646 # This is to appease people who want to force gif support.
4647 # If it is forced to yes, then we still do checks to determine
4648 # which gif library to use.
4649 if test "$_gif" = yes ; then
4650 _force_gif=yes
4651 _gif=auto
4654 if test "$_gif" = auto ; then
4655 _gif=no
4656 cat > $TMPC << EOF
4657 #include <gif_lib.h>
4658 int main(void) {
4659 return 0;
4662 for _ld_gif in "-lungif" "-lgif" ; do
4663 cc_check $_ld_gif && tmp_run && _gif=yes && break
4664 done
4667 # If no library was found, and the user wants support forced,
4668 # then we force it on with libgif, as this is the safest
4669 # assumption IMHO. (libungif & libregif both create symbolic
4670 # links to libgif. We also assume that no x11 support is needed,
4671 # because if you are forcing this, then you _should_ know what
4672 # you are doing. [ Besides, package maintainers should never
4673 # have compiled x11 deps into libungif in the first place. ] )
4674 # </rant>
4675 # --Joey
4676 if test "$_force_gif" = yes && test "$_gif" = no ; then
4677 _gif=yes
4678 _ld_gif="-lgif"
4681 if test "$_gif" = yes ; then
4682 _def_gif='#define HAVE_GIF 1'
4683 _vosrc="$_vosrc vo_gif89a.c"
4684 _codecmodules="gif $_codecmodules"
4685 _vomodules="gif89a $_vomodules"
4686 _res_comment="old version, some encoding functions disabled"
4687 _def_gif_4='#undef HAVE_GIF_4'
4688 _ld_extra="$_ld_extra $_ld_gif"
4690 cat > $TMPC << EOF
4691 #include <signal.h>
4692 #include <gif_lib.h>
4693 void catch() { exit(1); }
4694 int main(void) {
4695 signal(SIGSEGV, catch); // catch segfault
4696 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4697 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4698 return 0;
4701 if cc_check "$_ld_gif" && tmp_run ; then
4702 _def_gif_4='#define HAVE_GIF_4 1'
4703 _res_comment=""
4705 else
4706 _def_gif='#undef HAVE_GIF'
4707 _def_gif_4='#undef HAVE_GIF_4'
4708 _novomodules="gif89a $_novomodules"
4709 _nocodecmodules="gif $_nocodecmodules"
4711 echores "$_gif"
4714 case "$_gif" in yes*)
4715 echocheck "broken giflib workaround"
4716 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4718 cat > $TMPC << EOF
4719 #include <gif_lib.h>
4720 int main(void) {
4721 GifFileType gif;
4722 printf("UserData is at address %p\n", gif.UserData);
4723 return 0;
4726 if cc_check "$_ld_gif" && tmp_run ; then
4727 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4728 echores "disabled"
4729 else
4730 echores "enabled"
4733 esac
4736 echocheck "VESA support"
4737 if test "$_vesa" = auto ; then
4738 cat > $TMPC << EOF
4739 #include <vbe.h>
4740 int main(void) { vbeVersion(); return 0; }
4742 _vesa=no
4743 cc_check -lvbe -llrmi && _vesa=yes
4745 if test "$_vesa" = yes ; then
4746 _def_vesa='#define HAVE_VESA 1'
4747 _libs_mplayer="$_libs_mplayer -lvbe -llrmi"
4748 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c gtf.c"
4749 _vomodules="vesa $_vomodules"
4750 else
4751 _def_vesa='#undef HAVE_VESA'
4752 _novomodules="vesa $_novomodules"
4754 echores "$_vesa"
4756 #################
4757 # VIDEO + AUDIO #
4758 #################
4761 echocheck "SDL"
4762 if test -z "$_sdlconfig" ; then
4763 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4764 _sdlconfig="sdl-config"
4765 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4766 _sdlconfig="sdl11-config"
4767 else
4768 _sdlconfig=false
4771 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4772 cat > $TMPC << EOF
4773 #include <SDL.h>
4774 int main(int argc, char *argv[]) {
4775 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4776 return 0;
4779 _sdl=no
4780 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4781 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4782 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4783 if test "$_sdlversion" -gt 116 ; then
4784 if test "$_sdlversion" -lt 121 ; then
4785 _def_sdlbuggy='#define BUGGY_SDL'
4786 else
4787 _def_sdlbuggy='#undef BUGGY_SDL'
4789 _sdl=yes
4794 if test "$_sdl" = yes ; then
4795 _def_sdl='#define HAVE_SDL 1'
4796 if cygwin ; then
4797 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`"
4798 _inc_extra="$_inc_extra `$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`"
4799 elif mingw32 ; then
4800 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//`"
4801 _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`"
4802 else
4803 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs`"
4804 _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//`"
4806 _vosrc="$_vosrc vo_sdl.c"
4807 _vomodules="sdl $_vomodules"
4808 _aosrc="$_aosrc ao_sdl.c"
4809 _aomodules="sdl $_aomodules"
4810 _res_comment="using $_sdlconfig"
4811 else
4812 _def_sdl='#undef HAVE_SDL'
4813 _novomodules="sdl $_novomodules"
4814 _noaomodules="sdl $_noaomodules"
4816 echores "$_sdl"
4819 if win32; then
4821 echocheck "Windows waveout"
4822 if test "$_win32waveout" = auto ; then
4823 cat > $TMPC << EOF
4824 #include <windows.h>
4825 #include <mmsystem.h>
4826 int main(void) { return 0; }
4828 _win32waveout=no
4829 cc_check -lwinmm && _win32waveout=yes
4831 if test "$_win32waveout" = yes ; then
4832 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4833 _libs_mplayer="$_libs_mplayer -lwinmm"
4834 _aosrc="$_aosrc ao_win32.c"
4835 _aomodules="win32 $_aomodules"
4836 else
4837 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4838 _noaomodules="win32 $_noaomodules"
4840 echores "$_win32waveout"
4842 echocheck "Directx"
4843 if test "$_directx" = auto ; then
4844 cat > $TMPC << EOF
4845 #include <windows.h>
4846 #include <ddraw.h>
4847 #include <dsound.h>
4848 int main(void) { return 0; }
4850 _directx=no
4851 cc_check -lgdi32 && _directx=yes
4853 if test "$_directx" = yes ; then
4854 _def_directx='#define HAVE_DIRECTX 1'
4855 _libs_mplayer="$_libs_mplayer -lgdi32"
4856 _vosrc="$_vosrc vo_directx.c"
4857 _vomodules="directx $_vomodules"
4858 _aosrc="$_aosrc ao_dsound.c"
4859 _aomodules="dsound $_aomodules"
4860 else
4861 _def_directx='#undef HAVE_DIRECTX'
4862 _novomodules="directx $_novomodules"
4863 _noaomodules="dsound $_noaomodules"
4865 echores "$_directx"
4867 fi #if win32; then
4870 echocheck "NAS"
4871 if test "$_nas" = auto ; then
4872 cat > $TMPC << EOF
4873 #include <audio/audiolib.h>
4874 int main(void) { return 0; }
4876 _nas=no
4877 cc_check $_ld_lm -laudio -lXt && _nas=yes
4879 if test "$_nas" = yes ; then
4880 _def_nas='#define HAVE_NAS 1'
4881 _libs_mplayer="$_libs_mplayer -laudio -lXt"
4882 _aosrc="$_aosrc ao_nas.c"
4883 _aomodules="nas $_aomodules"
4884 else
4885 _noaomodules="nas $_noaomodules"
4886 _def_nas='#undef HAVE_NAS'
4888 echores "$_nas"
4890 echocheck "DXR2"
4891 if test "$_dxr2" = auto; then
4892 _dxr2=no
4893 cat > $TMPC << EOF
4894 #include <dxr2ioctl.h>
4895 int main(void) { return 0; }
4897 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
4898 cc_check $_inc_tmp && _dxr2=yes && \
4899 _inc_extra="$_inc_extra $_inc_tmp" && break
4900 done
4902 if test "$_dxr2" = yes; then
4903 _def_dxr2='#define HAVE_DXR2 1'
4904 _vosrc="$_vosrc vo_dxr2.c"
4905 _aosrc="$_aosrc ao_dxr2.c"
4906 _aomodules="dxr2 $_aomodules"
4907 _vomodules="dxr2 $_vomodules"
4908 else
4909 _def_dxr2='#undef HAVE_DXR2'
4910 _noaomodules="dxr2 $_noaomodules"
4911 _novomodules="dxr2 $_novomodules"
4913 echores "$_dxr2"
4915 echocheck "DXR3/H+"
4916 if test "$_dxr3" = auto ; then
4917 cat > $TMPC << EOF
4918 #include <linux/em8300.h>
4919 int main(void) { return 0; }
4921 _dxr3=no
4922 cc_check && _dxr3=yes
4924 if test "$_dxr3" = yes ; then
4925 _def_dxr3='#define HAVE_DXR3 1'
4926 _vosrc="$_vosrc vo_dxr3.c"
4927 _vomodules="dxr3 $_vomodules"
4928 else
4929 _def_dxr3='#undef HAVE_DXR3'
4930 _novomodules="dxr3 $_novomodules"
4932 echores "$_dxr3"
4935 echocheck "IVTV TV-Out"
4936 if test "$_ivtv" = auto ; then
4937 cat > $TMPC << EOF
4938 #include <stdlib.h>
4939 #include <inttypes.h>
4940 #include <linux/types.h>
4941 #include <linux/videodev2.h>
4942 #include <linux/ivtv.h>
4943 int main(void) { return 0; }
4945 _ivtv=no
4946 cc_check && _ivtv=yes
4948 if test "$_ivtv" = yes ; then
4949 _def_ivtv='#define HAVE_IVTV 1'
4950 _vosrc="$_vosrc vo_ivtv.c"
4951 _vomodules="ivtv $_vomodules"
4952 _aosrc="$_aosrc ao_ivtv.c"
4953 _aomodules="ivtv $_aomodules"
4954 else
4955 _def_ivtv='#undef HAVE_IVTV'
4956 _novomodules="ivtv $_novomodules"
4957 _noaomodules="ivtv $_noaomodules"
4959 echores "$_ivtv"
4962 echocheck "V4L2 MPEG Decoder"
4963 if test "$_v4l2" = auto ; then
4964 cat > $TMPC << EOF
4965 #include <stdlib.h>
4966 #include <inttypes.h>
4967 #include <linux/types.h>
4968 #include <linux/videodev2.h>
4969 #include <linux/version.h>
4970 int main(void) {
4971 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4972 #error kernel headers too old, need 2.6.22
4973 bad_kernel_version();
4974 #endif
4975 struct v4l2_ext_controls ctrls;
4976 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4977 return 0;
4980 _v4l2=no
4981 cc_check && _v4l2=yes
4983 if test "$_v4l2" = yes ; then
4984 _def_v4l2='#define HAVE_V4L2_DECODER 1'
4985 _vosrc="$_vosrc vo_v4l2.c"
4986 _vomodules="v4l2 $_vomodules"
4987 _aosrc="$_aosrc ao_v4l2.c"
4988 _aomodules="v4l2 $_aomodules"
4989 else
4990 _def_v4l2='#undef HAVE_V4L2_DECODER'
4991 _novomodules="v4l2 $_novomodules"
4992 _noaomodules="v4l2 $_noaomodules"
4994 echores "$_v4l2"
4998 #########
4999 # AUDIO #
5000 #########
5003 echocheck "OSS Audio"
5004 if test "$_ossaudio" = auto ; then
5005 cat > $TMPC << EOF
5006 #include <sys/ioctl.h>
5007 #include <$_soundcard_header>
5008 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5010 _ossaudio=no
5011 cc_check && _ossaudio=yes
5013 if test "$_ossaudio" = yes ; then
5014 _def_ossaudio='#define USE_OSS_AUDIO 1'
5015 _aosrc="$_aosrc ao_oss.c"
5016 _aomodules="oss $_aomodules"
5017 if test "$_linux_devfs" = yes; then
5018 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5019 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5020 else
5021 cat > $TMPC << EOF
5022 #include <sys/ioctl.h>
5023 #include <$_soundcard_header>
5024 #ifdef OPEN_SOUND_SYSTEM
5025 int main(void) { return 0; }
5026 #else
5027 #error Not the real thing
5028 #endif
5030 _real_ossaudio=no
5031 cc_check && _real_ossaudio=yes
5032 if test "$_real_ossaudio" = yes; then
5033 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5034 elif netbsd || openbsd ; then
5035 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5036 _ld_extra="$_ld_extra -lossaudio"
5037 else
5038 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5040 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5042 else
5043 _def_ossaudio='#undef USE_OSS_AUDIO'
5044 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5045 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5046 _noaomodules="oss $_noaomodules"
5048 echores "$_ossaudio"
5051 echocheck "aRts"
5052 if test "$_arts" = auto ; then
5053 _arts=no
5054 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5056 cat > $TMPC << EOF
5057 #include <artsc.h>
5058 int main(void) { return 0; }
5060 cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes
5065 if test "$_arts" = yes ; then
5066 _def_arts='#define USE_ARTS 1'
5067 _aosrc="$_aosrc ao_arts.c"
5068 _aomodules="arts $_aomodules"
5069 _libs_mplayer="$_libs_mplayer `artsc-config --libs`"
5070 _inc_extra="$_inc_extra `artsc-config --cflags`"
5071 else
5072 _noaomodules="arts $_noaomodules"
5074 echores "$_arts"
5077 echocheck "EsounD"
5078 if test "$_esd" = auto ; then
5079 _esd=no
5080 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5082 cat > $TMPC << EOF
5083 #include <esd.h>
5084 int main(void) { int fd = esd_open_sound("test"); return fd; }
5086 cc_check `esd-config --libs` `esd-config --cflags` && _esd=yes
5090 echores "$_esd"
5092 if test "$_esd" = yes ; then
5093 _def_esd='#define USE_ESD 1'
5094 _aosrc="$_aosrc ao_esd.c"
5095 _aomodules="esd $_aomodules"
5096 _libs_mplayer="$_libs_mplayer `esd-config --libs`"
5097 _inc_extra="$_inc_extra `esd-config --cflags`"
5099 echocheck "esd_get_latency()"
5100 cat > $TMPC << EOF
5101 #include <esd.h>
5102 int main(void) { return esd_get_latency(0); }
5104 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
5105 echores "$_esd_latency"
5106 else
5107 _def_esd='#undef USE_ESD'
5108 _def_esd_latency='#undef HAVE_ESD_LATENCY'
5109 _noaomodules="esd $_noaomodules"
5112 echocheck "pulse"
5113 if test "$_pulse" = auto ; then
5114 _pulse=no
5115 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5117 cat > $TMPC << EOF
5118 #include <pulse/pulseaudio.h>
5119 int main(void) { return 0; }
5121 cc_check `$_pkg_config --libs --cflags libpulse` && tmp_run && _pulse=yes
5125 echores "$_pulse"
5127 if test "$_pulse" = yes ; then
5128 _def_pulse='#define USE_PULSE 1'
5129 _aosrc="$_aosrc ao_pulse.c"
5130 _aomodules="pulse $_aomodules"
5131 _libs_mplayer="$_libs_mplayer `$_pkg_config --libs libpulse`"
5132 _inc_extra="$_inc_extra `$_pkg_config --cflags libpulse`"
5133 else
5134 _def_pulse='#undef USE_PULSE'
5135 _noaomodules="pulse $_noaomodules"
5139 echocheck "JACK"
5140 if test "$_jack" = auto ; then
5141 _jack=yes
5143 cat > $TMPC << EOF
5144 #include <jack/jack.h>
5145 int main(void) { jack_client_new("test"); return 0; }
5147 if cc_check -ljack ; then
5148 _libs_mplayer="$_libs_mplayer -ljack"
5149 elif cc_check `$_pkg_config --libs --cflags --silence-errors jack` ; then
5150 _libs_mplayer="$_libs_mplayer `$_pkg_config --libs jack`"
5151 _inc_extra="$_inc_extra "`$_pkg_config --cflags jack`""
5152 else
5153 _jack=no
5157 if test "$_jack" = yes ; then
5158 _def_jack='#define USE_JACK 1'
5159 _aosrc="$_aosrc ao_jack.c"
5160 _aomodules="jack $_aomodules"
5161 else
5162 _noaomodules="jack $_noaomodules"
5164 echores "$_jack"
5166 echocheck "OpenAL"
5167 if test "$_openal" = auto ; then
5168 _openal=no
5169 cat > $TMPC << EOF
5170 #ifdef OPENAL_AL_H
5171 #include <OpenAL/al.h>
5172 #else
5173 #include <AL/al.h>
5174 #endif
5175 int main(void) {
5176 alSourceQueueBuffers(0, 0, 0);
5177 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5178 return 0;
5181 for I in "-lopenal" "-framework OpenAL" ; do
5182 cc_check $I && _openal=yes && break
5183 cc_check -DOPENAL_AL_H=1 $I && _def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5184 done
5185 test "$_openal" = yes && _libs_mplayer="$_libs_mplayer $I"
5187 if test "$_openal" = yes ; then
5188 _def_openal='#define USE_OPENAL 1'
5189 _aosrc="$_aosrc ao_openal.c"
5190 _aomodules="openal $_aomodules"
5191 else
5192 _noaomodules="openal $_noaomodules"
5194 echores "$_openal"
5196 echocheck "ALSA audio"
5197 if test "$_alsa" != no ; then
5198 _alsa=no
5199 cat > $TMPC << EOF
5200 #include <sys/asoundlib.h>
5201 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5202 #error "alsa version != 0.5.x"
5203 #endif
5204 int main(void) { return 0; }
5206 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5208 cat > $TMPC << EOF
5209 #include <sys/asoundlib.h>
5210 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5211 #error "alsa version != 0.9.x"
5212 #endif
5213 int main(void) { return 0; }
5215 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5216 cat > $TMPC << EOF
5217 #include <alsa/asoundlib.h>
5218 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5219 #error "alsa version != 0.9.x"
5220 #endif
5221 int main(void) { return 0; }
5223 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5225 cat > $TMPC << EOF
5226 #include <sys/asoundlib.h>
5227 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5228 #error "alsa version != 1.0.x"
5229 #endif
5230 int main(void) { return 0; }
5232 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5233 cat > $TMPC << EOF
5234 #include <alsa/asoundlib.h>
5235 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5236 #error "alsa version != 1.0.x"
5237 #endif
5238 int main(void) { return 0; }
5240 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5242 _def_alsa5='#undef HAVE_ALSA5'
5243 _def_alsa9='#undef HAVE_ALSA9'
5244 _def_alsa1x='#undef HAVE_ALSA1X'
5245 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5246 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5247 if test "$_alsaver" ; then
5248 _alsa=yes
5249 if test "$_alsaver" = '0.5.x' ; then
5250 _alsa5=yes
5251 _aosrc="$_aosrc ao_alsa5.c"
5252 _aomodules="alsa5 $_aomodules"
5253 _def_alsa5='#define HAVE_ALSA5 1'
5254 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5255 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5256 elif test "$_alsaver" = '0.9.x-sys' ; then
5257 _alsa9=yes
5258 _aosrc="$_aosrc ao_alsa.c"
5259 _aomodules="alsa $_aomodules"
5260 _def_alsa9='#define HAVE_ALSA9 1'
5261 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5262 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5263 elif test "$_alsaver" = '0.9.x-alsa' ; then
5264 _alsa9=yes
5265 _aosrc="$_aosrc ao_alsa.c"
5266 _aomodules="alsa $_aomodules"
5267 _def_alsa9='#define HAVE_ALSA9 1'
5268 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5269 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5270 elif test "$_alsaver" = '1.0.x-sys' ; then
5271 _alsa1x=yes
5272 _aosrc="$_aosrc ao_alsa.c"
5273 _aomodules="alsa $_aomodules"
5274 _def_alsa1x="#define HAVE_ALSA1X 1"
5275 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5276 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5277 elif test "$_alsaver" = '1.0.x-alsa' ; then
5278 _alsa1x=yes
5279 _aosrc="$_aosrc ao_alsa.c"
5280 _aomodules="alsa $_aomodules"
5281 _def_alsa1x="#define HAVE_ALSA1X 1"
5282 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5283 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5284 else
5285 _alsa=no
5286 _res_comment="unknown version"
5288 _ld_extra="$_ld_extra -lasound $_ld_dl $_ld_pthread"
5289 else
5290 _noaomodules="alsa $_noaomodules"
5292 echores "$_alsa"
5295 echocheck "Sun audio"
5296 if test "$_sunaudio" = auto ; then
5297 cat > $TMPC << EOF
5298 #include <sys/types.h>
5299 #include <sys/audioio.h>
5300 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5302 _sunaudio=no
5303 cc_check && _sunaudio=yes
5305 if test "$_sunaudio" = yes ; then
5306 _def_sunaudio='#define USE_SUN_AUDIO 1'
5307 _aosrc="$_aosrc ao_sun.c"
5308 _aomodules="sun $_aomodules"
5309 else
5310 _def_sunaudio='#undef USE_SUN_AUDIO'
5311 _noaomodules="sun $_noaomodules"
5313 echores "$_sunaudio"
5316 if sunos; then
5317 echocheck "Sun mediaLib"
5318 if test "$_mlib" = auto ; then
5319 _mlib=no
5320 cat > $TMPC << EOF
5321 #include <mlib.h>
5322 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5324 cc_check -lmlib && _mlib=yes
5326 test "$_mlib" = yes && _cpuexts="MLIB $_cpuexts"
5327 echores "$_mlib"
5328 fi #if sunos
5331 if irix; then
5332 echocheck "SGI audio"
5333 if test "$_sgiaudio" = auto ; then
5334 # check for SGI audio
5335 cat > $TMPC << EOF
5336 #include <dmedia/audio.h>
5337 int main(void) { return 0; }
5339 _sgiaudio=no
5340 cc_check && _sgiaudio=yes
5342 if test "$_sgiaudio" = "yes" ; then
5343 _def_sgiaudio='#define USE_SGI_AUDIO 1'
5344 _libs_mplayer="$_libs_mplayer -laudio"
5345 _aosrc="$_aosrc ao_sgi.c"
5346 _aomodules="sgi $_aomodules"
5347 else
5348 _def_sgiaudio='#undef USE_SGI_AUDIO'
5349 _noaomodules="sgi $_noaomodules"
5351 echores "$_sgiaudio"
5352 fi #if irix
5355 echocheck "VCD support"
5356 if linux || bsdos || freebsd || netbsd || sunos || darwin || mingw32; then
5357 _inputmodules="vcd $_inputmodules"
5358 _def_vcd='#define HAVE_VCD 1'
5359 _vcd="yes"
5360 else
5361 _def_vcd='#undef HAVE_VCD'
5362 _noinputmodules="vcd $_noinputmodules"
5363 _res_comment="not supported on this OS"
5364 _vcd="no"
5366 echores "$_vcd"
5370 echocheck "dvdread"
5371 if test "$_dvdread_internal" = auto ; then
5372 _dvdread_internal=no
5373 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux && \
5374 test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5375 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || \
5376 test "$_hpux_scsi_h" = yes || darwin || win32 ; then
5377 _dvdread_internal=yes
5378 _dvdread=yes
5380 elif test "$_dvdread" = auto ; then
5381 _dvdread=no
5382 if test "$_dl" = yes; then
5383 cat > $TMPC << EOF
5384 #include <inttypes.h>
5385 #include <dvdread/dvd_reader.h>
5386 #include <dvdread/ifo_types.h>
5387 #include <dvdread/ifo_read.h>
5388 #include <dvdread/nav_read.h>
5389 int main(void) { return 0; }
5391 cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5392 -ldvdread $_ld_dl && _dvdread=yes && _res_comment="external"
5396 if test "$_dvdread_internal" = yes; then
5397 _def_dvdread_internal="#define USE_DVDREAD_INTERNAL 1"
5398 _def_dvdread='#define USE_DVDREAD 1'
5399 _inputmodules="dvdread(internal) $_inputmodules"
5400 _largefiles=yes
5401 _res_comment="internal"
5402 elif test "$_dvdread" = yes; then
5403 _def_dvdread='#define USE_DVDREAD 1'
5404 _largefiles=yes
5405 _ld_extra="$_ld_extra -ldvdread"
5406 _inputmodules="dvdread(external) $_inputmodules"
5407 _res_comment="external"
5408 else
5409 _def_dvdread_internal="#undef USE_DVDREAD_INTERNAL"
5410 _def_dvdread='#undef USE_DVDREAD'
5411 _noinputmodules="dvdread $_noinputmodules"
5413 echores "$_dvdread"
5416 echocheck "internal libdvdcss"
5417 if test "$_libdvdcss_internal" = auto ; then
5418 _libdvdcss_internal=no
5419 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5421 if test "$_libdvdcss_internal" = yes ; then
5422 if linux || netbsd || openbsd || bsdos ; then
5423 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5424 openbsd && _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5425 elif freebsd ; then
5426 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5427 elif darwin ; then
5428 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5429 _ld_extra="$_ld_extra -framework IOKit"
5431 _inputmodules="libdvdcss(internal) $_inputmodules"
5432 _largefiles=yes
5433 else
5434 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5436 echores "$_libdvdcss_internal"
5439 echocheck "cdparanoia"
5440 if test "$_cdparanoia" = auto ; then
5441 cat > $TMPC <<EOF
5442 #include <cdda_interface.h>
5443 #include <cdda_paranoia.h>
5444 // This need a better test. How ?
5445 int main(void) {
5446 void *test = cdda_verbose_set;
5447 return test == (void *)1;
5450 _cdparanoia=no
5451 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5452 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5453 _cdparanoia=yes && _inc_extra="$_inc_extra $_inc_tmp" && break
5454 done
5456 if test "$_cdparanoia" = yes ; then
5457 _cdda='yes'
5458 _ld_extra="$_ld_extra -lcdda_interface -lcdda_paranoia"
5459 openbsd && _ld_extra="$_ld_extra -lutil"
5461 echores "$_cdparanoia"
5464 echocheck "libcdio"
5465 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5466 cat > $TMPC << EOF
5467 #include <stdio.h>
5468 #include <cdio/version.h>
5469 #include <cdio/cdda.h>
5470 #include <cdio/paranoia.h>
5471 int main(void)
5473 void *test = cdda_verbose_set;
5474 printf("%s\n", CDIO_VERSION);
5475 return test == (void *)1;
5479 _libcdio=no
5480 for _ld_tmp in "" "-lwinmm" ; do
5481 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5482 cc_check $_ld_tmp $_ld_lm \
5483 && _libcdio=yes && _ld_extra="$_ld_extra $_ld_tmp" && break
5484 done
5485 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5486 _inc_tmp=`$_pkg_config --cflags libcdio_paranoia`
5487 _ld_tmp=`$_pkg_config --libs libcdio_paranoia`
5488 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5489 && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp"
5492 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5493 _cdda='yes'
5494 _def_libcdio='#define HAVE_LIBCDIO'
5495 _def_havelibcdio='yes'
5496 else
5497 if test "$_cdparanoia" = yes ; then
5498 _res_comment="using cdparanoia"
5500 _def_libcdio='#undef HAVE_LIBCDIO'
5501 _def_havelibcdio='no'
5503 echores "$_libcdio"
5505 if test "$_cdda" = yes ; then
5506 test $_cddb = auto && test $_network = yes && _cddb=yes
5507 _def_cdparanoia='#define HAVE_CDDA'
5508 _inputmodules="cdda $_inputmodules"
5509 else
5510 _def_cdparanoia='#undef HAVE_CDDA'
5511 _noinputmodules="cdda $_noinputmodules"
5514 if test "$_cddb" = yes ; then
5515 _def_cddb='#define HAVE_CDDB'
5516 _inputmodules="cddb $_inputmodules"
5517 else
5518 _cddb=no
5519 _def_cddb='#undef HAVE_CDDB'
5520 _noinputmodules="cddb $_noinputmodules"
5523 echocheck "bitmap font support"
5524 if test "$_bitmap_font" = yes ; then
5525 _def_bitmap_font="#define HAVE_BITMAP_FONT 1"
5526 else
5527 _def_bitmap_font="#undef HAVE_BITMAP_FONT"
5529 echores "$_bitmap_font"
5532 echocheck "freetype >= 2.0.9"
5534 # freetype depends on iconv
5535 if test "$_iconv" = no ; then
5536 _freetype=no
5537 _res_comment="iconv support needed"
5540 if test "$_freetype" = auto ; then
5541 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5542 cat > $TMPC << EOF
5543 #include <stdio.h>
5544 #include <ft2build.h>
5545 #include FT_FREETYPE_H
5546 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5547 #error "Need FreeType 2.0.9 or newer"
5548 #endif
5549 int main(void)
5551 FT_Library library;
5552 FT_Int major=-1,minor=-1,patch=-1;
5553 int err=FT_Init_FreeType(&library);
5554 if(err){
5555 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5556 exit(err);
5558 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5559 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5560 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5561 (int)major,(int)minor,(int)patch );
5562 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5563 printf("Library and header version mismatch! Fix it in your distribution!\n");
5564 exit(1);
5566 return 0;
5569 _freetype=no
5570 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes
5571 else
5572 _freetype=no
5575 if test "$_freetype" = yes ; then
5576 _def_freetype='#define HAVE_FREETYPE'
5577 _inc_extra="$_inc_extra `$_freetypeconfig --cflags`"
5578 _ld_extra="$_ld_extra `$_freetypeconfig --libs`"
5579 else
5580 _def_freetype='#undef HAVE_FREETYPE'
5582 echores "$_freetype"
5584 if test "$_freetype" = no ; then
5585 _fontconfig=no
5586 _res_comment="freetype support needed"
5588 echocheck "fontconfig"
5589 if test "$_fontconfig" = auto ; then
5590 cat > $TMPC << EOF
5591 #include <stdio.h>
5592 #include <fontconfig/fontconfig.h>
5593 int main(void)
5595 int err = FcInit();
5596 if(err == FcFalse){
5597 printf("Couldn't initialize fontconfig lib\n");
5598 exit(err);
5600 return 0;
5604 _fontconfig=no
5605 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
5606 _ld_tmp="-lfontconfig $_ld_tmp"
5607 cc_check $_ld_tmp && _fontconfig=yes && _ld_extra="$_ld_extra $_ld_tmp" && break
5608 done
5609 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5610 _inc_tmp=`$_pkg_config --cflags fontconfig`
5611 _ld_tmp=`$_pkg_config --libs fontconfig`
5612 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
5613 && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp"
5616 if test "$_fontconfig" = yes ; then
5617 _def_fontconfig='#define HAVE_FONTCONFIG'
5618 else
5619 _def_fontconfig='#undef HAVE_FONTCONFIG'
5621 echores "$_fontconfig"
5624 echocheck "SSA/ASS support"
5625 # libass depends on FreeType
5626 if test "$_freetype" = no ; then
5627 _ass=no
5628 _res_comment="FreeType support needed"
5631 if test "$_ass" = auto ; then
5632 cat > $TMPC << EOF
5633 #include <ft2build.h>
5634 #include FT_FREETYPE_H
5635 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
5636 #error "Need FreeType 2.1.8 or newer"
5637 #endif
5638 int main(void) { return 0; }
5640 _ass=no
5641 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _ass=yes
5642 if test "$_ass" = no ; then
5643 _res_comment="FreeType >= 2.1.8 needed"
5646 if test "$_ass" = yes ; then
5647 _def_ass='#define USE_ASS'
5648 else
5649 _def_ass='#undef USE_ASS'
5651 echores "$_ass"
5654 echocheck "fribidi with charsets"
5655 if test "$_fribidi" = auto ; then
5656 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5657 cat > $TMPC << EOF
5658 #include <stdio.h>
5659 /* workaround for fribidi 0.10.4 and below */
5660 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5661 #include <fribidi/fribidi.h>
5662 int main(void)
5664 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
5665 printf("Fribidi headers are not consistents with the library!\n");
5666 exit(1);
5668 return 0;
5671 _fribidi=no
5672 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes
5673 else
5674 _fribidi=no
5677 if test "$_fribidi" = yes ; then
5678 _def_fribidi='#define USE_FRIBIDI'
5679 _inc_extra="$_inc_extra `$_fribidiconfig --cflags`"
5680 _ld_extra="$_ld_extra `$_fribidiconfig --libs`"
5681 else
5682 _def_fribidi='#undef USE_FRIBIDI'
5684 echores "$_fribidi"
5687 echocheck "ENCA"
5688 if test "$_enca" = auto ; then
5689 cat > $TMPC << EOF
5690 #include <enca.h>
5691 int main(void)
5693 const char **langs;
5694 size_t langcnt;
5695 langs = enca_get_languages(&langcnt);
5696 return 0;
5699 _enca=no
5700 cc_check -lenca $_ld_lm && _enca=yes
5702 if test "$_enca" = yes ; then
5703 _def_enca='#define HAVE_ENCA 1'
5704 _ld_extra="$_ld_extra -lenca"
5705 else
5706 _def_enca='#undef HAVE_ENCA'
5708 echores "$_enca"
5711 echocheck "zlib"
5712 cat > $TMPC << EOF
5713 #include <zlib.h>
5714 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5716 _zlib=no
5717 cc_check -lz && _zlib=yes
5718 if test "$_zlib" = yes ; then
5719 _def_zlib='#define HAVE_ZLIB 1'
5720 _ld_extra="$_ld_extra -lz"
5721 else
5722 _def_zlib='#undef HAVE_ZLIB'
5723 _libavdecoders=`echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// `
5724 _libavencoders=`echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// `
5726 echores "$_zlib"
5729 echocheck "RTC"
5730 if test "$_rtc" = auto ; then
5731 cat > $TMPC << EOF
5732 #include <sys/ioctl.h>
5733 #ifdef __linux__
5734 #include <linux/rtc.h>
5735 #else
5736 #include <rtc.h>
5737 #define RTC_PIE_ON RTCIO_PIE_ON
5738 #endif
5739 int main(void) { return RTC_PIE_ON; }
5741 _rtc=no
5742 cc_check && _rtc=yes
5743 ppc && _rtc=no
5745 if test "$_rtc" = yes ; then
5746 _def_rtc='#define HAVE_RTC 1'
5747 else
5748 _def_rtc='#undef HAVE_RTC'
5750 echores "$_rtc"
5753 echocheck "liblzo2 support"
5754 if test "$_liblzo" = auto ; then
5755 _liblzo=no
5756 cat > $TMPC << EOF
5757 #include <lzo/lzo1x.h>
5758 int main(void) { lzo_init();return 0; }
5760 cc_check -llzo2 && _liblzo=yes
5762 if test "$_liblzo" = yes ; then
5763 _def_liblzo='#define USE_LIBLZO 1'
5764 _ld_extra="$_ld_extra -llzo2"
5765 _codecmodules="liblzo $_codecmodules"
5766 else
5767 _def_liblzo='#undef USE_LIBLZO'
5768 _nocodecmodules="liblzo $_nocodecmodules"
5770 echores "$_liblzo"
5773 echocheck "mad support"
5774 if test "$_mad" = auto ; then
5775 _mad=no
5776 cat > $TMPC << EOF
5777 #include <mad.h>
5778 int main(void) { return 0; }
5780 cc_check -lmad && _mad=yes
5782 if test "$_mad" = yes ; then
5783 _def_mad='#define USE_LIBMAD 1'
5784 _ld_extra="$_ld_extra -lmad"
5785 _codecmodules="libmad $_codecmodules"
5786 else
5787 _def_mad='#undef USE_LIBMAD'
5788 _nocodecmodules="libmad $_nocodecmodules"
5790 echores "$_mad"
5792 echocheck "Twolame"
5793 if test "$_twolame" = auto ; then
5794 cat > $TMPC <<EOF
5795 #include <twolame.h>
5796 int main(void) { twolame_init(); return 0; }
5798 _twolame=no
5799 cc_check -ltwolame $_ld_lm && _twolame=yes
5801 if test "$_twolame" = yes ; then
5802 _def_twolame='#define HAVE_TWOLAME 1'
5803 _libs_mencoder="$_libs_mencoder -ltwolame"
5804 _codecmodules="twolame $_codecmodules"
5805 else
5806 _def_twolame='#undef HAVE_TWOLAME'
5807 _nocodecmodules="twolame $_nocodecmodules"
5809 echores "$_twolame"
5811 echocheck "Toolame"
5812 if test "$_toolame" = auto ; then
5813 _toolame=no
5814 if test "$_twolame" = yes ; then
5815 _res_comment="disabled by twolame"
5816 else
5817 cat > $TMPC <<EOF
5818 #include <toolame.h>
5819 int main(void) { toolame_init(); return 0; }
5821 cc_check -ltoolame $_ld_lm && _toolame=yes
5824 if test "$_toolame" = yes ; then
5825 _def_toolame='#define HAVE_TOOLAME 1'
5826 _libs_mencoder="$_libs_mencoder -ltoolame"
5827 _codecmodules="toolame $_codecmodules"
5828 else
5829 _def_toolame='#undef HAVE_TOOLAME'
5830 _nocodecmodules="toolame $_nocodecmodules"
5832 if test "$_toolamedir" ; then
5833 _res_comment="using $_toolamedir"
5835 echores "$_toolame"
5837 echocheck "OggVorbis support"
5838 if test "$_tremor_internal" = yes; then
5839 _libvorbis=no
5840 elif test "$_tremor_external" = auto; then
5841 _tremor_external=no
5842 cat > $TMPC << EOF
5843 #include <tremor/ivorbiscodec.h>
5844 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5846 cc_check -logg -lvorbisidec $_ld_lm && _tremor_external=yes && _libvorbis=no
5848 if test "$_libvorbis" = auto; then
5849 _libvorbis=no
5850 cat > $TMPC << EOF
5851 #include <vorbis/codec.h>
5852 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5854 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
5856 if test "$_tremor_internal" = yes ; then
5857 _vorbis=yes
5858 _def_vorbis='#define HAVE_OGGVORBIS 1'
5859 _def_tremor='#define TREMOR 1'
5860 _codecmodules="tremor(internal) $_codecmodules"
5861 _res_comment="internal Tremor"
5862 if test "$_tremor_low" = yes ; then
5863 _res_comment="internal low accuracy Tremor"
5865 elif test "$_tremor_external" = yes ; then
5866 _vorbis=yes
5867 _def_vorbis='#define HAVE_OGGVORBIS 1'
5868 _def_tremor='#define TREMOR 1'
5869 _codecmodules="tremor(external) $_codecmodules"
5870 _res_comment="external Tremor"
5871 _ld_extra="$_ld_extra -logg -lvorbisidec"
5872 elif test "$_libvorbis" = yes ; then
5873 _vorbis=yes
5874 _def_vorbis='#define HAVE_OGGVORBIS 1'
5875 _codecmodules="libvorbis $_codecmodules"
5876 _res_comment="libvorbis"
5877 _ld_extra="$_ld_extra -lvorbis -logg"
5878 else
5879 _vorbis=no
5880 _nocodecmodules="libvorbis $_nocodecmodules"
5882 if test "$_libvorbis" = no ; then
5883 _libavencoders=`echo $_libavencoders | sed -e s/LIBVORBIS_ENCODER// `
5885 echores "$_vorbis"
5887 echocheck "libspeex (version >= 1.1 required)"
5888 if test "$_speex" = auto ; then
5889 _speex=no
5890 cat > $TMPC << EOF
5891 #include <speex/speex.h>
5892 int main(void) {
5893 SpeexBits bits;
5894 void *dec;
5895 speex_decode_int(dec, &bits, dec);
5898 cc_check -lspeex $_ld_lm && _speex=yes
5900 if test "$_speex" = yes ; then
5901 _def_speex='#define HAVE_SPEEX 1'
5902 _ld_extra="$_ld_extra -lspeex"
5903 _codecmodules="speex $_codecmodules"
5904 else
5905 _def_speex='#undef HAVE_SPEEX'
5906 _nocodecmodules="speex $_nocodecmodules"
5908 echores "$_speex"
5910 echocheck "OggTheora support"
5911 if test "$_theora" = auto ; then
5912 _theora=no
5913 cat > $TMPC << EOF
5914 #include <theora/theora.h>
5915 #include <string.h>
5916 int main(void)
5918 /* theora is in flux, make sure that all interface routines and
5919 * datatypes exist and work the way we expect it, so we don't break
5920 * mplayer */
5921 ogg_packet op;
5922 theora_comment tc;
5923 theora_info inf;
5924 theora_state st;
5925 yuv_buffer yuv;
5926 int r;
5927 double t;
5929 theora_info_init (&inf);
5930 theora_comment_init (&tc);
5932 return 0;
5934 /* we don't want to execute this kind of nonsense; just for making sure
5935 * that compilation works... */
5936 memset(&op, 0, sizeof(op));
5937 r = theora_decode_header (&inf, &tc, &op);
5938 r = theora_decode_init (&st, &inf);
5939 t = theora_granule_time (&st, op.granulepos);
5940 r = theora_decode_packetin (&st, &op);
5941 r = theora_decode_YUVout (&st, &yuv);
5942 theora_clear (&st);
5944 return 0;
5947 for _ld_theora in "`$_pkg_config --silence-errors --libs --cflags theora`" "-ltheora -logg"; do
5948 cc_check $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" \
5949 && _theora=yes && break
5950 done
5951 if test "$_theora" = no && test "$_tremor_internal" = yes; then
5952 for _ld_theora in "`$_pkg_config --silence-errors --libs --cflags theora`" "-ltheora -logg"; do
5953 cc_check -I. tremor/bitwise.c $_ld_theora \
5954 && _ld_extra="$_ld_extra $_ld_theora" && theora=yes && break
5955 done
5958 if test "$_theora" = yes ; then
5959 _def_theora='#define HAVE_OGGTHEORA 1'
5960 _codecmodules="libtheora $_codecmodules"
5961 # when --enable-theora is forced, we'd better provide a probably sane
5962 # $_ld_theora than nothing
5963 test -z "$_ld_theora" && _ld_extra="$_ld_extra -ltheora -logg"
5964 else
5965 _def_theora='#undef HAVE_OGGTHEORA'
5966 _nocodecmodules="libtheora $_nocodecmodules"
5968 echores "$_theora"
5970 echocheck "internal mp3lib support"
5971 if test "$_mp3lib" = yes ; then
5972 _def_mp3lib='#define USE_MP3LIB 1'
5973 _codecmodules="mp3lib $_codecmodules"
5974 else
5975 _def_mp3lib='#undef USE_MP3LIB'
5976 _nocodecmodules="mp3lib $_nocodecmodules"
5978 echores "$_mp3lib"
5980 echocheck "internal liba52 support"
5981 if test "$_liba52" = yes ; then
5982 _def_liba52='#define USE_LIBA52 1'
5983 _codecmodules="liba52 $_codecmodules"
5984 else
5985 _def_liba52='#undef USE_LIBA52'
5986 _nocodecmodules="liba52 $_nocodecmodules"
5988 echores "$_liba52"
5990 echocheck "libdca support"
5991 if test "$_libdca" = auto ; then
5992 _libdca=no
5993 cat > $TMPC << EOF
5994 #include <inttypes.h>
5995 #include <dts.h>
5996 int main(void) { dts_init (0); return 0; }
5998 for _ld_dca in -ldts -ldca ; do
5999 cc_check $_ld_dca $_ld_lm && _ld_extra="$_ld_extra $_ld_dca" \
6000 && _libdca=yes && break
6001 done
6003 if test "$_libdca" = yes ; then
6004 _def_libdca='#define USE_LIBDCA 1'
6005 _codecmodules="libdca $_codecmodules"
6006 else
6007 _def_libdca='#undef USE_LIBDCA'
6008 _nocodecmodules="libdca $_nocodecmodules"
6010 echores "$_libdca"
6012 echocheck "internal libmpeg2 support"
6013 if test "$_libmpeg2" = yes ; then
6014 _def_libmpeg2='#define USE_LIBMPEG2 1'
6015 _codecmodules="libmpeg2 $_codecmodules"
6016 else
6017 _def_libmpeg2='#undef USE_LIBMPEG2'
6018 _nocodecmodules="libmpeg2 $_nocodecmodules"
6020 echores "$_libmpeg2"
6022 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6023 if test "$_musepack" = auto ; then
6024 _musepack=no
6025 cat > $TMPC << EOF
6026 #include <mpcdec/mpcdec.h>
6027 int main(void) {
6028 mpc_streaminfo info;
6029 mpc_decoder decoder;
6030 mpc_decoder_set_streaminfo(&decoder, &info);
6031 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6034 cc_check -lmpcdec $_ld_lm && _musepack=yes
6036 if test "$_musepack" = yes ; then
6037 _def_musepack='#define HAVE_MUSEPACK 1'
6038 _ld_extra="$_ld_extra -lmpcdec"
6039 _codecmodules="musepack $_codecmodules"
6040 else
6041 _def_musepack='#undef HAVE_MUSEPACK'
6042 _nocodecmodules="musepack $_nocodecmodules"
6044 echores "$_musepack"
6047 echocheck "FAAC (AAC encoder) support"
6048 if test "$_faac" = auto ; then
6049 cat > $TMPC <<EOF
6050 #include <inttypes.h>
6051 #include <faac.h>
6052 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6054 _faac=no
6055 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6056 cc_check -O4 $_ld_faac $_ld_lm && _libs_mencoder="$_libs_mencoder $_ld_faac" && _faac=yes && break
6057 done
6059 if test "$_faac" = yes ; then
6060 _def_faac="#define HAVE_FAAC 1"
6061 if echo $_libavencoders | grep -q FAAC ; then
6062 _lavc_faac=yes
6063 _def_lavc_faac="#define CONFIG_LIBFAAC 1"
6064 _libs_mplayer="$_libs_mplayer $_ld_faac"
6065 else
6066 _lavc_faac=no
6067 _def_lavc_faac="#undef CONFIG_LIBFAAC"
6069 _codecmodules="faac $_codecmodules"
6070 else
6071 _def_faac="#undef HAVE_FAAC"
6072 _nocodecmodules="faac $_nocodecmodules"
6073 _libavencoders=`echo $_libavencoders | sed -e s/LIBFAAC_ENCODER// `
6075 echores "$_faac (in libavcodec: $_lavc_faac)"
6078 echocheck "FAAD2 (AAC) support"
6079 if test "$_faad_internal" = auto ; then
6080 if x86_32 && test cc_vendor=gnu; then
6081 case $cc_version in
6082 3.1*|3.2) # ICE/insn with these versions
6083 _faad_internal=no
6084 _res_comment="broken gcc"
6087 _faad_internal=yes
6089 esac
6090 else
6091 _faad_internal=yes
6093 elif test "$_faad_internal" = no && test "$_faad_external" = auto ; then
6094 _faad_external=no
6095 cat > $TMPC << EOF
6096 #include <faad.h>
6097 #ifndef FAAD_MIN_STREAMSIZE
6098 #error Too old version
6099 #endif
6100 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6102 cc_check -lfaad $_ld_lm && _faad_external=yes
6105 if test "$_faad_internal" = yes ; then
6106 _def_faad_internal="#define USE_FAAD_INTERNAL 1"
6107 _faad=yes
6108 _res_comment="internal floating-point"
6109 test "$_faad_fixed" = yes && _res_comment="internal fixed-point"
6110 elif test "$_faad_external" = yes ; then
6111 _faad=yes
6112 _ld_extra="$_ld_extra -lfaad"
6113 else
6114 _def_faad_internal="#undef USE_FAAD_INTERNAL"
6115 _faad=no
6118 if test "$_faad" = yes ; then
6119 _def_faad='#define HAVE_FAAD 1'
6120 _codecmodules="faad2 $_codecmodules"
6121 else
6122 _def_faad='#undef HAVE_FAAD'
6123 _nocodecmodules="faad2 $_nocodecmodules"
6125 echores "$_faad"
6128 echocheck "LADSPA plugin support"
6129 if test "$_ladspa" = auto ; then
6130 cat > $TMPC <<EOF
6131 #include <stdio.h>
6132 #include <ladspa.h>
6133 int main(void) {
6134 const LADSPA_Descriptor *ld = NULL;
6135 return 0;
6138 _ladspa=no
6139 cc_check && _ladspa=yes
6141 if test "$_ladspa" = yes; then
6142 _def_ladspa="#define HAVE_LADSPA"
6143 _afsrc="$_afsrc af_ladspa.c"
6144 _afmodules="ladspa $_afmodules"
6145 else
6146 _def_ladspa="#undef HAVE_LADSPA"
6147 _noafmodules="ladspa $_noafmodules"
6149 echores "$_ladspa"
6152 if test -z "$_codecsdir" ; then
6153 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6154 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6155 if test -d "$dir" ; then
6156 _codecsdir="$dir"
6157 break;
6159 done
6161 # Fall back on default directory.
6162 if test -z "$_codecsdir" ; then
6163 _codecsdir="$_libdir/codecs"
6164 mingw32 && _codecsdir="codecs"
6168 echocheck "Win32 codecs"
6169 if test "$_win32dll" = auto ; then
6170 _win32dll=no
6171 if x86_32 && ! qnx; then
6172 _win32dll=yes
6175 if test "$_win32dll" = yes ; then
6176 _def_win32dll='#define USE_WIN32DLL 1'
6177 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6178 _res_comment="using $_win32codecsdir"
6179 if ! win32 ; then
6180 _def_win32_loader='#define WIN32_LOADER 1'
6181 else
6182 _ld_extra="$_ld_extra -ladvapi32 -lole32"
6183 _res_comment="using native windows"
6185 _codecmodules="win32 $_codecmodules"
6186 else
6187 _def_win32dll='#undef USE_WIN32DLL'
6188 _def_win32_loader='#undef WIN32_LOADER'
6189 _nocodecmodules="win32 $_nocodecmodules"
6191 echores "$_win32dll"
6194 echocheck "XAnim codecs"
6195 if test "$_xanim" = auto ; then
6196 _xanim=no
6197 _res_comment="dynamic loader support needed"
6198 if test "$_dl" = yes ; then
6199 _xanim=yes
6202 if test "$_xanim" = yes ; then
6203 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6204 _def_xanim='#define USE_XANIM 1'
6205 _def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6206 _codecmodules="xanim $_codecmodules"
6207 _res_comment="using $_xanimcodecsdir"
6208 else
6209 _def_xanim='#undef USE_XANIM'
6210 _def_xanim_path='#undef XACODEC_PATH'
6211 _nocodecmodules="xanim $_nocodecmodules"
6213 echores "$_xanim"
6216 echocheck "RealPlayer codecs"
6217 if test "$_real" = auto ; then
6218 _real=no
6219 _res_comment="dynamic loader support needed"
6220 if test "$_dl" = yes || test "$_win32dll" = yes &&
6221 (linux || freebsd || netbsd || win32 || darwin) ; then
6222 _real=yes
6225 if test "$_real" = yes ; then
6226 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6227 _def_real='#define USE_REALCODECS 1'
6228 _def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6229 _codecmodules="real $_codecmodules"
6230 _res_comment="using $_realcodecsdir"
6231 else
6232 _def_real='#undef USE_REALCODECS'
6233 _def_real_path="#undef REALCODEC_PATH"
6234 _nocodecmodules="real $_nocodecmodules"
6236 echores "$_real"
6239 echocheck "QuickTime codecs"
6240 if test "$_qtx" = auto ; then
6241 test "$_win32dll" = yes || darwin && _qtx=yes
6243 if test "$_qtx" = yes ; then
6244 _def_qtx='#define USE_QTX_CODECS 1'
6245 _codecmodules="qtx $_codecmodules"
6246 else
6247 _def_qtx='#undef USE_QTX_CODECS'
6248 _nocodecmodules="qtx $_nocodecmodules"
6250 echores "$_qtx"
6252 echocheck "Nemesi Streaming Media libraries"
6253 if test "$_nemesi" = auto && test "$_network" = yes ; then
6254 _nemesi=no
6255 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6256 _ld_extra="$_ld_extra `$_pkg_config --libs libnemesi`"
6257 _nemesi=yes
6260 if test "$_nemesi" = yes; then
6261 _native_rtsp=no
6262 _def_nemesi='#define LIBNEMESI 1'
6263 _inputmodules="nemesi $_inputmodules"
6264 else
6265 _native_rtsp="$_network"
6266 _nemesi=no
6267 _def_nemesi='#undef LIBNEMESI'
6268 _noinputmodules="nemesi $_noinputmodules"
6270 echores "$_nemesi"
6272 echocheck "LIVE555 Streaming Media libraries"
6273 if test "$_live" = auto && test "$_network" = yes ; then
6274 cat > $TMPCPP << EOF
6275 #include <liveMedia.hh>
6276 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6277 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6278 #endif
6279 int main(void) {}
6282 _live=no
6283 for I in $_inc_extra "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
6284 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6285 $I/groupsock/include && _livelibdir=`echo $I| sed s/-I//` && \
6286 _ld_extra="$_livelibdir/liveMedia/libliveMedia.a \
6287 $_livelibdir/groupsock/libgroupsock.a \
6288 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6289 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6290 $_ld_extra -lstdc++" \
6291 _inc_extraxx="-I$_livelibdir/liveMedia/include \
6292 -I$_livelibdir/UsageEnvironment/include \
6293 -I$_livelibdir/BasicUsageEnvironment/include \
6294 -I$_livelibdir/groupsock/include" && \
6295 _live=yes && break
6296 done
6297 if test "$_live" != yes ; then
6298 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6299 _live_dist=yes
6303 if test "$_live" = yes && test "$_network" = yes; then
6304 _res_comment="using $_livelibdir"
6305 _def_live='#define STREAMING_LIVE555 1'
6306 _inputmodules="live555 $_inputmodules"
6307 elif test "$_live_dist" = yes && test "$_network" = yes; then
6308 _res_comment="using distribution version"
6309 _live="yes"
6310 _def_live='#define STREAMING_LIVE555 1'
6311 _ld_extra="$_ld_extra -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6312 _inc_extraxx="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6313 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6314 _inputmodules="live555 $_inputmodules"
6315 else
6316 _live=no
6317 _def_live='#undef STREAMING_LIVE555'
6318 _noinputmodules="live555 $_noinputmodules"
6320 echores "$_live"
6323 echocheck "FFmpeg libavutil"
6324 if test "$_libavutil_a" = auto ; then
6325 if test -d libavutil ; then
6326 _libavutil_a=yes
6327 _res_comment="static"
6328 else
6329 die "MPlayer will not compile without libavutil in the source tree."
6331 elif test "$_libavutil_so" = auto ; then
6332 _libavutil_so=no
6333 cat > $TMPC << EOF
6334 #include <ffmpeg/common.h>
6335 int main(void) { ff_gcd(1,1); return 0; }
6337 if $_pkg_config --exists libavutil ; then
6338 _inc_libavutil=`$_pkg_config --cflags libavutil`
6339 _ld_tmp=`$_pkg_config --libs libavutil`
6340 cc_check $_inc_libavutil $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6341 && _libavutil_so=yes
6342 elif cc_check -lavutil $_ld_lm ; then
6343 _ld_extra="$_ld_extra -lavutil"
6344 _libavutil_so=yes
6345 _res_comment="using libavutil.so, but static libavutil is recommended"
6348 _libavutil=no
6349 _def_libavutil='#undef USE_LIBAVUTIL'
6350 _def_libavutil_a='#undef USE_LIBAVUTIL_A'
6351 _def_libavutil_so='#undef USE_LIBAVUTIL_SO'
6352 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6353 test "$_libavutil" = yes && _def_libavutil='#define USE_LIBAVUTIL 1'
6354 test "$_libavutil_a" = yes && _def_libavutil_a='#define USE_LIBAVUTIL_A 1'
6355 test "$_libavutil_so" = yes && _def_libavutil_so='#define USE_LIBAVUTIL_SO 1'
6356 # neither static nor shared libavutil is available, but it is mandatory ...
6357 if test "$_libavutil" = no ; then
6358 die "You need static or shared libavutil, MPlayer will not compile without!"
6360 echores "$_libavutil"
6362 echocheck "FFmpeg libavcodec"
6363 if test "$_libavcodec_a" = auto ; then
6364 _libavcodec_a=no
6365 if test -d libavcodec && test -f libavcodec/utils.c ; then
6366 _libavcodec_a="yes"
6367 _res_comment="static"
6369 elif test "$_libavcodec_so" = auto ; then
6370 _libavcodec_so=no
6371 _res_comment="libavcodec.so is discouraged over static libavcodec"
6372 cat > $TMPC << EOF
6373 #include <ffmpeg/avcodec.h>
6374 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6376 if $_pkg_config --exists libavcodec ; then
6377 _inc_libavcodec=`$_pkg_config --cflags libavcodec`
6378 _ld_tmp=`$_pkg_config --libs libavcodec`
6379 cc_check $_inc_libavcodec $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6380 && _libavcodec_so=yes
6381 elif cc_check -lavcodec $_ld_lm ; then
6382 _ld_extra="$_ld_extra -lavcodec"
6383 _libavcodec_so=yes
6384 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6387 _libavcodec=no
6388 _def_libavcodec='#undef USE_LIBAVCODEC'
6389 _def_libavcodec_a='#undef USE_LIBAVCODEC_A'
6390 _def_libavcodec_so='#undef USE_LIBAVCODEC_SO'
6391 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6392 test "$_libavcodec" = yes && _def_libavcodec='#define USE_LIBAVCODEC 1'
6393 test "$_libavcodec_a" = yes && _def_libavcodec_a='#define USE_LIBAVCODEC_A 1'
6394 test "$_libavcodec_so" = yes && _def_libavcodec_so='#define USE_LIBAVCODEC_SO 1'
6395 test "$_libavcodec_mpegaudio_hp" = yes \
6396 && _def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6397 if test "$_libavcodec_a" = yes ; then
6398 _codecmodules="libavcodec $_codecmodules"
6399 elif test "$_libavcodec_so" = yes ; then
6400 _codecmodules="libavcodec.so $_codecmodules"
6401 else
6402 _nocodecmodules="libavcodec $_nocodecmodules"
6404 echores "$_libavcodec"
6406 echocheck "FFmpeg libavformat"
6407 if test "$_libavformat_a" = auto ; then
6408 _libavformat_a=no
6409 if test -d libavformat && test -f libavformat/utils.c ; then
6410 _libavformat_a=yes
6411 _res_comment="static"
6413 elif test "$_libavformat_so" = auto ; then
6414 _libavformat_so=no
6415 cat > $TMPC <<EOF
6416 #include <ffmpeg/avformat.h>
6417 #include <ffmpeg/opt.h>
6418 int main(void) { av_alloc_format_context(); return 0; }
6420 if $_pkg_config --exists libavformat ; then
6421 _inc_libavformat=`$_pkg_config --cflags libavformat`
6422 _ld_tmp=`$_pkg_config --libs libavformat`
6423 cc_check $_inc_libavformat $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6424 && _libavformat_so=yes
6425 elif cc_check $_ld_lm -lavformat ; then
6426 _ld_extra="$_ld_extra -lavformat"
6427 _libavformat_so=yes
6428 _res_comment="using libavformat.so, but static libavformat is recommended"
6431 _libavformat=no
6432 _def_libavformat='#undef USE_LIBAVFORMAT'
6433 _def_libavformat_a='#undef USE_LIBAVFORMAT_A'
6434 _def_libavformat_so='#undef USE_LIBAVFORMAT_SO'
6435 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
6436 test "$_libavformat" = yes && _def_libavformat='#define USE_LIBAVFORMAT 1'
6437 test "$_libavformat_a" = yes && _def_libavformat_a='#define USE_LIBAVFORMAT_A 1'
6438 test "$_libavformat_so" = yes \
6439 && _def_libavformat_so='#define USE_LIBAVFORMAT_SO 1'
6440 echores "$_libavformat"
6442 echocheck "FFmpeg libpostproc"
6443 if test "$_libpostproc_a" = auto ; then
6444 _libpostproc_a=no
6445 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
6446 _libpostproc_a='yes'
6447 _res_comment="static"
6449 elif test "$_libpostproc_so" = auto ; then
6450 _libpostproc_so=no
6451 cat > $TMPC << EOF
6452 #define USE_LIBPOSTPROC 1
6453 #include <inttypes.h>
6454 #include <postproc/postprocess.h>
6455 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6457 if cc_check -lpostproc $_ld_lm ; then
6458 _ld_extra="$_ld_extra -lpostproc"
6459 _libpostproc_so=yes
6460 _res_comment="using libpostproc.so, but static libpostproc is recommended"
6463 _libpostproc=no
6464 _def_libpostproc='#undef USE_LIBPOSTPROC'
6465 _def_libpostproc_a='#undef USE_LIBPOSTPROC_A'
6466 _def_libpostproc_so='#undef USE_LIBPOSTPROC_SO'
6467 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
6468 test "$_libpostproc" = yes && _def_libpostproc='#define USE_LIBPOSTPROC 1'
6469 test "$_libpostproc_a" = yes && _def_libpostproc_a='#define USE_LIBPOSTPROC_A 1'
6470 test "$_libpostproc_so" = yes \
6471 && _def_libpostproc_so='#define USE_LIBPOSTPROC_SO 1'
6472 echores "$_libpostproc"
6475 echocheck "libamr narrowband"
6476 if test "$_libamr_nb" = auto ; then
6477 _libamr_nb=no
6478 cat > $TMPC << EOF
6479 #include <amrnb/interf_dec.h>
6480 int main(void) { Speech_Decode_Frame_init(); return 0; }
6482 cc_check -lamrnb && _libamr_nb=yes
6483 if test "$_libavcodec_a" != yes ; then
6484 _libamr_nb=no
6485 _res_comment="libavcodec (static) is required by libamr_nb, sorry"
6488 if test "$_libamr_nb" = yes ; then
6489 _libamr=yes
6490 _ld_extra="$_ld_extra -lamrnb"
6491 _def_libamr='#define CONFIG_LIBAMR 1'
6492 _def_libamr_nb='#define CONFIG_LIBAMR_NB 1'
6493 _codecmodules="libamr_nb $_codecmodules"
6494 else
6495 _def_libamr_nb='#undef CONFIG_LIBAMR_NB'
6496 _libavdecoders=`echo $_libavdecoders | sed -e s/LIBAMR_NB_DECODER// `
6497 _libavencoders=`echo $_libavencoders | sed -e s/LIBAMR_NB_ENCODER// `
6498 _nocodecmodules="libamr_nb $_nocodecmodules"
6500 echores "$_libamr_nb"
6503 echocheck "libamr wideband"
6504 if test "$_libamr_wb" = auto ; then
6505 _libamr_wb=no
6506 cat > $TMPC << EOF
6507 #include <amrwb/dec_if.h>
6508 int main(void) { D_IF_init(); return 0; }
6510 cc_check -lamrwb && _libamr_wb=yes
6511 if test "$_libavcodec_a" != yes ; then
6512 _libamr_wb=no
6513 _res_comment="libavcodec (static) is required by libamr_wb, sorry"
6516 if test "$_libamr_wb" = yes ; then
6517 _libamr=yes
6518 _ld_extra="$_ld_extra -lamrwb"
6519 _def_libamr='#define CONFIG_LIBAMR 1'
6520 _def_libamr_wb='#define CONFIG_LIBAMR_WB 1'
6521 _codecmodules="libamr_wb $_codecmodules"
6522 else
6523 _def_libamr_wb='#undef CONFIG_LIBAMR_WB'
6524 _libavdecoders=`echo $_libavdecoders | sed -e s/LIBAMR_WB_DECODER// `
6525 _libavencoders=`echo $_libavencoders | sed -e s/LIBAMR_WB_ENCODER// `
6526 _nocodecmodules="libamr_wb $_nocodecmodules"
6528 echores "$_libamr_wb"
6530 echocheck "libdv-0.9.5+"
6531 if test "$_libdv" = auto ; then
6532 _libdv=no
6533 cat > $TMPC <<EOF
6534 #include <libdv/dv.h>
6535 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6537 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6539 if test "$_libdv" = yes ; then
6540 _def_libdv='#define HAVE_LIBDV095 1'
6541 _ld_extra="$_ld_extra -ldv"
6542 _codecmodules="libdv $_codecmodules"
6543 else
6544 _def_libdv='#undef HAVE_LIBDV095'
6545 _nocodecmodules="libdv $_nocodecmodules"
6547 echores "$_libdv"
6550 echocheck "XviD"
6551 if test "$_xvid" = auto ; then
6552 _xvid=no
6553 cat > $TMPC << EOF
6554 #include <xvid.h>
6555 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6557 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6558 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && _xvid=yes && break
6559 done
6562 if test "$_xvid" = yes ; then
6563 _def_xvid='#define HAVE_XVID4 1'
6564 _codecmodules="xvid $_codecmodules"
6565 else
6566 _def_xvid='#undef HAVE_XVID4'
6567 _nocodecmodules="xvid $_nocodecmodules"
6568 _libavencoders=`echo $_libavencoders | sed -e s/LIBXVID_ENCODER// `
6570 echores "$_xvid"
6572 if test "$_xvid" = yes ; then
6573 echocheck "XviD two pass plugin"
6574 cat > $TMPC << EOF
6575 #include <xvid.h>
6576 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
6578 if cc_check ; then
6579 _lavc_xvid=yes
6580 _def_lavc_xvid='#define CONFIG_LIBXVID 1'
6581 else
6582 _lavc_xvid=no
6583 _def_lavc_xvid='#undef CONFIG_LIBXVID'
6584 _libavencoders=`echo $_libavencoders | sed -e s/LIBXVID_ENCODER// `
6586 echores "$_lavc_xvid"
6590 echocheck "x264"
6591 if test "$_x264" = auto ; then
6592 cat > $TMPC << EOF
6593 #include <inttypes.h>
6594 #include <x264.h>
6595 #if X264_BUILD < 53
6596 #error We do not support old versions of x264. Get the latest from SVN.
6597 #endif
6598 int main(void) { x264_encoder_open((void*)0); return 0; }
6600 _x264=no
6601 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6602 cc_check $_ld_x264 && _libs_mencoder="$_libs_mencoder $_ld_x264" && _x264=yes && break
6603 done
6606 if test "$_x264" = yes ; then
6607 _def_x264='#define HAVE_X264 1'
6608 _codecmodules="x264 $_codecmodules"
6609 if echo $_libavencoders | grep -q X264 ; then
6610 _lavc_x264=yes
6611 _def_lavc_x264='#define CONFIG_LIBX264 1'
6612 _libs_mplayer="$_libs_mplayer $_ld_x264"
6613 else
6614 _lavc_x264=no
6615 _def_lavc_x264='#undef CONFIG_LIBX264'
6617 else
6618 _lavc_x264=no
6619 _def_x264='#undef HAVE_X264'
6620 _def_lavc_x264='#undef CONFIG_LIBX264'
6621 _nocodecmodules="x264 $_nocodecmodules"
6622 _libavencoders=`echo $_libavencoders | sed -e s/LIBX264_ENCODER// `
6624 echores "$_x264 (in libavcodec: $_lavc_x264)"
6627 echocheck "libnut"
6628 if test "$_libnut" = auto ; then
6629 cat > $TMPC << EOF
6630 #include <stdio.h>
6631 #include <stdlib.h>
6632 #include <inttypes.h>
6633 #include <libnut.h>
6634 int main(void) { (void)nut_error(0); return 0; }
6636 _libnut=no
6637 cc_check -lnut && _libnut=yes
6640 if test "$_libnut" = yes ; then
6641 _def_libnut='#define HAVE_LIBNUT 1'
6642 _ld_extra="$_ld_extra -lnut"
6643 else
6644 _def_libnut='#undef HAVE_LIBNUT'
6645 _libavmuxers=`echo $_libavmuxers | sed -e s/LIBNUT_MUXER// `
6647 echores "$_libnut"
6649 #check must be done after libavcodec one
6650 echocheck "zr"
6651 if test "$_zr" = auto ; then
6652 #36067's seem to identify themselves as 36057PQC's, so the line
6653 #below should work for 36067's and 36057's.
6654 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
6655 _zr=yes
6656 else
6657 _zr=no
6660 if test "$_zr" = yes ; then
6661 if test "$_libavcodec_a" = yes ; then
6662 _def_zr='#define HAVE_ZR 1'
6663 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6664 _vomodules="zr zr2 $_vomodules"
6665 else
6666 _res_comment="libavcodec (static) is required by zr, sorry"
6667 _novomodules="zr $_novomodules"
6668 _def_zr='#undef HAVE_ZR'
6670 else
6671 _def_zr='#undef HAVE_ZR'
6672 _novomodules="zr zr2 $_novomodules"
6674 echores "$_zr"
6676 # mencoder requires (optional) those libs: libmp3lame
6677 if test "$_mencoder" != no ; then
6679 echocheck "libmp3lame (for mencoder)"
6680 _mp3lame=no
6681 _def_mp3lame_preset='#undef HAVE_MP3LAME_PRESET'
6682 _def_mp3lame_preset_medium='#undef HAVE_MP3LAME_PRESET_MEDIUM'
6683 cat > $TMPC <<EOF
6684 #include <lame/lame.h>
6685 int main(void) { lame_version_t lv; (void) lame_init(); get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor); return 0; }
6687 # Note: libmp3lame usually depends on vorbis
6688 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
6689 if test "$_mp3lame" = yes ; then
6690 _def_mp3lame="#define HAVE_MP3LAME"
6691 _ld_mp3lame=-lmp3lame
6692 _libs_mencoder="$_libs_mencoder $_ld_mp3lame"
6693 cat > $TMPC << EOF
6694 #include <lame/lame.h>
6695 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
6697 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset="#define HAVE_MP3LAME_PRESET"
6698 cat > $TMPC << EOF
6699 #include <lame/lame.h>
6700 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
6702 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset_medium="#define HAVE_MP3LAME_PRESET_MEDIUM"
6703 if echo $_libavencoders | grep -q MP3LAME ; then
6704 _lavc_mp3lame=yes
6705 _def_lavc_mp3lame="#define CONFIG_LIBMP3LAME 1"
6706 _libs_mplayer="$_libs_mplayer $_ld_mp3lame"
6707 else
6708 _lavc_mp3lame=no
6709 _def_lavc_mp3lame="#undef CONFIG_LIBMP3LAME"
6711 else
6712 _def_mp3lame='#undef HAVE_MP3LAME'
6713 _libavencoders=`echo $_libavencoders | sed -e s/MP3LAME_ENCODER// `
6715 echores "$_mp3lame"
6719 echocheck "mencoder"
6720 _mencoder_flag='#undef HAVE_MENCODER'
6721 if test "$_mencoder" = yes ; then
6722 _mencoder_flag='#define HAVE_MENCODER'
6723 _def_muxers='#define CONFIG_MUXERS 1'
6724 else
6725 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint
6726 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
6727 _libavmuxers=""
6729 echores "$_mencoder"
6731 echocheck "fastmemcpy"
6732 # fastmemcpy check is done earlier with tests of CPU & binutils features
6733 if test "$_fastmemcpy" = yes ; then
6734 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6735 else
6736 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6738 echores "$_fastmemcpy"
6741 echocheck "UnRAR executable"
6742 if test "$_unrar_exec" = auto ; then
6743 _unrar_exec="yes"
6744 mingw32 && _unrar_exec="no"
6746 if test "$_unrar_exec" = yes ; then
6747 _def_unrar_exec='#define USE_UNRAR_EXEC 1'
6748 else
6749 _def_unrar_exec='#undef USE_UNRAR_EXEC'
6751 echores "$_unrar_exec"
6753 echocheck "TV interface"
6754 if test "$_tv" = yes ; then
6755 _def_tv='#define USE_TV 1'
6756 _inputmodules="tv $_inputmodules"
6757 else
6758 _noinputmodules="tv $_noinputmodules"
6759 _def_tv='#undef USE_TV'
6761 echores "$_tv"
6764 if bsd; then
6765 echocheck "*BSD BT848 bt8xx header"
6766 _ioctl_bt848_h=no
6767 for file in "machine/ioctl_bt848.h" \
6768 "dev/bktr/ioctl_bt848.h" \
6769 "dev/video/bktr/ioctl_bt848.h" \
6770 "dev/ic/bt8xx.h" ; do
6771 cat > $TMPC <<EOF
6772 #include <sys/types.h>
6773 #include <sys/ioctl.h>
6774 #include <$file>
6775 int main(void) {
6776 ioctl(0, TVTUNER_GETFREQ, 0);
6777 return 0;
6780 if cc_check ; then
6781 _ioctl_bt848_h=yes
6782 _ioctl_bt848_h_name="$file"
6783 break;
6785 done
6786 if test "$_ioctl_bt848_h" = yes ; then
6787 _def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6788 _res_comment="using $_ioctl_bt848_h_name"
6789 else
6790 _def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6792 echores "$_ioctl_bt848_h"
6794 echocheck "*BSD ioctl_meteor.h"
6795 _ioctl_meteor_h=no
6796 for file in "machine/ioctl_meteor.h" \
6797 "dev/bktr/ioctl_meteor.h" \
6798 "dev/video/bktr/ioctl_meteor.h" ; do
6799 cat > $TMPC <<EOF
6800 #include <sys/types.h>
6801 #include <$file>
6802 int main(void) {
6803 ioctl(0, METEORSINPUT, 0);
6804 return 0;
6807 if cc_check ; then
6808 _ioctl_meteor_h=yes
6809 _ioctl_meteor_h_name="$file"
6810 break;
6812 done
6813 if test "$_ioctl_meteor_h" = yes ; then
6814 _def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
6815 _res_comment="using $_ioctl_meteor_h_name"
6816 else
6817 _def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6819 echores "$_ioctl_meteor_h"
6821 echocheck "*BSD BrookTree 848 TV interface"
6822 if test "$_tv_bsdbt848" = auto ; then
6823 _tv_bsdbt848=no
6824 if test "$_tv" = yes ; then
6825 cat > $TMPC <<EOF
6826 #include <sys/types.h>
6827 $_def_ioctl_meteor_h_name
6828 $_def_ioctl_bt848_h_name
6829 #ifdef IOCTL_METEOR_H_NAME
6830 #include IOCTL_METEOR_H_NAME
6831 #endif
6832 #ifdef IOCTL_BT848_H_NAME
6833 #include IOCTL_BT848_H_NAME
6834 #endif
6835 int main(void){
6836 ioctl(0, METEORSINPUT, 0);
6837 ioctl(0, TVTUNER_GETFREQ, 0);
6838 return 0;
6841 cc_check && _tv_bsdbt848=yes
6844 if test "$_tv_bsdbt848" = yes ; then
6845 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6846 _inputmodules="tv-bsdbt848 $_inputmodules"
6847 else
6848 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6849 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6851 echores "$_tv_bsdbt848"
6852 fi #if bsd
6855 echocheck "DirectShow TV interface"
6856 if test "$_tv_dshow" = auto ; then
6857 _tv_dshow=no
6858 if test "$_tv" = yes && win32 ; then
6859 cat > $TMPC <<EOF
6860 #include <ole2.h>
6861 int main(void) {
6862 void* p;
6863 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
6864 return 0;
6867 cc_check -lole32 -luuid && _tv_dshow=yes
6870 if test "$_tv_dshow" = yes ; then
6871 _inputmodules="tv-dshow $_inputmodules"
6872 _def_tv_dshow='#define HAVE_TV_DSHOW 1'
6873 _ld_extra="$_ld_extra -lole32 -luuid"
6874 else
6875 _noinputmodules="tv-dshow $_noinputmodules"
6876 _def_tv_dshow='#undef HAVE_TV_DSHOW'
6878 echores "$_tv_dshow"
6881 echocheck "Video 4 Linux TV interface"
6882 if test "$_tv_v4l1" = auto ; then
6883 _tv_v4l1=no
6884 if test "$_tv" = yes && linux ; then
6885 cat > $TMPC <<EOF
6886 #include <stdlib.h>
6887 #include <linux/videodev.h>
6888 int main(void) { return 0; }
6890 cc_check && _tv_v4l1=yes
6893 if test "$_tv_v4l1" = yes ; then
6894 _audio_input=yes
6895 _tv_v4l=yes
6896 _def_tv_v4l='#define HAVE_TV_V4L 1'
6897 _def_tv_v4l1='#define HAVE_TV_V4L1 1'
6898 _inputmodules="tv-v4l $_inputmodules"
6899 else
6900 _noinputmodules="tv-v4l1 $_noinputmodules"
6901 _def_tv_v4l='#undef HAVE_TV_V4L'
6903 echores "$_tv_v4l1"
6906 echocheck "Video 4 Linux 2 TV interface"
6907 if test "$_tv_v4l2" = auto ; then
6908 _tv_v4l2=no
6909 if test "$_tv" = yes && linux ; then
6910 cat > $TMPC <<EOF
6911 #include <stdlib.h>
6912 #include <linux/types.h>
6913 #include <linux/videodev2.h>
6914 int main(void) { return 0; }
6916 cc_check && _tv_v4l2=yes
6919 if test "$_tv_v4l2" = yes ; then
6920 _audio_input=yes
6921 _tv_v4l=yes
6922 _def_tv_v4l='#define HAVE_TV_V4L 1'
6923 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6924 _inputmodules="tv-v4l2 $_inputmodules"
6925 else
6926 _noinputmodules="tv-v4l2 $_noinputmodules"
6927 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6929 echores "$_tv_v4l2"
6932 echocheck "TV teletext interface"
6933 if test "$_tv_teletext" = auto ; then
6934 _tv_teletext=no
6935 if test "$_freetype" = yes && test "$_pthreads" = yes; then
6936 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
6937 _tv_teletext=yes
6941 if test "$_tv_teletext" = yes ; then
6942 _def_tv_teletext='#define HAVE_TV_TELETEXT 1'
6943 _inputmodules="tv-teletext $_inputmodules"
6944 else
6945 _noinputmodules="tv-teletext $_noinputmodules"
6946 _def_tv_teletext='#undef HAVE_TV_TELETEXT'
6948 echores "$_tv_teletext"
6951 echocheck "Radio interface"
6952 if test "$_radio" = yes ; then
6953 _def_radio='#define USE_RADIO 1'
6954 _inputmodules="radio $_inputmodules"
6955 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6956 _radio_capture=no
6958 if test "$_radio_capture" = yes ; then
6959 _audio_input=yes
6960 _def_radio_capture="#define USE_RADIO_CAPTURE 1"
6961 else
6962 _def_radio_capture="#undef USE_RADIO_CAPTURE"
6964 else
6965 _noinputmodules="radio $_noinputmodules"
6966 _def_radio='#undef USE_RADIO'
6967 _def_radio_capture="#undef USE_RADIO_CAPTURE"
6968 _radio_capture=no
6970 echores "$_radio"
6971 echocheck "Capture for Radio interface"
6972 echores "$_radio_capture"
6974 echocheck "Video 4 Linux 2 Radio interface"
6975 if test "$_radio_v4l2" = auto ; then
6976 _radio_v4l2=no
6977 if test "$_radio" = yes && linux ; then
6978 cat > $TMPC <<EOF
6979 #include <stdlib.h>
6980 #include <linux/types.h>
6981 #include <linux/videodev2.h>
6982 int main(void) { return 0; }
6984 cc_check && _radio_v4l2=yes
6987 if test "$_radio_v4l2" = yes ; then
6988 _def_radio_v4l2='#define HAVE_RADIO_V4L2 1'
6989 else
6990 _def_radio_v4l2='#undef HAVE_RADIO_V4L2'
6992 echores "$_radio_v4l2"
6994 echocheck "Video 4 Linux Radio interface"
6995 if test "$_radio_v4l" = auto ; then
6996 _radio_v4l=no
6997 if test "$_radio" = yes && linux ; then
6998 cat > $TMPC <<EOF
6999 #include <stdlib.h>
7000 #include <linux/videodev.h>
7001 int main(void) { return 0; }
7003 cc_check && _radio_v4l=yes
7006 if test "$_radio_v4l" = yes ; then
7007 _def_radio_v4l='#define HAVE_RADIO_V4L 1'
7008 else
7009 _def_radio_v4l='#undef HAVE_RADIO_V4L'
7011 echores "$_radio_v4l"
7013 if bsd && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7014 echocheck "*BSD BrookTree 848 Radio interface"
7015 _radio_bsdbt848=no
7016 cat > $TMPC <<EOF
7017 #include <sys/types.h>
7018 $_def_ioctl_bt848_h_name
7019 #ifdef IOCTL_BT848_H_NAME
7020 #include IOCTL_BT848_H_NAME
7021 #endif
7022 int main(void){
7023 ioctl(0, RADIO_GETFREQ, 0);
7024 return 0;
7027 cc_check && _radio_bsdbt848=yes
7028 echores "$_radio_bsdbt848"
7029 fi #if bsd && radio && radio_bsdbt848
7031 if test "$_radio_bsdbt848" = yes ; then
7032 _def_radio_bsdbt848='#define HAVE_RADIO_BSDBT848 1'
7033 else
7034 _def_radio_bsdbt848='#undef HAVE_RADIO_BSDBT848'
7037 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7038 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7039 die "Radio driver requires BSD BT848, V4L or V4L2!"
7042 echocheck "Video 4 Linux 2 MPEG PVR interface"
7043 if test "$_pvr" = auto ; then
7044 _pvr=no
7045 if test "$_tv_v4l2" = yes && linux ; then
7046 cat > $TMPC <<EOF
7047 #include <stdlib.h>
7048 #include <inttypes.h>
7049 #include <linux/types.h>
7050 #include <linux/videodev2.h>
7051 int main(void) { struct v4l2_ext_controls ext; return 0; }
7053 cc_check && _pvr=yes
7056 if test "$_pvr" = yes ; then
7057 _def_pvr='#define HAVE_PVR 1'
7058 _inputmodules="pvr $_inputmodules"
7059 else
7060 _noinputmodules="pvr $_noinputmodules"
7061 _def_pvr='#undef HAVE_PVR'
7063 echores "$_pvr"
7066 echocheck "audio select()"
7067 if test "$_select" = no ; then
7068 _def_select='#undef HAVE_AUDIO_SELECT'
7069 elif test "$_select" = yes ; then
7070 _def_select='#define HAVE_AUDIO_SELECT 1'
7072 echores "$_select"
7075 echocheck "ftp"
7076 if ! beos && test "$_ftp" = yes ; then
7077 _def_ftp='#define HAVE_FTP 1'
7078 _inputmodules="ftp $_inputmodules"
7079 else
7080 _noinputmodules="ftp $_noinputmodules"
7081 _def_ftp='#undef HAVE_FTP'
7083 echores "$_ftp"
7085 echocheck "vstream client"
7086 if test "$_vstream" = auto ; then
7087 _vstream=no
7088 cat > $TMPC <<EOF
7089 #include <vstream-client.h>
7090 void vstream_error(const char *format, ... ) {}
7091 int main(void) { vstream_start(); return 0; }
7093 cc_check -lvstream-client && _vstream=yes
7095 if test "$_vstream" = yes ; then
7096 _def_vstream='#define HAVE_VSTREAM 1'
7097 _inputmodules="vstream $_inputmodules"
7098 _ld_extra="$_ld_extra -lvstream-client"
7099 else
7100 _noinputmodules="vstream $_noinputmodules"
7101 _def_vstream='#undef HAVE_VSTREAM'
7103 echores "$_vstream"
7105 # endian testing
7106 echocheck "byte order"
7107 if test "$_big_endian" = auto ; then
7108 cat > $TMPC <<EOF
7109 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
7110 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
7111 int main(void){
7112 return (int)ascii_name;
7115 if cc_check ; then
7116 if strings $TMPEXE | grep -l MPlayerBigEndian >/dev/null ; then
7117 _big_endian=yes
7118 else
7119 _big_endian=no
7121 else
7122 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
7125 if test "$_big_endian" = yes ; then
7126 _byte_order='big-endian'
7127 _def_words_endian='#define WORDS_BIGENDIAN 1'
7128 else
7129 _byte_order='little-endian'
7130 _def_words_endian='#undef WORDS_BIGENDIAN'
7132 echores "$_byte_order"
7134 echocheck "OSD menu"
7135 if test "$_menu" = yes ; then
7136 _def_menu='#define HAVE_MENU 1'
7137 else
7138 _def_menu='#undef HAVE_MENU'
7140 echores "$_menu"
7143 echocheck "Subtitles sorting"
7144 if test "$_sortsub" = yes ; then
7145 _def_sortsub='#define USE_SORTSUB 1'
7146 else
7147 _def_sortsub='#undef USE_SORTSUB'
7149 echores "$_sortsub"
7152 echocheck "XMMS inputplugin support"
7153 if test "$_xmms" = yes ; then
7154 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7155 _xmmsplugindir=`xmms-config --input-plugin-dir`
7156 _xmmslibdir=`xmms-config --exec-prefix`/lib
7157 else
7158 _xmmsplugindir=/usr/lib/xmms/Input
7159 _xmmslibdir=/usr/lib
7162 _def_xmms='#define HAVE_XMMS 1'
7163 if darwin ; then
7164 _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.dylib"
7165 else
7166 _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7168 else
7169 _def_xmms='#undef HAVE_XMMS'
7171 echores "$_xmms"
7173 echocheck "inet6"
7174 if test "$_inet6" = auto ; then
7175 cat > $TMPC << EOF
7176 #include <sys/types.h>
7177 #if !defined(_WIN32) || defined(__CYGWIN__)
7178 #include <sys/socket.h>
7179 #include <netinet/in.h>
7180 #else
7181 #include <ws2tcpip.h>
7182 #endif
7183 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); }
7185 _inet6=no
7186 if cc_check $_ld_sock ; then
7187 _inet6=yes
7190 if test "$_inet6" = yes ; then
7191 _def_inet6='#define HAVE_AF_INET6 1'
7192 else
7193 _def_inet6='#undef HAVE_AF_INET6'
7195 echores "$_inet6"
7198 echocheck "gethostbyname2"
7199 if test "$_gethostbyname2" = auto ; then
7200 cat > $TMPC << EOF
7201 #include <sys/types.h>
7202 #include <sys/socket.h>
7203 #include <netdb.h>
7204 int main(void) { gethostbyname2("", AF_INET); }
7206 _gethostbyname2=no
7207 if cc_check ; then
7208 _gethostbyname2=yes
7212 if test "$_gethostbyname2" = yes ; then
7213 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
7214 else
7215 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
7217 echores "$_gethostbyname2"
7220 # --------------- GUI specific tests begin -------------------
7221 echocheck "GUI"
7222 echo "$_gui"
7223 if test "$_gui" = yes ; then
7225 # Required libraries
7226 if test "$_libavcodec" != yes ||
7227 ! echo $_libavdecoders | grep PNG_DECODER >/dev/null 2>&1 ; then
7228 die "The GUI requires libavcodec with PNG support (needs zlib)."
7230 test "$_freetype" = no && test "$_bitmap_font" = no && \
7231 die "The GUI requires either FreeType or bitmap font support."
7232 if ! win32 ; then
7233 test "$_x11" != yes && die "X11 support required for GUI compilation."
7235 echocheck "XShape extension"
7236 if test "$_xshape" = auto ; then
7237 _xshape=no
7238 cat > $TMPC << EOF
7239 #include <X11/Xlib.h>
7240 #include <X11/Xproto.h>
7241 #include <X11/Xutil.h>
7242 #include <X11/extensions/shape.h>
7243 #include <stdlib.h>
7244 int main(void) {
7245 char *name = ":0.0";
7246 Display *wsDisplay;
7247 int exitvar = 0;
7248 int eventbase, errorbase;
7249 if (getenv("DISPLAY"))
7250 name=getenv("DISPLAY");
7251 wsDisplay=XOpenDisplay(name);
7252 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7253 exitvar=1;
7254 XCloseDisplay(wsDisplay);
7255 return exitvar;
7258 cc_check -lXext && _xshape=yes
7260 if test "$_xshape" = yes ; then
7261 _def_xshape='#define HAVE_XSHAPE 1'
7262 else
7263 die "The GUI requires the X11 extension XShape (which was not found)."
7265 echores "$_xshape"
7267 #Check for GTK
7268 if test "$_gtk1" = no ; then
7269 #Check for GTK2 :
7270 echocheck "GTK+ version"
7272 if $_pkg_config gtk+-2.0 --exists ; then
7273 _gtk=`$_pkg_config gtk+-2.0 --modversion 2>/dev/null`
7274 _inc_extra="$_inc_extra `$_pkg_config gtk+-2.0 --cflags 2>/dev/null`"
7275 _libs_mplayer="$_libs_mplayer `$_pkg_config gtk+-2.0 --libs 2>/dev/null`"
7276 echores "$_gtk"
7278 # Check for GLIB2
7279 if $_pkg_config glib-2.0 --exists ; then
7280 echocheck "glib version"
7281 _glib=`$_pkg_config glib-2.0 --modversion 2>/dev/null`
7282 _libs_mplayer="$_libs_mplayer `$_pkg_config glib-2.0 --libs 2>/dev/null`"
7283 echores "$_glib"
7285 _def_gui='#define HAVE_NEW_GUI 1'
7286 _def_gtk2_gui='#define HAVE_GTK2_GUI 1'
7287 else
7288 _gtk1=yes
7289 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7291 else
7292 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7293 _gtk1=yes
7297 if test "$_gtk1" = yes ; then
7298 # Check for old GTK (1.2.x)
7299 echocheck "GTK version"
7300 if test -z "$_gtkconfig" ; then
7301 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7302 _gtkconfig="gtk-config"
7303 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7304 _gtkconfig="gtk12-config"
7305 else
7306 die "The GUI requires GTK devel packages (which were not found)."
7309 _gtk=`$_gtkconfig --version 2>&1`
7310 _inc_extra="$_inc_extra `$_gtkconfig --cflags 2>&1`"
7311 _libs_mplayer="$_libs_mplayer `$_gtkconfig --libs 2>&1`"
7312 echores "$_gtk (using $_gtkconfig)"
7314 # Check for GLIB
7315 echocheck "glib version"
7316 if test -z "$_glibconfig" ; then
7317 if ( glib-config --version ) >/dev/null 2>&1 ; then
7318 _glibconfig="glib-config"
7319 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7320 _glibconfig="glib12-config"
7321 else
7322 die "The GUI requires GLIB devel packages (which were not found)"
7325 _glib=`$_glibconfig --version 2>&1`
7326 _libs_mplayer="$_libs_mplayer `$_glibconfig --libs 2>&1`"
7327 echores "$_glib (using $_glibconfig)"
7329 _def_gui='#define HAVE_NEW_GUI 1'
7330 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7333 else #if ! win32
7334 _libs_mplayer="$_libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7335 _def_gui='#define HAVE_NEW_GUI 1'
7336 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7337 fi #if ! win32
7339 else #if test "$_gui"
7340 _def_gui='#undef HAVE_NEW_GUI'
7341 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7342 fi #if test "$_gui"
7343 # --------------- GUI specific tests end -------------------
7346 if test "$_charset" = "noconv" ; then
7347 _charset=""
7349 if test "$_charset" ; then
7350 _def_charset="#define MSG_CHARSET \"$_charset\""
7351 else
7352 _def_charset="#undef MSG_CHARSET"
7355 if test "$_charset" = "UTF-8" ; then
7356 # hack to disable conversion in the Makefile
7357 _charset=""
7360 if test "$_charset" ; then
7361 echocheck "iconv program"
7362 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7363 if test "$?" -ne 0 ; then
7364 echores "no"
7365 echo "No working iconv program found, use "
7366 echo "--charset=UTF-8 to continue anyway."
7367 echo "If you also have problems with iconv library functions use --charset=noconv."
7368 echo "Messages in the GTK-2 interface will be broken then."
7369 exit 1
7370 else
7371 echores "yes"
7375 #############################################################################
7377 echocheck "automatic gdb attach"
7378 if test "$_crash_debug" = yes ; then
7379 _def_crash_debug='#define CRASH_DEBUG 1'
7380 else
7381 _def_crash_debug='#undef CRASH_DEBUG'
7382 _crash_debug=no
7384 echores "$_crash_debug"
7386 echocheck "compiler support for noexecstack"
7387 cat > $TMPC <<EOF
7388 int main(void) { return 0; }
7390 if cc_check -Wl,-z,noexecstack ; then
7391 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
7392 echores "yes"
7393 else
7394 echores "no"
7398 # Dynamic linking flags
7399 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7400 _ld_dl_dynamic=''
7401 bsd && _ld_dl_dynamic='-rdynamic'
7402 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin ; then
7403 _ld_dl_dynamic='-rdynamic'
7406 _ld_extra="$_ld_extra $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7407 bsdos && _ld_extra="$_ld_extra -ldvd"
7408 netbsd && x86_32 && _ld_extra="$_ld_extra -li386"
7409 openbsd && x86_32 && _ld_extra="$_ld_extra -li386"
7411 _def_debug='#undef MP_DEBUG'
7412 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
7414 _def_linux='#undef TARGET_LINUX'
7415 linux && _def_linux='#define TARGET_LINUX 1'
7418 echocheck "joystick"
7419 _def_joystick='#undef HAVE_JOYSTICK'
7420 if test "$_joystick" = yes ; then
7421 if linux ; then
7422 # TODO add some check
7423 _def_joystick='#define HAVE_JOYSTICK 1'
7424 else
7425 _joystick="no (unsupported under $system_name)"
7428 echores "$_joystick"
7430 echocheck "lirc"
7431 if test "$_lirc" = auto ; then
7432 _lirc=no
7433 cat > $TMPC <<EOF
7434 #include <lirc/lirc_client.h>
7435 int main(void) { return 0; }
7437 cc_check -llirc_client && _lirc=yes
7439 if test "$_lirc" = yes ; then
7440 _def_lirc='#define HAVE_LIRC 1'
7441 _ld_extra="$_ld_extra -llirc_client"
7442 else
7443 _def_lirc='#undef HAVE_LIRC'
7445 echores "$_lirc"
7447 echocheck "lircc"
7448 if test "$_lircc" = auto ; then
7449 _lircc=no
7450 cat > $TMPC <<EOF
7451 #include <lirc/lircc.h>
7452 int main(void) { return 0; }
7454 cc_check -llircc && _lircc=yes
7456 if test "$_lircc" = yes ; then
7457 _def_lircc='#define HAVE_LIRCC 1'
7458 _ld_extra="$_ld_extra -llircc"
7459 else
7460 _def_lircc='#undef HAVE_LIRCC'
7462 echores "$_lircc"
7464 if arm; then
7465 # Detect maemo development platform libraries availability (http://www.maemo.org),
7466 # they are used when run on Nokia 770
7467 echocheck "maemo (Nokia 770)"
7468 if test "$_maemo" = auto ; then
7469 _maemo=no
7470 cat > $TMPC << EOF
7471 #include <libosso.h>
7472 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7474 cc_check `$_pkg_config --cflags --libs libosso 2>/dev/null` && _maemo=yes
7476 if test "$_maemo" = yes ; then
7477 _def_maemo='#define HAVE_MAEMO 1'
7478 _inc_extra="$_inc_extra `$_pkg_config --cflags libosso`"
7479 _ld_extra="$_ld_extra `$_pkg_config --libs libosso` -lXsp"
7480 else
7481 _def_maemo='#undef HAVE_MAEMO'
7483 echores "$_maemo"
7486 echocheck "color console output"
7487 if test "$_color_console" = yes ; then
7488 _def_color_console='#define MSG_USE_COLORS 1'
7489 else
7490 _def_color_console='#undef MSG_USE_COLORS'
7492 echores "$_color_console"
7494 # linker paths should be the same for mencoder and mplayer
7495 _ld_tmp=""
7496 for I in $_libs_mplayer ; do
7497 _tmp=`echo $I | sed -e 's/^-L.*$//'`
7498 if test -z "$_tmp" ; then
7499 _ld_extra="$I $_ld_extra"
7500 else
7501 _ld_tmp="$_ld_tmp $I"
7503 done
7504 _libs_mplayer=$_ld_tmp
7507 #############################################################################
7508 if darwin ; then
7509 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -shared-libgcc"
7510 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
7511 CFLAGS="$CFLAGS -no-cpp-precomp"
7514 if amigaos ; then
7515 CFLAGS="$CFLAGS -DNEWLIB -D__USE_INLINE__"
7517 if hpux ; then
7518 # use flag for HPUX missing setenv()
7519 CFLAGS="$CFLAGS -DHPUX"
7521 # Thread support
7522 if linux ; then
7523 CFLAGS="$CFLAGS -D_REENTRANT"
7524 elif bsd ; then
7525 # FIXME bsd needs this so maybe other OS'es
7526 CFLAGS="$CFLAGS -D_THREAD_SAFE"
7528 if cygwin ; then
7529 CFLAGS="$CFLAGS -D__CYGWIN__"
7531 # 64 bit file offsets?
7532 if test "$_largefiles" = yes || freebsd ; then
7533 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7534 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7535 # dvdread support requires this (for off64_t)
7536 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7537 cygwin && CFLAGS="$CFLAGS -DSYS_CYGWIN"
7541 # Make sure config.h gets included.
7542 if test "$_dvdread_internal" = yes || test "$_faad_internal" = yes ; then
7543 CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
7546 CFLAGS="-I. -I.. -I../libavutil $CFLAGS"
7547 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
7549 cat > $TMPC << EOF
7550 int main(void) { return 0; }
7552 if test "$cc_vendor" = "gnu" ; then
7553 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
7554 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
7555 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
7559 #this must be the last test to be performed or the ones following it will likely fail
7560 #because libdvdnavmini is intentionally not linked against libdvdread (to permit mplayer
7561 # to use its own copy of the library)
7562 echocheck "DVD support (libdvdnav)"
7563 if test "$_dvdnav" = auto ; then
7564 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7566 if test "$_dvdnav" = auto ; then
7567 cat > $TMPC <<EOF
7568 #include <inttypes.h>
7569 #include <dvdnav/dvdnav.h>
7570 int main(void) { dvdnav_t *dvd=0; return 0; }
7572 _dvdnav=no
7573 _dvdnavdir=`$_dvdnavconfig --cflags`
7574 _dvdnavlibs=`$_dvdnavconfig --libs`
7575 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7577 if test "$_dvdnav" = yes ; then
7578 _largefiles=yes
7579 _def_dvdnav='#define USE_DVDNAV 1'
7580 _inc_extra="$_inc_extra `$_dvdnavconfig --cflags`"
7581 _ld_extra="$_ld_extra `$_dvdnavconfig --minilibs`"
7582 _inputmodules="dvdnav $_inputmodules"
7583 else
7584 _def_dvdnav='#undef USE_DVDNAV'
7585 _noinputmodules="dvdnav $_noinputmodules"
7587 echores "$_dvdnav"
7589 #############################################################################
7590 echo "Creating config.mak"
7591 cat > config.mak << EOF
7592 # -------- Generated by configure -----------
7594 LANG = C
7595 MAN_LANG = $MAN_LANG
7596 TARGET_OS = $system_name
7597 DESTDIR =
7598 prefix = \$(DESTDIR)$_prefix
7599 BINDIR = \$(DESTDIR)$_bindir
7600 DATADIR = \$(DESTDIR)$_datadir
7601 MANDIR = \$(DESTDIR)$_mandir
7602 CONFDIR = \$(DESTDIR)$_confdir
7603 LIBDIR = \$(DESTDIR)$_libdir
7604 # FFmpeg uses libdir instead of LIBDIR
7605 libdir = \$(LIBDIR)
7606 AR = $_ar
7607 CC = $_cc
7608 CXX = $_cc
7609 HOST_CC = $_host_cc
7610 RANLIB = $_ranlib
7611 WINDRES = $_windres
7612 LDCONFIG = $_ldconfig
7613 INSTALL = $_install
7614 EXTRA_INC = $_inc_extra
7615 EXTRAXX_INC = $_inc_extra $_inc_extraxx
7616 OPTFLAGS = $CFLAGS \$(EXTRA_INC)
7617 CXXFLAGS = $CXXFLAGS \$(EXTRAXX_INC)
7618 CFLAG_STACKREALIGN = $_stackrealign
7619 INSTALLSTRIP = $_install_strip
7620 CHARSET = $_charset
7621 HELP_FILE = $_mp_help
7623 EXESUF = $_exesuf
7625 MPLAYER_NETWORK = $_network
7626 FTP = $_ftp
7627 STREAMING_LIVE555 = $_live
7628 LIBNEMESI = $_nemesi
7629 NATIVE_RTSP = $_native_rtsp
7630 VSTREAM = $_vstream
7631 STREAM_CACHE = $_stream_cache
7632 DVBIN = $_dvbin
7633 VIDIX = $_vidix
7634 VIDIX_INTERNAL = $_vidix_internal
7635 VIDIX_EXTERNAL = $_vidix_external
7636 VIDIX_PCIDB = $_vidix_pcidb_val
7637 CONFIG_PP = yes
7638 MP3LAME = $_mp3lame
7639 LIBMENU = $_menu
7641 MP3LIB = $_mp3lib
7642 LIBA52 = $_liba52
7643 LIBMPEG2 = $_libmpeg2
7644 TREMOR_INTERNAL = $_tremor_internal
7645 TREMOR_LOW = $_tremor_low
7646 FAAD = $_faad
7648 SPEEX = $_speex
7649 MUSEPACK = $_musepack
7651 UNRAR_EXEC = $_unrar_exec
7652 PNG = $_png
7653 JPEG = $_jpeg
7654 GIF = $_gif
7656 EXTRALIBS = $_extra_libs
7657 EXTRA_LIB = $_ld_extra $_ld_static $_ld_lm
7658 EXTRALIBS_MPLAYER = $_libs_mplayer
7659 EXTRALIBS_MENCODER = $_libs_mencoder
7661 HAVE_MLIB = $_mlib
7662 HAVE_PTHREADS = $_pthreads
7663 HAVE_W32THREADS = $_w32threads
7665 HAVE_XVMC_ACCEL = $_xvmc
7667 HAVE_SYS_MMAN_H = $_mman
7668 HAVE_POSIX_SELECT = $_posix_select
7670 NEED_GETTIMEOFDAY = $_need_gettimeofday
7671 NEED_GLOB = $_need_glob
7672 NEED_SETENV = $_need_setenv
7673 NEED_SHMEM = $_need_shmem
7674 NEED_STRSEP = $_need_strsep
7675 NEED_SWAB = $_need_swab
7676 NEED_VSSCANF = $_need_vsscanf
7678 # for FFmpeg
7679 SRC_PATH=..
7680 BUILD_ROOT=..
7681 LIBPREF=lib
7682 LIBSUF=.a
7683 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
7685 # audio output
7686 OSS = $_ossaudio
7687 ALSA = $_alsa
7688 ALSA5 = $_alsa5
7689 ALSA9 = $_alsa9
7690 ALSA1X = $_alsa1x
7692 # input/demuxer/codecs
7693 JOYSTICK = $_joystick
7694 LIRC = $_lirc
7695 APPLE_REMOTE = $_apple_remote
7696 TV = $_tv
7697 TV_V4L = $_tv_v4l
7698 TV_V4L1 = $_tv_v4l1
7699 TV_V4L2 = $_tv_v4l2
7700 TV_DSHOW = $_tv_dshow
7701 TV_BSDBT848 = $_tv_bsdbt848
7702 TV_TELETEXT = $_tv_teletext
7703 AUDIO_INPUT = $_audio_input
7704 PVR = $_pvr
7705 VCD = $_vcd
7706 DVDREAD = $_dvdread
7707 DVDREAD_INTERNAL = $_dvdread_internal
7708 DVDCSS_INTERNAL = $_libdvdcss_internal
7709 DVDNAV = $_dvdnav
7710 WIN32DLL = $_win32dll
7711 QTX_CODECS = $_qtx
7712 REAL_CODECS = $_real
7713 XANIM_CODECS = $_xanim
7714 LIBAVUTIL = $_libavutil
7715 LIBAVUTIL_A = $_libavutil_a
7716 LIBAVUTIL_SO = $_libavutil_so
7717 LIBAVCODEC = $_libavcodec
7718 LIBAVCODEC_A = $_libavcodec_a
7719 LIBAVCODEC_SO = $_libavcodec_so
7720 LIBAVFORMAT = $_libavformat
7721 LIBAVFORMAT_A = $_libavformat_a
7722 LIBAVFORMAT_SO = $_libavformat_so
7723 LIBPOSTPROC = $_libpostproc
7724 LIBPOSTPROC_A = $_libpostproc_a
7725 LIBPOSTPROC_SO = $_libpostproc_so
7726 ZORAN = $_zr
7727 LIBLZO = $_liblzo
7728 LIBDV = $_libdv
7729 XVID4 = $_xvid
7730 X264 = $_x264
7731 LIBNUT = $_libnut
7732 LIBDCA = $_libdca
7733 MPLAYER = $_mplayer
7734 MENCODER = $_mencoder
7735 CDDA = $_cdda
7736 CDDB = $_cddb
7737 BITMAP_FONT = $_bitmap_font
7738 FREETYPE = $_freetype
7739 ASS = $_ass
7740 LIBMAD = $_mad
7741 LIBVORBIS = $_vorbis
7742 LIBTHEORA = $_theora
7743 FAAD_INTERNAL = $_faad_internal
7744 FAAD_FIXED = $_faad_fixed
7745 LIBSMBCLIENT = $_smbsupport
7746 XMMS_PLUGINS = $_xmms
7747 MACOSX = $_macosx
7748 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7749 MACOSX_BUNDLE = $_macosx_bundle
7750 MACOSX_COREVIDEO = $_macosx_corevideo
7751 TOOLAME=$_toolame
7752 TWOLAME=$_twolame
7753 FAAC=$_faac
7754 CONFIG_LIBAMR=$_libamr
7755 CONFIG_LIBAMR_NB=$_libamr_nb
7756 CONFIG_LIBAMR_WB=$_libamr_wb
7757 `echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7758 `echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7759 `echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7760 `echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7761 `echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7762 `echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7763 CONFIG_LIBFAAC=$_lavc_faac
7764 CONFIG_LIBMP3LAME=$_lavc_mp3lame
7765 CONFIG_LIBVORBIS=$_libvorbis
7766 CONFIG_LIBXVID=$_lavc_xvid
7767 CONFIG_LIBX264=$_lavc_x264
7768 CONFIG_ZLIB=$_zlib
7769 CONFIG_GPL=yes
7770 CONFIG_ENCODERS=$_mencoder
7771 CONFIG_MUXERS=$_mencoder
7772 # Prevent building libavcodec/imgresample.c with conflicting symbols
7773 CONFIG_SWSCALER=yes
7774 RADIO=$_radio
7775 RADIO_CAPTURE=$_radio_capture
7776 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7777 VIDIX_IVTV=$_vidix_drv_ivtv
7778 VIDIX_MACH64=$_vidix_drv_mach64
7779 VIDIX_MGA=$_vidix_drv_mga
7780 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7781 VIDIX_NVIDIA=$_vidix_drv_nvidia
7782 VIDIX_PM2=$_vidix_drv_pm2
7783 VIDIX_PM3=$_vidix_drv_pm3
7784 VIDIX_RADEON=$_vidix_drv_radeon
7785 VIDIX_RAGE128=$_vidix_drv_rage128
7786 VIDIX_SAVAGE=$_vidix_drv_savage
7787 VIDIX_SIS=$_vidix_drv_sis
7788 VIDIX_UNICHROME=$_vidix_drv_unichrome
7790 # --- Some stuff for autoconfigure ----
7791 $_target_arch
7792 $_target_arch_x86
7793 $_confwin32
7794 TARGET_CPU=$iproc
7795 HAVE_MMX = $_mmx
7796 HAVE_MMX2 = $_mmxext
7797 HAVE_3DNOW = $_3dnow
7798 HAVE_3DNOWEX = $_3dnowext
7799 HAVE_SSE = $_sse
7800 HAVE_CMOV = $_cmov
7801 HAVE_ALTIVEC = $_altivec
7802 HAVE_ARMV5TE = $_armv5te
7803 HAVE_ARMV6 = $_armv6
7804 HAVE_IWMMXT = $_iwmmxt
7805 HAVE_VIS = $_vis
7807 # --- GUI stuff ---
7808 GUI = $_gui
7810 # --- libvo stuff ---
7811 VO_SRCS = $_vosrc
7813 # --- libao2 stuff ---
7814 AO_SRCS = $_aosrc
7816 # --- libaf stuff ---
7817 AF_SRCS = $_afsrc
7821 #############################################################################
7823 ff_config_enable () {
7824 _nprefix=$3;
7825 test -z "$_nprefix" && _nprefix='CONFIG'
7826 for part in $1; do
7827 if ` echo $2 | grep -E "(^| )$part($| )" > /dev/null `; then
7828 echo "#define ${_nprefix}_$part 1"
7829 echo "#define ENABLE_$part 1"
7830 else
7831 echo "#define ENABLE_$part 0"
7833 done
7836 echo "Creating config.h"
7837 cat > $TMPH << EOF
7838 /* -------- This file has been automatically generated by configure ---------
7839 Note: Any changes in it will be lost when you run configure again. */
7841 /* Protect against multiple inclusion */
7842 #ifndef MPLAYER_CONFIG_H
7843 #define MPLAYER_CONFIG_H 1
7845 #define CONFIGURATION "$_configuration"
7847 /* make sure we never get lavformat's poll() emulation, the results are
7848 horrible if the X libs try to actually use it, see MPlayer-users
7849 Message-ID: <45D49541.8060101@infernix.net>
7850 Date: Thu, 15 Feb 2007 18:15:45 +0100
7851 Subject: [MPlayer-users] Crash with backtrace when playing back demuxed...
7853 #define HAVE_SYS_POLL_H 1
7855 /* yes, we have inttypes.h */
7856 #define HAVE_INTTYPES_H 1
7858 /* int_fastXY_t emulation */
7859 $_def_fast_inttypes
7861 /* libdvdcss */
7862 #define HAVE_ERRNO_H 1
7864 /* libdvdcss + libdvdread */
7865 #define HAVE_LIMITS_H 1
7867 /* libdvdcss + libfaad2 */
7868 #define HAVE_UNISTD_H 1
7870 /* libfaad2 + libdvdread */
7871 #define STDC_HEADERS 1
7873 /* libfaad2 */
7874 #define HAVE_MEMCPY 1
7875 #define HAVE_STRCHR 1
7877 /* libdvdread */
7878 #define HAVE_UINTPTR_T 1
7880 /* name of messages charset */
7881 $_def_charset
7883 /* Runtime CPU detection */
7884 $_def_runtime_cpudetection
7886 /* Dynamic a/v plugins */
7887 $_def_dynamic_plugins
7889 /* "restrict" keyword */
7890 $_def_restrict_keyword
7892 /* __builtin_expect branch prediction hint */
7893 $_def_builtin_expect
7894 #ifdef HAVE_BUILTIN_EXPECT
7895 #define likely(x) __builtin_expect ((x) != 0, 1)
7896 #define unlikely(x) __builtin_expect ((x) != 0, 0)
7897 #else
7898 #define likely(x) (x)
7899 #define unlikely(x) (x)
7900 #endif
7902 /* attribute(used) as needed by some compilers */
7903 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7904 # define attribute_used __attribute__((used))
7905 #else
7906 # define attribute_used
7907 #endif
7909 /* compiler support for named assembler arguments */
7910 $_def_named_asm_args
7912 /* enable/disable SIGHANDLER */
7913 $_def_sighandler
7915 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7916 $_def_crash_debug
7918 /* Toggles debugging informations */
7919 $_def_debug
7921 /* Toggles color console output */
7922 $_def_color_console
7924 /* Indicates that libcdio is available for VCD and CD-DA playback */
7925 $_def_libcdio
7927 /* Indicates that Ogle's libdvdread is available for DVD playback */
7928 $_def_dvdread
7930 /* Indicates that dvdread is internal */
7931 $_def_dvdread_internal
7933 /* Additional options for libdvdread/libdvdcss */
7934 $_def_dvd
7935 $_def_cdrom
7936 $_def_cdio
7937 $_def_dvdio
7938 $_def_bsdi_dvd
7939 $_def_dvd_bsd
7940 $_def_dvd_linux
7941 $_dev_dvd_openbsd
7942 $_def_dvd_darwin
7943 $_def_sol_scsi_h
7944 $_def_hpux_scsi_h
7946 /* Common data directory (for fonts, etc) */
7947 #define MPLAYER_DATADIR "$_datadir"
7948 #define MPLAYER_CONFDIR "$_confdir"
7949 #define MPLAYER_LIBDIR "$_libdir"
7951 /* Define this to compile stream-caching support, it can be enabled via
7952 -cache <kilobytes> */
7953 $_def_stream_cache
7955 /* Define if you are using XviD library */
7956 $_def_xvid
7958 /* Define if you are using the X.264 library */
7959 $_def_x264
7961 /* Define if you are using libnut */
7962 $_def_libnut
7964 /* Define to include support for libdv-0.9.5 */
7965 $_def_libdv
7967 /* If build mencoder */
7968 $_mencoder_flag
7970 /* Indicates if libmp3lame is available
7971 Note: for mencoder */
7972 $_def_mp3lame
7973 $_def_mp3lame_preset
7974 $_def_mp3lame_preset_medium
7976 /* Undefine this if you do not want to select mono audio (left or right)
7977 with a stereo MPEG layer 2/3 audio stream. The command line option
7978 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7979 right-only), with 0 being the default.
7981 #define USE_FAKE_MONO 1
7983 /* Undefine this if your sound card driver has no working select().
7984 If you have kernel Oops, player hangups, or just no audio, you should
7985 try to recompile MPlayer with this option disabled! */
7986 $_def_select
7988 /* define this to use iconv(3) function to codepage conversions */
7989 $_def_iconv
7991 /* define this to use nl_langinfo function */
7992 $_def_langinfo
7994 /* define this to use RTC (/dev/rtc) for video timers */
7995 $_def_rtc
7997 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7998 #define MAX_OUTBURST 65536
8000 /* set up audio OUTBURST. Do not change this! */
8001 #define OUTBURST 512
8003 /* Define this if your system has the header file for the OSS sound interface */
8004 $_def_sys_soundcard
8006 /* Define this if your system has the header file for the OSS sound interface
8007 * in /usr/include */
8008 $_def_soundcard
8010 /* Define this if your system has the sysinfo header */
8011 $_def_sys_sysinfo
8013 /* Define this if your system has the "malloc.h" header file */
8014 $_def_malloc
8016 /* memalign is mapped to malloc if unsupported */
8017 $_def_memalign
8018 $_def_map_memalign
8019 $_def_memalign_hack
8021 /* assembler handling of .align */
8022 $_def_asmalign_pot
8024 /* Define this if your system has the "alloca.h" header file */
8025 $_def_alloca
8027 /* Define this if your system has the "sys/mman.h" header file */
8028 $_def_mman
8029 $_def_mman_has_map_failed
8031 /* Define this if you have the elf dynamic linker -ldl library */
8032 $_def_dl
8034 /* Define this if you have the kstat kernel statistics library */
8035 $_def_kstat
8037 /* Define this if you have zlib */
8038 $_def_zlib
8039 #ifdef HAVE_ZLIB
8040 #define CONFIG_ZLIB 1
8041 #endif
8043 /* Define this if you have shm support */
8044 $_def_shm
8046 /* Define this if your system has strsep */
8047 $_def_strsep
8049 /* Define this if your system has vsscanf */
8050 $_def_vsscanf
8052 /* Define this if your system has swab */
8053 $_def_swab
8055 /* Define this if your system has posix select */
8056 $_def_posix_select
8058 /* Define this if your system has gettimeofday */
8059 $_def_gettimeofday
8061 /* Define this if your system has glob */
8062 $_def_glob
8064 /* Define this if your system has setenv */
8065 $_def_setenv
8066 #ifndef HAVE_SETENV
8067 int setenv(const char *name, const char *val, int overwrite);
8068 #endif
8070 /* Define this if your system has sysi86 */
8071 $_def_sysi86
8072 $_def_sysi86_iv
8074 /* Define this if your system has pthreads */
8075 $_def_pthreads
8077 /* Define this if you enabled thread support for libavcodec */
8078 $_def_threads
8079 #ifdef HAVE_THREADS
8080 #define ENABLE_THREADS 1
8081 #else
8082 #define ENABLE_THREADS 0
8083 #endif
8085 /* LIRC (remote control, see www.lirc.org) support: */
8086 $_def_lirc
8088 /* Apple Remote (remote control, see http://docs.info.apple.com/article.html?artnum=302504) support: */
8089 $_def_apple_remote
8091 /* Support for maemo (http://www.maemo.org) */
8092 $_def_maemo
8095 * LIRCCD (LIRC client daemon)
8096 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
8098 $_def_lircc
8100 /* DVD navigation support using libdvdnav */
8101 $_def_dvdnav
8103 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
8104 #define MPEG12_POSTPROC 1
8106 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
8107 $_def_libpostproc
8108 $_def_libpostproc_a
8109 $_def_libpostproc_so
8111 /* Win32 DLL support */
8112 $_def_win32dll
8113 #define WIN32_PATH "$_win32codecsdir"
8115 /* Mac OS X specific features */
8116 $_def_macosx
8117 $_def_macosx_finder_support
8118 $_def_macosx_bundle
8119 $_def_macosx_corevideo
8121 /* Build our Win32-loader */
8122 $_def_win32_loader
8124 /* ffmpeg's libavcodec support (requires libavcodec source) */
8125 $_def_libavcodec
8126 $_def_libavcodec_a
8127 $_def_libavcodec_so
8128 $_def_libavcodec_mpegaudio_hp
8130 /* ffmpeg's libavformat support (requires libavformat source) */
8131 $_def_libavformat
8132 $_def_libavformat_a
8133 $_def_libavformat_so
8135 $_def_libavutil
8136 $_def_libavutil_a
8137 $_def_libavutil_so
8139 /* Use libavcodec's decoders */
8140 #define CONFIG_DECODERS 1
8141 /* Use libavcodec's encoders */
8142 #define CONFIG_ENCODERS 1
8144 /* Use libavformat's demuxers */
8145 #define CONFIG_DEMUXERS 1
8146 /* Use libavformat's muxers */
8147 $_def_muxers
8149 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8150 #define HAVE_EBX_AVAILABLE 1
8151 #ifndef MP_DEBUG
8152 #define HAVE_EBP_AVAILABLE 1
8153 #endif
8155 #define HAVE_SOCKLEN_T 1
8157 #define CONFIG_GPL 1
8158 #define ENABLE_SMALL 0
8160 /* Support for grayscale encoding/decoding in FFmpeg (makes color slower) */
8161 #define ENABLE_GRAY 1
8163 /* Use AMR codecs from libavcodec. */
8164 $_def_libamr
8165 $_def_libamr_nb
8166 $_def_libamr_wb
8168 /* Use specific parts from FFmpeg. */
8169 `ff_config_enable "$_libavdecoders_all" "$_libavdecoders"`
8170 `ff_config_enable "$_libavencoders_all" "$_libavencoders"`
8171 `ff_config_enable "$_libavparsers_all" "$_libavparsers"`
8172 `ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers"`
8173 `ff_config_enable "$_libavmuxers_all" "$_libavmuxers"`
8174 `ff_config_enable "$_libavprotocols_all" "$_libavprotocols"`
8175 `ff_config_enable "$_libavbsfs_all" "$_libavbsfs"`
8177 $_def_lavc_faac
8178 $_def_lavc_xvid
8179 $_def_lavc_mp3lame
8180 $_def_lavc_x264
8182 /* Use codec libs included in mplayer CVS / source dist: */
8183 $_def_mp3lib
8184 $_def_liba52
8185 $_def_libdca
8186 $_def_libmpeg2
8188 /* XAnim DLL support */
8189 $_def_xanim
8190 /* Default search path */
8191 $_def_xanim_path
8193 /* RealPlayer DLL support */
8194 $_def_real
8195 /* Default search path */
8196 $_def_real_path
8198 /* LIVE555 Streaming Media library support */
8199 $_def_live
8201 /* libnemesi Streaming Media library support */
8202 $_def_nemesi
8204 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
8205 $_def_fastmemcpy
8207 /* Use UnRAR executable for Vobsubs */
8208 $_def_unrar_exec
8210 /* gui support, please do not edit this option */
8211 $_def_gui
8212 $_def_gtk2_gui
8214 /* Audio output drivers */
8215 $_def_ossaudio
8216 $_def_ossaudio_devdsp
8217 $_def_ossaudio_devmixer
8218 $_def_alsa5
8219 $_def_alsa9
8220 $_def_alsa1x
8221 $_def_arts
8222 $_def_esd
8223 $_def_esd_latency
8224 $_def_pulse
8225 $_def_jack
8226 $_def_openal
8227 $_def_openal_h
8228 $_def_sys_asoundlib_h
8229 $_def_alsa_asoundlib_h
8230 $_def_sunaudio
8231 $_def_sgiaudio
8232 $_def_win32waveout
8233 $_def_nas
8235 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8236 #undef FAST_OSD
8237 #undef FAST_OSD_TABLE
8239 /* Enable TV Interface support */
8240 $_def_tv
8242 /* Enable Video 4 Linux TV interface support */
8243 $_def_tv_v4l
8245 /* Enable Video 4 Linux 1 TV interface support */
8246 $_def_tv_v4l1
8248 /* Enable Video 4 Linux 2 TV interface support */
8249 $_def_tv_v4l2
8251 /* Enable DirectShow TV interface support */
8252 $_def_tv_dshow
8254 /* *BSD BrookTree headers */
8255 $_def_ioctl_meteor_h_name
8256 $_def_ioctl_bt848_h_name
8258 /* Enable *BSD BrookTree TV interface support */
8259 $_def_tv_bsdbt848
8261 /* Enable TV Teletext Interface support */
8262 $_def_tv_teletext
8264 /* Enable Radio Interface support */
8265 $_def_radio
8267 /* Enable Capture for Radio Interface support */
8268 $_def_radio_capture
8270 /* Enable Video 4 Linux Radio interface support */
8271 $_def_radio_v4l
8273 /* Enable Video 4 Linux 2 Radio interface support */
8274 $_def_radio_v4l2
8276 /* Enable *BSD BrookTree Radio interface support */
8277 $_def_radio_bsdbt848
8279 /* Enable Video 4 Linux 2 MPEG PVR support */
8280 $_def_pvr
8282 /* Define if your processor stores words with the most significant
8283 byte first (like Motorola and SPARC, unlike Intel and VAX). */
8284 $_def_words_endian
8286 /* Define if your processor can access unaligned data in a fast way */
8287 $_def_fast_unaligned
8289 `ff_config_enable "$_arch_all" "$_arch" "ARCH"`
8291 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
8292 have the instruction. */
8293 $_def_dcbzl
8295 /* only gcc3 can compile mvi instructions (libmpeg2) */
8296 $_def_gcc_mvi_support
8298 /* Define this for Cygwin build for win32 */
8299 $_def_confwin32
8301 /* Define this to any prefered value from 386 up to infinity with step 100 */
8302 #define __CPU__ $iproc
8304 $_mp_wordsize
8306 $_def_linux
8308 $_def_vcd
8310 #ifdef sun
8311 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
8312 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8313 #elif defined(WIN32)
8314 #define DEFAULT_CDROM_DEVICE "D:"
8315 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8316 #elif defined(__APPLE__) || defined(__DARWIN__)
8317 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
8318 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
8319 #elif defined(__OpenBSD__)
8320 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
8321 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8322 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
8323 #define DEFAULT_CDROM_DEVICE "/dev/acd0"
8324 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8325 #elif defined(__AMIGAOS4__)
8326 #define DEFAULT_CDROM_DEVICE "a1ide.device:2"
8327 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8328 #else
8329 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
8330 #define DEFAULT_DVD_DEVICE "/dev/dvd"
8331 #endif
8334 /*----------------------------------------------------------------------------
8336 ** NOTE: Instead of modifying these definitions here, use the
8337 ** --enable/--disable options of the ./configure script!
8338 ** See ./configure --help for details.
8340 *---------------------------------------------------------------------------*/
8342 /* C99 *lrint* and round* functions available */
8343 $_def_llrint
8344 $_def_lrint
8345 $_def_lrintf
8346 $_def_round
8347 $_def_roundf
8349 /* mkstemp support */
8350 $_def_mkstemp
8352 /* nanosleep support */
8353 $_def_nanosleep
8355 /* SMB support */
8356 $_def_smbsupport
8358 /* termcap flag for getch2.c */
8359 $_def_termcap
8361 /* termios flag for getch2.c */
8362 $_def_termios
8363 $_def_termios_h
8364 $_def_termios_sys_h
8366 /* enable PNG support */
8367 $_def_png
8369 /* enable JPEG support */
8370 $_def_jpeg
8372 /* enable PNM support */
8373 $_def_pnm
8375 /* enable md5sum support */
8376 $_def_md5sum
8378 /* enable GIF support */
8379 $_def_gif
8380 $_def_gif_4
8381 $_def_gif_tvt_hack
8383 /* enable bitmap font support */
8384 $_def_bitmap_font
8386 /* enable FreeType support */
8387 $_def_freetype
8389 /* enable Fontconfig support */
8390 $_def_fontconfig
8392 /* enable SSA/ASS support */
8393 $_def_ass
8395 /* enable FriBiDi usage */
8396 $_def_fribidi
8398 /* enable ENCA usage */
8399 $_def_enca
8401 /* liblzo support */
8402 $_def_liblzo
8403 #ifdef USE_LIBLZO
8404 #define CONFIG_LZO 1
8405 #endif
8407 /* libmad support */
8408 $_def_mad
8410 /* enable OggVorbis support */
8411 $_def_vorbis
8412 $_def_tremor
8414 /* enable Speex support */
8415 $_def_speex
8417 /* enable musepack support */
8418 $_def_musepack
8420 /* enable OggTheora support */
8421 $_def_theora
8423 /* enable FAAD (AAC) support */
8424 $_def_faad
8425 $_def_faad_internal
8427 /* enable FAAC (AAC encoder) support */
8428 $_def_faac
8430 /* enable LADSPA plugin support */
8431 $_def_ladspa
8433 /* enable network */
8434 $_def_network
8436 /* enable ftp support */
8437 $_def_ftp
8439 /* enable vstream support */
8440 $_def_vstream
8442 /* enable winsock2 instead of Unix functions*/
8443 $_def_winsock2
8445 /* define this to use inet_aton() instead of inet_pton() */
8446 $_def_use_aton
8448 /* enables / disables cdparanoia support */
8449 $_def_cdparanoia
8450 $_def_cddb
8452 /* enables / disables VIDIX usage */
8453 $_def_vidix
8454 $_def_vidix_drv_cyberblade
8455 $_def_vidix_drv_ivtv
8456 $_def_vidix_drv_mach64
8457 $_def_vidix_drv_mga
8458 $_def_vidix_drv_mga_crtc2
8459 $_def_vidix_drv_nvidia
8460 $_def_vidix_drv_pm3
8461 $_def_vidix_drv_radeon
8462 $_def_vidix_drv_rage128
8463 $_def_vidix_drv_savage
8464 $_def_vidix_drv_sis
8465 $_def_vidix_drv_unichrome
8466 $_def_vidix_pfx
8468 /* enables / disables new input joystick support */
8469 $_def_joystick
8471 /* enables / disables QTX codecs */
8472 $_def_qtx
8474 /* enables / disables osd menu */
8475 $_def_menu
8477 /* enables / disables subtitles sorting */
8478 $_def_sortsub
8480 /* XMMS input plugin support */
8481 $_def_xmms
8482 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8484 /* enables inet6 support */
8485 $_def_inet6
8487 /* do we have gethostbyname2? */
8488 $_def_gethostbyname2
8490 /* Extension defines */
8491 `ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE"`
8493 $_def_altivec_h // enables usage of altivec.h
8495 /* libmpeg2 uses a different feature test macro for mediaLib */
8496 #ifdef HAVE_MLIB
8497 #define LIBMPEG2_MLIB 1
8498 #endif
8500 /* libvo options */
8501 #define SCREEN_SIZE_X 1
8502 #define SCREEN_SIZE_Y 1
8503 $_def_x11
8504 $_def_xv
8505 $_def_xvmc
8506 $_def_vm
8507 $_def_xf86keysym
8508 $_def_xinerama
8509 $_def_gl
8510 $_def_gl_win32
8511 $_def_dga
8512 $_def_dga1
8513 $_def_dga2
8514 $_def_sdl
8515 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
8516 $_def_sdlbuggy
8517 $_def_directx
8518 $_def_ggi
8519 $_def_ggiwmh
8520 $_def_3dfx
8521 $_def_s3fb
8522 $_def_tdfxfb
8523 $_def_tdfxvid
8524 $_def_xvr100
8525 $_def_directfb
8526 $_def_directfb_version
8527 $_def_dfbmga
8528 $_def_zr
8529 $_def_bl
8530 $_def_mga
8531 $_def_xmga
8532 $_def_fbdev
8533 $_def_dxr2
8534 $_def_dxr3
8535 $_def_ivtv
8536 $_def_v4l2
8537 $_def_dvb
8538 $_def_dvb_in
8539 $_def_svga
8540 $_def_vesa
8541 $_def_xss
8542 $_def_xdpms
8543 $_def_aa
8544 $_def_caca
8545 $_def_tga
8546 $_def_toolame
8547 $_def_twolame
8549 /* used by GUI: */
8550 $_def_xshape
8552 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
8553 #define X11_FULLSCREEN 1
8554 #endif
8556 #endif /* MPLAYER_CONFIG_H */
8559 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8560 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8562 #############################################################################
8564 cat << EOF
8566 Config files successfully generated by ./configure $_configuration !
8568 Install prefix: $_prefix
8569 Data directory: $_datadir
8570 Config direct.: $_confdir
8572 Byte order: $_byte_order
8573 Optimizing for: $_optimizing
8575 Languages:
8576 Messages/GUI: $_language
8579 echo ${_echo_n} " Manual pages: $MAN_LANG ${_echo_c}"
8580 test "$LANGUAGES" = en && echo ${_echo_n} " (no localization selected, use --language=all)${_echo_c}"
8581 echo
8583 cat << EOF
8585 Enabled optional drivers:
8586 Input: $_inputmodules
8587 Codecs: $_codecmodules
8588 Audio output: $_aomodules
8589 Video output: $_vomodules
8590 Audio filters: $_afmodules
8591 Disabled optional drivers:
8592 Input: $_noinputmodules
8593 Codecs: $_nocodecmodules
8594 Audio output: $_noaomodules
8595 Video output: $_novomodules
8596 Audio filters: $_noafmodules
8598 'config.h' and 'config.mak' contain your configuration options.
8599 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8600 compile *** DO NOT REPORT BUGS if you tweak these files ***
8602 'make' will now compile MPlayer and 'make install' will install it.
8603 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8608 if test "$_mtrr" = yes ; then
8609 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
8610 echo
8613 if ! x86_32; then
8614 cat <<EOF
8615 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8616 operating system ($system_name). You may encounter a few files that cannot
8617 be played due to missing open source video/audio codec support.
8623 cat <<EOF
8624 Check $TMPLOG if you wonder why an autodetection failed (make sure
8625 development headers/packages are installed).
8627 NOTE: The --enable-* parameters unconditionally force options on, completely
8628 skipping autodetection. This behavior is unlike what you may be used to from
8629 autoconf-based configure scripts that can decide to override you. This greater
8630 level of control comes at a price. You may have to provide the correct compiler
8631 and linker flags yourself.
8632 If you used one of these options (except --enable-gui and similar ones that
8633 turn on internal features) and experience a compilation or linking failure,
8634 make sure you have passed the necessary compiler/linker flags to configure.
8636 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
8640 if test "$_warn_CFLAGS" = yes; then
8641 cat <<EOF
8643 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS set by you, but:
8645 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8647 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8648 To do so, execute 'CFLAGS= ./configure <options>'
8653 # Last move:
8654 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"