Punctuation. ;)
[mplayer/glamo.git] / configure
blob20ac6be34f4c2a30742edcc278815e7e1c7ba1df
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 # Guidelines:
12 # If the option is named 'opt':
13 # _opt : should have a value in yes/no/auto
14 # _def_opt : '#define ... 1' or '#undef ...' that is: some C code
15 # _ld_opt : ' -L/path/dir -lopt ' that is: some GCC option
16 # _inc_opt : ' -I/path/dir/include '
18 # In this file, a tab is 8 chars and indentation shift is 2 characters
20 # GOTCHAS:
21 # - config files are currently:
22 # config.h config.mak libvo/config.mak libao2/config.mak Gui/config.mak
24 #############################################################################
26 # Prefer these macros to full length text !
27 # These macros only return an error code - NO display is done
28 cc_check() {
29 echo >> "$TMPLOG"
30 cat "$TMPC" >> "$TMPLOG"
31 echo >> "$TMPLOG"
32 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $TMPC -o $TMPO $@" >> "$TMPLOG"
33 rm -f "$TMPO"
34 ( $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra "$TMPC" -o "$TMPO" "$@" ) >> "$TMPLOG" 2>&1
35 TMP="$?"
36 echo >> "$TMPLOG"
37 echo "ldd $TMPO" >> "$TMPLOG"
38 ( $_ldd "$TMPO" ) >> "$TMPLOG" 2>&1
39 echo >> "$TMPLOG"
40 return "$TMP"
43 # Display error message, flushes tempfile, exit
44 die () {
45 echo
46 echo "Error: $@" >&2
47 echo >&2
48 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
49 echo "Check \"$TMPLOG\" if you do not understand why it failed."
50 exit 1
53 # OS test booleans functions
54 issystem() {
55 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
57 linux() { issystem "Linux" ; return "$?" ; }
58 sunos() { issystem "SunOS" ; return "$?" ; }
59 hpux() { issystem "HP-UX" ; return "$?" ; }
60 irix() { issystem "IRIX" ; return "$?" ; }
61 cygwin() { issystem "CYGWIN" ; return "$?" ; }
62 freebsd() { issystem "FreeBSD" ; return "$?" ; }
63 netbsd() { issystem "NetBSD" ; return "$?" ; }
64 bsdos() { issystem "BSD/OS" ; return "$?" ; }
65 openbsd() { issystem "OpenBSD" ; return "$?" ; }
66 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
67 qnx() { issystem "QNX" ; return "$?" ; }
68 darwin() { issystem "Darwin" ; return "$?" ; }
69 gnu() { issystem "GNU" ; return "$?" ; }
70 mingw32() { issystem "MINGW32" ; return "$?" ; }
71 morphos() { issystem "MorphOS" ; return "$?" ; }
73 # arch test boolean functions
74 # x86/x86pc is used by QNX
75 x86() {
76 case "$host_arch" in
77 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
78 *) return 1 ;;
79 esac
82 ppc() {
83 case "$host_arch" in
84 ppc) return 0;;
85 *) return 1;;
86 esac
89 alpha() {
90 case "$host_arch" in
91 alpha) return 0;;
92 *) return 1;;
93 esac
96 # not boolean test: implement the posix shell "!" operator for a
97 # non-posix /bin/sh.
98 # usage: not {command}
99 # returns exit status "success" when the execution of "command"
100 # fails.
101 not() {
102 eval "$@"
103 test $? -ne 0
106 # Use this before starting a check
107 echocheck() {
108 echo "============ Checking for $@ ============" >> "$TMPLOG"
109 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
112 # Use this to echo the results of a check
113 echores() {
114 echo "Result is: $@" >> "$TMPLOG"
115 echo "##########################################" >> "$TMPLOG"
116 echo "" >> "$TMPLOG"
117 echo "$@"
119 #############################################################################
121 # Check how echo works in this /bin/sh
122 case `echo -n` in
123 -n) _echo_n= _echo_c='\c' ;; # SysV echo
124 *) _echo_n='-n ' _echo_c= ;; # BSD echo
125 esac
127 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"`
129 for parm in "$@" ; do
130 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
131 cat << EOF
133 Usage: $0 [OPTIONS]...
135 Configuration:
136 -h, --help display this help and exit
138 Installation directories:
139 --prefix=DIR use this prefix for installing mplayer [/usr/local]
140 --bindir=DIR use this prefix for installing mplayer binary
141 [PREFIX/bin]
142 --datadir=DIR use this prefix for installing machine independent
143 data files (fonts, skins) [PREFIX/share/mplayer]
144 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
145 --confdir=DIR use this prefix for installing configuration files
146 [PREFIX/etc/mplayer]
147 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
149 Optional features:
150 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
151 --enable-gui enable gmplayer compilation (gtk-1.2 GUI) [disable]
152 --enable-largefiles enable support for files > 2 GBytes [disable]
153 --enable-linux-devfs set default devices to devfs ones [disable]
154 --enable-termcap use termcap database for key codes [autodetect]
155 --with-termcaplib=NAME name of library with termcap functionality
156 name shuld be given without leading "lib"
157 checks for "termcap" and "tinfo"
158 --disable-iconv do not use iconv(3) function [autodetect]
159 --disable-setlocale disable setlocale using in mplayer [autodetect]
160 --enable-lirc enable LIRC (remote control) support [autodetect]
161 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
162 --enable-joystick enable joystick support [disable]
163 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
164 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
165 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
166 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
167 --disable-edl disable EDL (edit decision list) support [enable]
168 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
169 --disable-network disable network support (for: http/mms/rtp) [enable]
170 --enable-winsock2 enable winsock2 usage [autodetect]
171 --enable-smb enable Samba (SMB) input support [autodetect]
172 --enable-live enable LIVE.COM Streaming Media support [disable]
173 --disable-dvdread Disable libdvdread support [autodetect]
174 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
175 --disable-css Disable old-style libcss DVD support [autodetect]
176 --disable-cdparanoia Disable cdparanoia support [autodetect]
177 --disable-freetype Disable freetype2 font rendering support [autodetect]
178 --disable-unrarlib Disable Unique RAR File Library [enabled]
179 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
180 --disable-sortsub Disable subtitles sorting [enabled]
181 --enable-fribidi Enable using the FriBiDi libs [disabled]
182 --disable-macosx Disable Mac OS X specific features [autodetect]
183 --disable-inet6 Disable IPv6 support [autodetect]
184 --disable-gethostbyname2 gethostbyname() function is not provided by the C
185 library [autodetect]
186 --disable-ftp Disable ftp support [enabled]
188 Codecs:
189 --enable-gif enable gif support [autodetect]
190 --enable-png enable png input/output support [autodetect]
191 --enable-jpeg enable jpeg input/output support [autodetect]
192 --enable-liblzo enable external liblzo support [autodetect]
193 --disable-win32 disable Win32 DLL support [autodetect]
194 --disable-dshow disable Win32/DirectShow support [autodetect]
195 --disable-qtx disable Quicktime codecs [autodetect]
196 --disable-xanim disable XAnim DLL support [autodetect]
197 --disable-real disable RealPlayer DLL support [autodetect]
198 --disable-xvid disable XviD codec [autodetect]
199 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
200 --enable-opendivx enable _old_ OpenDivx codec [disable]
201 --disable-libavcodec disable libavcodec [autodetect]
202 --enable-libfame enable libfame realtime encoder [autodetect]
203 --enable-vorbis build with OggVorbis support [autodetect]
204 --enable-tremor build with integer-only OggVorbis support [disabled]
205 --enable-theora build with OggTheora support [autodetect]
206 --enable-matroska build with Matroska support [autodetect]
207 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
208 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
209 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
210 --disable-mad disable libmad (MPEG audio) support [autodetect]
211 --enable-xmms build with XMMS inputplugin support [disabled]
212 --enable-flac build with FLAC support [autodetect]
213 --enable-external-flac build with external libFLAC [disable]
215 Video output:
216 --disable-vidix disable VIDIX stuff [enable on x86 *nix]
217 --enable-gl build with OpenGL render support [autodetect]
218 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
219 --enable-vesa build with VESA support [autodetect]
220 --enable-svga build with SVGAlib support [autodetect]
221 --enable-sdl build with SDL render support [autodetect]
222 --enable-aa build with AAlib render support [autodetect]
223 --enable-ggi build with GGI render support [autodetect]
224 --enable-directx build with DirectX support [autodetect]
225 --enable-dxr2 build with DXR2 render support [autodetect]
226 --enable-dxr3 build with DXR3/H+ render support [autodetect]
227 --enable-dvb build with support for output via DVB-Card [autodetect]
228 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
229 (check for /dev/mga_vid) [autodetect]
230 --enable-xmga build with mga_vid X Window support
231 (check for X & /dev/mga_vid) [autodetect]
232 --enable-xv build with Xv render support for X 4.x [autodetect]
233 --enable-xvmc build with XvMC acceleration for X 4.x [autodetect]
234 --enable-vm build with XF86VidMode support for X11 [autodetect]
235 --enable-xinerama build with Xinerama support for X11 [autodetect]
236 --enable-x11 build with X11 render support [autodetect]
237 --enable-fbdev build with FBDev render support [autodetect]
238 --enable-mlib build with MLIB support (Solaris only) [autodetect]
239 --enable-3dfx build with obsolete /dev/3dfx support [disable]
240 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
241 --enable-directfb build with DirectFB support [autodetect]
242 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
243 --enable-bl build with Blinkenlights support [disable]
244 --enable-tdfxvid build with tdfx vid support [disable]
245 --disable-tga disable targa output support [enable]
247 Audio output:
248 --disable-ossaudio disable OSS sound support [autodetect]
249 --disable-arts disable aRts sound support [autodetect]
250 --disable-esd disable esd sound support [autodetect]
251 --disable-alsa disable alsa sound support [autodetect]
252 --disable-sunaudio disable Sun sound support [autodetect]
253 --disable-nas disable NAS sound support [autodetect]
254 --disable-win32waveout disable Windows waveout sound support [autodetect]
255 --disable-select disable using select() on audio device [enable]
257 Miscellaneous options:
258 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
259 --cc=COMPILER use this C compiler to build MPlayer [gcc]
260 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
261 --enable-static build a statically linked binary. Set further linking
262 options with --enable-static="-lslang -lncurses"
263 --language=list a white space or comma separated list of languages
264 for translated man pages, the first language is the
265 primary and therefore used for translated messages
266 and GUI (also the environment variable \$LINGUAS is
267 honored) [en]
268 (Available: $LANGUAGES all)
269 --enable-shared-pp install & use shared postprocessing lib
270 --with-install=PATH use a custom install program (useful if your OS uses
271 a GNU-incompatible install utility by default and
272 you want to use GNU version)
273 --install-path=PATH the path to a custom install program
274 this option is obsolete and will be removed soon,
275 use --with-install instead.
277 Advanced options:
278 --enable-mmx build with MMX support [autodetect]
279 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
280 --enable-3dnow build with 3DNow! support [autodetect]
281 --enable-3dnowex build with extended 3DNow! support [autodetect]
282 --enable-sse build with SSE support [autodetect]
283 --enable-sse2 build with SSE2 support [autodetect]
284 --enable-altivec build with Altivec support (PowerPC) [autodetect]
285 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
286 --enable-big-endian Force byte order to big endian [autodetect]
287 --enable-debug[=1-3] compile debugging information into mplayer [disable]
288 --enable-profile compile profiling information into mplayer [disable]
289 --disable-sighandler disable sighandler for crashes [enable]
290 --enable-i18n _experimental_ gnu gettext() support [autodetect]
291 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
293 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
294 --disable-gcc-checking disable gcc version checking [enable]
296 Use these options if autodetection fails:
297 --with-extraincdir=DIR extra headers (png, mad, sdl, css, ...) in DIR
298 --with-extralibdir=DIR extra library files (png, SDL, ...) in DIR
299 --with-x11incdir=DIR X headers in DIR
300 --with-x11libdir=DIR X library files in DIR
301 --with-dxr2incdir=DIR DXR2 headers in DIR
302 --with-dvbincdir=DIR DVB headers in DIR
303 --with-csslibdir=DIR libcss in DIR
304 --with-madlibdir=DIR libmad (libmad shared library) in DIR
305 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
306 --with-codecsdir=DIR Binary codec files in DIR
307 --with-win32libdir=DIR W*ndows DLL files in DIR
308 --with-xanimlibdir=DIR XAnim DLL files in DIR
309 --with-reallibdir=DIR RealPlayer DLL files in DIR
310 --with-xvmclib=PATH path to adapter specific XvMCxxxxx.so (e.g. NVIDIA)
311 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR
312 --with-xvidincdir=DIR XviD header in DIR
314 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
315 --with-freetype-config=PATH path to freetype-config
316 (e.g. /opt/bin/freetype-config)
317 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
318 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
319 --with-livelibdir=DIR path to LIVE.COM Streaming Media libraries
320 --with-xmmsplugindir=DIR path to XMMS plugins
321 --with-xmmslibdir=DIR path to libxmms.so.1
322 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR
323 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR
324 --with-fribidi-config=PATH path to fribidi-config
325 (e.g. /opt/bin/fribidi-config)
328 exit 0
330 done # for parm in ...
333 # 1st pass checking for vital options
334 _install=install
335 _ranlib=ranlib
336 _cc=cc
337 test "$CC" && _cc="$CC"
338 _as=auto
339 _runtime_cpudetection=no
340 for ac_option do
341 case "$ac_option" in
342 --target=*)
343 _target=`echo $ac_option | cut -d '=' -f 2`
345 --cc=*)
346 _cc=`echo $ac_option | cut -d '=' -f 2`
348 --as=*)
349 _as=`echo $ac_option | cut -d '=' -f 2`
351 --enable-gcc-checking)
352 _skip_cc_check=no
354 --disable-gcc-checking)
355 _skip_cc_check=yes
357 --enable-static)
358 _ld_static='-static'
360 --disable-static)
361 _ld_static=''
363 --enable-static=*)
364 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
366 --with-extraincdir=*)
367 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
369 --with-extralibdir=*)
370 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
371 # _ld_extra="${_ld_extra} -Wl,-R"`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -Wl\,-R,g'`" -L"`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
373 --enable-runtime-cpudetection)
374 _runtime_cpudetection=yes
376 --disable-runtime-cpudetection)
377 _runtime_cpudetection=no
379 --install-path=*)
380 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
382 --with-install=*)
383 _install=`echo $ac_option | cut -d '=' -f 2 `
385 esac
386 done
388 # Determine our OS name and CPU architecture
389 if test -z "$_target" ; then
390 # OS name
391 system_name=`( uname -s ) 2>&1`
392 case "$system_name" in
393 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
395 IRIX*)
396 system_name=IRIX
398 HP-UX*)
399 system_name=HP-UX
401 [cC][yY][gG][wW][iI][nN]*)
402 system_name=CYGWIN
404 MINGW32*)
405 system_name=MINGW32
407 MorphOS)
408 system_name=MorphOS
411 system_name="$system_name-UNKNOWN"
413 esac
416 # host's CPU/instruction set
417 host_arch=`( uname -p ) 2>&1`
418 case "$host_arch" in
419 i386|sparc|ppc|alpha|arm|mips)
421 powerpc) # Darwin returns 'powerpc'
422 host_arch=ppc
424 *) # uname -p on Linux returns 'unknown' for the processor type,
425 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
427 # Maybe uname -m (machine hardware name) returns something we
428 # recognize.
430 # x86/x86pc is used by QNX
431 case "`( uname -m ) 2>&1`" in
432 i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686) host_arch=i386 ;;
433 ia64) host_arch=ia64 ;;
434 x86_64) host_arch=x86_64 ;;
435 ppc) host_arch=ppc ;;
436 alpha) host_arch=alpha ;;
437 sparc*) host_arch=sparc ;;
438 9000*) host_arch=hppa ;;
439 arm*) host_arch=arm ;;
440 s390) host_arch=s390 ;;
441 s390x) host_arch=s390x ;;
442 mips) host_arch=mips ;;
443 *) host_arch=UNKNOWN ;;
444 esac
446 esac
447 else
448 system_name=`echo $_target | cut -d '-' -f 2`
449 case "`echo $system_name | tr A-Z a-z`" in
450 linux) system_name=Linux ;;
451 freebsd) system_name=FreeBSD ;;
452 netbsd) system_name=NetBSD ;;
453 bsd/os) system_name=BSD/OS ;;
454 openbsd) system_name=OpenBSD ;;
455 sunos) system_name=SunOS ;;
456 qnx) system_name=QNX ;;
457 morphos) system_name=MorphOS ;;
458 esac
459 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
460 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
463 echo "Detected operating system: $system_name"
464 echo "Detected host architecture: $host_arch"
466 # LGB: temporary files
467 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
468 test "$I" && break
469 done
471 TMPLOG="configure.log"
472 rm -f "$TMPLOG"
473 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
474 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
475 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
476 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
478 # config files
480 # FIXME: A lot of stuff is installed under /usr/local
481 # NK: But we should never use this stuff implicitly since we call compiler
482 # from /usr we should be sure that there no effects from other compilers
483 # (libraries) which might be installed into /usr/local. Let users use this
484 # stuff explicitly as command line argument. In other words: It would be
485 # resonable to have only /usr/include or only /usr/local/include.
487 if freebsd ; then
488 _ld_extra="$_ld_extra -L/usr/local/lib"
489 _inc_extra="$_inc_extra -I/usr/local/include"
492 _ldd=ldd
493 if darwin; then
494 _ldd="otool -L"
497 # Checking CC version...
498 if test "$_skip_cc_check" != yes ; then
499 for _cc in "$_cc" gcc gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
500 echocheck "$_cc version"
501 cc_name=`( $_cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
502 cc_version=`( $_cc -dumpversion ) 2>&1`
503 if test "$?" -gt 0; then
504 cc_version="not found"
506 case $cc_version in
508 cc_version="v. ?.??, bad"
509 cc_verc_fail=yes
511 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
512 _cc_major=`echo $cc_version | cut -d '.' -f 1`
513 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
514 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
515 cc_version="$cc_version, ok"
516 cc_verc_fail=no
518 'not found')
519 cc_verc_fail=yes
522 cc_version="$cc_version, bad"
523 cc_verc_fail=yes
525 esac
526 echores "$cc_version"
527 (test "$cc_verc_fail" = "no") && break
528 done
529 if test "$cc_verc_fail" = yes ; then
530 cat <<EOF
532 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
534 You are not using a supported compiler. We do not have the time to make sure
535 everything works with compilers other than the ones we use. Use either the
536 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
537 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
539 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
540 mplayer and lame (which is used for mencoder). If you get compile errors,
541 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
542 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
543 bugs!
545 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
547 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
550 die "Bad gcc version"
552 else
553 cat <<EOF
555 ******************************************************************************
557 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
558 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
560 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
561 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
562 Lame which is used by mencoder produces weird errors, too.
564 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
565 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
567 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
569 ******************************************************************************
573 read _answer
576 # ---
578 # now that we know what compiler should be used for compilation, try to find
579 # out which assembler is used by the $_cc compiler
580 if test "$_as" = auto ; then
581 _as=`$_cc -print-prog-name=as`
582 test -z "$_as" && _as=as
585 # XXX: this should be ok..
586 _cpuinfo="echo"
587 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
588 # FIXME: Remove the cygwin check once AMD CPUs are supported
589 if test -r /proc/cpuinfo && not cygwin; then
590 # Linux with /proc mounted, extract CPU information from it
591 _cpuinfo="cat /proc/cpuinfo"
592 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
593 # FreeBSD with Linux emulation /proc mounted,
594 # extract CPU information from it
595 _cpuinfo="cat /compat/linux/proc/cpuinfo"
596 elif darwin ; then
597 # use hostinfo on Darwin
598 _cpuinfo="hostinfo"
599 elif x86; then
600 # all other OSes try to extract CPU information from a small helper
601 # program TOOLS/cpuinfo instead
602 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
603 _cpuinfo="TOOLS/cpuinfo"
606 case "$host_arch" in
607 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
608 _def_arch="#define ARCH_X86 1"
609 _target_arch="TARGET_ARCH_X86 = yes"
611 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
612 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
613 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
614 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
615 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
617 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | head -1`
618 if test -z "$pparam" ; then
619 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | head -1`
622 _mmx=no
623 _3dnow=no
624 _3dnowex=no
625 _mmx2=no
626 _sse=no
627 _sse2=no
628 _mtrr=no
630 for i in $pparam ; do
631 case "$i" in
632 3dnow) _3dnow=yes ;;
633 3dnowext) _3dnow=yes _3dnowex=yes ;;
634 mmx) _mmx=yes ;;
635 mmxext) _mmx2=yes ;;
636 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
637 xmm|sse|kni) _sse=yes _mmx2=yes ;;
638 sse2) _sse2=yes ;;
639 esac
640 done
642 echocheck "CPU vendor"
643 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
645 echocheck "CPU type"
646 echores "$pname"
648 case "$pvendor" in
649 AuthenticAMD)
650 case "$pfamily" in
651 3) proc=i386 iproc=386 ;;
652 4) proc=i486 iproc=486 ;;
653 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
654 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
655 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
656 proc=k6-3
657 elif test "$pmodel" -ge 8; then
658 proc=k6-2
659 elif test "$pmodel" -ge 6; then
660 proc=k6
661 else
662 proc=i586
663 iproc=586
666 6) iproc=686
667 if test "$pmodel" -ge 7; then
668 proc=athlon-4
669 elif test "$pmodel" -ge 6; then
670 # only Athlon XP supports ssem MP, Duron etc not
671 # but most of them are CPUID 666, so check if sse detected
672 # btw. there is also athlon-mp opt, but we need extended
673 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
674 if test "$_sse" = yes && test "$pstepping" -ge 2; then
675 proc=athlon-xp
676 else
677 proc=athlon-4
679 elif test "$pmodel" -ge 4; then
680 proc=athlon-tbird
681 else
682 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
686 *) proc=athlon-xp iproc=686 ;;
687 esac
689 GenuineIntel)
690 case "$pfamily" in
691 3) proc=i386 iproc=386 ;;
692 4) proc=i486 iproc=486 ;;
693 5) iproc=586
694 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
695 proc=pentium-mmx # 4 is desktop, 8 is mobile
696 else
697 proc=i586
700 6) iproc=686
701 if test "$pmodel" -ge 7; then
702 proc=pentium3
703 elif test "$pmodel" -ge 3; then
704 proc=pentium2
705 else
706 proc=i686
709 15) proc=pentium4 iproc=686 ;;
710 *) proc=pentium4 iproc=686 ;;
711 esac
713 unknown)
714 case "$pfamily" in
715 3) proc=i386 iproc=386 ;;
716 4) proc=i486 iproc=486 ;;
717 *) proc=i586 iproc=586 ;;
718 esac
721 proc=i586 iproc=586 ;;
722 esac
724 # check that gcc supports our CPU, if not, fall back to earlier ones
725 # LGB: check -mcpu and -march swithing step by step with enabling
726 # to fall back till 386.
728 echocheck "GCC & CPU optimization abilities"
729 cat > $TMPC << EOF
730 int main(void) { return 0; }
732 if test "$_runtime_cpudetection" = no ; then
733 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
734 cc_check -march=$proc -mcpu=$proc || proc=athlon
736 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
737 cc_check -march=$proc -mcpu=$proc || proc=k6
739 if test "$proc" = "k6"; then
740 if not cc_check -march=$proc -mcpu=$proc; then
741 if cc_check -march=i586 -mcpu=i686; then
742 proc=i586-i686
743 else
744 proc=i586
748 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
749 cc_check -march=$proc -mcpu=$proc || proc=i686
751 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
752 cc_check -march=$proc -mcpu=$proc || proc=i586
754 if test "$proc" = "i586" ; then
755 cc_check -march=$proc -mcpu=$proc || proc=i486
757 if test "$proc" = "i486" ; then
758 cc_check -march=$proc -mcpu=$proc || proc=i386
760 if test "$proc" = "i386" ; then
761 cc_check -march=$proc -mcpu=$proc || proc=error
763 if test "$proc" = "error" ; then
764 echores "Your $_cc does not even support \"i386\" for '-march' and '-mcpu'."
765 _mcpu=""
766 _march=""
767 _optimizing=""
768 elif test "$proc" = "i586-i686"; then
769 _march="-march=i586"
770 _mcpu="-mcpu=i686"
771 _optimizing="$proc"
772 else
773 _march="-march=$proc"
774 _mcpu="-mcpu=$proc"
775 _optimizing="$proc"
777 else
778 # i686 is probably the most common CPU - optimize for it
779 _mcpu="-mcpu=i686"
780 # at least i486 required, for bswap instruction
781 _march="-march=i486"
782 cc_check $_mcpu || _mcpu=""
783 cc_check $_march $_mcpu || _march=""
786 ## Gabucino : --target takes effect here (hopefully...) by overwriting
787 ## autodetected mcpu/march parameters
788 if test "$_target" ; then
789 # TODO: it may be a good idea to check GCC and fall back in all cases
790 if test "$host_arch" = "i586-i686"; then
791 _march="-march=i586"
792 _mcpu="-mcpu=i686"
793 else
794 _march="-march=$host_arch"
795 _mcpu="-mcpu=$host_arch"
798 proc="$host_arch"
800 case "$proc" in
801 i386) iproc=386 ;;
802 i486) iproc=486 ;;
803 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
804 i686|athlon*|pentium*) iproc=686 ;;
805 *) iproc=586 ;;
806 esac
809 echores "$proc"
812 ia64)
813 _def_arch='#define ARCH_IA64 1'
814 _target_arch='TARGET_ARCH_IA64 = yes'
815 iproc='ia64'
816 proc=''
817 _march=''
818 _mcpu=''
819 _optimizing=''
822 x86_64)
823 _def_arch='#define ARCH_X86_64 1'
824 _target_arch='TARGET_ARCH_X86_64 = yes'
825 iproc='x86_64'
826 proc=''
827 _march=''
828 _mcpu=''
829 _optimizing=''
832 sparc)
833 _def_arch='#define ARCH_SPARC 1'
834 _target_arch='TARGET_ARCH_SPARC = yes'
835 iproc='sparc'
836 proc='v8'
837 _march=''
838 _mcpu="-mcpu=$proc"
839 _optimizing="$proc"
842 arm|armv4l|armv5tel)
843 _def_arch='#define ARCH_ARMV4L 1'
844 _target_arch='TARGET_ARCH_ARMV4L = yes'
845 iproc='arm'
846 proc=''
847 _march=''
848 _mcpu=''
849 _optimizing=''
852 ppc)
853 _def_arch='#define ARCH_POWERPC 1'
854 _target_arch='TARGET_ARCH_POWERPC = yes'
855 iproc='ppc'
856 proc=''
857 _march=''
858 _mcpu=''
859 _optimizing=''
860 _altivec=no
862 echocheck "CPU type"
863 if linux && test -n "$_cpuinfo"; then
864 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -1`
865 if test -n "`$_cpuinfo | grep altivec`"; then
866 _altivec=yes
869 if darwin ; then
870 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
871 if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
872 _altivec=yes
874 if [ `sysctl -n hw.optional.altivec` -eq 1 ]; then
875 _altivec=yes
878 if test "$_altivec" = yes; then
879 echores "$proc altivec"
880 else
881 echores "$proc"
884 echocheck "GCC & CPU optimization abilities"
886 if test -n "$proc"; then
887 case "$proc" in
888 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
889 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
890 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
891 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
892 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
893 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
894 *) ;;
895 esac
896 # gcc 3.1(.1) and up supports 7400 and 7450
897 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1"; then
898 case "$proc" in
899 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
900 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
901 *) ;;
902 esac
906 if test -n "$_mcpu"; then
907 _optimizing=`echo $_mcpu | cut -c 8-`
908 echores "$_optimizing"
909 else
910 echores "none"
915 alpha)
916 _def_arch='#define ARCH_ALPHA 1'
917 _target_arch='TARGET_ARCH_ALPHA = yes'
918 iproc='alpha'
919 _march=''
921 echocheck "CPU type"
922 cat > $TMPC << EOF
923 int main() {
924 unsigned long ver, mask;
925 asm ("implver %0" : "=r" (ver));
926 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
927 printf("%ld-%x\n", ver, ~mask);
928 return 0;
931 $_cc -o "$TMPO" "$TMPC"
932 case `"$TMPO"` in
934 0-0) proc="ev4"; cpu_understands_mvi="0";;
935 1-0) proc="ev5"; cpu_understands_mvi="0";;
936 1-1) proc="ev56"; cpu_understands_mvi="0";;
937 1-101) proc="pca56"; cpu_understands_mvi="1";;
938 2-303) proc="ev6"; cpu_understands_mvi="1";;
939 2-307) proc="ev67"; cpu_understands_mvi="1";;
940 2-1307) proc="ev68"; cpu_understands_mvi="1";;
941 esac
942 echores "$proc"
944 echocheck "GCC & CPU optimization abilities"
945 if test "$proc" = "ev68" ; then
946 cc_check -mcpu=$proc || proc=ev67
948 if test "$proc" = "ev67" ; then
949 cc_check -mcpu=$proc || proc=ev6
951 _mcpu="-mcpu=$proc"
952 echores "$proc"
954 _optimizing="$proc"
956 echocheck "MVI instruction support in GCC"
957 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
958 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
959 echores "yes"
960 else
961 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
962 echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
966 mips)
967 _def_arch='#define ARCH_SGI_MIPS 1'
968 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
969 iproc='sgi-mips'
970 proc=''
971 _march=''
972 _mcpu=''
973 _optimizing=''
976 hppa)
977 _def_arch='#define ARCH_PA_RISC 1'
978 _target_arch='TARGET_ARCH_PA_RISC = yes'
979 iproc='PA-RISC'
980 proc=''
981 _march=''
982 _mcpu=''
983 _optimizing=''
986 s390)
987 _def_arch='#define ARCH_S390 1'
988 _target_arch='TARGET_ARCH_S390 = yes'
989 iproc='390'
990 proc=''
991 _march=''
992 _mcpu=''
993 _optimizing=''
996 s390x)
997 _def_arch='#define ARCH_S390X 1'
998 _target_arch='TARGET_ARCH_S390X = yes'
999 iproc='390x'
1000 proc=''
1001 _march=''
1002 _mcpu=''
1003 _optimizing=''
1007 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1008 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1009 die "unsupported architecture $host_arch"
1011 esac
1013 if test "$_runtime_cpudetection" = yes ; then
1014 if x86; then
1015 _mmx=yes
1016 _3dnow=yes
1017 _3dnowex=yes
1018 _mmx2=yes
1019 _sse=yes
1020 _sse2=yes
1021 _mtrr=yes
1023 if ppc; then
1024 _altivec=yes
1028 if x86 && test "$_runtime_cpudetection" = no ; then
1029 extcheck() {
1030 if test "$1" = yes ; then
1031 echocheck "kernel support of $2"
1032 cat > $TMPC <<EOF
1033 #include <signal.h>
1034 void catch() { exit(1); }
1035 int main(void){
1036 signal(SIGILL, catch);
1037 __asm__ __volatile__ ("$3":::"memory");return(0);
1041 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1042 echores "yes"
1043 _optimizing="$_optimizing $2"
1044 return 0
1045 else
1046 echores "failed"
1047 echo "It seems that your kernel does not correctly support $2."
1048 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1049 return 1
1052 return 0
1055 extcheck $_mmx "mmx" "emms" || _mmx=no
1056 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1057 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1058 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1059 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1060 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1061 echocheck "mtrr support"
1062 echores "$_mtrr"
1064 if test "$_mtrr" = yes ; then
1065 _optimizing="$_optimizing mtrr"
1068 if test "$_gcc3_ext" != ""; then
1069 # if we had to disable sse/sse2 because the active kernel does not
1070 # support this instruction set extension, we also have to tell
1071 # gcc3 to not generate sse/sse2 instructions for normal C code
1072 cat > $TMPC << EOF
1073 int main(void) { return 0; }
1075 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1081 _prefix="/usr/local"
1082 _xvmclib="XvMCNVIDIA"
1084 # GOTCHA: the variables below defines the default behavior for autodetection
1085 # and have - unless stated otherwise - at least 2 states : yes no
1086 # If autodetection is available then the third state is: auto
1087 _libavcodec=auto
1088 _libavcodecso=auto
1089 _fame=auto
1090 _mp1e=no
1091 _mencoder=yes
1092 _x11=auto
1093 _dga=auto # 1 2 no auto
1094 _xv=auto
1095 _xvmc=no #auto when complete
1096 _sdl=auto
1097 _directx=auto
1098 _win32waveout=auto
1099 _nas=auto
1100 _png=auto
1101 _jpg=auto
1102 _gif=auto
1103 _gl=auto
1104 _ggi=auto
1105 _aa=auto
1106 _svga=auto
1107 _vesa=auto
1108 _fbdev=auto
1109 _dvb=auto
1110 _dvbhead=auto
1111 _dxr2=auto
1112 _dxr3=auto
1113 _iconv=auto
1114 _rtc=auto
1115 _ossaudio=auto
1116 _arts=auto
1117 _esd=auto
1118 _liblzo=auto
1119 _mad=auto
1120 _vorbis=auto
1121 _theora=auto
1122 _matroska=auto
1123 _tremor=no
1124 _faad_internal=auto
1125 _faad_external=auto
1126 _xmms=no
1127 _flac=auto
1128 _external_flac=auto
1129 _css=auto
1130 # dvdnav disabled, it does not work
1131 #_dvdnav=no
1132 _dvdread=auto
1133 _dvdkit=auto
1134 _xanim=auto
1135 _real=auto
1136 _live=no
1137 _xinerama=auto
1138 _mga=auto
1139 _xmga=auto
1140 _vm=auto
1141 _mlib=auto
1142 _sgiaudio=auto
1143 _sunaudio=auto
1144 _alsa=auto
1145 _fastmemcpy=yes
1146 _unrarlib=yes
1147 _win32=auto
1148 _dshow=yes
1149 _select=yes
1150 _tv=yes
1151 _tv_v4l=auto
1152 _tv_v4l2=auto
1153 _tv_bsdbt848=auto
1154 _edl=yes
1155 _network=yes
1156 _winsock2=auto
1157 _smbsupport=auto
1158 _vidix=auto
1159 _joystick=no
1160 _xvid=auto
1161 _divx4linux=auto
1162 _opendivx=no
1163 _lirc=auto
1164 _lircc=auto
1165 _gui=no
1166 _termcap=auto
1167 _termios=auto
1168 _3dfx=no
1169 _tdfxfb=no
1170 _tdfxvid=no
1171 _tga=yes
1172 _directfb=auto
1173 _zr=auto
1174 _bl=no
1175 _largefiles=no
1176 #_language=en
1177 _shm=auto
1178 _linux_devfs=no
1179 _i18n=auto
1180 _dynamic_plugins=no
1181 _setlocale=auto
1182 _sighandler=yes
1183 _libdv=auto
1184 _cdparanoia=auto
1185 _big_endian=auto
1186 _freetype=auto
1187 _shared_pp=no
1188 _menu=no
1189 _qtx=auto
1190 _macosx=auto
1191 _sortsub=yes
1192 _freetypeconfig='freetype-config'
1193 _fribidi=no
1194 _fribidiconfig='fribidi-config'
1195 _inet6=auto
1196 _gethostbyname2=auto
1197 _ftp=yes
1198 for ac_option do
1199 case "$ac_option" in
1200 # Skip 1st pass
1201 --target=*) ;;
1202 --cc=*) ;;
1203 --as=*) ;;
1204 --enable-gcc-checking) ;;
1205 --disable-gcc-checking) ;;
1206 --enable-static*) ;;
1207 --disable-static*) ;;
1208 --with-extraincdir=*) ;;
1209 --with-extralibdir=*) ;;
1210 --enable-runtime-cpudetection) ;;
1211 --disable-runtime-cpudetection) ;;
1212 --install-path=*) ;;
1213 --with-install=*) ;;
1215 # Real 2nd pass
1216 --enable-mencoder) _mencoder=yes ;;
1217 --disable-mencoder) _mencoder=no ;;
1218 --enable-i18n) _i18n=yes ;;
1219 --disable-i18n) _i18n=no ;;
1220 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1221 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1222 --enable-setlocale) _setlocale=yes ;;
1223 --disable-setlocale) _setlocale=no ;;
1224 --enable-x11) _x11=yes ;;
1225 --disable-x11) _x11=no ;;
1226 --enable-xv) _xv=yes ;;
1227 --disable-xv) _xv=no ;;
1228 --enable-xvmc) _xvmc=yes ;;
1229 --disable-xvmc) _xvmc=no ;;
1230 --enable-sdl) _sdl=yes ;;
1231 --disable-sdl) _sdl=no ;;
1232 --enable-directx) _directx=yes ;;
1233 --disable-directx) _directx=no ;;
1234 --enable-win32waveout) _win32waveout=yes ;;
1235 --disable-win32waveout) _win32waveout=no ;;
1236 --enable-nas) _nas=yes ;;
1237 --disable-nas) _nas=no ;;
1238 --enable-png) _png=yes ;;
1239 --disable-png) _png=no ;;
1240 --enable-jpeg) _jpg=yes ;;
1241 --disable-jpeg) _jpg=no ;;
1242 --enable-gif) _gif=yes ;;
1243 --disable-gif) _gif=no ;;
1244 --enable-gl) _gl=yes ;;
1245 --disable-gl) _gl=no ;;
1246 --enable-ggi) _ggi=yes ;;
1247 --disable-ggi) _ggi=no ;;
1248 --enable-aa) _aa=yes ;;
1249 --disable-aa) _aa=no ;;
1250 --enable-svga) _svga=yes ;;
1251 --disable-svga) _svga=no ;;
1252 --enable-vesa) _vesa=yes ;;
1253 --disable-vesa) _vesa=no ;;
1254 --enable-fbdev) _fbdev=yes ;;
1255 --disable-fbdev) _fbdev=no ;;
1256 --enable-dvb) _dvb=yes ;;
1257 --disable-dvb) _dvb=no ;;
1258 --enable-dvbhead) _dvbhead=yes ;;
1259 --disable-dvbhead) _dvbhead=no ;;
1260 --enable-dxr2) _dxr2=yes ;;
1261 --disable-dxr2) _dxr2=no ;;
1262 --enable-dxr3) _dxr3=yes ;;
1263 --disable-dxr3) _dxr3=no ;;
1264 --enable-iconv) _iconv=yes ;;
1265 --disable-iconv) _iconv=no ;;
1266 --enable-rtc) _rtc=yes ;;
1267 --disable-rtc) _rtc=no ;;
1268 --enable-mp1e) _mp1e=yes ;;
1269 --disable-mp1e) _mp1e=no ;;
1270 --enable-libdv) _libdv=yes ;;
1271 --disable-libdv) _libdv=no ;;
1272 --enable-ossaudio) _ossaudio=yes ;;
1273 --disable-ossaudio) _ossaudio=no ;;
1274 --enable-arts) _arts=yes ;;
1275 --disable-arts) _arts=no ;;
1276 --enable-esd) _esd=yes ;;
1277 --disable-esd) _esd=no ;;
1278 --enable-mad) _mad=yes ;;
1279 --disable-mad) _mad=no ;;
1280 --enable-liblzo) _liblzo=yes ;;
1281 --disable-liblzo) _liblzo=no ;;
1282 --enable-vorbis) _vorbis=yes ;;
1283 --disable-vorbis) _vorbis=no ;;
1284 --enable-tremor) _tremor=yes ;;
1285 --disable-tremor) _tremor=no ;;
1286 --enable-theora) _theora=yes ;;
1287 --disable-theora) _theora=no ;;
1288 --enable-matroska) _matroska=yes ;;
1289 --disable-matroska) _matroska=no ;;
1290 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1291 --disable-internal-faad) _faad_internal=no ;;
1292 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1293 --disable-external-faad) _faad_external=no ;;
1294 --enable-xmms) _xmms=yes ;;
1295 --enable-flac) _flac=yes ;;
1296 --disable-flac) _flac=no ;;
1297 --enable-external-flac) _external_flac=yes ;;
1298 --disable-external-flac) _external_flac=no ;;
1299 --enable-css) _css=yes ;;
1300 --disable-css) _css=no ;;
1301 --enable-dvdread) _dvdread=yes ;;
1302 --disable-dvdread) _dvdread=no ;;
1303 --enable-mpdvdkit) _dvdkit=yes ;;
1304 --disable-mpdvdkit) _dvdkit=no ;;
1305 # dvdnav disabled, it does not work
1306 # --enable-dvdnav) _dvdnav=yes ;;
1307 # --disable-dvdnav) _dvdnav=no ;;
1308 --enable-xanim) _xanim=yes ;;
1309 --disable-xanim) _xanim=no ;;
1310 --enable-real) _real=yes ;;
1311 --disable-real) _real=no ;;
1312 --enable-live) _live=yes ;;
1313 --disable-live) _live=no ;;
1314 --enable-xinerama) _xinerama=yes ;;
1315 --disable-xinerama) _xinerama=no ;;
1316 --enable-mga) _mga=yes ;;
1317 --disable-mga) _mga=no ;;
1318 --enable-xmga) _xmga=yes ;;
1319 --disable-xmga) _xmga=no ;;
1320 --enable-vm) _vm=yes ;;
1321 --disable-vm) _vm=no ;;
1322 --enable-mlib) _mlib=yes ;;
1323 --disable-mlib) _mlib=no ;;
1324 --enable-sunaudio) _sunaudio=yes ;;
1325 --disable-sunaudio) _sunaudio=no ;;
1326 --enable-sgiaudio) _sgiaudio=yes ;;
1327 --disable-sgiaudio) _sgiaudio=no ;;
1328 --enable-alsa) _alsa=yes ;;
1329 --disable-alsa) _alsa=no ;;
1330 --enable-tv) _tv=yes ;;
1331 --disable-tv) _tv=no ;;
1332 --enable-edl) _edl=yes ;;
1333 --disable-edl) _edl=no ;;
1334 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1335 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1336 --enable-tv-v4l) _tv_v4l=yes ;;
1337 --disable-tv-v4l) _tv_v4l=no ;;
1338 --enable-tv-v4l2) _tv_v4l2=yes ;;
1339 --disable-tv-v4l2) _tv_v4l2=no ;;
1340 --enable-fastmemcpy) _fastmemcpy=yes ;;
1341 --disable-fastmemcpy) _fastmemcpy=no ;;
1342 --enable-network) _network=yes ;;
1343 --disable-network) _network=no ;;
1344 --enable-winsock2) _winsock2=yes ;;
1345 --disable-winsock2) _winsock2=no ;;
1346 --enable-smb) _smbsupport=yes ;;
1347 --disable-smb) _smbsupport=no ;;
1348 --enable-vidix) _vidix=yes ;;
1349 --disable-vidix) _vidix=no ;;
1350 --enable-joystick) _joystick=yes ;;
1351 --disable-joystick) _joystick=no ;;
1352 --enable-xvid) _xvid=yes ;;
1353 --disable-xvid) _xvid=no ;;
1354 --enable-divx4linux) _divx4linux=yes ;;
1355 --disable-divx4linux) _divx4linux=no ;;
1356 --enable-opendivx) _opendivx=yes ;;
1357 --disable-opendivx) _opendivx=no ;;
1358 --enable-libavcodec) _libavcodec=yes ;;
1359 --disable-libavcodec) _libavcodec=no ;;
1360 --enable-libfame) _fame=yes ;;
1361 --disable-libfame) _fame=no ;;
1362 --enable-lirc) _lirc=yes ;;
1363 --disable-lirc) _lirc=no ;;
1364 --enable-lircc) _lircc=yes ;;
1365 --disable-lircc) _lircc=no ;;
1366 --enable-gui) _gui=yes ;;
1367 --disable-gui) _gui=no ;;
1368 --enable-termcap) _termcap=yes ;;
1369 --disable-termcap) _termcap=no ;;
1370 --enable-termios) _termios=yes ;;
1371 --disable-termios) _termios=no ;;
1372 --enable-3dfx) _3dfx=yes ;;
1373 --disable-3dfx) _3dfx=no ;;
1374 --enable-tdfxfb) _tdfxfb=yes ;;
1375 --disable-tdfxvid) _tdfxvid=no ;;
1376 --enable-tdfxvid) _tdfxvid=yes ;;
1377 --disable-tga) _tga=no ;;
1378 --enable-tga) _tga=yes ;;
1379 --disable-tdfxfb) _tdfxfb=no ;;
1380 --enable-directfb) _directfb=yes ;;
1381 --disable-directfb) _directfb=no ;;
1382 --enable-zr) _zr=yes ;;
1383 --disable-zr) _zr=no ;;
1384 --enable-bl) _bl=yes ;;
1385 --disable-bl) _bl=no ;;
1386 --enable-mtrr) _mtrr=yes ;;
1387 --disable-mtrr) _mtrr=no ;;
1388 --enable-largefiles) _largefiles=yes ;;
1389 --disable-largefiles) _largefiles=no ;;
1390 --enable-shm) _shm=yes ;;
1391 --disable-shm) _shm=no ;;
1392 --enable-select) _select=yes ;;
1393 --disable-select) _select=no ;;
1394 --enable-linux-devfs) _linux_devfs=yes ;;
1395 --disable-linux-devfs) _linux_devfs=no ;;
1396 --enable-cdparanoia) _cdparanoia=yes ;;
1397 --disable-cdparanoia) _cdparanoia=no ;;
1398 --enable-big-endian) _big_endian=yes ;;
1399 --disable-big-endian) _big_endian=no ;;
1400 --enable-freetype) _freetype=yes ;;
1401 --disable-freetype) _freetype=no ;;
1402 --enable-unrarlib) _unrarlib=yes ;;
1403 --disable-unrarlib) _unrarlib=no ;;
1404 --enable-ftp) _ftp=yes ;;
1405 --disable-ftp) _ftp=no ;;
1407 --enable-fribidi) _fribidi=yes ;;
1408 --disable-fribidi) _fribidi=no ;;
1410 --enable-inet6) _inet6=yes ;;
1411 --disable-inet6) _inet6=no ;;
1413 --enable-gethostbyname2) _gethostbyname2=yes ;;
1414 --disable-gethostbyname2) _gethostbyname2=no ;;
1416 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1417 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1418 --disable-dga) _dga=no ;;
1420 --enable-shared-pp) _shared_pp=yes ;;
1421 --disable-shared-pp) _shared_pp=no ;;
1423 --enable-menu) _menu=yes ;;
1424 --disable-menu) _menu=no ;;
1426 --enable-qtx) _qtx=yes ;;
1427 --disable-qtx) _qtx=no ;;
1429 --enable-macosx) _macosx=yes ;;
1430 --disable-macosx) _macosx=no ;;
1432 --enable-sortsub) _sortsub=yes ;;
1433 --disable-sortsub) _sortsub=no ;;
1435 --language=*)
1436 _language=`echo $ac_option | cut -d '=' -f 2`
1438 # dvdnav disabled, it does not work
1439 # --with-libdvdnav=*)
1440 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1441 # _dvdnav=yes
1442 # ;;
1444 --with-codecsdir=*)
1445 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1446 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1447 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1449 --with-win32libdir=*)
1450 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1451 _win32=yes
1453 --with-xanimlibdir=*)
1454 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1455 _xanim=yes
1457 --with-reallibdir=*)
1458 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1459 _real=yes
1461 --with-livelibdir=*)
1462 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1463 _live=yes
1465 --with-csslibdir=*)
1466 _csslibdir=`echo $ac_option | cut -d '=' -f 2`
1467 _css=yes
1469 --with-mlibdir=*)
1470 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1471 _mlib=yes
1474 --with-xmmslibdir=*)
1475 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1478 --with-xmmsplugindir=*)
1479 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1482 --disable-profile)
1483 _profile=
1485 --enable-profile)
1486 _profile='-p'
1488 --enable-debug)
1489 _debug='-g'
1491 --enable-debug=*)
1492 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1494 --disable-sighandler)
1495 _sighandler=no
1498 --enable-sse) _sse=yes ;;
1499 --disable-sse) _sse=no ;;
1500 --enable-sse2) _sse2=yes ;;
1501 --disable-sse2) _sse2=no ;;
1502 --enable-mmx2) _mmx2=yes ;;
1503 --disable-mmx2) _mmx2=no ;;
1504 --enable-3dnow) _3dnow=yes ;;
1505 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1506 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1507 --disable-3dnowex) _3dnowex=no ;;
1508 --enable-altivec) _altivec=yes ;;
1509 --disable-altivec) _altivec=no ;;
1510 --enable-mmx) _mmx=yes ;;
1511 --disable-mmx) # 3Dnow! and MMX2 require MMX
1512 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1514 --enable-win32) _win32=yes ;;
1515 --disable-win32) _win32=no _dshow=no ;;
1516 --enable-dshow) _win32=yes _dshow=yes ;;
1517 --disable-dshow) _dshow=no ;;
1519 --with-x11incdir=*)
1520 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1522 --with-x11libdir=*)
1523 _ld_x11=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1525 --with-dxr2incdir=*)
1526 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1528 --with-xvmclib=*)
1529 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1531 --with-dvbincdir=*)
1532 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1534 --with-xvidlibdir=*)
1535 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1537 --with-xvidincdir=*)
1538 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1540 --with-sdl-config=*)
1541 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1543 --with-freetype-config=*)
1544 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1546 --with-fribidi-config=*)
1547 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1549 --with-gtk-config=*)
1550 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1552 --with-glib-config=*)
1553 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1555 # dvdnav disabled, it does not work
1556 # --with-dvdnav-config=*)
1557 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1558 # ;;
1559 --with-madlibdir=*)
1560 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1562 --with-cdparanoiaincdir=*)
1563 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1565 --with-cdparanoialibdir=*)
1566 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1568 --with-termcaplib=*)
1569 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
1570 _termcap=yes
1572 --prefix=*)
1573 _prefix=`echo $ac_option | cut -d '=' -f 2`
1575 --bindir=*)
1576 _bindir=`echo $ac_option | cut -d '=' -f 2`
1578 --datadir=*)
1579 _datadir=`echo $ac_option | cut -d '=' -f 2`
1581 --mandir=*)
1582 _mandir=`echo $ac_option | cut -d '=' -f 2`
1584 --confdir=*)
1585 _confdir=`echo $ac_option | cut -d '=' -f 2`
1587 --libdir=*)
1588 _libdir=`echo $ac_option | cut -d '=' -f 2`
1592 echo "Unknown parameter: $ac_option"
1593 exit 1
1596 esac
1597 done
1599 # Atmos: moved this here, to be correct, if --prefix is specified
1600 test -z "$_bindir" && _bindir="$_prefix/bin"
1601 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1602 test -z "$_mandir" && _mandir="$_prefix/man"
1603 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1604 test -z "$_libdir" && _libdir="$_prefix/lib"
1605 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1607 if x86 ; then
1608 # Checking assembler (_as) compatibility...
1609 # Added workaround for older as that reads from stdin by default - atmos
1610 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1611 echocheck "assembler ($_as $as_version)"
1613 _pref_as_version='2.9.1'
1614 echo 'nop' > $TMPS
1615 if test "$_mmx" = yes ; then
1616 echo 'emms' >> $TMPS
1618 if test "$_3dnow" = yes ; then
1619 _pref_as_version='2.10.1'
1620 echo 'femms' >> $TMPS
1622 if test "$_3dnowex" = yes ; then
1623 _pref_as_version='2.10.1'
1624 echo 'pswapd %mm0, %mm0' >> $TMPS
1626 if test "$_mmx2" = yes ; then
1627 _pref_as_version='2.10.1'
1628 echo 'movntq %mm0, (%eax)' >> $TMPS
1630 if test "$_sse" = yes ; then
1631 _pref_as_version='2.10.1'
1632 echo 'xorps %xmm0, %xmm0' >> $TMPS
1634 #if test "$_sse2" = yes ; then
1635 # _pref_as_version='2.11'
1636 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1638 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
1640 if test "$as_verc_fail" != yes ; then
1641 echores "ok"
1642 else
1643 echores "failed"
1644 echo "Upgrade binutils to ${_pref_as_version} ..."
1645 die "obsolete binutils version"
1649 if ppc ; then
1651 # check if altivec is supported by the compiler, and how to enable it
1653 _altivec_gcc_flags=''
1655 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
1656 echocheck "GCC altivec support"
1658 p=''
1659 cat > $TMPC << EOF
1660 int main() {
1661 return 0;
1664 FSF_flags='-maltivec -mabi=altivec'
1665 Darwin_flags='-faltivec'
1667 # check for Darwin-style flags first, since
1668 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
1669 # accepts but ignores FSF-style flags...
1671 if test -z "$p"; then
1672 cc_check $Darwin_flags && p='Darwin'
1674 if test -z "$p"; then
1675 cc_check $FSF_flags && p='FSF'
1678 case $p in
1679 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
1680 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
1681 *) _altivec=no ;;
1682 esac
1684 if test -z "$p"; then
1685 p=none
1686 else
1687 p="$p-style ($_altivec_gcc_flags)"
1690 echores "$p"
1693 # check if <altivec.h> should be included
1695 _def_altivec_h='#undef HAVE_ALTIVEC_H'
1697 if test "$_altivec" = yes ; then
1698 echocheck "altivec.h"
1699 cat > $TMPC << EOF
1700 #include <altivec.h>
1701 int main(void) { return 0; }
1703 _have_altivec_h=no
1704 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
1705 if test "$_have_altivec_h" = yes ; then
1706 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
1708 echores "$_have_altivec_h"
1711 # disable runtime cpudetection if
1712 # - we cannot generate altivec code
1713 # - altivec is disabled by the user
1715 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
1716 _runtime_cpudetection=no
1719 # show that we are optimizing for altivec (if enabled and supported)
1721 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
1722 _optimizing="$_optimizing altivec"
1725 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
1727 if test "$_altivec" = yes ; then
1728 _mcpu="$_mcpu $_altivec_gcc_flags"
1731 # setup _def_altivec correctly
1733 if test "$_altivec" = yes ; then
1734 _def_altivec='#define HAVE_ALTIVEC 1'
1735 else
1736 _def_altivec='#undef HAVE_ALTIVEC'
1740 _def_mmx='#undef HAVE_MMX'
1741 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
1742 _def_mmx2='#undef HAVE_MMX2'
1743 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
1744 _def_3dnow='#undef HAVE_3DNOW'
1745 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
1746 _def_3dnowex='#undef HAVE_3DNOWEX'
1747 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
1748 _def_sse='#undef HAVE_SSE'
1749 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
1750 _def_sse2='#undef HAVE_SSE2'
1751 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
1753 # Checking kernel version...
1754 if x86 && linux ; then
1755 _k_verc_problem=no
1756 kernel_version=`uname -r 2>&1`
1757 echocheck "$system_name kernel version"
1758 case "$kernel_version" in
1759 '') kernel_version="?.??"; _k_verc_fail=yes;;
1760 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
1761 _k_verc_problem=yes;;
1762 esac
1763 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
1764 _k_verc_fail=yes
1766 if test "$_k_verc_fail" ; then
1767 echores "$kernel_version, fail"
1768 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
1769 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
1770 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
1771 echo "supports SSE, but you have been warned! If you are using a kernel older than"
1772 echo "2.2.x you must upgrade it to get SSE support!"
1773 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
1774 else
1775 echores "$kernel_version, ok"
1779 if test "$_vidix" = auto ; then
1780 _vidix=no
1781 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
1782 x86 && _vidix=yes
1783 ppc && linux && _vidix=yes
1784 alpha && linux && _vidix=yes
1785 cygwin && _vidix=no
1786 mingw32 && _vidix=no
1787 qnx && _vidix=no
1788 sunos && _vidix=no
1791 # On QNX we must link to libph - Gabucino
1792 if qnx ; then
1793 _ld_arch="$_ld_arch -lph"
1796 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
1797 _awk=
1798 if test "$_vidix" = yes ; then
1799 _awk_verc_fail=yes
1800 echocheck "awk"
1801 for _awk in mawk gawk nawk awk; do
1802 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
1803 _awk_verc_fail=no
1804 break
1806 done
1807 test "$_awk_verc_fail" = yes && _awk=no
1808 echores "$_awk"
1809 if test "$_awk_verc_fail" = yes; then
1810 echo "VIDIX needs awk, but no working implementation was found!"
1811 echo "Try the GNU version, which can be downloaded from:"
1812 echo "ftp://ftp.gnu.org/gnu/gawk/"
1813 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
1814 die "no awk"
1818 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
1819 if irix ; then
1820 _ranlib='ar -r'
1823 ######################
1824 # MAIN TESTS GO HERE #
1825 ######################
1828 echocheck "extra headers"
1829 if test "$_inc_extra" ; then
1830 echores "$_inc_extra"
1831 else
1832 echores "none"
1836 echocheck "extra libs"
1837 if test "$_ld_extra" ; then
1838 echores "$_ld_extra"
1839 else
1840 echores "none"
1844 # Checking for localization ...
1845 # CSAK EGY MARADHAT - A HEGYLAKO
1846 echocheck "i18n"
1847 if test "$_i18n" != no ; then
1848 cat > $TMPC <<EOF
1849 #include <libintl.h>
1850 int main(void) { gettext("test"); return 0; }
1852 _i18n=no
1853 _i18n_libs=""
1854 if test "$_i18n" = auto ; then
1855 cc_check && _i18n=yes
1856 else
1857 for i18n_lib in "" "-lintl"; do
1858 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
1859 done
1862 if test "$_i18n" = yes ; then
1863 _def_i18n='#define USE_I18N 1'
1864 else
1865 _def_i18n='#undef USE_I18N'
1867 if test -z "$_i18n_libs" ; then
1868 echores "$_i18n"
1869 else
1870 echores "$_i18n (using $_i18n_libs)"
1874 # Checking for setlocale() ...
1875 # CSAK EGY MARADHAT - A HEGYLAKO
1876 # Nemnem. a TV Maci !
1877 echocheck "setlocale()"
1878 if test "$_setlocale" = auto ; then
1879 cat > $TMPC <<EOF
1880 #include <locale.h>
1881 int main(void) { setlocale( LC_ALL,"" ); return 0; }
1883 _setlocale=no
1884 cc_check && _setlocale=yes
1886 if test "$_setlocale" = yes ; then
1887 _def_setlocale='#define USE_SETLOCALE 1'
1888 else
1889 _def_setlocale='#undef USE_SETLOCALE'
1891 echores "$_setlocale"
1894 echocheck "language"
1895 test -z "$_language" && _language=$LINGUAS
1896 _language=`echo $_language | sed 's/,/ /g'`
1897 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
1898 for i in $_language ; do
1899 test "$i" = all && i=en
1900 if test -f "help/help_mp-${i}.h" ; then
1901 _language=$i
1902 break
1903 else
1904 echo -n "$i not found, "
1905 _language=`echo $_language | sed "s/$i *//g"`
1907 done
1908 test -z "$_language" && _language=en
1909 for i in $LANGUAGES ; do
1910 if test -f "DOCS/man/$i/mplayer.1" ; then
1911 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//2" | sed 's/ *$//'`
1912 else
1913 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//g" | sed 's/ *$//'`
1915 done
1916 echores "using $_language (man pages: $LANGUAGES)"
1917 _mp_help="help/help_mp-${_language}.h"
1918 test -f $_mp_help || die "$_mp_help not found"
1920 echocheck "enable sighandler"
1921 if test "$_sighandler" = yes ; then
1922 _def_sighandler='#define ENABLE_SIGHANDLER 1'
1923 else
1924 _def_sighandler='#undef ENABLE_SIGHANDLER'
1926 echores "$_sighandler"
1928 echocheck "runtime cpudetection"
1929 if test "$_runtime_cpudetection" = yes ; then
1930 _optimizing="Runtime CPU-Detection enabled"
1931 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
1932 else
1933 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
1935 echores "$_runtime_cpudetection"
1938 echocheck "restrict keyword"
1939 for restrict_keyword in restrict __restrict __restrict__ ; do
1940 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
1941 if cc_check; then
1942 _def_restrict_keyword=$restrict_keyword
1943 break;
1945 done
1946 if [ -n "$_def_restrict_keyword" ]; then
1947 echores "$_def_restrict_keyword"
1948 else
1949 echores "none"
1953 echocheck "kstat"
1954 cat > $TMPC << EOF
1955 #include <kstat.h>
1956 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
1958 _kstat=no
1959 cc_check -lkstat && _kstat=yes
1960 if test "$_kstat" = yes ; then
1961 _ld_arch="-lkstat $_ld_arch"
1963 if test "$_kstat" = yes ; then
1964 _def_kstat="#define HAVE_LIBKSTAT 1"
1965 else
1966 _def_kstat="#undef HAVE_LIBKSTAT"
1968 echores "$_kstat"
1971 echocheck "posix4"
1972 # required for nanosleep on some systems
1973 cat > $TMPC << EOF
1974 #include <time.h>
1975 int main(void) { (void) nanosleep(0, 0); return 0; }
1977 _posix4=no
1978 cc_check -lposix4 && _posix4=yes
1979 if test "$_posix4" = yes ; then
1980 _ld_arch="-lposix4 $_ld_arch"
1982 echores "$_posix4"
1985 echocheck "lrintf"
1986 cat > $TMPC << EOF
1987 #include <math.h>
1988 int main(void) { (void) lrintf(0.0); return 0; }
1990 _lrintf=no
1991 cc_check -lm && _lrintf=yes
1992 if test "$_lrintf" = yes ; then
1993 _def_lrintf="#define HAVE_LRINTF 1"
1994 else
1995 _def_lrintf="#undef HAVE_LRINTF"
1997 echores "$_lrintf"
2000 echocheck "nanosleep"
2001 # also check for nanosleep
2002 cat > $TMPC << EOF
2003 #include <time.h>
2004 int main(void) { (void) nanosleep(0, 0); return 0; }
2006 _nanosleep=no
2007 cc_check $_ld_arch && _nanosleep=yes
2008 if test "$_nanosleep" = yes ; then
2009 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2010 else
2011 _def_nanosleep='#undef HAVE_NANOSLEEP'
2013 echores "$_nanosleep"
2016 echocheck "socklib"
2017 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2018 cat > $TMPC << EOF
2019 #include <netdb.h>
2020 int main(void) { (void) gethostbyname(0); return 0; }
2022 cc_check -lsocket && _ld_sock="-lsocket"
2023 cc_check -lnsl && _ld_sock="-lnsl"
2024 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
2025 cc_check -lsocket -ldnet && _ld_sock="-lsocket -ldnet"
2026 if test $_winsock2 = auto && not cygwin ; then
2027 _winsock2=no
2028 cat > $TMPC << EOF
2029 #include <winsock2.h>
2030 int main(void) { (void) gethostbyname(0); return 0; }
2032 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2034 if test "$_ld_sock" ; then
2035 echores "yes (using $_ld_sock)"
2036 else
2037 echores "no"
2041 if test $_winsock2 = yes ; then
2042 _ld_sock="-lws2_32"
2043 _def_winsock2='#define HAVE_WINSOCK2 1'
2044 else
2045 _def_winsock2='#undef HAVE_WINSOCK2'
2049 _use_aton=no
2050 echocheck "inet_pton()"
2051 cat > $TMPC << EOF
2052 #include <sys/types.h>
2053 #include <sys/socket.h>
2054 #include <arpa/inet.h>
2055 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2057 if test "$_winsock2" = yes ; then
2058 echores "not needed (using winsock2 functions)"
2059 elif cc_check $_ld_sock ; then
2060 # NOTE: Linux has libresolv but does not need it
2062 echores "yes (using $_ld_sock)"
2063 elif cc_check $_ld_sock -lresolv ; then
2064 # NOTE: needed for SunOS at least
2065 _ld_sock="$_ld_sock -lresolv"
2066 echores "yes (using $_ld_sock)"
2067 else
2068 echores "no (=> i'll try inet_aton next)"
2070 echocheck "inet_aton()"
2071 cat > $TMPC << EOF
2072 #include <sys/types.h>
2073 #include <sys/socket.h>
2074 #include <arpa/inet.h>
2075 int main(void) { (void) inet_aton(0, 0); return 0; }
2077 _use_aton=yes
2078 if cc_check $_ld_sock ; then
2079 # NOTE: Linux has libresolv but does not need it
2081 echores "yes (using $_ld_sock)"
2082 elif cc_check $_ld_sock -lresolv ; then
2083 # NOTE: needed for SunOS at least
2084 _ld_sock="$_ld_sock -lresolv"
2085 echores "yes (using $_ld_sock)"
2086 else
2087 _use_aton=no
2088 _network=no
2089 echores "no (=> network support disabled)"
2093 _def_use_aton='#undef USE_ATON'
2094 if test "$_use_aton" != no; then
2095 _def_use_aton='#define USE_ATON 1'
2099 echocheck "inttypes.h (required)"
2100 cat > $TMPC << EOF
2101 #include <inttypes.h>
2102 int main(void) { return 0; }
2104 _inttypes=no
2105 cc_check && _inttypes=yes
2106 if test "$_inttypes" = yes ; then
2107 # nothing to do
2109 else
2110 echores "no"
2111 echocheck "bitypes.h (inttypes.h predecessor)"
2112 cat > $TMPC << EOF
2113 #include <sys/bitypes.h>
2114 int main(void) { return 0; }
2116 _inttypes=no
2117 cc_check && _inttypes=yes
2118 if test "$_inttypes" = yes ; then
2119 die "you don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h.link into the include path, rename it to inttypes.h and re-run configure."
2120 else
2121 die "cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/en/faq.html)"
2124 echores "$_inttypes"
2127 echocheck "int_fastXY_t in inttypes.h"
2128 cat > $TMPC << EOF
2129 #include <inttypes.h>
2130 int main(void) {
2131 volatile int_fast16_t v= 0;
2132 return v; }
2134 _fast_inttypes=no
2135 cc_check && _fast_inttypes=yes
2136 if test "$_fast_inttypes" = yes ; then
2137 # nothing to do
2139 else
2140 _def_fast_inttypes='
2141 typedef signed char int_fast8_t;
2142 typedef signed int int_fast16_t;
2143 typedef signed int int_fast32_t;
2144 typedef unsigned char uint_fast8_t;
2145 typedef unsigned int uint_fast16_t;
2146 typedef unsigned int uint_fast32_t;'
2148 echores "$_fast_inttypes"
2151 echocheck "word size"
2152 _mp_wordsize="#undef MP_WORDSIZE"
2153 cat > $TMPC << EOF
2154 #include <stdio.h>
2155 #include <sys/types.h>
2156 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2158 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2159 echores "$_wordsize"
2162 echocheck "stddef.h"
2163 cat > $TMPC << EOF
2164 #include <stddef.h>
2165 int main(void) { return 0; }
2167 _stddef=no
2168 cc_check && _stddef=yes
2169 if test "$_stddef" = yes ; then
2170 _def_stddef='#define HAVE_STDDEF_H 1'
2171 else
2172 _def_stddef='#undef HAVE_STDDEF_H'
2174 echores "$_stddef"
2177 echocheck "malloc.h"
2178 cat > $TMPC << EOF
2179 #include <malloc.h>
2180 int main(void) { (void) malloc(0); return 0; }
2182 _malloc=no
2183 cc_check && _malloc=yes
2184 if test "$_malloc" = yes ; then
2185 _def_malloc='#define HAVE_MALLOC_H 1'
2186 else
2187 _def_malloc='#undef HAVE_MALLOC_H'
2189 # malloc.h emits a warning in FreeBSD and OpenBSD
2190 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2191 echores "$_malloc"
2194 echocheck "memalign()"
2195 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2196 cat > $TMPC << EOF
2197 #include <malloc.h>
2198 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2200 _memalign=no
2201 cc_check && _memalign=yes
2202 if test "$_memalign" = yes ; then
2203 _def_memalign='#define HAVE_MEMALIGN 1'
2204 else
2205 _def_memalign='#undef HAVE_MEMALIGN'
2207 echores "$_memalign"
2210 echocheck "alloca.h"
2211 cat > $TMPC << EOF
2212 #include <alloca.h>
2213 int main(void) { (void) alloca(0); return 0; }
2215 _alloca=no
2216 cc_check && _alloca=yes
2217 if cc_check ; then
2218 _def_alloca='#define HAVE_ALLOCA_H 1'
2219 else
2220 _def_alloca='#undef HAVE_ALLOCA_H'
2222 echores "$_alloca"
2225 echocheck "mman.h"
2226 cat > $TMPC << EOF
2227 #include <sys/types.h>
2228 #include <sys/mman.h>
2229 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2231 _mman=no
2232 cc_check && _mman=yes
2233 if test "$_mman" = yes ; then
2234 _def_mman='#define HAVE_SYS_MMAN_H 1'
2235 else
2236 _def_mman='#undef HAVE_SYS_MMAN_H'
2238 echores "$_mman"
2240 echocheck "dynamic loader"
2241 cat > $TMPC << EOF
2242 #include <dlfcn.h>
2243 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2245 _dl=no
2246 if cc_check ; then
2247 _dl=yes
2248 elif cc_check -ldl ; then
2249 _dl=yes
2250 _ld_dl='-ldl'
2252 if test "$_dl" = yes ; then
2253 _def_dl='#define HAVE_LIBDL 1'
2254 else
2255 _def_dl='#undef HAVE_LIBDL'
2257 echores "$_dl"
2260 echocheck "dynamic a/v plugins support"
2261 if test "$_dl" = no ; then
2262 _dynamic_plugins=no
2264 if test "$_dynamic_plugins" = yes ; then
2265 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2266 else
2267 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2269 echores "$_dynamic_plugins"
2272 #echocheck "dynamic linking"
2273 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2274 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2275 #cat > $TMPC << EOF
2276 #int main(void) { return 0; }
2277 #EOF
2278 #if cc_check -rdynamic ; then
2279 # _ld_dl_dynamic='-rdynamic'
2280 #elif cc_check -Bdynamic ; then
2281 # _ld_dl_dynamic='-Bdynamic'
2282 #elif cc_check ; then
2283 # _ld_dl_dynamic=''
2285 #echores "using $_ld_dl_dynamic"
2288 echocheck "pthread"
2289 cat > $TMPC << EOF
2290 #include <pthread.h>
2291 void* func(void *arg) { return arg; }
2292 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2294 if mingw32 ; then
2295 _ld_pthread=''
2296 elif ( cc_check && $TMPO ) ; then # QNX
2297 _ld_pthread=''
2298 elif ( cc_check -lpthread && $TMPO ) ; then
2299 _ld_pthread='-lpthread'
2300 elif ( cc_check -pthread && $TMPO ) ; then
2301 _ld_pthread='-pthread'
2302 else
2303 if test "$_ld_static" ; then
2304 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2305 if ( cc_check -lpthread ) ; then
2306 _ld_pthread='-lpthread'
2307 elif ( cc_check -pthread ) ; then
2308 _ld_pthread='-pthread'
2309 else
2310 echores "no static pthread found (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, Win32 loader disabled)"
2311 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2313 else
2314 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2315 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2318 if test "$_ld_pthread" != '' ; then
2319 echores "yes (using $_ld_pthread)"
2322 echocheck "sys/soundcard.h"
2323 cat > $TMPC << EOF
2324 #include <sys/soundcard.h>
2325 int main(void) { return 0; }
2327 _sys_soundcard=no
2328 cc_check && _sys_soundcard=yes
2329 if test "$_sys_soundcard" = yes ; then
2330 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2331 _inc_soundcard='#include <sys/soundcard.h>'
2332 else
2333 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2335 echores "$_sys_soundcard"
2337 if test "$_sys_soundcard" != yes ; then
2338 echocheck "soundcard.h"
2339 cat > $TMPC << EOF
2340 #include <soundcard.h>
2341 int main(void) { return 0; }
2343 _soundcard=no
2344 cc_check && _soundcard=yes
2345 if linux || test "$_ossaudio" != no ; then
2346 # use soundcard.h on Linux, or when OSS support is enabled
2347 echores "$_soundcard"
2348 else
2349 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2350 echores "$_soundcard, but ignored!"
2351 _soundcard=no
2353 if test "$_soundcard" = yes ; then
2354 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2355 _inc_soundcard='#include <soundcard.h>'
2356 else
2357 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2359 else
2360 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2364 echocheck "sys/dvdio.h"
2365 cat > $TMPC << EOF
2366 #include <unistd.h>
2367 #include <sys/dvdio.h>
2368 int main(void) { return 0; }
2370 _dvdio=no
2371 cc_check && _dvdio=yes
2372 if test "$_dvdio" = yes ; then
2373 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2374 else
2375 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2377 echores "$_dvdio"
2380 echocheck "sys/cdio.h"
2381 cat > $TMPC << EOF
2382 #include <unistd.h>
2383 #include <sys/cdio.h>
2384 int main(void) { return 0; }
2386 _cdio=no
2387 cc_check && _cdio=yes
2388 if test "$_cdio" = yes ; then
2389 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2390 else
2391 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2393 echores "$_cdio"
2396 echocheck "linux/cdrom.h"
2397 cat > $TMPC << EOF
2398 #include <sys/types.h>
2399 #include <linux/cdrom.h>
2400 int main(void) { return 0; }
2402 _cdrom=no
2403 cc_check && _cdrom=yes
2404 if test "$_cdrom" = yes ; then
2405 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2406 else
2407 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2409 echores "$_cdrom"
2412 echocheck "dvd.h"
2413 cat > $TMPC << EOF
2414 #include <dvd.h>
2415 int main(void) { return 0; }
2417 _dvd=no
2418 cc_check && _dvd=yes
2419 if test "$_dvd" = yes ; then
2420 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2421 else
2422 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2424 echores "$_dvd"
2427 echocheck "BSDI dvd.h"
2428 cat > $TMPC << EOF
2429 #include <dvd.h>
2430 int main(void) { return 0; }
2432 _bsdi_dvd=no
2433 cc_check && _bsdi_dvd=yes
2434 if test "$_bsdi_dvd" = yes ; then
2435 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2436 else
2437 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2439 echores "$_bsdi_dvd"
2442 echocheck "HPUX SCSI header"
2443 cat > $TMPC << EOF
2444 #include <sys/scsi.h>
2445 int main(void) { return 0; }
2447 _hpux_scsi_h=no
2448 cc_check && _hpux_scsi_h=yes
2449 if test "$_hpux_scsi_h" = yes ; then
2450 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2451 else
2452 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2454 echores "$_hpux_scsi_h"
2457 echocheck "userspace SCSI headers (Solaris)"
2458 cat > $TMPC << EOF
2459 # include <unistd.h>
2460 # include <stropts.h>
2461 # include <sys/scsi/scsi_types.h>
2462 # include <sys/scsi/impl/uscsi.h>
2463 int main(void) { return 0; }
2465 _sol_scsi_h=no
2466 cc_check && _sol_scsi_h=yes
2467 if test "$_sol_scsi_h" = yes ; then
2468 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2469 else
2470 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2472 echores "$_sol_scsi_h"
2475 echocheck "termcap"
2476 if test "$_termcap" = auto ; then
2477 cat > $TMPC <<EOF
2478 int main(void) { return 0; }
2480 _termcap=no
2481 cc_check -ltermcap && _termcap=yes && _ld_termcap='-ltermcap'
2482 cc_check -ltinfo && _termcap=yes && _ld_termcap='-ltinfo'
2484 if test "$_termcap" = yes ; then
2485 _def_termcap='#define USE_TERMCAP 1'
2486 echores "yes (using $_ld_termcap)"
2487 else
2488 _def_termcap='#undef USE_TERMCAP'
2489 echores no
2493 echocheck "termios"
2494 if test "$_termios" = auto ; then
2495 cat > $TMPC <<EOF
2496 #include <sys/termios.h>
2497 int main(void) { return 0; }
2499 _termios=no
2500 cc_check && _termios=yes
2501 _def_termios_h_name='sys/termios.h'
2503 # second test:
2504 if test "$_termios" = no ; then
2505 cat > $TMPC <<EOF
2506 #include <termios.h>
2507 int main(void) { return 0; }
2509 _termios=no
2510 cc_check && _termios=yes
2511 _def_termios_h_name='termios.h'
2514 if test "$_termios" = yes ; then
2515 _def_termios='#define HAVE_TERMIOS 1'
2516 _def_termios_h='#undef HAVE_TERMIOS_H'
2517 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
2519 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
2520 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
2521 elif test "$_def_termios_h_name" = 'termios.h' ; then
2522 _def_termios_h='#define HAVE_TERMIOS_H 1'
2524 echores "yes (using $_def_termios_h_name)"
2525 else
2526 _def_termios='#undef HAVE_TERMIOS'
2527 _def_termios_h_name=''
2528 echores "no"
2532 echocheck "shm"
2533 if test "$_shm" = auto ; then
2534 cat > $TMPC << EOF
2535 #include <sys/types.h>
2536 #include <sys/shm.h>
2537 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
2539 _shm=no
2540 cc_check && _shm=yes
2542 if test "$_shm" = yes ; then
2543 _def_shm='#define HAVE_SHM 1'
2544 else
2545 _def_shm='#undef HAVE_SHM'
2547 echores "$_shm"
2550 # XXX: FIXME, add runtime checking
2551 echocheck "linux devfs"
2552 echores "$_linux_devfs"
2555 echocheck "scandir()"
2556 cat > $TMPC << EOF
2557 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
2559 _scandir=no
2560 cc_check && _scandir=yes
2561 if test "$_scandir" = yes ; then
2562 _def_scandir='#define HAVE_SCANDIR 1'
2563 else
2564 _def_scandir='#undef HAVE_SCANDIR'
2566 echores "$_scandir"
2569 echocheck "strsep()"
2570 cat > $TMPC << EOF
2571 #include <string.h>
2572 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
2574 _strsep=no
2575 cc_check && _strsep=yes
2576 if test "$_strsep" = yes ; then
2577 _def_strsep='#define HAVE_STRSEP 1'
2578 else
2579 _def_strsep='#undef HAVE_STRSEP'
2581 echores "$_strsep"
2584 echocheck "vsscanf()"
2585 cat > $TMPC << EOF
2586 #include <stdarg.h>
2587 int main(void) { vsscanf(0, 0, 0); return 0; }
2589 _vsscanf=no
2590 cc_check && _vsscanf=yes
2591 if test "$_vsscanf" = yes ; then
2592 _def_vsscanf='#define HAVE_VSSCANF 1'
2593 else
2594 _def_vsscanf='#undef HAVE_VSSCANF'
2596 echores "$_vsscanf"
2599 echocheck "posix select()"
2600 cat > $TMPC << EOF
2601 #include <stdio.h>
2602 #include <stdlib.h>
2603 #include <sys/types.h>
2604 #include <string.h>
2605 #include <sys/time.h>
2606 #include <unistd.h>
2607 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
2609 _posix_select=no
2610 cc_check && _posix_select=yes
2611 if test "$_posix_select" = no ; then
2612 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
2613 else
2614 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
2616 echores "$_posix_select"
2619 echocheck "gettimeofday()"
2620 cat > $TMPC << EOF
2621 #include <stdio.h>
2622 #include <sys/time.h>
2623 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
2625 _gettimeofday=no
2626 cc_check && _gettimeofday=yes
2627 if test "$_gettimeofday" = yes ; then
2628 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
2629 else
2630 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
2632 echores "$_gettimeofday"
2635 echocheck "glob()"
2636 cat > $TMPC << EOF
2637 #include <stdio.h>
2638 #include <glob.h>
2639 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
2641 _glob=no
2642 cc_check && _glob=yes
2643 if test "$_glob" = yes ; then
2644 _def_glob='#define HAVE_GLOB 1'
2645 else
2646 _def_glob='#undef HAVE_GLOB'
2648 echores "$_glob"
2651 echocheck "sys/sysinfo.h"
2652 cat > $TMPC << EOF
2653 #include <sys/sysinfo.h>
2654 int main(void) {
2655 struct sysinfo s_info;
2656 sysinfo(&s_info);
2657 return 0;
2660 _sys_sysinfo=no
2661 cc_check && _sys_sysinfo=yes
2662 if test "$_sys_sysinfo" = yes ; then
2663 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
2664 _inc_sysinfo='#include <sys/sysinfo.h>'
2665 else
2666 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
2668 echores "$_sys_sysinfo"
2671 echocheck "Mac OS X APIs"
2672 if test "$_macosx" = auto ; then
2673 if darwin && ppc; then
2674 _macosx=yes
2675 else
2676 _macosx=no
2677 _def_macosx='#undef MACOSX'
2678 _noaomodules="macosx $_noaomodules"
2681 if test "$_macosx" = yes ; then
2682 cat > $TMPC <<EOF
2683 #include <Carbon/Carbon.h>
2684 #include <QuickTime/QuickTime.h>
2685 #include <CoreAudio/CoreAudio.h>
2686 int main(void) {
2687 EnterMovies();
2688 ExitMovies();
2689 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
2692 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
2693 _macosx=yes
2694 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio"
2695 _def_macosx='#define MACOSX 1'
2696 _aosrc="$_aosrc ao_macosx.c"
2697 _aomodules="macosx $_aomodules"
2698 else
2699 _macosx=no
2700 _def_macosx='#undef MACOSX'
2701 _noaomodules="macosx $_noaomodules"
2704 echores "$_macosx"
2707 echocheck "Samba support (libsmbclient)"
2708 if test "$_smbsupport" = yes; then
2709 _ld_smb="-lsmbclient"
2711 if test "$_smbsupport" = auto; then
2712 _smbsupport=no
2713 cat > $TMPC << EOF
2714 #include <libsmbclient.h>
2715 int main(void) { smbc_opendir("smb://"); return 0; }
2717 if cc_check -lsmbclient ; then
2718 _smbsupport=yes
2719 _ld_smb="-lsmbclient"
2720 else
2721 if cc_check -lsmbclient $_ld_dl ; then
2722 _smbsupport=yes
2723 _ld_smb="-lsmbclient $_ld_dl"
2724 else
2725 if cc_check -lsmbclient $_ld_dl -lnsl ; then
2726 _smbsupport=yes
2727 _ld_smb="-lsmbclient $_ld_dl -lnsl"
2733 if test "$_smbsupport" = yes; then
2734 _def_smbsupport="#define LIBSMBCLIENT"
2735 _inputmodules="smb $_inputmodules"
2736 else
2737 _def_smbsupport="#undef LIBSMBCLIENT"
2738 _noinputmodules="smb $_noinputmodules"
2740 echores "$_smbsupport"
2743 #########
2744 # VIDEO #
2745 #########
2748 echocheck "3dfx"
2749 if test "$_3dfx" = yes ; then
2750 _def_3dfx='#define HAVE_3DFX 1'
2751 _vosrc="$_vosrc vo_3dfx.c"
2752 _vomodules="3dfx $_vomodules"
2753 else
2754 _def_3dfx='#undef HAVE_3DFX'
2755 _novomodules="3dfx $_novomodules"
2757 echores "$_3dfx"
2760 echocheck "tdfxfb"
2761 if test "$_tdfxfb" = yes ; then
2762 _def_tdfxfb='#define HAVE_TDFXFB 1'
2763 _vosrc="$_vosrc vo_tdfxfb.c"
2764 _vomodules="tdfxfb $_vomodules"
2765 else
2766 _def_tdfxfb='#undef HAVE_TDFXFB'
2767 _novomodules="tdfxfb $_novomodules"
2769 echores "$_tdfxfb"
2771 echocheck "tdfxvid"
2772 if test "$_tdfxvid" = yes ; then
2773 _def_tdfxvid='#define HAVE_TDFX_VID 1'
2774 _vosrc="$_vosrc vo_tdfx_vid.c"
2775 _vomodules="tdfx_vid $_vomodules"
2776 else
2777 _def_tdfxvid='#undef HAVE_TDFX_VID'
2778 _novomodules="tdfx_vid $_novomodules"
2780 echores "$_tdfxfb"
2782 echocheck "tga"
2783 if test "$_tga" = yes ; then
2784 _def_tga='#define HAVE_TGA 1'
2785 _vosrc="$_vosrc vo_tga.c"
2786 _vomodules="tga $_vomodules"
2787 else
2788 _def_tga='#undef HAVE_TGA'
2789 _novomodules="tga $_novomodules"
2791 echores "$_tga"
2793 echocheck "DirectFB headers presence"
2794 if test -z "$_inc_directfb" ; then
2795 for I in /usr/include /usr/local/include; do
2796 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
2797 _inc_directfb="-I$I/directfb"
2798 echores "yes (using $_inc_directfb)"
2799 break
2801 if test -d "$I" && test -f "$I/directfb.h" ; then
2802 _inc_directfb="-I$I"
2803 echores "yes (using $_inc_directfb)"
2804 break
2806 done
2807 if test -z "$_inc_directfb" ; then
2808 _directfb=no
2809 echores "not found"
2811 else
2812 echores "yes (using $_inc_directfb)"
2814 if test "$_inc_directfb" = "-I/usr/include" ; then
2815 _inc_directfb=""
2818 echocheck "DirectFB"
2819 if test "$_directfb" = auto ; then
2820 _directfb=no
2821 cat > $TMPC <<EOF
2822 #include <directfb.h>
2823 int main(void) { IDirectFB *foo; return 0; }
2825 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
2828 if test "$_directfb" = yes; then
2829 cat > $TMPC <<EOF
2830 #include <directfb.h>
2831 int main(void) {
2832 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
2833 return 0;
2836 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
2837 _directfb_version=`"$TMPO"`
2838 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
2839 echores "yes ($_directfb_version)"
2840 else
2841 _directfb=no
2842 echores "no (failed to get version)"
2844 else
2845 echores "$_directfb"
2848 if test "$_directfb" = yes ; then
2849 _def_directfb='#define HAVE_DIRECTFB 1'
2850 if test "$_directfb_version" -ge 913; then
2851 _vosrc="$_vosrc vo_directfb2.c"
2852 else
2853 _vosrc="$_vosrc vo_directfb.c"
2855 _vomodules="directfb $_vomodules"
2856 _ld_directfb='-ldirectfb'
2858 if test "$_directfb_version" -ge 915; then
2859 _vosrc="$_vosrc vo_dfbmga.c"
2860 _vomodules="dfbmga $_vomodules"
2862 else
2863 _def_directfb='#undef HAVE_DIRECTFB'
2864 _novomodules="directfb $_novomodules"
2865 _inc_directfb=""
2869 echocheck "X11 headers presence"
2870 if test -z "$_inc_x11" ; then
2871 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
2872 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
2873 _inc_x11="-I$I"
2874 echores "yes (using $I)"
2875 break
2877 done
2878 if test -z "$_inc_x11" ; then
2879 _x11=no
2880 echores "not found (check if the dev(el) packages are installed)"
2882 else
2883 echores "yes (using $_inc_x11)"
2885 if test "$_inc_x11" = "-I/usr/include" ; then
2886 _inc_x11=""
2890 echocheck "X11 libs presence"
2891 if test -z "$_ld_x11" ; then
2892 for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 ; do
2893 if test -d "$I" && ( test -f "$I/libX11.so" || test -f "$I/libX11.a" ) ; then
2894 _ld_x11="-L$I"
2895 echores "yes (using $I)"
2896 break;
2898 done
2899 if test -z "$_ld_x11" ; then
2900 _x11=no
2901 echores "not found (check if the dev(el) packages are installed)"
2903 else
2904 echores "yes (using $_ld_x11)"
2906 _ld_x11="$_ld_x11 -lXext -lX11 $_ld_sock"
2909 echocheck "X11"
2910 if test "$_x11" != no ; then
2911 cat > $TMPC <<EOF
2912 #include <X11/Xlib.h>
2913 #include <X11/Xutil.h>
2914 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
2916 _x11=no
2917 cc_check $_inc_x11 $_ld_x11 && _x11=yes
2919 if test "$_x11" = yes ; then
2920 _def_x11='#define HAVE_X11 1'
2921 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
2922 _vomodules="x11 xover $_vomodules"
2923 else
2924 _def_x11='#undef HAVE_X11'
2925 _inc_x11=''
2926 _ld_x11=''
2927 _novomodules="x11 $_novomodules"
2929 echores "$_x11"
2932 echocheck "DPMS"
2933 _xdpms3=no
2934 if test "$_x11" = yes ; then
2935 cat > $TMPC <<EOF
2936 #include <X11/Xmd.h>
2937 #include <X11/Xlib.h>
2938 #include <X11/Xutil.h>
2939 #include <X11/Xatom.h>
2940 #include <X11/extensions/dpms.h>
2941 int main(void) {
2942 (void) DPMSQueryExtension(0, 0, 0);
2945 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
2947 _xdpms4=no
2948 if test "$_x11" = yes ; then
2949 cat > $TMPC <<EOF
2950 #include <X11/Xlib.h>
2951 #include <X11/extensions/dpms.h>
2952 int main(void) {
2953 (void) DPMSQueryExtension(0, 0, 0);
2956 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
2958 if test "$_xdpms4" = yes ; then
2959 _def_xdpms='#define HAVE_XDPMS 1'
2960 echores "yes (using Xdpms 4)"
2961 elif test "$_xdpms3" = yes ; then
2962 _def_xdpms='#define HAVE_XDPMS 1'
2963 _ld_x11="-lXdpms $_ld_x11"
2964 echores "yes (using Xdpms 3)"
2965 else
2966 _def_xdpms='#undef HAVE_XDPMS'
2967 echores "no"
2971 echocheck "Xv"
2972 if test "$_x11" = yes && test "$_xv" != no ; then
2973 cat > $TMPC <<EOF
2974 #include <X11/Xlib.h>
2975 #include <X11/extensions/Xvlib.h>
2976 int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); return 0; }
2978 _xv=no
2979 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
2980 else
2981 _xv=no
2983 if test "$_xv" = yes ; then
2984 _def_xv='#define HAVE_XV 1'
2985 _ld_xv='-lXv'
2986 _vosrc="$_vosrc vo_xv.c"
2987 _vomodules="xv $_vomodules"
2988 else
2989 _def_xv='#undef HAVE_XV'
2990 _novomodules="xv $_novomodules"
2992 echores "$_xv"
2995 echocheck "XvMC"
2996 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
2997 _xvmc=no
2998 cat > $TMPC <<EOF
2999 #include <X11/Xlib.h>
3000 #include <X11/extensions/Xvlib.h>
3001 #include <X11/extensions/XvMClib.h>
3002 int main(void) {
3003 (void) XvMCQueryExtension(0,0,0);
3004 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3005 return 0; }
3007 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3009 if test "$_xvmc" = yes ; then
3010 _def_xvmc='#define HAVE_XVMC 1'
3011 _ld_xvmc="-lXvMC -l$_xvmclib"
3012 _vosrc="$_vosrc vo_xvmc.c"
3013 _vomodules="xvmc $_vomodules"
3014 else
3015 _def_xvmc='#undef HAVE_XVMC'
3016 _novomodules="xvmc $_novomodules"
3018 echores "$_xvmc"
3021 echocheck "Xinerama"
3022 if test "$_x11" = yes && test "$_xinerama" != no ; then
3023 cat > $TMPC <<EOF
3024 #include <X11/Xlib.h>
3025 #include <X11/extensions/Xinerama.h>
3026 int main(void) { (void) XineramaIsActive(0); return 0; }
3028 _xinerama=no
3029 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3030 else
3031 _xinerama=no
3033 if test "$_xinerama" = yes ; then
3034 _def_xinerama='#define HAVE_XINERAMA 1'
3035 _ld_xinerama='-lXinerama'
3036 else
3037 _def_xinerama='#undef HAVE_XINERAMA'
3039 echores "$_xinerama"
3042 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3043 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3044 # named 'X extensions' or something similar.
3045 # This check may be useful for future mplayer versions (to change resolution)
3046 # If you run into problems, remove '-lXxf86vm'.
3047 echocheck "Xxf86vm"
3048 if test "$_x11" = yes && test "$_vm" != no ; then
3049 cat > $TMPC <<EOF
3050 #include <X11/Xlib.h>
3051 #include <X11/extensions/xf86vmode.h>
3052 #include <X11/XF86keysym.h>
3053 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3055 _vm=no
3056 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3057 else
3058 _vm=no
3060 if test "$_vm" = yes ; then
3061 _def_vm='#define HAVE_XF86VM 1'
3062 _ld_vm='-lXxf86vm'
3063 else
3064 _def_vm='#undef HAVE_XF86VM'
3066 echores "$_vm"
3069 echocheck "DGA"
3070 # Version 2 is preferred to version 1 if available
3071 if test "$_dga" = auto ; then
3072 cat > $TMPC << EOF
3073 #include <X11/Xlib.h>
3074 #include <X11/extensions/xf86dga.h>
3075 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3077 _dga=no
3078 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3080 cat > $TMPC << EOF
3081 #include <X11/Xlib.h>
3082 #include <X11/extensions/xf86dga.h>
3083 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3085 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3088 _def_dga='#undef HAVE_DGA'
3089 _def_dga2='#undef HAVE_DGA2'
3090 if test "$_dga" = 1 ; then
3091 _def_dga='#define HAVE_DGA 1'
3092 _ld_dga='-lXxf86dga'
3093 _vosrc="$_vosrc vo_dga.c"
3094 _vomodules="dga $_vomodules"
3095 echores "yes (using DGA 1.0)"
3096 elif test "$_dga" = 2 ; then
3097 _def_dga='#define HAVE_DGA 1'
3098 _def_dga2='#define HAVE_DGA2 1'
3099 _ld_dga='-lXxf86dga'
3100 _vosrc="$_vosrc vo_dga.c"
3101 _vomodules="dga $_vomodules"
3102 echores "yes (using DGA 2.0)"
3103 elif test "$_dga" = no ; then
3104 echores "no"
3105 _novomodules="dga $_novomodules"
3106 else
3107 die "DGA version must be 1 or 2"
3111 echocheck "OpenGL"
3112 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3113 if (test "$_x11" = yes || mingw32 || cygwin) && test "$_gl" != no ; then
3114 cat > $TMPC << EOF
3115 #include <GL/gl.h>
3116 int main(void) { return 0; }
3118 _gl=no
3119 if cc_check $_inc_x11 $_ld_x11 -lGL -lm ; then
3120 _gl=yes
3121 _ld_gl="-lGL"
3122 elif cc_check $_inc_x11 $_ld_x11 -lGL -lm $_ld_pthread ; then
3123 _gl=yes
3124 _ld_gl="-lGL $_ld_pthread"
3125 elif cc_check -lopengl32 ; then
3126 _gl=yes
3127 _gl_win32=yes
3128 _ld_gl="-lopengl32 -lgdi32"
3130 else
3131 _gl=no
3133 if test "$_gl" = yes ; then
3134 _def_gl='#define HAVE_GL 1'
3135 if test "$_gl_win32" = yes ; then
3136 _def_gl_win32='#define GL_WIN32 1'
3137 _vosrc="$_vosrc vo_gl2.c w32_common.c"
3138 else
3139 _vosrc="$_vosrc vo_gl.c vo_gl2.c"
3141 _vomodules="opengl $_vomodules"
3142 else
3143 _def_gl='#undef HAVE_GL'
3144 _def_gl_win32='#undef GL_WIN32'
3145 _novomodules="opengl $_novomodules"
3147 echores "$_gl"
3150 echocheck "/dev/mga_vid"
3151 if test "$_mga" = auto ; then
3152 _mga=no
3153 test -c /dev/mga_vid && _mga=yes
3155 if test "$_mga" = yes ; then
3156 _def_mga='#define HAVE_MGA 1'
3157 _vosrc="$_vosrc vo_mga.c"
3158 _vomodules="mga $_vomodules"
3159 else
3160 _def_mga='#undef HAVE_MGA'
3161 _novomodules="mga $_novomodules"
3163 echores "$_mga"
3166 # echocheck "syncfb"
3167 # _syncfb=no
3168 # test "$_mga" = yes && _syncfb=yes
3169 # if test "$_syncfb" = yes ; then
3170 # _def_syncfb='#define HAVE_SYNCFB 1'
3171 # _vosrc="$_vosrc vo_syncfb.c"
3172 # else
3173 # _def_syncfb='#undef HAVE_SYNCFB'
3174 # fi
3175 # echores "$_syncfb"
3178 echocheck "xmga"
3179 if test "$_xmga" = auto ; then
3180 _xmga=no
3181 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3183 if test "$_xmga" = yes ; then
3184 _def_xmga='#define HAVE_XMGA 1'
3185 _vosrc="$_vosrc vo_xmga.c"
3186 _vomodules="xmga $_vomodules"
3187 else
3188 _def_xmga='#undef HAVE_XMGA'
3189 _novomodules="xmga $_novomodules"
3191 echores "$_xmga"
3194 echocheck "GGI"
3195 if test "$_ggi" = auto ; then
3196 cat > $TMPC << EOF
3197 #include <ggi/ggi.h>
3198 int main(void) { return 0; }
3200 _ggi=no
3201 cc_check -lggi && _ggi=yes
3203 if test "$_ggi" = yes ; then
3204 _def_ggi='#define HAVE_GGI 1'
3205 _ld_ggi='-lggi'
3206 _vosrc="$_vosrc vo_ggi.c"
3207 _vomodules="ggi $_vomodules"
3208 else
3209 _def_ggi='#undef HAVE_GGI'
3210 _novomodules="ggi $_novomodules"
3212 echores "$_ggi"
3215 echocheck "AA"
3216 if test "$_aa" = auto ; then
3217 cat > $TMPC << EOF
3218 #include <aalib.h>
3219 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3221 _aa=no
3222 cc_check -laa && _aa=yes
3224 if test "$_aa" = yes ; then
3225 _def_aa='#define HAVE_AA 1'
3226 if cygwin ; then
3227 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3228 else
3229 _ld_aa='-laa'
3231 _vosrc="$_vosrc vo_aa.c"
3232 _vomodules="aa $_vomodules"
3233 else
3234 _def_aa='#undef HAVE_AA'
3235 _novomodules="aa $_novomodules"
3237 echores "$_aa"
3240 echocheck "SVGAlib"
3241 if test "$_svga" = auto ; then
3242 cat > $TMPC << EOF
3243 #include <vga.h>
3244 #include <vgagl.h>
3245 int main(void) { return 0; }
3247 _svga=no
3248 cc_check -lvgagl -lvga -lm && _svga=yes
3250 if test "$_svga" = yes ; then
3251 _def_svga='#define HAVE_SVGALIB 1'
3252 _ld_svga='-lvgagl -lvga -lm'
3253 _vosrc="$_vosrc vo_svga.c"
3254 _vomodules="svga $_vomodules"
3255 else
3256 _def_svga='#undef HAVE_SVGALIB'
3257 _novomodules="svga $_novomodules"
3259 echores "$_svga"
3262 echocheck "FBDev"
3263 if test "$_fbdev" = auto ; then
3264 _fbdev=no
3265 linux && test -c /dev/fb0 && _fbdev=yes
3267 if test "$_fbdev" = yes ; then
3268 _def_fbdev='#define HAVE_FBDEV 1'
3269 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3270 _vomodules="fbdev $_vomodules"
3271 else
3272 _def_fbdev='#undef HAVE_FBDEV'
3273 _novomodules="fbdev $_novomodules"
3275 echores "$_fbdev"
3279 echocheck "DVB"
3280 if test "$_dvb" != no ; then
3281 _dvb=no
3282 cat >$TMPC << EOF
3283 #include <sys/poll.h>
3284 #include <sys/ioctl.h>
3285 #include <stdio.h>
3286 #include <time.h>
3287 #include <unistd.h>
3289 #include <ost/dmx.h>
3290 #include <ost/frontend.h>
3291 #include <ost/sec.h>
3292 #include <ost/video.h>
3293 #include <ost/audio.h>
3294 int main(void) {return 0;}
3296 if cc_check ; then
3297 _dvb=yes
3298 echores "yes"
3299 else
3300 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
3301 if cc_check "$I" ; then
3302 _dvb=yes
3303 _inc_dvb="$I"
3304 echores "yes (using $_inc_dvb)"
3305 break
3307 done
3308 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
3310 else
3311 echores "no"
3313 if test "$_dvb" = yes ; then
3314 _def_dvb='#define HAVE_DVB 1'
3315 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3316 _aomodules="mpegpes(dvb) $_aomodules"
3317 _vomodules="mpegpes(dvb) $_vomodules"
3319 if test "$_dvbhead" != no ; then
3320 echocheck "DVB HEAD"
3321 if test "$_dvbhead" != no ; then
3322 _dvbhead=no
3324 cat >$TMPC << EOF
3325 #include <sys/poll.h>
3326 #include <sys/ioctl.h>
3327 #include <stdio.h>
3328 #include <time.h>
3329 #include <unistd.h>
3331 #include <linux/dvb/dmx.h>
3332 #include <linux/dvb/frontend.h>
3333 #include <linux/dvb/video.h>
3334 #include <linux/dvb/audio.h>
3335 int main(void) {return 0;}
3337 if cc_check ; then
3338 _dvbhead=yes
3339 echores "yes"
3340 else
3341 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
3342 if cc_check "$I" ; then
3343 _dvbhead=yes
3344 _inc_dvb="$I"
3345 echores "yes (using $_inc_dvb)"
3346 break
3348 done
3349 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
3351 else
3352 echores "no"
3354 if test "$_dvbhead" = yes ; then
3355 _def_dvb='#define HAVE_DVB_HEAD 1'
3356 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3357 _aomodules="mpegpes(dvb) $_aomodules"
3358 _vomodules="mpegpes(dvb) $_vomodules"
3361 if test "$_dvbhead" = no && test "$_dvb" = no ; then
3362 _def_dvb='#undef HAVE_DVB'
3363 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
3364 _aomodules="mpegpes(file) $_aomodules"
3365 _vomodules="mpegpes(file) $_vomodules"
3368 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
3369 _dvbin=yes
3370 _inputmodules="dvb $_inputmodules"
3371 else
3372 _dvbin=no
3375 echocheck "PNG support"
3376 if test "$_png" = auto ; then
3377 _png=no
3378 if irix ; then
3379 # Don't check for -lpng on irix since it has its own libpng
3380 # incompatible with the GNU libpng
3381 echores "disabled on irix (not GNU libpng)"
3382 else
3383 cat > $TMPC << EOF
3384 #include <png.h>
3385 #include <string.h>
3386 int main(void) {
3387 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
3388 printf("libpng: %s\n", png_libpng_ver);
3389 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
3392 if cc_check -lpng -lz -lm ; then
3393 if "$TMPO" >> "$TMPLOG" ; then
3394 _png=yes
3395 echores yes
3396 else
3397 echores "no (mismatch of library and header versions)"
3399 else
3400 echores no
3403 else
3404 echores "$_png"
3406 if test "$_png" = yes ; then
3407 _def_png='#define HAVE_PNG 1'
3408 _ld_png='-lpng -lz'
3409 _vosrc="$_vosrc vo_png.c"
3410 _vomodules="png $_vomodules"
3411 _mkf_png="yes"
3412 else
3413 _def_png='#undef HAVE_PNG'
3414 _novomodules="png $_novomodules"
3415 _mkf_png="no"
3418 echocheck "JPEG support"
3419 if test "$_jpg" = auto ; then
3420 _jpg=no
3421 cat > $TMPC << EOF
3422 #include <stdio.h>
3423 #include <stdlib.h>
3424 #include <setjmp.h>
3425 #include <string.h>
3426 #include <jpeglib.h>
3427 int main(void) {
3428 return 0;
3431 if cc_check -ljpeg -lm ; then
3432 if "$TMPO" >> "$TMPLOG" ; then
3433 _jpg=yes
3437 echores "$_jpg"
3439 if test "$_jpg" = yes ; then
3440 _def_jpg='#define HAVE_JPEG 1'
3441 _vosrc="$_vosrc vo_jpeg.c"
3442 _vomodules="jpeg $_vomodules"
3443 _ld_jpg="-ljpeg"
3444 _mkf_jpg="yes"
3445 else
3446 _def_jpg='#undef HAVE_JPEG'
3447 _novomodules="jpeg $_novomodules"
3448 _mkf_jpg="no"
3452 echocheck "GIF support"
3453 if test "$_gif" = auto ; then
3454 _gif=no
3455 cat > $TMPC << EOF
3456 #include <gif_lib.h>
3457 int main(void) {
3458 return 0;
3461 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
3462 _gif=yes
3463 _ld_gif="-lungif"
3464 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3465 _gif=yes
3466 _ld_gif="-lungif $_ld_x11"
3467 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
3468 _gif=yes
3469 _ld_gif="-lgif"
3470 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3471 _gif=yes
3472 _ld_gif="-lgif $_ld_x11"
3476 if test "$_gif" = yes ; then
3477 _def_gif='#define HAVE_GIF 1'
3478 _vosrc="$_vosrc vo_gif89a.c"
3479 _codecmodules="gif $_codecmodules"
3480 _vomodules="gif89a $_vomodules"
3481 _mkf_gif="yes"
3482 _gif="yes (old version, some encoding functions disabled)"
3483 _def_gif_4='#undef HAVE_GIF_4'
3485 cat > $TMPC << EOF
3486 #include <signal.h>
3487 #include <gif_lib.h>
3488 void catch() { exit(1); }
3489 int main(void) {
3490 signal(SIGSEGV, catch); // catch segfault
3491 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
3492 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
3493 return 0;
3496 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3497 _def_gif_4='#define HAVE_GIF_4 1'
3498 _gif="yes"
3500 else
3501 _def_gif='#undef HAVE_GIF'
3502 _def_gif_4='#undef HAVE_GIF_4'
3503 _novomodules="gif89a $_novomodules"
3504 _nocodecmodules="gif $_codecmodules"
3505 _mkf_gif="no"
3507 echores "$_gif"
3510 case "$_gif" in yes*)
3511 echocheck "broken giflib workaround"
3512 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
3514 cat > $TMPC << EOF
3515 #include <gif_lib.h>
3516 int main(void) {
3517 GifFileType gif;
3518 printf("UserData is at address %p\n", gif.UserData);
3519 return 0;
3522 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3523 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
3524 echores "disabled"
3525 else
3526 echores "enabled"
3529 esac
3532 echocheck "VESA support"
3533 if test "$_vesa" = auto ; then
3534 if x86 && linux ; then
3535 _vesa=no
3536 cat > $TMPC << EOF
3537 #include <sys/io.h>
3538 int main(void) { return 0; }
3540 cc_check && _vesa=yes
3543 if test "$_vesa" = yes ; then
3544 _def_vesa='#define HAVE_VESA 1'
3545 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
3546 _vomodules="vesa $_vomodules"
3547 echores "yes"
3548 else
3549 _def_vesa='#undef HAVE_VESA'
3550 echores "no (not supported on this OS/architecture)"
3551 _novomodules="vesa $_novomodules"
3554 #################
3555 # VIDEO + AUDIO #
3556 #################
3559 echocheck "SDL"
3560 if test -z "$_sdlconfig" ; then
3561 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
3562 _sdlconfig="sdl-config"
3563 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
3564 _sdlconfig="sdl11-config"
3565 else
3566 _sdlconfig=false
3569 if test "$_sdl" = auto || test "$_sdl" = yes ; then
3570 cat > $TMPC << EOF
3571 #include <SDL.h>
3572 int main(int argc, char *argv[]) { return 0; }
3574 _sdl=no
3575 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
3576 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
3577 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
3578 if test "$_sdlversion" -gt 116 ; then
3579 if test "$_sdlversion" -lt 121 ; then
3580 _def_sdlbuggy='#define BUGGY_SDL'
3581 else
3582 _def_sdlbuggy='#undef BUGGY_SDL'
3584 _sdl=yes
3585 else
3586 _sdl=outdated
3591 if test "$_sdl" = yes ; then
3592 _def_sdl='#define HAVE_SDL 1'
3593 if cygwin ; then
3594 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
3595 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
3596 else
3597 _ld_sdl=`$_sdlconfig --libs`
3598 _inc_sdl=`$_sdlconfig --cflags`
3600 _vosrc="$_vosrc vo_sdl.c"
3601 _vomodules="sdl $_vomodules"
3602 _aosrc="$_aosrc ao_sdl.c"
3603 _aomodules="sdl $_aomodules"
3604 echores "yes (using $_sdlconfig)"
3605 else
3606 _def_sdl='#undef HAVE_SDL'
3607 _novomodules="sdl $_novomodules"
3608 _noaomodules="sdl $_noaomodules"
3609 echores "no"
3612 echocheck "Windows waveout"
3613 if test "$_win32waveout" = auto ; then
3614 cat > $TMPC << EOF
3615 #include <windows.h>
3616 #include <mmsystem.h>
3617 int main(void) { return 0; }
3619 _win32waveout=no
3620 cc_check -lwinmm && _win32waveout=yes
3622 if test "$_win32waveout" = yes ; then
3623 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
3624 _ld_win32libs="-lwinmm $_ld_win32libs"
3625 _aosrc="$_aosrc ao_win32.c"
3626 _aomodules="win32 $_aomodules"
3627 else
3628 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
3629 _noaomodules="win32 $_noaomodules"
3631 echores "$_win32waveout"
3633 echocheck "Directx"
3634 if test "$_directx" = auto ; then
3635 cat > $TMPC << EOF
3636 #include <windows.h>
3637 #include <ddraw.h>
3638 int main(void) { return 0; }
3640 _directx=no
3641 cc_check -lgdi32 && _directx=yes
3643 if test "$_directx" = yes ; then
3644 _def_directx='#define HAVE_DIRECTX 1'
3645 _ld_win32libs="-lgdi32 $_ld_win32libs"
3646 _vosrc="$_vosrc vo_directx.c"
3647 _vomodules="directx $_vomodules"
3648 else
3649 _def_directx='#undef HAVE_DIRECTX'
3650 _novomodules="directx $_novomodules"
3652 echores "$_directx"
3654 echocheck "NAS"
3655 if test "$_nas" = auto || test "$_nas" = yes ; then
3656 cat > $TMPC << EOF
3657 #include <audio/audiolib.h>
3658 int main(void) { return 0; }
3660 _nas=no
3661 cc_check -laudio $_inc_x11 -lXt $_ld_x11 -lm && _nas=yes
3663 if test "$_nas" = yes ; then
3664 _def_nas='#define HAVE_NAS 1'
3665 _ld_nas="-laudio -lXt $_ld_x11"
3666 _aosrc="$_aosrc ao_nas.c"
3667 _aomodules="nas $_aomodules"
3668 else
3669 _noaomodules="nas $_noaomodules"
3670 _def_nas='#undef HAVE_NAS'
3672 echores "$_nas"
3674 echocheck "DXR2"
3675 if test "$_dxr2" = auto; then
3676 _dxr2=no
3677 for _inc_dxr2 in "$_inc_dxr2" \
3678 "-I/usr/local/include/dxr2" \
3679 "-I/usr/include/dxr2"; do
3680 cat > $TMPC << EOF
3681 #include <dxr2ioctl.h>
3682 int main(void) { return 0; }
3684 cc_check $_inc_dxr2 && _dxr2=yes && break
3685 done
3687 if test "$_dxr2" = yes; then
3688 _def_dxr2='#define HAVE_DXR2 1'
3689 _vosrc="$_vosrc vo_dxr2.c"
3690 _aosrc="$_aosrc ao_dxr2.c"
3691 _aomodules="dxr2 $_aomodules"
3692 _vomodules="dxr2 $_vomodules"
3693 echores "yes (using $_inc_dxr2)"
3694 else
3695 _def_dxr2='#undef HAVE_DXR2'
3696 _noaomodules="dxr2 $_noaomodules"
3697 _novomodules="dxr2 $_novomodules"
3698 _inc_dxr2=""
3699 echores "no"
3702 echocheck "DXR3/H+"
3703 if test "$_dxr3" = auto ; then
3704 cat > $TMPC << EOF
3705 #include <linux/em8300.h>
3706 int main(void) { return 0; }
3708 _dxr3=no
3709 cc_check && _dxr3=yes
3711 if test "$_dxr3" = yes ; then
3712 _def_dxr3='#define HAVE_DXR3 1'
3713 _vosrc="$_vosrc vo_dxr3.c"
3714 _vomodules="dxr3 $_vomodules"
3715 else
3716 _def_dxr3='#undef HAVE_DXR3'
3717 _novomodules="dxr3 $_novomodules"
3718 if test "$_mp1e" = auto ; then
3719 # we don't need mp1e
3720 _mp1e=no
3723 echores "$_dxr3"
3725 echocheck "libmp1e"
3726 if test "$_mmx" = no ; then
3727 # mp1e REQUIRES mmx!
3728 _mp1e=no
3730 if test "$_mp1e" != no ; then
3731 _mp1e=yes
3732 _def_mp1e='#define USE_MP1E'
3733 _ld_mp1e='libmp1e/libmp1e.a'
3734 _dep_mp1e='libmp1e/libmp1e.a'
3735 else
3736 _mp1e=no
3737 _def_mp1e='#undef USE_MP1E'
3738 _ld_mp1e=""
3739 _dep_mp1e=''
3741 echores "$_mp1e"
3744 echocheck "libfame"
3745 if test "$_fame" = auto ; then
3746 _fame=no
3747 test "$_dxr2" = yes && _fame=auto
3748 test "$_dxr3" = yes && _fame=auto
3749 test "$_dvb" = yes && _fame=auto
3751 if test "$_fame" = auto ; then
3752 _fame=no
3753 if test -d libfame && test -f libfame/fame.h ; then
3754 # disable fame on cygwin as no sense to port - atmos
3755 cygwin || _fame=yes
3756 echores $_fame
3757 else
3758 echores "no (no fame dir)"
3760 else
3761 echores "$_fame"
3764 _def_fame='#undef USE_LIBFAME'
3765 if test "$_fame" = yes ; then
3766 _def_fame='#define USE_LIBFAME 1'
3767 _ld_fame='libfame/libfame.a'
3771 #########
3772 # AUDIO #
3773 #########
3776 echocheck "OSS Audio"
3777 if test "$_ossaudio" = auto ; then
3778 cat > $TMPC << EOF
3779 #include <sys/ioctl.h>
3780 $_inc_soundcard
3781 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
3783 _ossaudio=no
3784 cc_check && _ossaudio=yes
3786 if test "$_ossaudio" = yes ; then
3787 _def_ossaudio='#define USE_OSS_AUDIO 1'
3788 _aosrc="$_aosrc ao_oss.c"
3789 _aomodules="oss $_aomodules"
3790 if test "$_linux_devfs" = yes; then
3791 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
3792 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
3793 else
3794 cat > $TMPC << EOF
3795 #include <sys/ioctl.h>
3796 $_inc_soundcard
3797 #ifdef OPEN_SOUND_SYSTEM
3798 int main(void) { return 0; }
3799 #else
3800 #error Not the real thing
3801 #endif
3803 _real_ossaudio=no
3804 cc_check && _real_ossaudio=yes
3805 if test "$_real_ossaudio" = yes; then
3806 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3807 elif netbsd || openbsd ; then
3808 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
3809 _ld_arch="$_ld_arch -lossaudio"
3810 else
3811 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3813 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
3815 else
3816 _def_ossaudio='#undef USE_OSS_AUDIO'
3817 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
3818 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
3819 _noaomodules="oss $_noaomodules"
3821 echores "$_ossaudio"
3824 echocheck "aRts"
3825 if test "$_arts" = auto ; then
3826 _arts=no
3827 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
3829 cat > $TMPC << EOF
3830 #include <artsc.h>
3831 int main(void) { return 0; }
3833 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
3838 if test "$_arts" = yes ; then
3839 _def_arts='#define USE_ARTS 1'
3840 _aosrc="$_aosrc ao_arts.c"
3841 _aomodules="arts $_aomodules"
3842 _ld_arts=`artsc-config --libs`
3843 _inc_arts=`artsc-config --cflags`
3844 else
3845 _noaomodules="arts $_noaomodules"
3847 echores "$_arts"
3850 echocheck "EsounD"
3851 if test "$_esd" = auto ; then
3852 _esd=no
3853 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
3855 cat > $TMPC << EOF
3856 #include <esd.h>
3857 int main(void) { return 0; }
3859 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
3863 echores "$_esd"
3865 if test "$_esd" = yes ; then
3866 _def_esd='#define USE_ESD 1'
3867 _aosrc="$_aosrc ao_esd.c"
3868 _aomodules="esd $_aomodules"
3869 _ld_esd=`esd-config --libs`
3870 _inc_esd=`esd-config --cflags`
3872 echocheck "esd_get_latency()"
3873 cat > $TMPC << EOF
3874 #include <esd.h>
3875 int main(void) { return esd_get_latency(0); }
3877 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
3878 echores "$_esd_latency"
3879 else
3880 _def_esd='#undef USE_ESD'
3881 _def_esd_latency='#undef HAVE_ESD_LATENCY'
3882 _noaomodules="esd $_noaomodules"
3885 echocheck "ALSA audio"
3886 if test "$_alsa" != no ; then
3887 _alsa=no
3888 cat > $TMPC << EOF
3889 #include <sys/asoundlib.h>
3890 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
3892 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
3894 cat > $TMPC << EOF
3895 #include <sys/asoundlib.h>
3896 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3898 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
3899 cat > $TMPC << EOF
3900 #include <alsa/asoundlib.h>
3901 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3903 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
3905 _def_alsa5='#undef HAVE_ALSA5'
3906 _def_alsa9='#undef HAVE_ALSA9'
3907 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
3908 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
3909 if test "$_alsaver" ; then
3910 if test "$_alsaver" = '0.5.x' ; then
3911 _aosrc="$_aosrc ao_alsa5.c"
3912 _aomodules="alsa5 $_aomodules"
3913 _def_alsa5='#define HAVE_ALSA5 1'
3914 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3915 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
3916 elif test "$_alsaver" = '0.9.x-sys' ; then
3917 _aosrc="$_aosrc ao_alsa9.c"
3918 _aomodules="alsa9 $_aomodules"
3919 _def_alsa9='#define HAVE_ALSA9 1'
3920 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3921 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
3922 elif test "$_alsaver" = '0.9.x-alsa' ; then
3923 _aosrc="$_aosrc ao_alsa9.c"
3924 _aomodules="alsa9 $_aomodules"
3925 _def_alsa9='#define HAVE_ALSA9 1'
3926 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
3927 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
3929 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
3930 else
3931 _noaomodules="alsa $_noaomodules"
3932 echores "no"
3936 echocheck "Sun audio"
3937 if test "$_sunaudio" = auto ; then
3938 cat > $TMPC << EOF
3939 #include <sys/types.h>
3940 #include <sys/audioio.h>
3941 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
3943 _sunaudio=no
3944 cc_check && _sunaudio=yes
3946 if test "$_sunaudio" = yes ; then
3947 _def_sunaudio='#define USE_SUN_AUDIO 1'
3948 _aosrc="$_aosrc ao_sun.c"
3949 _aomodules="sun $_aomodules"
3950 else
3951 _def_sunaudio='#undef USE_SUN_AUDIO'
3952 _noaomodules="sun $_noaomodules"
3954 echores "$_sunaudio"
3957 echocheck "Sun mediaLib"
3958 if test "$_mlib" = auto ; then
3959 _mlib=no
3960 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
3961 cat > $TMPC << EOF
3962 #include <mlib.h>
3963 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
3965 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
3967 if test "$_mlib" = yes ; then
3968 _def_mlib='#define HAVE_MLIB 1'
3969 _inc_mlib=" -I${_mlibdir}/include "
3970 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
3971 else
3972 _def_mlib='#undef HAVE_MLIB'
3974 echores "$_mlib"
3977 echocheck "SGI audio"
3978 if test "$_sgiaudio" = auto ; then
3979 # check for SGI audio
3980 cat > $TMPC << EOF
3981 #include <dmedia/audio.h>
3982 int main(void) { return 0; }
3984 _sgiaudio=no
3985 cc_check && _sgiaudio=yes
3987 if test "$_sgiaudio" = "yes" ; then
3988 _def_sgiaudio='#define USE_SGI_AUDIO 1'
3989 _ld_sgiaudio='-laudio'
3990 _aosrc="$_aosrc ao_sgi.c"
3991 _aomodules="sgi $_aomodules"
3992 else
3993 _def_sgiaudio='#undef USE_SGI_AUDIO'
3994 _noaomodules="sgi $_noaomodules"
3996 echores "$_sgiaudio"
3999 echocheck "VCD support"
4000 if linux || bsdos || freebsd || netbsd || sunos ; then
4001 _inputmodules="vcd $_inputmodules"
4002 _def_vcd='#define HAVE_VCD 1'
4003 echores "ok"
4004 else
4005 _def_vcd='#undef HAVE_VCD'
4006 _noinputmodules="vcd $_noinputmodules"
4007 echores "not supported on this OS"
4010 echocheck "DVD support (libmpdvdkit)"
4011 if test "$_dvdkit" = auto ; then
4012 _dvdkit=no
4013 if linux || freebsd || netbsd || darwin || cygwin || mingw32 || openbsd || sunos || hpux; then
4014 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4015 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4018 if test "$_dvdkit" = yes ; then
4019 if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || cygwin || mingw32 ; then
4020 if test -f "./libmpdvdkit2/Makefile" ; then
4021 _inputmodules="mpdvdkit2 $_inputmodules"
4022 _dvdread=libmpdvdkit2
4023 _dvdkit2=yes
4024 _dvdkit=no
4025 else
4026 _inputmodules="mpdvdkit $_inputmodules"
4027 _dvdread=libmpdvdkit
4029 else
4030 _noinputmodules="mpdvdkit $_noinputmodules"
4032 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4033 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4034 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4035 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4036 if linux || netbsd || openbsd || bsdos ; then
4037 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4038 if openbsd ; then
4039 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4041 else
4042 if freebsd ; then
4043 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4044 else
4045 if darwin ; then
4046 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4050 else
4051 _noinputmodules="mpdvdkit $_noinputmodules"
4053 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4054 echores "yes"
4055 else
4056 echores "no"
4059 echocheck "DVD support (libcss - old style)"
4060 if test "$_css" = auto ; then
4061 cat > $TMPC <<EOF
4062 #include <sys/types.h>
4063 #include <css.h>
4064 int main(void) { (void) CSSisEncrypted(0); return 0; }
4066 _css=no
4067 cc_check -lcss $_ld_dl && _css=yes
4069 if test "$_css" = yes ; then
4070 _def_css='#define HAVE_LIBCSS 1'
4071 test "$_csslibdir" && _ld_css="-L${_csslibdir} $_ld_css"
4072 _inputmodules="dvdcss $_inputmodules"
4073 _largefiles=yes
4074 echores "yes"
4075 else
4076 _def_css='#undef HAVE_LIBCSS'
4077 _noinputmodules="dvdcss $_noinputmodules"
4078 echores "no"
4081 echocheck "DVD support (libdvdread - new style)"
4082 if test "$_dvdread" = auto ; then
4083 cat > $TMPC << EOF
4084 #include <inttypes.h>
4085 #include <dvdread/dvd_reader.h>
4086 #include <dvdread/ifo_types.h>
4087 #include <dvdread/ifo_read.h>
4088 #include <dvdread/nav_read.h>
4089 int main(void) { return 0; }
4091 _dvdread=no
4092 if test "$_dl" = yes; then
4093 cc_check \
4094 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4095 _dvdread=yes
4098 _def_mpdvdkit="#undef USE_MPDVDKIT"
4099 case "$_dvdread" in
4100 yes)
4101 _largefiles=yes
4102 _def_dvdread='#define USE_DVDREAD 1'
4103 _ld_css='-ldvdread'
4104 _inputmodules="dvdread $_inputmodules"
4105 echores "yes"
4108 _def_dvdread='#undef USE_DVDREAD'
4109 _noinputmodules="dvdread $_noinputmodules"
4110 echores "no"
4112 libmpdvdkit)
4113 _largefiles=yes
4114 _def_dvdread='#define USE_DVDREAD 1'
4115 _ld_css='-Llibmpdvdkit -lmpdvdkit'
4116 _noinputmodules="dvdread $_noinputmodules"
4117 _def_mpdvdkit="#define USE_MPDVDKIT 1"
4118 echores "disabled by libmpdvdkit"
4120 libmpdvdkit2)
4121 _largefiles=yes
4122 _def_dvdread='#define USE_DVDREAD 1'
4123 _ld_css='-Llibmpdvdkit2 -lmpdvdkit'
4124 _noinputmodules="dvdread $_noinputmodules"
4125 _def_mpdvdkit="#define USE_MPDVDKIT 2"
4126 echores "disabled by libmpdvdkit2"
4128 esac
4130 # dvdnav disabled, it does not work
4131 # echocheck "DVD support (libdvdnav)"
4132 # if test "$_dvdnav" = yes ; then
4133 # cat > $TMPC <<EOF
4134 # #include <dvdnav.h>
4135 # int main(void) { dvdnav_t *dvd=0; return 0; }
4136 # EOF
4137 # _dvdnav=no
4138 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4139 # if test -z "$_dvdnavconfig" ; then
4140 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4141 # _dvdnavconfig="dvdnav-config"
4142 # fi
4143 # fi
4144 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4145 # _used_css=
4146 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4147 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4148 # fi
4149 # if test "$_dvdnav" = yes ; then
4150 # _largefiles=yes
4151 # _def_dvdnav='#define USE_DVDNAV 1'
4152 # if test -n "$_legal_dvdnavdir" ; then
4153 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4154 # elif test -n "$_dvdnavconfig" ; then
4155 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4156 # else
4157 # _ld_css="$_ld_css -ldvdnav"
4158 # fi
4159 # if test -n "$_dvdnavconfig" ; then
4160 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
4161 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
4162 # fi
4163 # if test -n "$_dvdnavdir" ; then
4164 # _inc_extra="$_inc_extra -I$_dvdnavdir"
4165 # fi
4166 # _inputmodules="dvdnav $_inputmodules"
4167 # echores "yes"
4168 # else
4169 # _def_dvdnav='#undef USE_DVDNAV'
4170 # _noinputmodules="dvdnav $_noinputmodules"
4171 # echores "no"
4172 # fi
4174 echocheck "cdparanoia"
4175 if test "$_cdparanoia" = auto ; then
4176 cat > $TMPC <<EOF
4177 #include <cdda_interface.h>
4178 #include <cdda_paranoia.h>
4179 // This need a better test. How ?
4180 int main(void) { return 1; }
4182 _cdparanoia=no
4183 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4184 _cdparanoia=yes
4185 else
4186 for I in /usr/include/cdda /usr/local/include/cdda ; do
4187 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4188 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
4190 done
4193 if test "$_cdparanoia" = yes ; then
4194 _def_cdparanoia='#define HAVE_CDDA'
4195 _inputmodules="cdda $_inputmodules"
4196 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
4197 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
4198 else
4199 _def_cdparanoia='#undef HAVE_CDDA'
4200 _noinputmodules="cdda $_noinputmodules"
4202 echores "$_cdparanoia"
4204 echocheck "freetype >= 2.0.9"
4205 if test "$_freetype" = auto ; then
4206 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
4207 cat > $TMPC << EOF
4208 #include <stdio.h>
4209 #include <freetype/freetype.h>
4210 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
4211 #error "Need FreeType 2.0.9 or newer"
4212 #endif
4213 int main()
4215 FT_Library library;
4216 FT_Int major=-1,minor=-1,patch=-1;
4217 int err=FT_Init_FreeType(&library);
4218 if(err){
4219 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
4220 exit(err);
4222 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
4223 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
4224 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
4225 (int)major,(int)minor,(int)patch );
4226 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
4227 printf("Library and header version mismatch! Fix it in your distribution!\n");
4228 exit(1);
4230 return 0;
4233 _freetype=no
4234 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
4235 else
4236 _freetype=no
4239 if test "$_freetype" = yes ; then
4240 _def_freetype='#define HAVE_FREETYPE'
4241 _inc_freetype=`$_freetypeconfig --cflags`
4242 _ld_freetype=`$_freetypeconfig --libs`
4243 else
4244 _def_freetype='#undef HAVE_FREETYPE'
4246 echores "$_freetype"
4249 echocheck "fribidi with charsets"
4250 if test "$_fribidi" = yes ; then
4251 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
4252 cat > $TMPC << EOF
4253 #include <stdio.h>
4254 #include <fribidi/fribidi.h>
4255 int main()
4257 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
4258 printf("Fribidi headers are not consistents with the library!\n");
4259 exit(1);
4261 return 0;
4264 _fribidi=no
4265 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
4266 else
4267 _fribidi=no
4270 if test "$_fribidi" = yes ; then
4271 _def_fribidi='#define USE_FRIBIDI'
4272 _inc_fribidi=`$_fribidiconfig --cflags`
4273 _ld_fribidi=`$_fribidiconfig --libs`
4274 else
4275 _def_fribidi='#undef USE_FRIBIDI'
4277 echores "$_fribidi"
4280 echocheck "zlib"
4281 cat > $TMPC << EOF
4282 #include <zlib.h>
4283 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
4285 _zlib=no
4286 cc_check -lz && _zlib=yes
4287 if test "$_zlib" = yes ; then
4288 _def_zlib='#define HAVE_ZLIB 1'
4289 _ld_zlib='-lz'
4290 else
4291 _def_zlib='#undef HAVE_ZLIB'
4293 echores "$_zlib"
4296 echocheck "RTC"
4297 if linux ; then
4298 if test "$_rtc" = auto ; then
4299 cat > $TMPC << EOF
4300 #include <sys/ioctl.h>
4301 #include <linux/rtc.h>
4302 int main(void) { return RTC_IRQP_READ; }
4304 _rtc=no
4305 cc_check && _rtc=yes
4307 echores "$_rtc"
4308 else
4309 _rtc=no
4310 echores "no (Linux specific feature)"
4312 if test "$_rtc" = yes ; then
4313 _def_rtc='#define HAVE_RTC 1'
4314 else
4315 _def_rtc='#undef HAVE_RTC'
4319 echocheck "external liblzo support"
4320 if test "$_liblzo" = auto ; then
4321 _liblzo=no
4322 cat > $TMPC << EOF
4323 #include <lzo1x.h>
4324 int main(void) { lzo_init();return 0; }
4326 cc_check -llzo && _liblzo=yes
4328 if test "$_liblzo" = yes ; then
4329 _def_liblzo='#define USE_LIBLZO 1'
4330 _ld_liblzo='-llzo'
4331 _codecmodules="liblzo $_codecmodules"
4332 else
4333 _def_liblzo='#undef USE_LIBLZO'
4334 _nocodecmodules="liblzo $_nocodecmodules"
4336 echores "$_liblzo"
4339 echocheck "mad support"
4340 if test "$_mad" = auto ; then
4341 _mad=no
4342 cat > $TMPC << EOF
4343 #include <mad.h>
4344 int main(void) { return 0; }
4346 cc_check $_madlibdir -lmad && _mad=yes
4348 if test "$_mad" = yes ; then
4349 _def_mad='#define USE_LIBMAD 1'
4350 _ld_mad='-lmad'
4351 _codecmodules="libmad $_codecmodules"
4352 else
4353 _def_mad='#undef USE_LIBMAD'
4354 _nocodecmodules="libmad $_nocodecmodules"
4356 echores "$_mad"
4359 echocheck "OggVorbis support"
4360 if test "$_vorbis" = auto ; then
4361 _vorbis=no
4362 cat > $TMPC << EOF
4363 #include <vorbis/codec.h>
4364 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
4366 cc_check -lvorbis -logg -lm && _vorbis=yes
4368 if test "$_vorbis" = yes ; then
4369 _def_vorbis='#define HAVE_OGGVORBIS 1'
4370 if test "$_tremor" = yes ; then
4371 _def_tremor='#define TREMOR 1'
4372 _ld_vorbis='-lvorbisidec'
4373 else
4374 _def_tremor='#undef TREMOR'
4375 _ld_vorbis='-lvorbis -logg'
4377 _codecmodules="libvorbis $_codecmodules"
4378 else
4379 _def_vorbis='#undef HAVE_OGGVORBIS'
4380 _def_tremor='#undef TREMOR'
4381 _nocodecmodules="libvorbis $_nocodecmodules"
4383 if test "$_vorbis" = yes -a "$_tremor" = yes ; then
4384 echores "$_vorbis (Tremor)"
4385 else
4386 echores "$_vorbis"
4389 echocheck "OggTheora support (only the CVS version!)"
4390 if test "$_theora" = auto ; then
4391 _theora=no
4392 cat > $TMPC << EOF
4393 #include <theora/theora.h>
4394 #include <string.h>
4395 int main(void)
4397 /* theora is in flux, make sure that all interface routines and
4398 * datatypes exist and work the way we expect it, so we don't break
4399 * mplayer */
4400 ogg_packet op;
4401 theora_comment tc;
4402 theora_info inf;
4403 theora_state st;
4404 yuv_buffer yuv;
4405 int r;
4406 double t;
4408 theora_info_init (&inf);
4409 theora_comment_init (&tc);
4411 return 0;
4413 /* we don't want to execute this kind of nonsense; just for making sure
4414 * that compilation works... */
4415 memset(&op, 0, sizeof(op));
4416 r = theora_decode_header (&inf, &tc, &op);
4417 r = theora_decode_init (&st, &inf);
4418 t = theora_granule_time (&st, op.granulepos);
4419 r = theora_decode_packetin (&st, &op);
4420 r = theora_decode_YUVout (&st, &yuv);
4421 theora_clear (&st);
4423 return 0;
4426 cc_check -ltheora -logg -lm && _theora=yes
4428 if test "$_theora" = yes ; then
4429 _def_theora='#define HAVE_OGGTHEORA 1'
4430 _codecmodules="libtheora $_codecmodules"
4431 _ld_theora="-ltheora -logg"
4432 else
4433 _def_theora='#undef HAVE_OGGTHEORA'
4434 _nocodecmodules="libtheora $_nocodecmodules"
4436 echores "$_theora"
4439 echocheck "Matroska support (0.6.0 or later)"
4440 if test "$_matroska" != no ; then
4441 _matroska=no
4442 _TMPC=$TMPC
4443 TMPC=${TMPC}pp
4444 cat > $TMPC << EOF
4445 #include <ebml/EbmlVersion.h>
4446 #include <matroska/KaxVersion.h>
4448 #if LIBEBML_VERSION < 000600
4449 #error libebml is too old
4450 #endif
4452 #if LIBMATROSKA_VERSION < 000600
4453 #error libmatroska is too old
4454 #endif
4456 int main(void) { return 0; }
4458 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4459 if test "$_matroska" = no ; then
4460 _saved_inc_extra=$_inc_extra
4461 _inc_extra="$_inc_extra -I/usr/local/include"
4462 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4463 if test "$_matroska" = no ; then
4464 _inc_extra=$_saved_inc_extra
4467 rm ${TMPC} > /dev/null 2> /dev/null
4468 TMPC=$_TMPC
4470 if test "$_matroska" = yes ; then
4471 _def_matroska='#define HAVE_MATROSKA 1'
4472 _inputmodules="matroska $_inputmodules"
4473 _ld_matroska="-lmatroska -lebml -lstdc++"
4474 else
4475 _def_matroska='#undef HAVE_MATROSKA'
4476 _noinputmodules="matroska $_noinputmodules"
4478 echores "$_matroska"
4482 echocheck "internal FAAD2 (AAC) support"
4483 _inc_faad="-I`pwd`/libfaad2"
4484 if test "$_faad_internal" = auto ; then
4485 # the faad check needs a config.h file
4486 if not test -f "config.h" ; then
4487 > config.h
4489 # internal faad: check if our dear gcc is able to compile it...
4490 cp "`pwd`/libfaad2/cfft.c" $TMPC
4491 if ( cc_check -c -O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer $_inc_faad ); then
4492 _faad_internal=yes
4493 else
4494 _faad_internal="no (broken gcc)"
4497 if test "$_faad_internal" = yes ; then
4498 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
4499 _faad_external=no
4500 else
4501 _def_faad_internal="#undef USE_INTERNAL_FAAD"
4502 _inc_faad=
4504 echores "$_faad_internal"
4507 echocheck "external FAAD2 (AAC) support"
4508 if test "$_faad_external" != no ; then
4509 _ld_faad='-lfaad'
4510 _inc_faad="$_inc_extra"
4511 # external faad: check if it's really faad2 :)
4512 if test "$_faad_external" = auto ; then
4513 _faad_external=no
4514 cat > $TMPC << EOF
4515 #include <faad.h>
4516 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); return 0; }
4518 cc_check $_inc_faad $_ld_faad -lm && _faad_external=yes
4520 echores "$_faad_external"
4521 else
4522 echores "no"
4525 if test "$_faad_internal" = yes -o "$_faad_external" = yes; then
4526 echocheck "FAAD2 version"
4527 cat > $TMPC <<EOF
4528 #include <faad.h>
4529 #ifndef FAAD_MIN_STREAMSIZE
4530 #error Too old version
4531 #endif
4532 int main(void) {
4533 #ifdef FAAD2_VERSION
4534 printf("%s\n",FAAD2_VERSION);
4535 #else
4536 printf("1.0\n");
4537 #endif
4538 return 0;
4541 if cc_check -I- $_inc_faad $_ld_faad -lm && "$TMPO" >> "$TMPLOG" ; then
4542 _faad_version=`"$TMPO"`
4543 _faad_tempversion=`"$TMPO" | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1\2/'`
4544 _def_faad_version="#define FAADVERSION $_faad_tempversion"
4545 echores "$_faad_version"
4546 else
4547 _faad_external=no
4548 _faad_internal=no
4549 echores "failed to get version"
4553 if test "$_faad_external" = yes; then
4554 _def_faad='#define HAVE_FAAD 1'
4555 _codecmodules="faad2(external) $_codecmodules"
4556 elif test "$_faad_internal" = yes; then
4557 _def_faad='#define HAVE_FAAD 1'
4558 _codecmodules="faad2(internal) $_codecmodules"
4559 else
4560 _def_faad='#undef HAVE_FAAD'
4561 _nocodecmodules="faad2 $_nocodecmodules"
4562 _ld_faad=
4567 if test "$_win32" = auto ; then
4568 if x86 ; then
4569 qnx && _win32=no
4570 else
4571 _win32=no # x86 arch only
4575 if test "$_win32" != no ; then
4576 if test -z "$_win32libdir" ; then
4577 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/win32 /usr/lib/win32 ; do
4578 if test -d "$I" ; then
4579 _win32libdir="$I"
4580 break;
4582 done
4586 echocheck "Win32 codec DLL support"
4587 if test "$_win32" = auto ; then
4588 _win32=no
4589 test -n "$_win32libdir" && _win32=yes
4591 if test "$_win32" = yes ; then
4592 _def_win32='#define USE_WIN32DLL 1'
4593 echores "yes (using $_win32libdir)"
4594 else
4595 _def_win32='#undef USE_WIN32DLL'
4596 _nocodecmodules="win32 $_nocodecmodules"
4597 _dshow=no
4598 echores "no"
4601 if test "$_win32" != no ; then
4602 _def_win32_loader='#undef WIN32_LOADER'
4603 echocheck "Win32 loader support"
4604 if not cygwin && not mingw32 ; then
4605 _ld_win32='loader/libloader.a'
4606 _dep_win32='loader/libloader.a'
4607 _codecmodules="win32 $_codecmodules"
4608 if openbsd ; then
4609 x86 && _ld_win32="$_ld_win32 -li386"
4611 _def_win32_loader='#define WIN32_LOADER 1'
4612 echores "yes"
4613 else
4614 _ld_win32='loader/driver.o loader/vfl.o loader/afl.o'
4615 _dep_win32='loader/driver.o loader/vfl.o loader/afl.o'
4616 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
4617 _codecmodules="win32 $_codecmodules"
4618 echores "no (using native windows)"
4622 echocheck "DirectShow"
4623 if false ; then
4625 if test "$_dshow" != no ; then
4626 _dshow=no
4627 # check if compiler supports C++ and C++-libs are installed correctly
4628 cat > "$TMPCPP" << EOF
4629 #include <string>
4630 class myclass {
4631 private: int ret;
4632 public: int myreturn(void);
4634 int myclass::myreturn(void) { ret = 0; return ret ; }
4635 int main(void) { myclass myobject; return myobject.myreturn(); }
4637 echo "------------------------------------------------" >> "$TMPLOG"
4638 cat "$TMPCPP" >> "$TMPLOG"
4639 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
4640 _dshow=yes
4641 echores "yes (C++ is ok)"
4642 else
4643 echores "no"
4644 cat << EOF
4646 Your C++ runtime environment is broken.
4648 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
4649 Are the C++ libraries correctly installed?
4650 Check for libstdc++ and in (/etc/)ld.so.conf.
4652 If you do not need DirectShow support, you can also use:
4653 ./configure --disable-dshow <your-normal-configure-options>
4654 to disable building the C++ based DirectShow code.
4657 die "$_cc's C++ is broken"
4663 echores "$_dshow"
4665 if test "$_dshow" = yes ; then
4666 _def_dshow='#define USE_DIRECTSHOW 1'
4667 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4668 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4669 _codecmodules="dshow/dmo $_codecmodules"
4670 else
4671 _def_dshow='#undef USE_DIRECTSHOW'
4672 _nocodecmodules="dshow/dmo $_nocodecmodules"
4676 echocheck "XAnim DLL"
4677 if test "$_xanim" = auto ; then
4678 _xanim=no
4679 if test "$_dl" = yes ; then
4680 if test -z "$_xanimlibdir" ; then
4681 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
4682 if test -d "$I" ; then
4683 _xanimlibdir="$I"
4684 break;
4686 done
4688 test "$_xanimlibdir" && _xanim=yes
4689 if test "$_xanim" = yes ; then
4690 echores "yes (using $_xanimlibdir)"
4691 else
4692 echores "no (no suitable directory found - see DOCS/HTML/en/codecs.html)"
4694 else
4695 echores "no (dynamic loader support needed)"
4697 else
4698 echores "$_xanim (using $_xanimlibdir)"
4700 if test "$_xanim" = yes ; then
4701 _def_xanim='#define USE_XANIM 1'
4702 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
4703 _codecmodules="xanim $_codecmodules"
4704 else
4705 _def_xanim='#undef USE_XANIM'
4706 _def_xanim_path='#undef XACODEC_PATH'
4707 _nocodecmodules="xanim $_nocodecmodules"
4710 echocheck "RealPlayer DLL"
4711 if test "$_real" = auto ; then
4712 _real=no
4713 if test "$_dl" = yes || test "$_win32" = yes ; then
4714 # if test "$_dl" = yes ; then
4715 if linux || freebsd || netbsd || cygwin || mingw32 ; then
4716 _real=yes
4717 else
4718 echores "no (tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW)"
4720 if test "$_real" = yes ; then
4721 if test -z "$_reallibdir" ; then
4722 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
4723 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
4724 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
4725 "$_win32libdir"; do
4726 if test -d "$I" ; then
4727 _reallibdir="$I"
4728 break
4730 done
4732 test "$_reallibdir" || _real=no
4733 if test "$_real" = yes ; then
4734 echores "yes (using $_reallibdir)"
4735 else
4736 echores "no (no suitable directory found - see DOCS/HTML/en/codecs.html)"
4739 else
4740 echores "no (dynamic loader support needed)"
4742 else
4743 echores "$_real (using $_reallibdir)"
4745 if test "$_real" = yes ; then
4746 _def_real='#define USE_REALCODECS 1'
4747 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
4748 _codecmodules="real $_codecmodules"
4749 else
4750 _def_real='#undef USE_REALCODECS'
4751 _def_real_path="#undef REALCODEC_PATH"
4752 _nocodecmodules="real $_nocodecmodules"
4756 if test -z "$_livelibdir" ; then
4757 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
4758 if test -d "$I" ; then
4759 _livelibdir="$I"
4760 break;
4762 done
4765 echocheck "LIVE.COM Streaming Media libraries"
4766 if test "$_live" = auto && test "$_network" = yes ; then
4767 _live=yes
4768 test "$_livelibdir" || _live=no
4769 # TODO: deeper, more reliable test of libs, and version!
4770 # (users may have empty live/ dir or something different there, for
4771 # example 'live config files', or they may have old, incompatibel version)
4773 if test "$_live" = yes && test "$_network" = yes ; then
4774 echores "yes (using $_livelibdir)"
4775 _def_live='#define STREAMING_LIVE_DOT_COM 1'
4776 _live_libs_def="# LIVE.COM Streaming Media libraries:
4777 LIVE_LIB_DIR = $_livelibdir
4778 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
4779 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
4780 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
4781 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
4782 LIVE_LIBS += -lstdc++"
4783 _ld_live='$(LIVE_LIBS)'
4784 _inputmodules="live.com $_inputmodules"
4785 else
4786 echores "no"
4787 _def_live='#undef STREAMING_LIVE_DOT_COM'
4788 _noinputmodules="live.com $_noinputmodules"
4792 echocheck "iconv"
4793 if test "$_iconv" = auto ; then
4794 _iconv_tmp='#include <iconv.h>'
4796 cat > $TMPC << EOF
4797 #include <stdio.h>
4798 #include <unistd.h>
4799 $_iconv_tmp
4800 #define INBUFSIZE 1024
4801 #define OUTBUFSIZE 4096
4803 char inbuffer[INBUFSIZE];
4804 char outbuffer[OUTBUFSIZE];
4806 int main(void) {
4807 size_t numread;
4808 iconv_t icdsc;
4809 char *tocode="UTF-8";
4810 char *fromcode="cp1250";
4811 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
4812 while ((numread = read (0, inbuffer, INBUFSIZE))) {
4813 char *iptr=inbuffer;
4814 char *optr=outbuffer;
4815 size_t inleft=numread;
4816 size_t outleft=OUTBUFSIZE;
4817 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
4818 != (size_t)(-1)) {
4819 write (1, outbuffer, OUTBUFSIZE - outleft);
4822 if (iconv_close(icdsc) == -1)
4827 _iconv=no
4828 if cc_check -lm -liconv ; then
4829 _iconv=yes
4830 _ld_iconv='-liconv'
4831 else
4832 cc_check -lm && _iconv=yes
4835 if test "$_iconv" = yes ; then
4836 _def_iconv='#define USE_ICONV 1'
4837 else
4838 _def_iconv='#undef USE_ICONV'
4840 echores "$_iconv"
4843 echocheck "FFmpeg libavcodec (static)"
4844 if test "$_libavcodec" = auto ; then
4845 # Note: static linking is preferred to dynamic linking
4846 _libavcodec=no
4847 if test -d libavcodec && test -f libavcodec/utils.c ; then
4848 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
4849 _libavcodec=yes
4850 echores "yes"
4851 else
4852 echores "no (old ffmpeg version, use CVS !)"
4854 else
4855 echores "no (see DOCS/HTML/en/codecs.html)"
4857 else
4858 echores "$_libavcodec"
4861 _def_haveffpostprocess='no'
4862 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
4863 _def_haveffpostprocess='yes'
4866 if test "$_libavcodec" != yes ; then
4867 echocheck "FFmpeg libavcodec (dynamic)"
4868 if test "$_libavcodecso" = auto ; then
4869 _libavcodecso=no
4870 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
4871 cat > $TMPC << EOF
4872 #define FF_POSTPROCESS 1
4873 #include <ffmpeg/avcodec.h>
4874 int main(void) {
4875 avcodec_find_encoder_by_name("");
4876 return 0;
4879 if cc_check -lavcodec -lm ; then
4880 _libavcodecso=yes
4881 echores "yes (using libavcodec.so)"
4882 else
4883 echores "no (libavcodec.so is broken/obsolete)"
4885 else
4886 echores "$_libavcodecso"
4890 _def_libavcodec='#undef USE_LIBAVCODEC'
4891 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
4892 _def_ffpostprocess='#undef FF_POSTPROCESS'
4893 if test "$_libavcodec" = yes ; then
4894 _def_libavcodec='#define USE_LIBAVCODEC 1'
4895 _ld_libavcodec='libavcodec/libavcodec.a'
4896 _dep_libavcodec='libavcodec/libavcodec.a'
4897 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4898 _codecmodules="libavcodec $_codecmodules"
4899 elif test "$_libavcodecso" = yes ; then
4900 _def_libavcodec='#define USE_LIBAVCODEC 1'
4901 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
4902 _ld_libavcodec='-lavcodec'
4903 _codecmodules="libavcodec.so $_codecmodules"
4904 else
4905 _nocodecmodules="libavcodec $_nocodecmodules"
4908 echocheck "libdv-0.9.5+"
4909 if test "$_libdv" = auto ; then
4910 _libdv=no
4911 cat > $TMPC <<EOF
4912 #include <libdv/dv.h>
4913 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
4915 cc_check -ldv -lm && _libdv=yes
4917 if test "$_libdv" = yes ; then
4918 _def_libdv='#define HAVE_LIBDV095 1'
4919 _ld_libdv="-ldv"
4920 _codecmodules="libdv $_codecmodules"
4921 else
4922 _def_libdv='#undef HAVE_LIBDV095'
4923 _nocodecmodules="libdv $_nocodecmodules"
4925 echores "$_libdv"
4927 echocheck "zr"
4928 if test "$_zr" = auto ; then
4929 #36067's seem to identify themselves as 36057PQC's, so the line
4930 #below should work for 36067's and 36057's.
4931 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
4932 _zr=yes
4933 else
4934 _zr=no
4937 if test "$_zr" = yes ; then
4938 if test "$_libavcodec" = yes ; then
4939 _def_zr='#define HAVE_ZR 1'
4940 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
4941 _vomodules="zr zr2 $_vomodules"
4942 echores "$_zr"
4943 else
4944 echores "libavcodec (static) is required by zr, sorry"
4945 _novomodules="zr $_novomodules"
4946 _def_zr='#undef HAVE_ZR'
4948 else
4949 _def_zr='#undef HAVE_ZR'
4950 _novomodules="zr zr2 $_novomodules"
4951 echores "$_zr"
4954 echocheck "bl"
4955 if test "$_bl" = yes ; then
4956 _def_bl='#define HAVE_BL 1'
4957 _vosrc="$_vosrc vo_bl.c"
4958 _vomodules="bl $_vomodules"
4959 else
4960 _def_bl='#undef HAVE_BL'
4961 _novomodules="bl $_novomodules"
4963 echores "$_bl"
4965 echocheck "XviD"
4966 cat > $TMPC << EOF
4967 #include <xvid.h>
4968 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
4970 _ld_xvid="$_ld_xvid -lxvidcore -lm"
4971 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
4972 _xvid=yes
4973 _def_xvid3='#define HAVE_XVID3 1'
4974 _def_xvid4='#undef HAVE_XVID4'
4975 _codecmodules="xvid $_codecmodules"
4976 else
4977 cat > $TMPC << EOF
4978 #include <xvid.h>
4979 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
4981 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
4982 _xvid=yes
4983 _def_xvid3='#undef HAVE_XVID3'
4984 _def_xvid4='#define HAVE_XVID4 1'
4985 _codecmodules="xvid $_codecmodules"
4986 else
4987 _xvid=no
4988 _ld_xvid=''
4989 _def_xvid3='#undef HAVE_XVID3'
4990 _def_xvid4='#undef HAVE_XVID4'
4991 _nocodecmodules="xvid $_nocodecmodules"
4994 echores "$_xvid"
4996 _xvidcompat=no
4997 _def_decore_xvid='#undef DECORE_XVID'
4998 _def_encore_xvid='#undef ENCORE_XVID'
4999 if test "$_xvid" = yes ; then
5000 echocheck "DivX4 compatibility in XviD"
5001 cat > $TMPC << EOF
5002 #include <divx4.h>
5003 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
5005 cc_check -lm "$_ld_xvid" && _xvidcompat=yes
5006 echores "$_xvidcompat"
5010 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
5011 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
5012 cat > $TMPC << EOF
5013 #include <decore.h>
5014 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
5016 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
5017 _opendivx=no
5018 _ld_decore='-ldivxdecore'
5019 _def_decore='#define NEW_DECORE 1'
5020 _def_divx='#define USE_DIVX'
5021 _def_divx5='#undef DECORE_DIVX5'
5022 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5023 _codecmodules="divx4linux $_codecmodules"
5024 echores "DivX4linux (with libdivxdecore.so)"
5025 else
5026 # if test "$_divx4linux" != no ; then
5027 # DivX5 check
5028 # OdivxPP disabled because of:
5029 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
5030 cat > $TMPC << EOF
5031 #include <decore.h>
5032 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
5034 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
5035 _opendivx=no
5036 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
5037 _ld_decore='-ldivxdecore'
5038 _def_decore='#define NEW_DECORE 1'
5039 _def_divx='#define USE_DIVX'
5040 _def_divx5='#define DECORE_DIVX5 1'
5041 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5042 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5043 _codecmodules="divx5linux $_codecmodules"
5044 _nocodecmodules="divx4linux $_nocodecmodules"
5045 echores "DivX5linux (with libdivxdecore.so)"
5046 elif test "$_opendivx" != no ; then
5047 _opendivx=yes
5048 _ld_decore='opendivx/libdecore.a'
5049 _def_decore='#undef NEW_DECORE'
5050 _def_divx='#define USE_DIVX'
5051 _def_divx5='#undef DECORE_DIVX5'
5052 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5053 _codecmodules="opendivx $_codecmodules"
5054 _nocodecmodules="divx5linux $_nocodecmodules"
5055 echores "OpenDivX"
5056 elif test "$_xvidcompat" = yes ; then
5057 _opendivx=no
5058 _ld_decore=''
5059 _def_decore='#define NEW_DECORE 1'
5060 _def_divx='#define USE_DIVX 1'
5061 _def_divx5='#undef DECORE_DIVX5'
5062 _def_decore_xvid='#define DECORE_XVID 1'
5063 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5064 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
5065 echores "XviD compat."
5066 else
5067 _opendivx=no
5068 _ld_decore=''
5069 _def_decore='#undef NEW_DECORE'
5070 _def_divx='#undef USE_DIVX'
5071 _def_divx5='#undef DECORE_DIVX5'
5072 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5073 _nocodecmodules="opendivx $_nocodecmodules"
5074 echores "no"
5075 fi # DivX5 check
5079 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
5080 if test "$_mencoder" != no ; then
5082 echocheck "libmp3lame (for mencoder)"
5083 _mp3lame=no
5084 cat > $TMPC <<EOF
5085 #include <lame/lame.h>
5086 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; }
5088 # Note: libmp3lame usually depends on vorbis
5089 cc_check -lmp3lame $_ld_vorbis -lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
5090 if test "$_mp3lame" = yes ; then
5091 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
5092 _def_cfg_mp3lame="#define CONFIG_MP3LAME `$TMPO`"
5093 _ld_mp3lame="-lmp3lame $_ld_vorbis"
5094 else
5095 _def_mp3lame='#undef HAVE_MP3LAME'
5096 _def_cfg_mp3lame='#undef CONFIG_MP3LAME'
5098 echores "$_mp3lame"
5101 echocheck "DivX4linux encore (for mencoder)"
5102 cat > $TMPC << EOF
5103 #include <encore2.h>
5104 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
5106 if test "$_divx4linux" != no && cc_check -ldivxencore -lm ; then
5107 _def_encore='#define HAVE_DIVX4ENCORE 1'
5108 _ld_encore='-ldivxencore'
5109 echores "DivX4linux (with libdivxencore.so)"
5110 elif test "$_xvidcompat" = yes ; then
5111 _def_encore='#define HAVE_DIVX4ENCORE 1'
5112 _ld_encore=''
5113 _def_encore_xvid='#define ENCORE_XVID 1'
5114 echores "XviD compat."
5115 else
5116 _def_encore='#undef HAVE_DIVX4ENCORE'
5117 echores "no"
5122 echocheck "mencoder"
5123 _mencoder_flag='#undef HAVE_MENCODER'
5124 if test "$_mencoder" = yes ; then
5125 _mencoder_flag='#define HAVE_MENCODER'
5127 echores "$_mencoder"
5129 echocheck "fastmemcpy"
5130 # fastmemcpy check is done earlier with tests of CPU & binutils features
5131 if test "$_fastmemcpy" = yes ; then
5132 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
5133 else
5134 _def_fastmemcpy='#undef USE_FASTMEMCPY'
5136 echores "$_fastmemcpy"
5138 echocheck "UniquE RAR File Library"
5139 if test "$_unrarlib" = yes ; then
5140 _def_unrarlib='#define USE_UNRARLIB 1'
5141 else
5142 _def_unrarlib='#undef USE_UNRARLIB'
5144 echores "$_unrarlib"
5146 echocheck "TV interface"
5147 if test "$_tv" = yes ; then
5148 _def_tv='#define USE_TV 1'
5149 _inputmodules="tv $_inputmodules"
5150 else
5151 _noinputmodules="tv $_noinputmodules"
5152 _def_tv='#undef USE_TV'
5154 echores "$_tv"
5156 echocheck "EDL support"
5157 if test "$_edl" = yes ; then
5158 _def_edl='#define USE_EDL'
5159 _inputmodules="edl $_inputmodules"
5160 else
5161 _noinputmodules="edl $_noinputmodules"
5162 _def_edl='#undef USE_EDL'
5164 echores "$_edl"
5166 echocheck "*BSD BrookTree 848 TV interface"
5167 if test "$_tv_bsdbt848" = auto ; then
5168 _tv_bsdbt848=no
5169 if test "$_tv" = yes ; then
5170 cat > $TMPC <<EOF
5171 #include <sys/types.h>
5172 #if defined(__NetBSD__)
5173 #include <dev/ic/bt8xx.h>
5174 #else
5175 #include <machine/ioctl_bt848.h>
5176 #endif
5177 int main(void) { return 0; }
5179 cc_check && _tv_bsdbt848=yes
5182 if test "$_tv_bsdbt848" = yes ; then
5183 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
5184 _inputmodules="tv-bsdbt848 $_inputmodules"
5185 else
5186 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
5187 _noinputmodules="tv-bsdbt848 $_noinputmodules"
5189 echores "$_tv_bsdbt848"
5191 echocheck "Video 4 Linux TV interface"
5192 if test "$_tv_v4l" = auto ; then
5193 _tv_v4l=no
5194 if test "$_tv" = yes && linux ; then
5195 for I in /dev/video /dev/video? ; do
5196 if test -c $I ; then
5197 cat > $TMPC <<EOF
5198 #include <stdlib.h>
5199 #include <linux/videodev.h>
5200 int main(void) { return 0; }
5202 cc_check && _tv_v4l=yes
5203 break
5205 done
5208 if test "$_tv_v4l" = yes ; then
5209 _def_tv_v4l='#define HAVE_TV_V4L 1'
5210 _inputmodules="tv-v4l $_inputmodules"
5211 else
5212 _noinputmodules="tv-v4l $_noinputmodules"
5213 _def_tv_v4l='#undef HAVE_TV_V4L'
5215 echores "$_tv_v4l"
5218 echocheck "Video 4 Linux 2 TV interface"
5219 if test "$_tv_v4l2" = auto ; then
5220 _tv_v4l2=no
5221 if test "$_tv" = yes && linux ; then
5222 for I in /dev/video /dev/video? ; do
5223 if test -c $I ; then
5224 _tv_v4l2=yes
5225 break
5227 done
5230 if test "$_tv_v4l2" = yes ; then
5231 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
5232 _inputmodules="tv-v4l2 $_inputmodules"
5233 else
5234 _noinputmodules="tv-v4l2 $_noinputmodules"
5235 _def_tv_v4l2='#undef HAVE_TV_V4L2'
5237 echores "$_tv_v4l2"
5240 echocheck "audio select()"
5241 if test "$_select" = no ; then
5242 _def_select='#undef HAVE_AUDIO_SELECT'
5243 elif test "$_select" = yes ; then
5244 _def_select='#define HAVE_AUDIO_SELECT 1'
5246 echores "$_select"
5249 echocheck "network"
5250 # FIXME network check
5251 if test "$_network" != no ; then
5252 _def_network='#define MPLAYER_NETWORK 1'
5253 _ld_network="$_ld_sock"
5254 _inputmodules="network $_inputmodules"
5255 else
5256 _noinputmodules="network $_noinputmodules"
5257 _def_network='#undef MPLAYER_NETWORK'
5259 echores "$_network"
5261 echocheck "ftp"
5262 if test "$_ftp" != no ; then
5263 _def_ftp='#define HAVE_FTP 1'
5264 _inputmodules="ftp $_inputmodules"
5265 else
5266 _noinputmodules="ftp $_noinputmodules"
5267 _def_ftp='#undef HAVE_FTP'
5269 echores "$_ftp"
5271 # endian testing
5272 echocheck "byte order"
5273 if test "$_big_endian" = auto ; then
5274 cat > $TMPC <<EOF
5275 #include <inttypes.h>
5276 int main(void) {
5277 volatile uint32_t i=0x01234567;
5278 return (*((uint8_t*)(&i))) == 0x67;
5281 if cc_check ; then
5282 if $TMPO ; then
5283 _big_endian=yes
5284 else
5285 _big_endian=no
5287 else
5288 echo -n "failed to autodetect byte order, defaulting to "
5291 if test "$_big_endian" = yes ; then
5292 _byte_order='Big Endian'
5293 _def_words_endian='#define WORDS_BIGENDIAN 1'
5294 else
5295 _byte_order='Little Endian'
5296 _def_words_endian='#undef WORDS_BIGENDIAN'
5298 echores "$_byte_order"
5300 echocheck "shared postprocess lib"
5301 echores "$_shared_pp"
5303 echocheck "OSD menu"
5304 if test "$_menu" = yes ; then
5305 _def_menu='#define HAVE_MENU 1'
5306 else
5307 _def_menu='#undef HAVE_MENU'
5309 echores "$_menu"
5311 # Check to see if they want QTX codecs enabled
5312 echocheck "QTX codecs"
5313 if test "$_qtx" = auto ; then
5314 _qtx=$_win32
5316 if test "$_qtx" = yes ; then
5317 _def_qtx='#define USE_QTX_CODECS 1'
5318 _codecmodules="qtx $_codecmodules"
5319 else
5320 _def_qtx='#undef USE_QTX_CODECS'
5321 _nocodecmodules="qtx $_nocodecmodules"
5323 echores "$_qtx"
5326 echocheck "Subtitles sorting"
5327 if test "$_sortsub" = yes ; then
5328 _def_sortsub='#define USE_SORTSUB 1'
5329 else
5330 _def_sortsub='#undef USE_SORTSUB'
5332 echores "$_sortsub"
5335 echocheck "XMMS inputplugin support"
5336 if test "$_xmms" = yes ; then
5338 if ( xmms-config --version ) >/dev/null 2>&1 ; then
5339 if test -z "$_xmmsplugindir" ; then
5340 _xmmsplugindir=`xmms-config --input-plugin-dir`
5342 if test -z "$_xmmslibdir" ; then
5343 _xmmslibdir=`xmms-config --exec-prefix`/lib
5345 else
5346 if test -z "$_xmmsplugindir" ; then
5347 _xmmsplugindir=/usr/lib/xmms/Input
5349 if test -z "$_xmmslibdir" ; then
5350 _xmmslibdir=/usr/lib
5354 _def_xmms='#define HAVE_XMMS 1'
5355 if darwin ; then
5356 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
5357 else
5358 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
5360 else
5361 _def_xmms='#undef HAVE_XMMS'
5363 echores "$_xmms"
5365 echocheck "FLAC support"
5366 if ! test "$_flac" = "no" ; then
5367 if ! test -f libmpflac/dither.c ; then
5368 _flac=no
5369 echores "no (necessary files missing)"
5370 break
5372 if ! test -f libmpflac/stream_decoder.c ; then
5373 _external_flac=yes
5375 if test "$_external_flac" = "yes" ; then
5376 cat > $TMPC << EOF
5377 #include <FLAC/stream_decoder.h>
5378 #include <stdlib.h>
5380 int main()
5382 FLAC__StreamDecoder *fdec = FLAC__stream_decoder_new();
5383 return fdec != NULL;
5386 _flac=no
5387 if cc_check -lFLAC -lm ; then
5388 _flac=external
5390 else
5391 _flac=yes
5395 if test "$_flac" = external ; then
5396 _def_flac='#define HAVE_FLAC 1'
5397 #Still use dither.c & replay_gain from libmpflac
5398 _def_mpflac='#undef USE_MPFLAC_DECODER'
5399 _mpflac='process'
5400 _ld_flac='-lFLAC -lm -Llibmpflac -lmpflac'
5401 _codecmodules="flac(external) $_codecmodules"
5402 echores "yes (using external libFLAC)"
5403 else
5404 if test "$_flac" = yes ; then
5405 _def_flac='#define HAVE_FLAC 1'
5406 #use decoder, dither.c & replay_gain from libmpflac
5407 _def_mpflac='#define USE_MPFLAC_DECODER 1'
5408 _mpflac='full'
5409 _ld_flac='-Llibmpflac -lmpflac'
5410 _codecmodules="flac(internal) $_codecmodules"
5411 echores "yes (using internal libmpflac)"
5412 else
5413 _def_flac='#undef HAVE_FLAC'
5414 _def_mpflac='#undef USE_MPFLAC_DECODER'
5415 _mpflac='none'
5416 _ld_flac=''
5417 _nocodecmodules="flac $_nocodecmodules"
5418 echores "no"
5422 echocheck "inet6"
5423 if test "$_inet6" = auto ; then
5424 cat > $TMPC << EOF
5425 #include <sys/types.h>
5426 #include <sys/socket.h>
5427 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
5429 _inet6=no
5430 if cc_check ; then
5431 _inet6=yes
5434 if test "$_inet6" = yes ; then
5435 _def_inet6='#define HAVE_AF_INET6 1'
5436 else
5437 _def_inet6='#undef HAVE_AF_INET6'
5439 echores "$_inet6"
5442 echocheck "gethostbyname2"
5443 if test "$_gethostbyname2" = auto ; then
5444 cat > $TMPC << EOF
5445 #include <sys/types.h>
5446 #include <sys/socket.h>
5447 #include <netdb.h>
5448 int main(void) { gethostbyname2("", AF_INET); }
5450 _gethostbyname2=no
5451 if cc_check ; then
5452 _gethostbyname2=yes
5456 if test "$_gethostbyname2" = yes ; then
5457 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
5458 else
5459 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
5461 echores "$_gethostbyname2"
5463 # --------------- GUI specific tests begin -------------------
5464 echocheck "GUI"
5465 echo "$_gui"
5466 if test "$_gui" = yes ; then
5468 # Required libraries
5469 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
5470 test "$_x11" != yes && die "X11 support required for GUI compilation"
5472 echocheck "XShape extension"
5473 _xshape=no
5474 if test "$_x11" = yes ; then
5475 cat > $TMPC << EOF
5476 #include <X11/Xlib.h>
5477 #include <X11/Xproto.h>
5478 #include <X11/Xutil.h>
5479 #include <X11/extensions/shape.h>
5480 #include <stdlib.h>
5481 int main(void) {
5482 char *name = ":0.0";
5483 Display *wsDisplay;
5484 int exitvar = 0;
5485 int eventbase, errorbase;
5486 if (getenv("DISPLAY"))
5487 name=getenv("DISPLAY");
5488 wsDisplay=XOpenDisplay(name);
5489 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
5490 exitvar=1;
5491 XCloseDisplay(wsDisplay);
5492 return exitvar;
5495 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
5497 if test "$_xshape" = yes ; then
5498 _def_xshape='#define HAVE_XSHAPE 1'
5499 else
5500 die "the GUI requires the X11 extension XShape (which was not found)"
5502 echores "$_xshape"
5505 # Check for GTK:
5506 echocheck "gtk version"
5507 if test -z "$_gtkconfig" ; then
5508 if ( gtk-config --version ) >/dev/null 2>&1 ; then
5509 _gtkconfig="gtk-config"
5510 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
5511 _gtkconfig="gtk12-config"
5512 else
5513 die "the GUI requires GTK (which was not found)"
5516 _gtk=`$_gtkconfig --version 2>&1`
5517 _inc_gtk=`$_gtkconfig --cflags 2>&1`
5518 _ld_gtk=`$_gtkconfig --libs 2>&1`
5519 echores "$_gtk (using $_gtkconfig)"
5521 # Check for GLIB
5522 echocheck "glib version"
5523 if test -z "$_glibconfig" ; then
5524 if ( glib-config --version ) >/dev/null 2>&1 ; then
5525 _glibconfig="glib-config"
5526 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
5527 _glibconfig="glib12-config"
5528 else
5529 die "the GUI requires GLIB (which was not found)"
5532 _glib=`$_glibconfig --version 2>&1`
5533 _inc_glib=`$_glibconfig --cflags 2>&1`
5534 _ld_glib=`$_glibconfig --libs 2>&1`
5535 echores "$_glib (using $_glibconfig)"
5537 _def_gui='#define HAVE_NEW_GUI 1'
5538 _ld_gui='$(GTKLIB) $(GLIBLIB)'
5540 echo "Creating Gui/config.mak"
5541 cat > Gui/config.mak << EOF
5542 # -------- Generated by configure -----------
5544 GTKINC = $_inc_gtk
5545 GTKLIBS = $_ld_gtk
5546 GLIBINC = $_inc_glib
5547 GLIBLIBS = $_ld_glib
5551 else
5552 _def_gui='#undef HAVE_NEW_GUI'
5554 # --------------- GUI specific tests end -------------------
5558 #############################################################################
5560 # Checking for CFLAGS
5561 _stripbinaries=yes
5562 if test "$_profile" != "" || test "$_debug" != "" ; then
5563 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
5564 if test "$_cc_major" -ge "3" ; then
5565 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
5567 _stripbinaries=no
5568 elif test -z "$CFLAGS" ; then
5569 if test "$host_arch" != "mips" ; then
5570 CFLAGS="-O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer"
5571 else
5572 CFLAGS="-O4 $_march $_mcpu -ffast-math -fomit-frame-pointer"
5574 # always compile with '-g' if .developer:
5575 if test -f ".developer" ; then
5576 CFLAGS="-g $CFLAGS"
5577 _stripbinaries=no
5579 else
5580 cat <<EOF
5582 MPlayer compilation will use the CFLAGS set by you, but:
5584 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
5586 It is strongly recommended to let MPlayer choose the correct CFLAGS!
5587 To do so, execute 'CFLAGS= ./configure <options>'
5591 if darwin ; then
5592 # use gnu style cpp on Darwin
5593 CFLAGS="$CFLAGS -no-cpp-precomp -DSYS_DARWIN -Wl,-bind_at_load"
5594 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
5595 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
5597 if hpux ; then
5598 # use flag for HPUX missing setenv()
5599 CFLAGS="$CFLAGS -DHPUX"
5601 # Thread support
5602 if linux ; then
5603 CFLAGS="$CFLAGS -D_REENTRANT"
5604 elif bsd ; then
5605 # FIXME bsd needs this so maybe other OS'es
5606 CFLAGS="$CFLAGS -D_THREAD_SAFE"
5608 # 64 bit file offsets?
5609 if test "$_largefiles" = yes || freebsd ; then
5610 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
5611 if test "$_dvdread" = yes ; then
5612 # dvdread support requires this (for off64_t)
5613 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
5617 echocheck "ftello()"
5618 # if we don't have ftello map it to ftell
5619 cat > $TMPC << EOF
5620 #include <stdio.h>
5621 int main (void) { ftello(stdin); return 0; }
5623 _ftello=no
5624 cc_check && _ftello=yes
5625 if test "$_ftello" = yes ; then
5626 _def_ftello='#define HAVE_FTELLO 1'
5627 else
5628 _def_ftello='#undef HAVE_FTELLO'
5630 echores "$_ftello"
5632 # Determine OS dependent libs
5633 if cygwin ; then
5634 _confcygwin='TARGET_CYGWIN = yes'
5635 _def_confwin32='#define WIN32'
5636 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
5637 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
5638 CFLAGS="$CFLAGS -D__CYGWIN__"
5639 else
5640 _confcygwin="TARGET_CYGWIN = no"
5643 if mingw32 ; then
5644 _confmingw32='TARGET_MINGW32 = yes'
5645 else
5646 _confmingw32='TARGET_MINGW32 = no'
5649 # Dynamic linking flags
5650 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
5651 _ld_dl_dynamic=''
5652 bsd && _ld_dl_dynamic='-rdynamic'
5653 test "$_xanim" = yes && _ld_dl_dynamic='-rdynamic'
5654 test "$_real" = yes && _ld_dl_dynamic='-rdynamic'
5656 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
5657 bsdos && _ld_arch="$_ld_arch -ldvd"
5658 if netbsd ; then
5659 x86 && _ld_arch="$_ld_arch -li386"
5662 _def_debug='#undef MP_DEBUG'
5663 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
5665 _def_linux='#undef TARGET_LINUX'
5666 linux && _def_linux='#define TARGET_LINUX 1'
5668 # TODO cleanup the VIDIX stuff here
5669 _def_vidix='#define CONFIG_VIDIX 1'
5670 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
5671 if test "$_vidix" = yes; then
5672 _vosrc="$_vosrc vo_cvidix.c"
5673 _vomodules="cvidix $_vomodules"
5674 else
5675 _novomodules="cvidix $_novomodules"
5677 if test "$_vidix" = yes && (cygwin || mingw32); then
5678 _vosrc="$_vosrc vo_winvidix.c"
5679 _vomodules="winvidix $_vomodules"
5680 else
5681 _novomodules="winvidix $_novomodules"
5683 if test "$_vidix" = yes && test "$_x11" = yes; then
5684 _vosrc="$_vosrc vo_xvidix.c"
5685 _vomodules="xvidix $_vomodules"
5686 else
5687 _novomodules="xvidix $_novomodules"
5689 echo Checking for VIDIX ... "$_vidix"
5691 _def_joystick='#undef HAVE_JOYSTICK'
5692 if test "$_joystick" = yes ; then
5693 if linux ; then
5694 # TODO add some check
5695 _def_joystick='#define HAVE_JOYSTICK 1'
5696 else
5697 _joystick="no (unsupported under $system_name)"
5700 echo Checking for joystick ... "$_joystick"
5702 echocheck "lirc"
5703 if test "$_lirc" = auto ; then
5704 _lirc=no
5705 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
5706 cat > $TMPC <<EOF
5707 #include <lirc/lirc_client.h>
5708 int main(void) { return 0; }
5710 cc_check -llirc_client && _lirc=yes
5713 if test "$_lirc" = yes ; then
5714 _def_lirc='#define HAVE_LIRC 1'
5715 _ld_lirc='-llirc_client'
5716 else
5717 _def_lirc='#undef HAVE_LIRC'
5719 echores "$_lirc"
5721 echocheck "lircc"
5722 if test "$_lircc" = auto ; then
5723 _lircc=no
5724 cat > $TMPC <<EOF
5725 #include <lirc/lircc.h>
5726 int main(void) { return 0; }
5728 cc_check -llircc && _lircc=yes
5730 if test "$_lircc" = yes ; then
5731 _def_lircc='#define HAVE_LIRCC 1'
5732 _ld_lircc='-llircc'
5733 else
5734 _def_lircc='#undef HAVE_LIRCC'
5736 echores "$_lircc"
5738 #############################################################################
5739 echo "Creating config.mak"
5740 cat > config.mak << EOF
5741 # -------- Generated by configure -----------
5743 LANG = C
5744 LANGUAGES = $LANGUAGES
5745 TARGET_OS = $system_name
5746 DESTDIR =
5747 prefix = \$(DESTDIR)$_prefix
5748 BINDIR = \$(DESTDIR)$_bindir
5749 DATADIR = \$(DESTDIR)$_datadir
5750 MANDIR = \$(DESTDIR)$_mandir
5751 CONFDIR = \$(DESTDIR)$_confdir
5752 LIBDIR = \$(DESTDIR)$_libdir
5753 #AR = ar
5754 CC = $_cc
5755 AWK = $_awk
5756 RANLIB = $_ranlib
5757 INSTALL = $_install
5758 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu -pipe -fomit-frame-pointer -ffast-math
5759 EXTRA_INC = $_inc_extra $_inc_gtk
5760 OPTFLAGS = $CFLAGS \$(EXTRA_INC)
5761 STRIPBINARIES = $_stripbinaries
5763 $_live_libs_def
5765 MPLAYER_NETWORK = $_network
5766 STREAMING_LIVE_DOT_COM = $_live
5767 MPLAYER_NETWORK_LIB = $_ld_network $_ld_live
5768 DVBIN = $_dvbin
5769 VIDIX = $_vidix
5770 SHARED_PP = $_shared_pp
5771 CONFIG_PP = yes
5772 CONFIG_RISKY = yes
5773 CONFIG_MP3LAME = $_mp3lame
5774 LIBMENU = $_menu
5775 I18NLIBS = $_i18n_libs
5776 MATROSKA = $_matroska
5777 MATROSKA_LIB = $_ld_matroska
5779 OPENDIVX = $_opendivx
5781 UNRARLIB = $_unrarlib
5782 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
5783 PNG = $_mkf_png
5784 JPEG = $_mkf_jpg
5785 GIF = $_mkf_gif
5787 EXTRA_LIB = $_ld_extra
5788 Z_LIB = $_ld_static $_ld_zlib
5789 HAVE_MLIB = $_mlib
5790 WIN32_LIB = $_ld_win32libs
5791 STATIC_LIB = $_ld_static
5793 X11_INC = $_inc_x11
5794 X11DIR = $_ld_x11
5796 HAVE_XVMC_ACCEL = $_xvmc
5798 # for libavcodec:
5799 SRC_PATH=.
5800 LIBPREF=lib
5801 LIBSUF=.a
5802 SLIBPREF=lib
5803 SLIBSUF=.so
5805 # video output
5806 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_mad $_ld_sock
5807 GGI_LIB = $_ld_ggi
5808 MLIB_LIB = $_ld_mlib
5809 MLIB_INC = $_inc_mlib
5810 DXR2_INC = $_inc_dxr2
5811 DVB_INC = $_inc_dvb
5812 PNG_LIB = $_ld_png
5813 JPEG_LIB = $_ld_jpg
5814 GIF_LIB = $_ld_gif
5815 SDL_LIB = $_ld_sdl
5816 SVGA_LIB = $_ld_svga
5817 AA_LIB = $_ld_aa
5819 # audio output
5820 ALSA_LIB = $_ld_alsa
5821 NAS_LIB = $_ld_nas
5822 ARTS_LIB = $_ld_arts
5823 ARTS_INC = $_inc_arts
5824 ESD_LIB = $_ld_esd
5825 ESD_INC = $_inc_esd
5826 SGIAUDIO_LIB = $_ld_sgiaudio
5828 # input/demuxer/codecs
5829 TERMCAP_LIB = $_ld_termcap
5830 LIRC_LIB = $_ld_lirc
5831 LIRCC_LIB = $_ld_lircc
5832 CSS_USE = $_css
5833 CSS_LIB = $_ld_css
5834 DVDKIT = $_dvdkit
5835 DVDKIT2 = $_dvdkit2
5836 DVDKIT_SHARED = no
5837 SDL_INC = $_inc_sdl
5838 W32_DEP = $_dep_win32
5839 W32_LIB = $_ld_win32
5840 DS_DEP = $_dep_dshow
5841 DS_LIB = $_ld_dshow
5842 AV_DEP = $_dep_libavcodec
5843 AV_LIB = $_ld_libavcodec
5844 FAME = $_fame
5845 FAME_LIB = $_ld_fame
5846 MP1E_DEP = $_dep_mp1e
5847 MP1E_LIB = $_ld_mp1e
5848 ARCH_LIB = $_ld_arch $_ld_iconv
5849 XVID = $_xvid
5850 XVID_INC = $_inc_xvid
5851 XVID_LIB = $_ld_xvid
5852 DECORE_LIB = $_ld_decore $_ld_mp3lame
5853 MENCODER = $_mencoder
5854 ENCORE_LIB = $_ld_encore $_ld_mp3lame
5855 DIRECTFB_INC = $_inc_directfb
5856 DIRECTFB_LIB = $_ld_directfb
5857 CDPARANOIA_INC = $_inc_cdparanoia
5858 CDPARANOIA_LIB = $_ld_cdparanoia
5859 FREETYPE_INC = $_inc_freetype
5860 FREETYPE_LIB = $_ld_freetype
5861 FRIBIDI_INC = $_inc_fribidi
5862 FRIBIDI_LIB = $_ld_fribidi
5863 LIBLZO_LIB= $_ld_liblzo
5864 MAD_LIB = $_ld_mad
5865 VORBIS_LIB = $_ld_vorbis $_ld_libdv
5866 THEORA_LIB = $_ld_theora
5867 FAAD_LIB = $_ld_faad
5868 INTERNAL_FAAD = $_faad_internal
5869 SMBSUPPORT_LIB = $_ld_smb
5870 XMMS_PLUGINS = $_xmms
5871 XMMS_LIB = $_xmms_lib
5872 MACOSX = $_macosx
5873 MACOSX_FRAMEWORKS = $_macosx_frameworks
5874 FLAC_LIB = $_ld_flac
5875 MPFLAC = $_mpflac
5877 # --- Some stuff for autoconfigure ----
5878 $_target_arch
5879 $_confcygwin
5880 $_confmingw32
5881 TARGET_CPU=$iproc
5882 TARGET_MMX = $_mmx
5883 TARGET_MMX2 = $_mmx2
5884 TARGET_3DNOW = $_3dnow
5885 TARGET_3DNOWEX = $_3dnowex
5886 TARGET_SSE = $_sse
5887 TARGET_ALTIVEC = $_altivec
5889 # --- GUI stuff ---
5890 GTKLIB = $_ld_static $_ld_gtk
5891 GLIBLIB = $_ld_static $_ld_glib
5892 GTK_LIBS = $_ld_static $_ld_gui
5893 GUI = $_gui
5894 DEBUG = -DDEBUG
5898 #############################################################################
5899 echo "Creating config.h"
5900 cat > config.h << EOF
5901 /* -------- This file has been automatically generated by configure ---------
5902 Note: Any changes in it will be lost when you run configure again. */
5904 /* Protect against multiple inclusion */
5905 #ifndef MPLAYER_CONFIG_H
5906 #define MPLAYER_CONFIG_H 1
5908 /* use GNU internationalization */
5909 $_def_i18n
5911 /* missing mmap function on libc5 systems */
5912 #ifndef MAP_FAILED
5913 # define MAP_FAILED ((void *) -1)
5914 #endif
5916 /* use setlocale() function */
5917 $_def_setlocale
5919 /* Runtime CPU detection */
5920 $_def_runtime_cpudetection
5922 /* Dynamic a/v plugins */
5923 $_def_dynamic_plugins
5925 /* "restrict" keyword */
5926 #define restrict $_def_restrict_keyword
5928 #define PREFIX "$_prefix"
5930 /* define this to use simple idct with patched libavcodec */
5931 #define SIMPLE_IDCT 1
5933 #define USE_OSD 1
5934 #define USE_SUB 1
5936 /* enable/disable SIGHANDLER */
5937 $_def_sighandler
5939 /* Toggles debugging informations */
5940 $_def_debug
5942 /* Indicates that Ogle's libdvdread is available for DVD playback */
5943 $_def_dvdread
5945 /* Indicates that dvdread is from libmpdvdkit */
5946 $_def_mpdvdkit
5948 /* Additional options for libmpdvdkit*/
5949 $_def_dvd
5950 $_def_cdrom
5951 $_def_cdio
5952 $_def_dvdio
5953 $_def_bsdi_dvd
5954 $_def_dvd_bsd
5955 $_def_dvd_linux
5956 $_dev_dvd_openbsd
5957 $_def_dvd_darwin
5958 $_def_sol_scsi_h
5959 $_def_hpux_scsi_h
5960 $_def_stddef
5962 /* Common data directory (for fonts, etc) */
5963 #define MPLAYER_DATADIR "$_datadir"
5964 #define MPLAYER_CONFDIR "$_confdir"
5965 #define MPLAYER_LIBDIR "$_libdir"
5967 /* Define this to compile stream-caching support, it can be enabled via
5968 -cache <kilobytes> */
5969 #define USE_STREAM_CACHE 1
5971 /* Define to include support for XviD/Divx4Linux/OpenDivx */
5972 $_def_divx
5974 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
5975 /* You have to change DECORE_LIBS in config.mak, too! */
5976 $_def_decore
5978 /* Define if you are using DivX5Linux Decore library */
5979 $_def_divx5
5981 /* Define if you are using XviD library */
5982 $_def_xvid3
5983 $_def_xvid4
5984 $_def_decore_xvid
5985 $_def_encore_xvid
5987 /* Define to include support for libdv-0.9.5 */
5988 $_def_libdv
5990 /* If build mencoder */
5991 $_mencoder_flag
5993 /* Indicates if XviD/Divx4linux encore is available
5994 Note: for mencoder */
5995 $_def_encore
5997 /* Indicates if libmp3lame is available
5998 Note: for mencoder */
5999 $_def_mp3lame
6000 $_def_cfg_mp3lame
6002 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
6003 $_def_mp1e
6005 /* Define this to enable avg. byte/sec-based AVI sync method by default:
6006 (use -bps or -nobps commandline option for run-time method selection)
6007 -bps gives better sync for vbr mp3 audio, it is now default */
6008 #define AVI_SYNC_BPS 1
6010 /* Undefine this if you do not want to select mono audio (left or right)
6011 with a stereo MPEG layer 2/3 audio stream. The command line option
6012 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6013 right-only), with 0 being the default.
6015 #define USE_FAKE_MONO 1
6017 /* Undefine this if your sound card driver has no working select().
6018 If you have kernel Oops, player hangups, or just no audio, you should
6019 try to recompile MPlayer with this option disabled! */
6020 $_def_select
6022 /* define this to use iconv(3) function to codepage conversions */
6023 $_def_iconv
6025 /* define this to use RTC (/dev/rtc) for video timers (LINUX only) */
6026 $_def_rtc
6028 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
6029 #define MAX_OUTBURST 65536
6031 /* set up audio OUTBURST. Do not change this! */
6032 #define OUTBURST 512
6034 /* Define this if your system has the header file for the OSS sound interface */
6035 $_def_sys_soundcard
6037 /* Define this if your system has the header file for the OSS sound interface
6038 * in /usr/include */
6039 $_def_soundcard
6041 /* Define this if your system has the sysinfo header */
6042 $_def_sys_sysinfo
6044 /* Define this if your system uses ftello() for off_t seeking */
6046 $_def_ftello
6047 #ifndef HAVE_FTELLO
6048 # define ftello(a) ftell(a)
6049 #endif
6051 /* Define this if your system has the "malloc.h" header file */
6052 $_def_malloc
6054 /* memalign is mapped to malloc if unsupported */
6055 $_def_memalign
6056 #ifndef HAVE_MEMALIGN
6057 # define memalign(a,b) malloc(b)
6058 #endif
6060 /* Define this if your system has the "alloca.h" header file */
6061 $_def_alloca
6063 /* Define this if your system has the "sys/mman.h" header file */
6064 $_def_mman
6066 /* Define this if you have the elf dynamic linker -ldl library */
6067 $_def_dl
6069 /* Define this if you have the kstat kernel statistics library */
6070 $_def_kstat
6072 /* Define this if you have zlib */
6073 $_def_zlib
6075 /* Define this if you have shm support */
6076 $_def_shm
6078 /* Define this if your system has scandir & alphasort */
6079 $_def_scandir
6081 /* Define this if your system has strsep */
6082 $_def_strsep
6084 /* Define this if your system has vsscanf */
6085 $_def_vsscanf
6087 /* Define this if your system has no posix select */
6088 $_def_no_posix_select
6090 /* Define this if your system has gettimeofday */
6091 $_def_gettimeofday
6093 /* Define this if your system has glob */
6094 $_def_glob
6096 /* LIRC (remote control, see www.lirc.org) support: */
6097 $_def_lirc
6100 * LIRCCD (LIRC client daemon)
6101 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
6103 $_def_lircc
6106 * FLAC decoding
6108 $_def_flac
6109 $_def_mpflac
6111 /* DeCSS support using libcss */
6112 $_def_css
6114 /* DVD navigation support using libdvdnav */
6115 $_def_dvdnav
6116 $_def_dvdnav_version
6118 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
6119 #define MPEG12_POSTPROC 1
6121 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
6122 $_def_ffpostprocess
6124 /* Define to include support for OpenDivx postprocessing */
6125 $_def_odivx_postprocess
6127 /* Win32 DLL support */
6128 $_def_win32
6129 #define WIN32_PATH "$_win32libdir"
6131 /* DirectShow support */
6132 $_def_dshow
6134 /* Mac OS X specific features */
6135 $_def_macosx
6137 /* Build our Win32-loader */
6138 $_def_win32_loader
6140 /* ffmpeg's libavcodec support (requires libavcodec source) */
6141 $_def_libavcodec
6142 $_def_libavcodecso
6144 /* risky codecs */
6145 #define CONFIG_RISKY 1
6147 /* Use libavcodec's decoders */
6148 #define CONFIG_DECODERS 1
6149 /* Use libavcodec's encoders */
6150 #define CONFIG_ENCODERS 1
6152 /* Use codec libs included in mplayer CVS / source dist: */
6153 #define USE_MP3LIB
6154 #define USE_LIBA52
6155 #define USE_LIBMPEG2
6157 /* Use the SVQ1 decoder in libmpcodecs - we don't want/need it with libavcodec */
6158 #ifndef USE_LIBAVCODEC
6159 #define USE_SVQ1
6160 #endif
6162 /* Use libfame encoder filter */
6163 $_def_fame
6165 /* XAnim DLL support */
6166 $_def_xanim
6167 /* Default search path */
6168 $_def_xanim_path
6170 /* RealPlayer DLL support */
6171 $_def_real
6172 /* Default search path */
6173 $_def_real_path
6175 /* LIVE.COM Streaming Media library support */
6176 $_def_live
6178 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
6179 $_def_fastmemcpy
6181 /* Use unrarlib for Vobsubs */
6182 $_def_unrarlib
6184 /* gui support, please do not edit this option */
6185 $_def_gui
6187 /* Audio output drivers */
6188 $_def_ossaudio
6189 $_def_ossaudio_devdsp
6190 $_def_ossaudio_devmixer
6191 $_def_alsa5
6192 $_def_alsa9
6193 $_def_arts
6194 $_def_esd
6195 $_def_esd_latency
6196 $_def_sys_asoundlib_h
6197 $_def_alsa_asoundlib_h
6198 $_def_sunaudio
6199 $_def_sgiaudio
6200 $_def_win32waveout
6201 $_def_nas
6203 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6204 #undef FAST_OSD
6205 #undef FAST_OSD_TABLE
6207 /* Enable TV Interface support */
6208 $_def_tv
6210 /* Enable EDL support */
6211 $_def_edl
6213 /* Enable Video 4 Linux TV interface support */
6214 $_def_tv_v4l
6216 /* Enable Video 4 Linux 2 TV interface support */
6217 $_def_tv_v4l2
6219 /* Enable *BSD BrookTree TV interface support */
6220 $_def_tv_bsdbt848
6222 /* Define if your processor stores words with the most significant
6223 byte first (like Motorola and SPARC, unlike Intel and VAX). */
6224 $_def_words_endian
6226 $_def_arch
6228 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
6229 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
6231 #ifdef ARCH_POWERPC
6232 #define ARCH_PPC 1
6233 #endif
6235 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
6236 #ifdef ARCH_ARMV4L
6237 #define ARCH_ARM 1
6238 #endif
6240 /* only gcc3 can compile mvi instructions */
6241 $_def_gcc_mvi_support
6243 /* Define this for Cygwin build for win32 */
6244 $_def_confwin32
6246 /* Define this to any prefered value from 386 up to infinity with step 100 */
6247 #define __CPU__ $iproc
6249 $_mp_wordsize
6251 $_def_linux
6253 $_def_vcd
6255 #ifdef sun
6256 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
6257 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6258 #elif defined(HPUX)
6259 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6260 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6261 #elif defined(WIN32)
6262 #define DEFAULT_CDROM_DEVICE "D:"
6263 #define DEFAULT_DVD_DEVICE "D:"
6264 #elif defined(SYS_DARWIN)
6265 #define DEFAULT_CDROM_DEVICE "/dev/rdiskN"
6266 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6267 #else
6268 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6269 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6270 #endif
6273 /*----------------------------------------------------------------------------
6275 ** NOTE: Instead of modifying these definitions here, use the
6276 ** --enable/--disable options of the ./configure script!
6277 ** See ./configure --help for details.
6279 *---------------------------------------------------------------------------*/
6281 /* C99 lrintf function available */
6282 $_def_lrintf
6284 /* int_fastXY_t emulation */
6285 $_def_fast_inttypes
6287 /* nanosleep support */
6288 $_def_nanosleep
6290 /* SMB support */
6291 $_def_smbsupport
6293 /* termcap flag for getch2.c */
6294 $_def_termcap
6296 /* termios flag for getch2.c */
6297 $_def_termios
6298 $_def_termios_h
6299 $_def_termios_sys_h
6301 /* enable PNG support */
6302 $_def_png
6304 /* enable JPEG support */
6305 $_def_jpg
6307 /* enable GIF support */
6308 $_def_gif
6309 $_def_gif_4
6310 $_def_gif_tvt_hack
6312 /* enable FreeType support */
6313 $_def_freetype
6315 /* enable FriBiDi usage */
6316 $_def_fribidi
6318 /* liblzo support */
6319 $_def_liblzo
6321 /* libmad support */
6322 $_def_mad
6324 /* enable OggVorbis support */
6325 $_def_vorbis
6327 /* enable Tremor as vorbis decoder */
6328 $_def_tremor
6330 /* enable OggTheora support */
6331 $_def_theora
6333 /* enable Matroska support */
6334 $_def_matroska
6336 /* enable FAAD (AAC) support */
6337 $_def_faad
6338 $_def_faad_internal
6339 $_def_faad_version
6341 /* enable network */
6342 $_def_network
6344 /* enable ftp support */
6345 $_def_ftp
6347 /* enable winsock2 instead of Unix functions*/
6348 $_def_winsock2
6350 /* define this to use inet_aton() instead of inet_pton() */
6351 $_def_use_aton
6353 /* enables / disables cdparanoia support */
6354 $_def_cdparanoia
6356 /* enables / disables VIDIX usage */
6357 $_def_vidix
6359 /* enables / disables new input joystick support */
6360 $_def_joystick
6362 /* enables / disables QTX codecs */
6363 $_def_qtx
6365 /* enables / disables osd menu */
6366 $_def_menu
6368 /* enables / disables subtitles sorting */
6369 $_def_sortsub
6371 /* XMMS input plugin support */
6372 $_def_xmms
6373 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6375 /* enables inet6 support */
6376 $_def_inet6
6378 /* do we have gethostbyname2? */
6379 $_def_gethostbyname2
6381 /* Extension defines */
6382 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
6383 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
6384 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
6385 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
6386 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
6387 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
6388 $_def_altivec // only define if you have Altivec (G4)
6390 #ifdef HAVE_MMX
6391 #define USE_MMX_IDCT 1
6392 #endif
6394 $_def_altivec_h // enables usage of altivec.h
6397 $_def_mlib // Sun mediaLib, available only on solaris
6399 /* libmpeg2 uses a different feature test macro for mediaLib */
6400 #ifdef HAVE_MLIB
6401 #define LIBMPEG2_MLIB 1
6402 #endif
6404 /* libvo options */
6405 #define SCREEN_SIZE_X 1
6406 #define SCREEN_SIZE_Y 1
6407 $_def_x11
6408 $_def_xv
6409 $_def_xvmc
6410 $_def_vm
6411 $_def_xinerama
6412 $_def_gl
6413 $_def_gl_win32
6414 $_def_dga
6415 $_def_dga2
6416 $_def_sdl
6417 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
6418 $_def_sdlbuggy
6419 $_def_directx
6420 $_def_ggi
6421 $_def_3dfx
6422 $_def_tdfxfb
6423 $_def_tdfxvid
6424 $_def_directfb
6425 $_def_directfb_version
6426 $_def_zr
6427 $_def_bl
6428 $_def_mga
6429 $_def_xmga
6430 $_def_syncfb
6431 $_def_fbdev
6432 $_def_dxr2
6433 $_def_dxr3
6434 $_def_dvb
6435 $_def_dvb_in
6436 $_def_svga
6437 $_def_vesa
6438 $_def_xdpms
6439 $_def_aa
6440 $_def_tga
6442 /* used by GUI: */
6443 $_def_xshape
6445 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
6446 #define X11_FULLSCREEN 1
6447 #endif
6449 #endif /* MPLAYER_CONFIG_H */
6452 #############################################################################
6454 echo "Creating libvo/config.mak"
6455 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g'`
6456 cat > libvo/config.mak << EOF
6457 include ../config.mak
6458 OPTIONAL_SRCS = $_vosrc
6459 OPTIONAL_OBJS = $_voobj
6462 #############################################################################
6464 echo "Creating libao2/config.mak"
6465 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
6466 cat > libao2/config.mak << EOF
6467 include ../config.mak
6468 OPTIONAL_SRCS = $_aosrc
6469 OPTIONAL_OBJS = $_aoobj
6472 #############################################################################
6474 echo "Creating help_mp.h"
6475 cat > help_mp.h << EOF
6477 // WARNING! This is a generated file. Do NOT edit.
6478 // See the help/ subdir for the editable files.
6480 #include "$_mp_help"
6483 if test $_mp_help != "help/help_mp-en.h"; then
6484 echo "Adding untranslated messages to help_mp.h"
6485 echo '// untranslated messages from the english master-file:' >> help_mp.h
6486 help/help_diff.sh $_mp_help <help/help_mp-en.h >> help_mp.h
6489 #############################################################################
6491 cat << EOF
6493 Config files successfully generated by ./configure !
6495 Install prefix: $_prefix
6496 Data directory: $_datadir
6497 Config direct.: $_confdir
6499 Byte order: $_byte_order
6500 Optimizing for: $_optimizing
6502 Languages:
6503 Messages/GUI: $_language
6506 echo -n " Manual pages: $LANGUAGES"
6507 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
6508 echo
6510 cat << EOF
6512 Enabled optional drivers:
6513 Input: $_inputmodules
6514 Codecs: $_codecmodules
6515 Audio output: $_aomodules
6516 Video output: $_vomodules
6517 Disabled optional drivers:
6518 Input: $_noinputmodules
6519 Codecs: $_nocodecmodules
6520 Audio output: $_noaomodules
6521 Video output: $_novomodules
6523 'config.h' and 'config.mak' contain your configuration options.
6524 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
6525 compile *** DO NOT REPORT BUGS if you tweak these files ***
6527 'make' will now compile MPlayer and 'make install' will install it.
6528 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
6533 if test "$_mtrr" = yes ; then
6534 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/en/devices.html#mtrr)"
6535 echo
6538 if test "$_sdl" = "outdated" ; then
6539 cat <<EOF
6540 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
6541 support has therefore been disabled.
6543 Please upgrade to a more recent version (version 1.1.8 and above are known to
6544 work). You may get this library from: http://www.libsdl.org
6546 You need to rerun ./configure and recompile after updating SDL. If you are
6547 only interested in the libSDL audio drivers, then an older version might work.
6549 Use --enable-sdl to force usage of libSDL.
6554 if x86; then
6555 if test "$_win32" = no ; then
6556 if test "$_win32libdir" ; then
6557 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
6558 else
6559 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
6561 cat << EOF
6562 Create it and copy the DLL files there! You can download the codecs from our
6563 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
6567 else
6568 cat <<EOF
6569 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
6570 operating system ($system_name). You may encounter a few AVI files that
6571 cannot be played due to missing Open Source video/audio codec support.
6577 cat <<EOF
6579 Check $TMPLOG if you wonder why an autodetection failed (check whether
6580 the development headers/packages are installed).
6582 If you suspect a bug, please read DOCS/HTML/en/bugreports.html.
6586 if test "$_vidix" = no ; then
6587 cat <<EOF
6588 You've disabled VIDIX. Although it would be better to PORT it instead.
6589 Have a look at the documentation for supported cards!
6594 # Last move:
6595 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"