skip null frames in mpeg files, patch by Zoltan Hidvegi <mplayer@hzoli.2y.net>
[mplayer/glamo.git] / configure
bloba3c1542ca45432e2b6b26b0dc173b80ea5e405f2
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 # not boolean test: implement the posix shell "!" operator for a
90 # non-posix /bin/sh.
91 # usage: not {command}
92 # returns exit status "success" when the execution of "command"
93 # fails.
94 not() {
95 eval "$@"
96 test $? -ne 0
99 # Use this before starting a check
100 echocheck() {
101 echo "============ Checking for $@ ============" >> "$TMPLOG"
102 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
105 # Use this to echo the results of a check
106 echores() {
107 echo "Result is: $@" >> "$TMPLOG"
108 echo "##########################################" >> "$TMPLOG"
109 echo "" >> "$TMPLOG"
110 echo "$@"
112 #############################################################################
114 # Check how echo works in this /bin/sh
115 case `echo -n` in
116 -n) _echo_n= _echo_c='\c' ;; # SysV echo
117 *) _echo_n='-n ' _echo_c= ;; # BSD echo
118 esac
120 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"`
122 for parm in "$@" ; do
123 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
124 cat << EOF
126 Usage: $0 [OPTIONS]...
128 Configuration:
129 -h, --help display this help and exit
131 Installation directories:
132 --prefix=DIR use this prefix for installing mplayer [/usr/local]
133 --bindir=DIR use this prefix for installing mplayer binary
134 [PREFIX/bin]
135 --datadir=DIR use this prefix for installing machine independent
136 data files (fonts, skins) [PREFIX/share/mplayer]
137 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
138 --confdir=DIR use this prefix for installing configuration files
139 [PREFIX/etc/mplayer]
140 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
142 Optional features:
143 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
144 --enable-gui enable gmplayer compilation (gtk-1.2 GUI) [disable]
145 --enable-largefiles enable support for files > 2 GBytes [disable]
146 --enable-linux-devfs set default devices to devfs ones [disable]
147 --enable-termcap use termcap database for key codes [autodetect]
148 --disable-iconv do not use iconv(3) function [autodetect]
149 --disable-setlocale disable setlocale using in mplayer [autodetect]
150 --enable-lirc enable LIRC (remote control) support [autodetect]
151 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
152 --enable-joystick enable joystick support [disable]
153 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
154 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
155 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
156 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
157 --disable-edl disable EDL (edit decision list) support [enable]
158 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
159 --disable-network disable network support (for: http/mms/rtp) [enable]
160 --enable-winsock2 enable winsock2 usage [autodetect]
161 --enable-smb enable Samba (SMB) input support [autodetect]
162 --enable-live enable LIVE.COM Streaming Media support [disable]
163 --disable-dvdread Disable libdvdread support [autodetect]
164 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
165 --disable-css Disable old-style libcss DVD support [autodetect]
166 --disable-cdparanoia Disable cdparanoia support [autodetect]
167 --disable-freetype Disable freetype2 font rendering support [autodetect]
168 --disable-unrarlib Disable Unique RAR File Library [enabled]
169 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
170 --disable-sortsub Disable subtitles sorting [enabled]
171 --enable-fribidi Enable using the FriBiDi libs [disabled]
172 --disable-macosx Disable Mac OS X specific features [autodetect]
173 --disable-inet6 Disable IPv6 support [autodetect]
174 --disable-gethostbyname2
175 gethostbyname() is not provided by the C library [autodetect]
176 --disable-ftp Disable ftp support [enabled]
177 Codecs:
178 --enable-gif enable gif support [autodetect]
179 --enable-png enable png input/output support [autodetect]
180 --enable-jpeg enable jpeg input/output support [autodetect]
181 --enable-liblzo enable external liblzo support [autodetect]
182 --disable-win32 disable Win32 DLL support [autodetect]
183 --disable-dshow disable Win32/DirectShow support [autodetect]
184 --disable-qtx disable Quicktime codecs [autodetect]
185 --disable-xanim disable XAnim DLL support [autodetect]
186 --disable-real disable RealPlayer DLL support [autodetect]
187 --disable-xvid disable XviD codec [autodetect]
188 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
189 --enable-opendivx enable _old_ OpenDivx codec [disable]
190 --disable-libavcodec disable libavcodec [autodetect]
191 --enable-libfame enable libfame realtime encoder [autodetect]
192 --enable-vorbis build with OggVorbis support [autodetect]
193 --enable-tremor build with integer-only OggVorbis support [disabled]
194 --enable-theora build with OggTheora support [autodetect]
195 --enable-matroska build with Matroska support [autodetect]
196 --enable-faad build with FAAD2 (MP4/AAC) support [autodetect]
197 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
198 --disable-mad disable libmad (mpeg audio) support [autodetect]
199 --enable-xmms build with XMMS inputplugin support [disabled]
200 --enable-externalfaad use external faad library if available [disabled]
201 --enable-flac build with FLAC support [autodetect]
202 --enable-external-flac build with external libFLAC [disable]
204 Video output:
205 --disable-vidix disable VIDIX stuff [enable on x86 *nix]
206 --enable-gl build with OpenGL render support [autodetect]
207 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
208 --enable-vesa build with VESA support [autodetect]
209 --enable-svga build with SVGAlib support [autodetect]
210 --enable-sdl build with SDL render support [autodetect]
211 --enable-aa build with AAlib render support [autodetect]
212 --enable-ggi build with GGI render support [autodetect]
213 --enable-directx build with Directx support [autodetect]
214 --enable-dxr2 build with DXR2 render support [autodetect]
215 --enable-dxr3 build with DXR3/H+ render support [autodetect]
216 --enable-dvb build with support for output via DVB-Card [autodetect]
217 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
218 (check for /dev/mga_vid) [autodetect]
219 --enable-xmga build with mga_vid X Window support
220 (check for X & /dev/mga_vid) [autodetect]
221 --enable-xv build with Xv render support for X 4.x [autodetect]
222 --enable-xvmc build with XvMC acceleration for X 4.x [autodetect]
223 --enable-vm build with XF86VidMode support for X11 [autodetect]
224 --enable-xinerama build with Xinerama support for X11 [autodetect]
225 --enable-x11 build with X11 render support [autodetect]
226 --enable-fbdev build with FBDev render support [autodetect]
227 --enable-mlib build with MLIB support (Solaris only) [autodetect]
228 --enable-3dfx build with obsolete /dev/3dfx support [disable]
229 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
230 --enable-directfb build with DirectFB support [autodetect]
231 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
232 --enable-bl build with Blinkenlights support [disable]
233 --enable-tdfxvid build with tdfx vid support [disable]
234 --disable_tga disable targa output support [enable]
236 Audio output:
237 --disable-ossaudio disable OSS sound support [autodetect]
238 --disable-arts disable aRts sound support [autodetect]
239 --disable-esd disable esd sound support [autodetect]
240 --disable-alsa disable alsa sound support [autodetect]
241 --disable-sunaudio disable Sun sound support [autodetect]
242 --disable-nas disable NAS sound support [autodetect]
243 --disable-win32waveout disable Windows waveout sound support [autodetect]
244 --disable-select disable using select() on audio device [enable]
246 Miscellaneous options:
247 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
248 --cc=COMPILER use this C compiler to build MPlayer [gcc]
249 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
250 --enable-static build a statically linked binary. Set further linking
251 options with --enable-static="-lslang -lncurses"
252 --language=list a white space or comma separated list of languages
253 for translated man pages, the first language is the
254 primary and therefore used for translated messages
255 and GUI (also the environment variable \$LINGUAS is
256 honored) [en]
257 (Available: $LANGUAGES all)
258 --enable-shared-pp install & use shared postprocessing lib
259 --install-path=PATH the path to a custom install program (useful if
260 your OS uses a GNU-incompatible install utility by
261 default and you want to point to the GNU version)
263 Advanced options:
264 --enable-mmx build with mmx support [autodetect]
265 --enable-mmx2 build with mmx2 support (PIII, Athlon) [autodetect]
266 --enable-3dnow build with 3dnow! support [autodetect]
267 --enable-3dnowex build with 3dnow-dsp! support (K7) [autodetect]
268 --enable-sse build with sse support [autodetect]
269 --enable-sse2 build with sse2 support [autodetect]
270 --disable-fastmemcpy disable 3dnow/sse/mmx optimized memcpy() [enable]
271 --disable-big-endian Force byte order to little endian [autodetect]
272 --enable-big-endian Force byte order to big endian [autodetect]
273 --enable-debug[=1-3] compile debugging information into mplayer [disable]
274 --enable-profile compile profiling information into mplayer [disable]
275 --disable-sighandler disable sighandler for crashes [enable]
276 --enable-i18n _experimental_ gnu gettext() support [autodetect]
277 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
279 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
280 --disable-gcc-checking disable gcc version checking [enable]
282 Use these options if autodetection fails:
283 --with-extraincdir=DIR extra headers (png, mad, sdl, css, ...) in DIR
284 --with-extralibdir=DIR extra library files (png, SDL, ...) in DIR
285 --with-x11incdir=DIR X headers in DIR
286 --with-x11libdir=DIR X library files in DIR
287 --with-dxr2incdir=DIR DXR2 headers in DIR
288 --with-dvbincdir=DIR DVB headers in DIR
289 --with-csslibdir=DIR libcss in DIR
290 --with-madlibdir=DIR libmad (libmad shared library) in DIR
291 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
292 --with-codecsdir=DIR Binary codec files in DIR
293 --with-win32libdir=DIR W*ndows DLL files in DIR
294 --with-xanimlibdir=DIR XAnim DLL files in DIR
295 --with-reallibdir=DIR RealPlayer DLL files in DIR
296 --with-xvmclib=PATH path to adapter specific XvMCxxxxx.so (e.g. NVIDIA)
297 --with-xvidcore=PATH path to XviD libxvidcore.a
298 (e.g. /opt/lib/libxvidcore.a)
299 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
300 --with-freetype-config=PATH path to freetype-config
301 (e.g. /opt/bin/freetype-config)
302 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
303 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
304 --with-livelibdir=DIR path to LIVE.COM Streaming Media libraries
305 --with-xmmsplugindir=DIR path to xmms plugins
306 --with-xmmslibdir=DIR path to libxmms.so.1
307 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR
308 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR
309 --with-fribidi-config=PATH path to fribidi-config
310 (e.g. /opt/bin/fribidi-config)
313 exit 0
315 done # for parm in ...
318 # 1st pass checking for vital options
319 _install=install
320 _ranlib=ranlib
321 _cc=gcc
322 test "$CC" && _cc="$CC"
323 _as=auto
324 _runtime_cpudetection=no
325 for ac_option do
326 case "$ac_option" in
327 --target=*)
328 _target=`echo $ac_option | cut -d '=' -f 2`
330 --cc=*)
331 _cc=`echo $ac_option | cut -d '=' -f 2`
333 --as=*)
334 _as=`echo $ac_option | cut -d '=' -f 2`
336 --enable-gcc-checking)
337 _skip_cc_check=no
339 --disable-gcc-checking)
340 _skip_cc_check=yes
342 --enable-static)
343 _ld_static='-static'
345 --disable-static)
346 _ld_static=''
348 --enable-static=*)
349 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
351 --with-extraincdir=*)
352 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
354 --with-extralibdir=*)
355 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
356 # _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'`
358 --enable-runtime-cpudetection)
359 _runtime_cpudetection=yes
361 --disable-runtime-cpudetection)
362 _runtime_cpudetection=no
364 --install-path=*)
365 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
367 esac
368 done
370 # Determine our OS name and CPU architecture
371 if test -z "$_target" ; then
372 # OS name
373 system_name=`( uname -s ) 2>&1`
374 case "$system_name" in
375 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
377 IRIX*)
378 system_name=IRIX
380 HP-UX*)
381 system_name=HP-UX
383 [cC][yY][gG][wW][iI][nN]*)
384 system_name=CYGWIN
386 MINGW32*)
387 system_name=MINGW32
389 MorphOS)
390 system_name=MorphOS
393 system_name="$system_name-UNKNOWN"
395 esac
398 # host's CPU/instruction set
399 host_arch=`( uname -p ) 2>&1`
400 case "$host_arch" in
401 i386|sparc|ppc|alpha|arm|mips)
403 powerpc) # Darwin returns 'powerpc'
404 host_arch=ppc
406 *) # uname -p on Linux returns 'unknown' for the processor type,
407 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
409 # Maybe uname -m (machine hardware name) returns something we
410 # recognize.
412 # x86/x86pc is used by QNX
413 case "`( uname -m ) 2>&1`" in
414 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 ;;
415 ia64) host_arch=ia64 ;;
416 x86_64) host_arch=x86_64 ;;
417 ppc) host_arch=ppc ;;
418 alpha) host_arch=alpha ;;
419 sparc*) host_arch=sparc ;;
420 9000*) host_arch=hppa ;;
421 arm*) host_arch=arm ;;
422 s390) host_arch=s390 ;;
423 s390x) host_arch=s390x ;;
424 mips) host_arch=mips ;;
425 *) host_arch=UNKNOWN ;;
426 esac
428 esac
429 else
430 system_name=`echo $_target | cut -d '-' -f 2`
431 case "`echo $system_name | tr A-Z a-z`" in
432 linux) system_name=Linux ;;
433 freebsd) system_name=FreeBSD ;;
434 netbsd) system_name=NetBSD ;;
435 bsd/os) system_name=BSD/OS ;;
436 openbsd) system_name=OpenBSD ;;
437 sunos) system_name=SunOS ;;
438 qnx) system_name=QNX ;;
439 morphos) system_name=MorphOS ;;
440 esac
441 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
442 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
445 echo "Detected operating system: $system_name"
446 echo "Detected host architecture: $host_arch"
448 # LGB: temporary files
449 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
450 test "$I" && break
451 done
453 TMPLOG="configure.log"
454 rm -f "$TMPLOG"
455 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
456 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
457 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
458 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
460 # config files
462 # FIXME: A lot of stuff is installed under /usr/local
463 # NK: But we should never use this stuff implicitly since we call compiler
464 # from /usr we should be sure that there no effects from other compilers
465 # (libraries) which might be installed into /usr/local. Let users use this
466 # stuff explicitly as command line argument. In other words: It would be
467 # resonable to have only /usr/include or only /usr/local/include.
469 if freebsd ; then
470 _ld_extra="$_ld_extra -L/usr/local/lib"
471 _inc_extra="$_inc_extra -I/usr/local/include"
474 _ldd=ldd
475 if darwin; then
476 _ldd="otool -L"
479 # Checking CC version...
480 if test "$_skip_cc_check" != yes ; then
481 for _cc in "$_cc" gcc-3.1 gcc3 gcc-3.0 cc ; do
482 echocheck "$_cc version"
483 cc_name=`( $_cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
484 cc_version=`( $_cc -dumpversion ) 2>&1`
485 if test "$?" -gt 0; then
486 cc_version="not found"
488 case $cc_version in
490 cc_version="v. ?.??, bad"
491 cc_verc_fail=yes
493 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
494 _cc_major=`echo $cc_version | cut -d '.' -f 1`
495 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
496 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
497 cc_version="$cc_version, ok"
498 cc_verc_fail=no
500 'not found')
501 cc_verc_fail=yes
504 cc_version="$cc_version, bad"
505 cc_verc_fail=yes
507 esac
508 echores "$cc_version"
509 (test "$cc_verc_fail" = "no") && break
510 done
511 if test "$cc_verc_fail" = yes ; then
512 cat <<EOF
514 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
516 You are not using a supported compiler. We do not have the time to make sure
517 everything works with compilers other than the ones we use. Use either the
518 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
519 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
521 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
522 mplayer and lame (which is used for mencoder). If you get compile errors,
523 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
524 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
525 bugs!
527 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
529 *** For details please read DOCS/en/users_against_developers.html ***
532 die "Bad gcc version"
534 else
535 cat <<EOF
537 ******************************************************************************
539 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
540 Ok. You know. Do it. Did you read DOCS/en/users_against_developers.html???
542 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
543 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
544 Lame which is used by mencoder produces weird errors, too.
546 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
547 If the problem _still_ exists, then read DOCS/en/bugreports.html !
549 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
551 ******************************************************************************
555 read _answer
558 # ---
560 # now that we know what compiler should be used for compilation, try to find
561 # out which assembler is used by the $_cc compiler
562 if test "$_as" = auto ; then
563 _as=`$_cc -print-prog-name=as`
564 test -z "$_as" && _as=as
567 # XXX: this should be ok..
568 _cpuinfo="echo"
569 if test -r /proc/cpuinfo ; then
570 # Linux with /proc mounted, extract CPU information from it
571 _cpuinfo="cat /proc/cpuinfo"
572 elif test -r /compat/linux/proc/cpuinfo ; then
573 # FreeBSD with Linux emulation /proc mounted,
574 # extract CPU information from it
575 _cpuinfo="cat /compat/linux/proc/cpuinfo"
576 elif x86; then
577 # all other OSes try to extract CPU information from a small helper
578 # program TOOLS/cpuinfo instead
579 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
580 _cpuinfo="TOOLS/cpuinfo"
583 case "$host_arch" in
584 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
585 _def_arch="#define ARCH_X86 1"
586 _target_arch="TARGET_ARCH_X86 = yes"
588 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
589 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
590 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
591 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
592 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
594 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | head -1`
595 if test -z "$pparam" ; then
596 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | head -1`
599 _mmx=no
600 _3dnow=no
601 _3dnowex=no
602 _mmx2=no
603 _sse=no
604 _sse2=no
605 _mtrr=no
607 for i in $pparam ; do
608 case "$i" in
609 3dnow) _3dnow=yes ;;
610 3dnowext) _3dnow=yes _3dnowex=yes ;;
611 mmx) _mmx=yes ;;
612 mmxext) _mmx2=yes ;;
613 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
614 xmm|sse|kni) _sse=yes _mmx2=yes ;;
615 sse2) _sse2=yes ;;
616 esac
617 done
619 echocheck "CPU vendor"
620 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
622 echocheck "CPU type"
623 echores "$pname"
625 case "$pvendor" in
626 AuthenticAMD)
627 case "$pfamily" in
628 3) proc=i386 iproc=386 ;;
629 4) proc=i486 iproc=486 ;;
630 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
631 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
632 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
633 proc=k6-3
634 elif test "$pmodel" -ge 8; then
635 proc=k6-2
636 elif test "$pmodel" -ge 6; then
637 proc=k6
638 else
639 proc=i586
640 iproc=586
643 6) iproc=686
644 if test "$pmodel" -ge 7; then
645 proc=athlon-4
646 elif test "$pmodel" -ge 6; then
647 # only Athlon XP supports ssem MP, Duron etc not
648 # but most of them are CPUID 666, so check if sse detected
649 # btw. there is also athlon-mp opt, but we need extended
650 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
651 if test "$_sse" = yes && test "$pstepping" -ge 2; then
652 proc=athlon-xp
653 else
654 proc=athlon-4
656 elif test "$pmodel" -ge 4; then
657 proc=athlon-tbird
658 else
659 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
663 *) proc=athlon-xp iproc=686 ;;
664 esac
666 GenuineIntel)
667 case "$pfamily" in
668 3) proc=i386 iproc=386 ;;
669 4) proc=i486 iproc=486 ;;
670 5) iproc=586
671 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
672 proc=pentium-mmx # 4 is desktop, 8 is mobile
673 else
674 proc=i586
677 6) iproc=686
678 if test "$pmodel" -ge 7; then
679 proc=pentium3
680 elif test "$pmodel" -ge 3; then
681 proc=pentium2
682 else
683 proc=i686
686 15) proc=pentium4 iproc=686 ;;
687 *) proc=pentium4 iproc=686 ;;
688 esac
690 unknown)
691 case "$pfamily" in
692 3) proc=i386 iproc=386 ;;
693 4) proc=i486 iproc=486 ;;
694 *) proc=i586 iproc=586 ;;
695 esac
698 proc=i586 iproc=586 ;;
699 esac
701 # check that gcc supports our CPU, if not, fall back to earlier ones
702 # LGB: check -mcpu and -march swithing step by step with enabling
703 # to fall back till 386.
705 echocheck "GCC & CPU optimization abilities"
706 cat > $TMPC << EOF
707 int main(void) { return 0; }
709 if test "$_runtime_cpudetection" = no ; then
710 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
711 cc_check -march=$proc -mcpu=$proc || proc=athlon
713 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
714 cc_check -march=$proc -mcpu=$proc || proc=k6
716 if test "$proc" = "k6"; then
717 if not cc_check -march=$proc -mcpu=$proc; then
718 if cc_check -march=i586 -mcpu=i686; then
719 proc=i586-i686
720 else
721 proc=i586
725 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
726 cc_check -march=$proc -mcpu=$proc || proc=i686
728 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
729 cc_check -march=$proc -mcpu=$proc || proc=i586
731 if test "$proc" = "i586" ; then
732 cc_check -march=$proc -mcpu=$proc || proc=i486
734 if test "$proc" = "i486" ; then
735 cc_check -march=$proc -mcpu=$proc || proc=i386
737 if test "$proc" = "i386" ; then
738 cc_check -march=$proc -mcpu=$proc || proc=error
740 if test "$proc" = "error" ; then
741 echores "Your $_cc does not even support \"i386\" for '-march' and '-mcpu'."
742 _mcpu=""
743 _march=""
744 _optimizing=""
745 elif test "$proc" = "i586-i686"; then
746 _march="-march=i586"
747 _mcpu="-mcpu=i686"
748 _optimizing="$proc"
749 else
750 _march="-march=$proc"
751 _mcpu="-mcpu=$proc"
752 _optimizing="$proc"
754 else
755 # i686 is probably the most common CPU - optimize for it
756 _mcpu="-mcpu=i686"
757 # at least i486 required, for bswap instruction
758 _march="-march=i486"
759 cc_check $_mcpu || _mcpu=""
760 cc_check $_march $_mcpu || _march=""
763 ## Gabucino : --target takes effect here (hopefully...) by overwriting
764 ## autodetected mcpu/march parameters
765 if test "$_target" ; then
766 # TODO: it may be a good idea to check GCC and fall back in all cases
767 if test "$host_arch" = "i586-i686"; then
768 _march="-march=i586"
769 _mcpu="-mcpu=i686"
770 else
771 _march="-march=$host_arch"
772 _mcpu="-mcpu=$host_arch"
775 proc="$host_arch"
777 case "$proc" in
778 i386) iproc=386 ;;
779 i486) iproc=486 ;;
780 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
781 i686|athlon*|pentium*) iproc=686 ;;
782 *) iproc=586 ;;
783 esac
786 echores "$proc"
789 ia64)
790 _def_arch='#define ARCH_IA64 1'
791 _target_arch='TARGET_ARCH_IA64 = yes'
792 iproc='ia64'
793 proc=''
794 _march=''
795 _mcpu=''
796 _optimizing=''
799 x86_64)
800 _def_arch='#define ARCH_X86_64 1'
801 _target_arch='TARGET_ARCH_X86_64 = yes'
802 iproc='x86_64'
803 proc=''
804 _march=''
805 _mcpu=''
806 _optimizing=''
809 sparc)
810 _def_arch='#define ARCH_SPARC 1'
811 _target_arch='TARGET_ARCH_SPARC = yes'
812 iproc='sparc'
813 proc='v8'
814 _march=''
815 _mcpu="-mcpu=$proc"
816 _optimizing="$proc"
819 arm|armv4l|armv5tel)
820 _def_arch='#define ARCH_ARMV4L 1'
821 _target_arch='TARGET_ARCH_ARMV4L = yes'
822 iproc='arm'
823 proc=''
824 _march=''
825 _mcpu=''
826 _optimizing=''
829 ppc)
830 _def_arch='#define ARCH_POWERPC 1'
831 _target_arch='TARGET_ARCH_POWERPC = yes'
832 iproc='ppc'
833 proc=''
834 _march=''
835 _mcpu=''
836 _optimizing=''
837 _altivec=no
839 echocheck "CPU type"
840 if linux && test -n "$_cpuinfo"; then
841 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -1`
842 if test -n "`$_cpuinfo | grep altivec`"; then
843 _altivec=yes
846 if darwin ; then
847 if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
848 _altivec=yes
851 if test "$_altivec" = yes; then
852 echores "$proc altivec"
853 else
854 echores "$proc"
857 echocheck "GCC & CPU optimization abilities"
859 if test -n "$proc"; then
860 case "$proc" in
861 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
862 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
863 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
864 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
865 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
866 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
867 *) ;;
868 esac
869 # gcc 3.1(.1) and up supports 7400 and 7450
870 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1"; then
871 case "$proc" in
872 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
873 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
874 *) ;;
875 esac
879 if test -n "$_mcpu"; then
880 _optimizing=`echo $_mcpu | cut -c 8-`
881 echores "$_optimizing"
882 else
883 echores "none"
888 alpha)
889 _def_arch='#define ARCH_ALPHA 1'
890 _target_arch='TARGET_ARCH_ALPHA = yes'
891 iproc='alpha'
892 _march=''
894 echocheck "CPU type"
895 cat > $TMPC << EOF
896 int main() {
897 unsigned long ver, mask;
898 asm ("implver %0" : "=r" (ver));
899 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
900 printf("%ld-%x\n", ver, ~mask);
901 return 0;
904 $_cc -o "$TMPO" "$TMPC"
905 case `"$TMPO"` in
907 0-0) proc="ev4"; cpu_understands_mvi="0";;
908 1-0) proc="ev5"; cpu_understands_mvi="0";;
909 1-1) proc="ev56"; cpu_understands_mvi="0";;
910 1-101) proc="pca56"; cpu_understands_mvi="1";;
911 2-303) proc="ev6"; cpu_understands_mvi="1";;
912 2-307) proc="ev67"; cpu_understands_mvi="1";;
913 2-1307) proc="ev68"; cpu_understands_mvi="1";;
914 esac
915 echores "$proc"
917 echocheck "GCC & CPU optimization abilities"
918 if test "$proc" = "ev68" ; then
919 cc_check -mcpu=$proc || proc=ev67
921 if test "$proc" = "ev67" ; then
922 cc_check -mcpu=$proc || proc=ev6
924 _mcpu="-mcpu=$proc"
925 echores "$proc"
927 _optimizing="$proc"
929 echocheck "MVI instruction support in GCC"
930 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
931 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
932 echores "yes"
933 else
934 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
935 echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
939 mips)
940 _def_arch='#define ARCH_SGI_MIPS 1'
941 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
942 iproc='sgi-mips'
943 proc=''
944 _march=''
945 _mcpu=''
946 _optimizing=''
949 hppa)
950 _def_arch='#define ARCH_PA_RISC 1'
951 _target_arch='TARGET_ARCH_PA_RISC = yes'
952 iproc='PA-RISC'
953 proc=''
954 _march=''
955 _mcpu=''
956 _optimizing=''
959 s390)
960 _def_arch='#define ARCH_S390 1'
961 _target_arch='TARGET_ARCH_S390 = yes'
962 iproc='390'
963 proc=''
964 _march=''
965 _mcpu=''
966 _optimizing=''
969 s390x)
970 _def_arch='#define ARCH_S390X 1'
971 _target_arch='TARGET_ARCH_S390X = yes'
972 iproc='390x'
973 proc=''
974 _march=''
975 _mcpu=''
976 _optimizing=''
980 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
981 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
982 die "unsupported architecture $host_arch"
984 esac
986 if test "$_runtime_cpudetection" = yes ; then
987 if x86; then
988 _mmx=yes
989 _3dnow=yes
990 _3dnowex=yes
991 _mmx2=yes
992 _sse=yes
993 _sse2=yes
994 _mtrr=yes
996 if ppc; then
997 _altivec=yes
1001 if x86 && test "$_runtime_cpudetection" = no ; then
1002 extcheck() {
1003 if test "$1" = yes ; then
1004 echocheck "kernel support of $2"
1005 cat > $TMPC <<EOF
1006 #include <signal.h>
1007 void catch() { exit(1); }
1008 int main(void){
1009 signal(SIGILL, catch);
1010 __asm__ __volatile__ ("$3":::"memory");return(0);
1014 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1015 echores "yes"
1016 _optimizing="$_optimizing $2"
1017 return 0
1018 else
1019 echores "failed"
1020 echo "It seems that your kernel does not correctly support $2."
1021 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1022 return 1
1025 return 0
1028 extcheck $_mmx "mmx" "emms" || _mmx=no
1029 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1030 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1031 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1032 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1033 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1034 echocheck "mtrr support"
1035 echores "$_mtrr"
1037 if test "$_mtrr" = yes ; then
1038 _optimizing="$_optimizing mtrr"
1041 if test "$_gcc3_ext" != ""; then
1042 # if we had to disable sse/sse2 because the active kernel does not
1043 # support this instruction set extension, we also have to tell
1044 # gcc3 to not generate sse/sse2 instructions for normal C code
1045 cat > $TMPC << EOF
1046 int main(void) { return 0; }
1048 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1054 _prefix="/usr/local"
1055 _xvmclib="XvMCNVIDIA"
1057 # GOTCHA: the variables below defines the default behavior for autodetection
1058 # and have - unless stated otherwise - at least 2 states : yes no
1059 # If autodetection is available then the third state is: auto
1060 _libavcodec=auto
1061 _libavcodecso=auto
1062 _fame=auto
1063 _mp1e=no
1064 _mencoder=yes
1065 _x11=auto
1066 _dga=auto # 1 2 no auto
1067 _xv=auto
1068 _xvmc=no #auto when complete
1069 _sdl=auto
1070 _directx=auto
1071 _win32waveout=auto
1072 _nas=auto
1073 _png=auto
1074 _jpg=auto
1075 _gif=auto
1076 _gl=auto
1077 _ggi=auto
1078 _aa=auto
1079 _svga=auto
1080 _vesa=auto
1081 _fbdev=auto
1082 _dvb=auto
1083 _dvbhead=auto
1084 _dxr2=auto
1085 _dxr3=auto
1086 _iconv=auto
1087 _rtc=auto
1088 _ossaudio=auto
1089 _arts=auto
1090 _esd=auto
1091 _liblzo=auto
1092 _mad=auto
1093 _vorbis=auto
1094 _theora=auto
1095 _matroska=auto
1096 _tremor=no
1097 _faad=auto
1098 _faad_local=yes
1099 _xmms=no
1100 _flac=auto
1101 _external_flac=auto
1102 _css=auto
1103 # dvdnav disabled, it does not work
1104 #_dvdnav=no
1105 _dvdread=auto
1106 _dvdkit=auto
1107 _xanim=auto
1108 _real=auto
1109 _live=no
1110 _xinerama=auto
1111 _mga=auto
1112 _xmga=auto
1113 _vm=auto
1114 _mlib=auto
1115 _sgiaudio=auto
1116 _sunaudio=auto
1117 _alsa=auto
1118 _fastmemcpy=yes
1119 _unrarlib=yes
1120 _win32=auto
1121 _dshow=yes
1122 _select=yes
1123 _tv=yes
1124 _tv_v4l=auto
1125 _tv_v4l2=auto
1126 _tv_bsdbt848=auto
1127 _edl=yes
1128 _network=yes
1129 _winsock2=auto
1130 _smbsupport=auto
1131 _vidix=auto
1132 _joystick=no
1133 _xvid=auto
1134 _divx4linux=auto
1135 _opendivx=no
1136 _lirc=auto
1137 _lircc=auto
1138 _gui=no
1139 _termcap=auto
1140 _termios=auto
1141 _3dfx=no
1142 _tdfxfb=no
1143 _tdfxvid=no
1144 _tga=yes
1145 _directfb=auto
1146 _zr=auto
1147 _bl=no
1148 _largefiles=no
1149 #_language=en
1150 _shm=auto
1151 _linux_devfs=no
1152 _i18n=auto
1153 _dynamic_plugins=no
1154 _setlocale=auto
1155 _sighandler=yes
1156 _libdv=auto
1157 _cdparanoia=auto
1158 _big_endian=auto
1159 _freetype=auto
1160 _shared_pp=no
1161 _menu=no
1162 _qtx=auto
1163 _macosx=auto
1164 _sortsub=yes
1165 _freetypeconfig='freetype-config'
1166 _fribidi=no
1167 _fribidiconfig='fribidi-config'
1168 _inet6=auto
1169 _gethostbyname2=auto
1170 _ftp=yes
1171 for ac_option do
1172 case "$ac_option" in
1173 # Skip 1st pass
1174 --target=*) ;;
1175 --cc=*) ;;
1176 --as=*) ;;
1177 --enable-gcc-checking) ;;
1178 --disable-gcc-checking) ;;
1179 --enable-static*) ;;
1180 --disable-static*) ;;
1181 --with-extraincdir=*) ;;
1182 --with-extralibdir=*) ;;
1183 --enable-runtime-cpudetection) ;;
1184 --disable-runtime-cpudetection) ;;
1185 --install-path=*) ;;
1187 # Real 2nd pass
1188 --enable-mencoder) _mencoder=yes ;;
1189 --disable-mencoder) _mencoder=no ;;
1190 --enable-i18n) _i18n=yes ;;
1191 --disable-i18n) _i18n=no ;;
1192 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1193 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1194 --enable-setlocale) _setlocale=yes ;;
1195 --disable-setlocale) _setlocale=no ;;
1196 --enable-x11) _x11=yes ;;
1197 --disable-x11) _x11=no ;;
1198 --enable-xv) _xv=yes ;;
1199 --disable-xv) _xv=no ;;
1200 --enable-xvmc) _xvmc=yes ;;
1201 --disable-xvmc) _xvmc=no ;;
1202 --enable-sdl) _sdl=yes ;;
1203 --disable-sdl) _sdl=no ;;
1204 --enable-directx) _directx=yes ;;
1205 --disable-directx) _directx=no ;;
1206 --enable-win32waveout) _win32waveout=yes ;;
1207 --disable-win32waveout) _win32waveout=no ;;
1208 --enable-nas) _nas=yes ;;
1209 --disable-nas) _nas=no ;;
1210 --enable-png) _png=yes ;;
1211 --disable-png) _png=no ;;
1212 --enable-jpeg) _jpg=yes ;;
1213 --disable-jpeg) _jpg=no ;;
1214 --enable-gif) _gif=yes ;;
1215 --disable-gif) _gif=no ;;
1216 --enable-gl) _gl=yes ;;
1217 --disable-gl) _gl=no ;;
1218 --enable-ggi) _ggi=yes ;;
1219 --disable-ggi) _ggi=no ;;
1220 --enable-aa) _aa=yes ;;
1221 --disable-aa) _aa=no ;;
1222 --enable-svga) _svga=yes ;;
1223 --disable-svga) _svga=no ;;
1224 --enable-vesa) _vesa=yes ;;
1225 --disable-vesa) _vesa=no ;;
1226 --enable-fbdev) _fbdev=yes ;;
1227 --disable-fbdev) _fbdev=no ;;
1228 --enable-dvb) _dvb=yes ;;
1229 --disable-dvb) _dvb=no ;;
1230 --enable-dvbhead) _dvbhead=yes ;;
1231 --disable-dvbhead) _dvbhead=no ;;
1232 --enable-dxr2) _dxr2=yes ;;
1233 --disable-dxr2) _dxr2=no ;;
1234 --enable-dxr3) _dxr3=yes ;;
1235 --disable-dxr3) _dxr3=no ;;
1236 --enable-iconv) _iconv=yes ;;
1237 --disable-iconv) _iconv=no ;;
1238 --enable-rtc) _rtc=yes ;;
1239 --disable-rtc) _rtc=no ;;
1240 --enable-mp1e) _mp1e=yes ;;
1241 --disable-mp1e) _mp1e=no ;;
1242 --enable-libdv) _libdv=yes ;;
1243 --disable-libdv) _libdv=no ;;
1244 --enable-ossaudio) _ossaudio=yes ;;
1245 --disable-ossaudio) _ossaudio=no ;;
1246 --enable-arts) _arts=yes ;;
1247 --disable-arts) _arts=no ;;
1248 --enable-esd) _esd=yes ;;
1249 --disable-esd) _esd=no ;;
1250 --enable-mad) _mad=yes ;;
1251 --disable-mad) _mad=no ;;
1252 --enable-liblzo) _liblzo=yes ;;
1253 --disable-liblzo) _liblzo=no ;;
1254 --enable-vorbis) _vorbis=yes ;;
1255 --disable-vorbis) _vorbis=no ;;
1256 --enable-tremor) _tremor=yes ;;
1257 --disable-tremor) _tremor=no ;;
1258 --enable-theora) _theora=yes ;;
1259 --disable-theora) _theora=no ;;
1260 --enable-matroska) _matroska=yes ;;
1261 --disable-matroska) _matroska=no ;;
1262 --enable-faad) _faad=yes ;;
1263 --disable-faad) _faad=no ;;
1264 --enable-externalfaad) _faad_local=no ;;
1265 --disable-externalfaad) _faad_local=yes ;;
1266 --enable-xmms) _xmms=yes ;;
1267 --enable-flac) _flac=yes ;;
1268 --disable-flac) _flac=no ;;
1269 --enable-external-flac) _external_flac=yes ;;
1270 --disable-external-flac) _external_flac=no ;;
1271 --enable-css) _css=yes ;;
1272 --disable-css) _css=no ;;
1273 --enable-dvdread) _dvdread=yes ;;
1274 --disable-dvdread) _dvdread=no ;;
1275 --enable-mpdvdkit) _dvdkit=yes ;;
1276 --disable-mpdvdkit) _dvdkit=no ;;
1277 # dvdnav disabled, it does not work
1278 # --enable-dvdnav) _dvdnav=yes ;;
1279 # --disable-dvdnav) _dvdnav=no ;;
1280 --enable-xanim) _xanim=yes ;;
1281 --disable-xanim) _xanim=no ;;
1282 --enable-real) _real=yes ;;
1283 --disable-real) _real=no ;;
1284 --enable-live) _live=yes ;;
1285 --disable-live) _live=no ;;
1286 --enable-xinerama) _xinerama=yes ;;
1287 --disable-xinerama) _xinerama=no ;;
1288 --enable-mga) _mga=yes ;;
1289 --disable-mga) _mga=no ;;
1290 --enable-xmga) _xmga=yes ;;
1291 --disable-xmga) _xmga=no ;;
1292 --enable-vm) _vm=yes ;;
1293 --disable-vm) _vm=no ;;
1294 --enable-mlib) _mlib=yes ;;
1295 --disable-mlib) _mlib=no ;;
1296 --enable-sunaudio) _sunaudio=yes ;;
1297 --disable-sunaudio) _sunaudio=no ;;
1298 --enable-sgiaudio) _sgiaudio=yes ;;
1299 --disable-sgiaudio) _sgiaudio=no ;;
1300 --enable-alsa) _alsa=yes ;;
1301 --disable-alsa) _alsa=no ;;
1302 --enable-tv) _tv=yes ;;
1303 --disable-tv) _tv=no ;;
1304 --enable-edl) _edl=yes ;;
1305 --disable-edl) _edl=no ;;
1306 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1307 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1308 --enable-tv-v4l) _tv_v4l=yes ;;
1309 --disable-tv-v4l) _tv_v4l=no ;;
1310 --enable-tv-v4l2) _tv_v4l2=yes ;;
1311 --disable-tv-v4l2) _tv_v4l2=no ;;
1312 --enable-fastmemcpy) _fastmemcpy=yes ;;
1313 --disable-fastmemcpy) _fastmemcpy=no ;;
1314 --enable-network) _network=yes ;;
1315 --disable-network) _network=no ;;
1316 --enable-winsock2) _winsock2=yes ;;
1317 --disable-winsock2) _winsock2=no ;;
1318 --enable-smb) _smbsupport=yes ;;
1319 --disable-smb) _smbsupport=no ;;
1320 --enable-vidix) _vidix=yes ;;
1321 --disable-vidix) _vidix=no ;;
1322 --enable-joystick) _joystick=yes ;;
1323 --disable-joystick) _joystick=no ;;
1324 --enable-xvid) _xvid=yes ;;
1325 --disable-xvid) _xvid=no ;;
1326 --enable-divx4linux) _divx4linux=yes ;;
1327 --disable-divx4linux) _divx4linux=no ;;
1328 --enable-opendivx) _opendivx=yes ;;
1329 --disable-opendivx) _opendivx=no ;;
1330 --enable-libavcodec) _libavcodec=yes ;;
1331 --disable-libavcodec) _libavcodec=no ;;
1332 --enable-libfame) _fame=yes ;;
1333 --disable-libfame) _fame=no ;;
1334 --enable-lirc) _lirc=yes ;;
1335 --disable-lirc) _lirc=no ;;
1336 --enable-lircc) _lircc=yes ;;
1337 --disable-lircc) _lircc=no ;;
1338 --enable-gui) _gui=yes ;;
1339 --disable-gui) _gui=no ;;
1340 --enable-termcap) _termcap=yes ;;
1341 --disable-termcap) _termcap=no ;;
1342 --enable-termios) _termios=yes ;;
1343 --disable-termios) _termios=no ;;
1344 --enable-3dfx) _3dfx=yes ;;
1345 --disable-3dfx) _3dfx=no ;;
1346 --enable-tdfxfb) _tdfxfb=yes ;;
1347 --disable-tdfxvid) _tdfxvid=no ;;
1348 --enable-tdfxvid) _tdfxvid=yes ;;
1349 --disable-tga) _tga=no ;;
1350 --enable-tga) _tga=yes ;;
1351 --disable-tdfxfb) _tdfxfb=no ;;
1352 --enable-directfb) _directfb=yes ;;
1353 --disable-directfb) _directfb=no ;;
1354 --enable-zr) _zr=yes ;;
1355 --disable-zr) _zr=no ;;
1356 --enable-bl) _bl=yes ;;
1357 --disable-bl) _bl=no ;;
1358 --enable-mtrr) _mtrr=yes ;;
1359 --disable-mtrr) _mtrr=no ;;
1360 --enable-largefiles) _largefiles=yes ;;
1361 --disable-largefiles) _largefiles=no ;;
1362 --enable-shm) _shm=yes ;;
1363 --disable-shm) _shm=no ;;
1364 --enable-select) _select=yes ;;
1365 --disable-select) _select=no ;;
1366 --enable-linux-devfs) _linux_devfs=yes ;;
1367 --disable-linux-devfs) _linux_devfs=no ;;
1368 --enable-cdparanoia) _cdparanoia=yes ;;
1369 --disable-cdparanoia) _cdparanoia=no ;;
1370 --enable-big-endian) _big_endian=yes ;;
1371 --disable-big-endian) _big_endian=no ;;
1372 --enable-freetype) _freetype=yes ;;
1373 --disable-freetype) _freetype=no ;;
1374 --enable-unrarlib) _unrarlib=yes ;;
1375 --disable-unrarlib) _unrarlib=no ;;
1376 --enable-ftp) _ftp=yes ;;
1377 --disable-ftp) _ftp=no ;;
1379 --enable-fribidi) _fribidi=yes ;;
1380 --disable-fribidi) _fribidi=no ;;
1382 --enable-inet6) _inet6=yes ;;
1383 --disable-inet6) _inet6=no ;;
1385 --enable-gethostbyname2) _gethostbyname2=yes ;;
1386 --disable-gethostbyname2) _gethostbyname2=no ;;
1388 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1389 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1390 --disable-dga) _dga=no ;;
1392 --enable-shared-pp) _shared_pp=yes ;;
1393 --disable-shared-pp) _shared_pp=no ;;
1395 --enable-menu) _menu=yes ;;
1396 --disable-menu) _menu=no ;;
1398 --enable-qtx) _qtx=yes ;;
1399 --disable-qtx) _qtx=no ;;
1401 --enable-macosx) _macosx=yes ;;
1402 --disable-macosx) _macosx=no ;;
1404 --enable-sortsub) _sortsub=yes ;;
1405 --disable-sortsub) _sortsub=no ;;
1407 --language=*)
1408 _language=`echo $ac_option | cut -d '=' -f 2`
1410 # dvdnav disabled, it does not work
1411 # --with-libdvdnav=*)
1412 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1413 # _dvdnav=yes
1414 # ;;
1416 --with-codecsdir=*)
1417 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1418 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1419 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1421 --with-win32libdir=*)
1422 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1423 _win32=yes
1425 --with-xanimlibdir=*)
1426 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1427 _xanim=yes
1429 --with-reallibdir=*)
1430 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1431 _real=yes
1433 --with-livelibdir=*)
1434 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1435 _live=yes
1437 --with-csslibdir=*)
1438 _csslibdir=`echo $ac_option | cut -d '=' -f 2`
1439 _css=yes
1441 --with-mlibdir=*)
1442 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1443 _mlib=yes
1446 --with-xmmslibdir=*)
1447 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1450 --with-xmmsplugindir=*)
1451 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1454 --disable-profile)
1455 _profile=
1457 --enable-profile)
1458 _profile='-p'
1460 --enable-debug)
1461 _debug='-g'
1463 --enable-debug=*)
1464 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1466 --disable-sighandler)
1467 _sighandler=no
1470 --enable-sse) _sse=yes ;;
1471 --disable-sse) _sse=no ;;
1472 --enable-sse2) _sse2=yes ;;
1473 --disable-sse2) _sse2=no ;;
1474 --enable-mmx2) _mmx2=yes ;;
1475 --disable-mmx2) _mmx2=no ;;
1476 --enable-3dnow) _3dnow=yes ;;
1477 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1478 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1479 --disable-3dnowex) _3dnowex=no ;;
1480 --enable-altivec) _altivec=yes ;;
1481 --disable-altivec) _altivec=no ;;
1482 --enable-mmx) _mmx=yes ;;
1483 --disable-mmx) # 3Dnow! and MMX2 require MMX
1484 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1486 --enable-win32) _win32=yes ;;
1487 --disable-win32) _win32=no _dshow=no ;;
1488 --enable-dshow) _win32=yes _dshow=yes ;;
1489 --disable-dshow) _dshow=no ;;
1491 --with-x11incdir=*)
1492 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1494 --with-x11libdir=*)
1495 _ld_x11=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1497 --with-dxr2incdir=*)
1498 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1500 --with-xvmclib=*)
1501 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1503 --with-dvbincdir=*)
1504 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1506 --with-xvidcore=*)
1507 _xvidcore=`echo $ac_option | cut -d '=' -f 2`
1509 --with-sdl-config=*)
1510 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1512 --with-freetype-config=*)
1513 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1515 --with-fribidi-config=*)
1516 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1518 --with-gtk-config=*)
1519 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1521 --with-glib-config=*)
1522 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1524 # dvdnav disabled, it does not work
1525 # --with-dvdnav-config=*)
1526 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1527 # ;;
1528 --with-madlibdir=*)
1529 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1531 --with-cdparanoiaincdir=*)
1532 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1534 --with-cdparanoialibdir=*)
1535 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1538 --prefix=*)
1539 _prefix=`echo $ac_option | cut -d '=' -f 2`
1541 --bindir=*)
1542 _bindir=`echo $ac_option | cut -d '=' -f 2`
1544 --datadir=*)
1545 _datadir=`echo $ac_option | cut -d '=' -f 2`
1547 --mandir=*)
1548 _mandir=`echo $ac_option | cut -d '=' -f 2`
1550 --confdir=*)
1551 _confdir=`echo $ac_option | cut -d '=' -f 2`
1553 --libdir=*)
1554 _libdir=`echo $ac_option | cut -d '=' -f 2`
1558 echo "Unknown parameter: $ac_option"
1559 exit 1
1562 esac
1563 done
1565 # Atmos: moved this here, to be correct, if --prefix is specified
1566 test -z "$_bindir" && _bindir="$_prefix/bin"
1567 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1568 test -z "$_mandir" && _mandir="$_prefix/man"
1569 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1570 test -z "$_libdir" && _libdir="$_prefix/lib"
1571 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1573 if x86 ; then
1574 # Checking assembler (_as) compatibility...
1575 # Added workaround for older as that reads from stdin by default - atmos
1576 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1577 echocheck "assembler ($_as $as_version)"
1579 _pref_as_version='2.9.1'
1580 echo 'nop' > $TMPS
1581 if test "$_mmx" = yes ; then
1582 echo 'emms' >> $TMPS
1584 if test "$_3dnow" = yes ; then
1585 _pref_as_version='2.10.1'
1586 echo 'femms' >> $TMPS
1588 if test "$_3dnowex" = yes ; then
1589 _pref_as_version='2.10.1'
1590 echo 'pswapd %mm0, %mm0' >> $TMPS
1592 if test "$_mmx2" = yes ; then
1593 _pref_as_version='2.10.1'
1594 echo 'movntq %mm0, (%eax)' >> $TMPS
1596 if test "$_sse" = yes ; then
1597 _pref_as_version='2.10.1'
1598 echo 'xorps %xmm0, %xmm0' >> $TMPS
1600 #if test "$_sse2" = yes ; then
1601 # _pref_as_version='2.11'
1602 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1604 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
1606 if test "$as_verc_fail" != yes ; then
1607 echores "ok"
1608 else
1609 echores "failed"
1610 echo "Upgrade binutils to ${_pref_as_version} ..."
1611 die "obsolete binutils version"
1615 if ppc ; then
1617 # check if altivec is supported by the compiler, and how to enable it
1619 _altivec_gcc_flags=''
1621 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
1622 echocheck "GCC altivec support"
1624 p=''
1625 cat > $TMPC << EOF
1626 int main() {
1627 return 0;
1630 FSF_flags='-maltivec -mabi=altivec'
1631 Darwin_flags='-faltivec'
1633 if test -z "$p"; then
1634 cc_check $FSF_flags && p='FSF'
1636 if test -z "$p"; then
1637 cc_check $Darwin_flags && p='Darwin'
1640 case $p in
1641 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
1642 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
1643 *) _altivec=no ;;
1644 esac
1646 if test -z "$p"; then
1647 p=none
1648 else
1649 p="$p-style ($_altivec_gcc_flags)"
1652 echores "$p"
1655 # check if <altivec.h> should be included
1657 _def_altivec_h='#undef HAVE_ALTIVEC_H'
1658 _def_altivec='#undef HAVE_ALTIVEC'
1660 if test "$_altivec" = yes ; then
1661 echocheck "altivec.h"
1662 cat > $TMPC << EOF
1663 #include <altivec.h>
1664 int main(void) { return 0; }
1666 _have_altivec_h=no
1667 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
1668 if test "$_have_altivec_h" = yes ; then
1669 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
1670 _def_altivec='#define HAVE_ALTIVEC 1'
1672 echores "$_have_altivec_h"
1675 # disable runtime cpudetection if
1676 # - we cannot generate altivec code
1677 # - altivec is disabled by the user
1679 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
1680 _runtime_cpudetection=no
1683 # show that we are optimizing for altivec (if enabled and supported)
1685 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
1686 _optimizing="$_optimizing altivec"
1689 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
1691 if test "$_altivec" = yes ; then
1692 _mcpu="$_mcpu $_altivec_gcc_flags"
1696 _def_mmx='#undef HAVE_MMX'
1697 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
1698 _def_mmx2='#undef HAVE_MMX2'
1699 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
1700 _def_3dnow='#undef HAVE_3DNOW'
1701 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
1702 _def_3dnowex='#undef HAVE_3DNOWEX'
1703 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
1704 _def_sse='#undef HAVE_SSE'
1705 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
1706 _def_sse2='#undef HAVE_SSE2'
1707 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
1709 # Checking kernel version...
1710 if x86 && linux ; then
1711 _k_verc_problem=no
1712 kernel_version=`uname -r 2>&1`
1713 echocheck "$system_name kernel version"
1714 case "$kernel_version" in
1715 '') kernel_version="?.??"; _k_verc_fail=yes;;
1716 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
1717 _k_verc_problem=yes;;
1718 esac
1719 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
1720 _k_verc_fail=yes
1722 if test "$_k_verc_fail" ; then
1723 echores "$kernel_version, fail"
1724 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
1725 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
1726 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
1727 echo "supports SSE, but you have been warned! If you are using a kernel older than"
1728 echo "2.2.x you must upgrade it to get SSE support!"
1729 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
1730 else
1731 echores "$kernel_version, ok"
1735 if test "$_vidix" = auto ; then
1736 _vidix=no
1737 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
1738 x86 && _vidix=yes
1739 ppc && linux && _vidix=yes
1740 cygwin && _vidix=no
1741 mingw32 && _vidix=no
1742 qnx && _vidix=no
1743 sunos && _vidix=no
1746 # On QNX we must link to libph - Gabucino
1747 if qnx ; then
1748 _ld_arch="$_ld_arch -lph"
1751 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
1752 _awk=
1753 if test "$_vidix" = yes ; then
1754 _awk_verc_fail=yes
1755 echocheck "awk"
1756 for _awk in mawk gawk nawk awk; do
1757 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
1758 _awk_verc_fail=no
1759 break
1761 done
1762 test "$_awk_verc_fail" = yes && _awk=no
1763 echores "$_awk"
1764 if test "$_awk_verc_fail" = yes; then
1765 echo "VIDIX needs awk, but no working implementation was found!"
1766 echo "Try the GNU version, which can be downloaded from:"
1767 echo "ftp://ftp.gnu.org/gnu/gawk/"
1768 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
1769 die "no awk"
1773 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
1774 if irix ; then
1775 _ranlib='ar -r'
1778 ######################
1779 # MAIN TESTS GO HERE #
1780 ######################
1783 echocheck "extra headers"
1784 if test "$_inc_extra" ; then
1785 echores "$_inc_extra"
1786 else
1787 echores "none"
1791 echocheck "extra libs"
1792 if test "$_ld_extra" ; then
1793 echores "$_ld_extra"
1794 else
1795 echores "none"
1799 # Checking for localization ...
1800 # CSAK EGY MARADHAT - A HEGYLAKO
1801 echocheck "i18n"
1802 if test "$_i18n" != no ; then
1803 cat > $TMPC <<EOF
1804 #include <libintl.h>
1805 int main(void) { gettext("test"); return 0; }
1807 _i18n=no
1808 _i18n_libs=""
1809 if test "$_i18n" = auto ; then
1810 cc_check && _i18n=yes
1811 else
1812 for i18n_lib in "" "-lintl"; do
1813 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
1814 done
1817 if test "$_i18n" = yes ; then
1818 _def_i18n='#define USE_I18N 1'
1819 else
1820 _def_i18n='#undef USE_I18N'
1822 if test -z "$_i18n_libs" ; then
1823 echores "$_i18n"
1824 else
1825 echores "$_i18n (using $_i18n_libs)"
1829 # Checking for setlocale() ...
1830 # CSAK EGY MARADHAT - A HEGYLAKO
1831 # Nemnem. a TV Maci !
1832 echocheck "setlocale()"
1833 if test "$_setlocale" = auto ; then
1834 cat > $TMPC <<EOF
1835 #include <locale.h>
1836 int main(void) { setlocale( LC_ALL,"" ); return 0; }
1838 _setlocale=no
1839 cc_check && _setlocale=yes
1841 if test "$_setlocale" = yes ; then
1842 _def_setlocale='#define USE_SETLOCALE 1'
1843 else
1844 _def_setlocale='#undef USE_SETLOCALE'
1846 echores "$_setlocale"
1849 echocheck "language"
1850 test -z "$_language" && _language=$LINGUAS
1851 _language=`echo $_language | sed 's/,/ /g'`
1852 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
1853 for i in $_language ; do
1854 test "$i" = all && i=en
1855 if test -f "help/help_mp-${i}.h" ; then
1856 _language=$i
1857 break
1858 else
1859 echo -n "$i not found, "
1860 _language=`echo $_language | sed "s/$i *//g"`
1862 done
1863 test -z "$_language" && _language=en
1864 for i in $LANGUAGES ; do
1865 if test -f "DOCS/$i/mplayer.1" ; then
1866 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//2" | sed 's/ *$//'`
1867 else
1868 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//g" | sed 's/ *$//'`
1870 done
1871 echores "using $_language (man pages: $LANGUAGES)"
1872 _mp_help="help/help_mp-${_language}.h"
1873 test -f $_mp_help || die "$_mp_help not found"
1875 echocheck "enable sighandler"
1876 if test "$_sighandler" = yes ; then
1877 _def_sighandler='#define ENABLE_SIGHANDLER 1'
1878 else
1879 _def_sighandler='#undef ENABLE_SIGHANDLER'
1881 echores "$_sighandler"
1883 echocheck "runtime cpudetection"
1884 if test "$_runtime_cpudetection" = yes ; then
1885 _optimizing="Runtime CPU-Detection enabled"
1886 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
1887 else
1888 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
1890 echores "$_runtime_cpudetection"
1893 echocheck "restrict keyword"
1894 for restrict_keyword in restrict __restrict __restrict__ ; do
1895 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
1896 if cc_check; then
1897 _def_restrict_keyword=$restrict_keyword
1898 break;
1900 done
1901 if [ -n "$_def_restrict_keyword" ]; then
1902 echores "$_def_restrict_keyword"
1903 else
1904 echores "none"
1908 echocheck "kstat"
1909 cat > $TMPC << EOF
1910 #include <kstat.h>
1911 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
1913 _kstat=no
1914 cc_check -lkstat && _kstat=yes
1915 if test "$_kstat" = yes ; then
1916 _ld_arch="-lkstat $_ld_arch"
1918 if test "$_kstat" = yes ; then
1919 _def_kstat="#define HAVE_LIBKSTAT 1"
1920 else
1921 _def_kstat="#undef HAVE_LIBKSTAT"
1923 echores "$_kstat"
1926 echocheck "posix4"
1927 # required for nanosleep on some systems
1928 cat > $TMPC << EOF
1929 #include <time.h>
1930 int main(void) { (void) nanosleep(0, 0); return 0; }
1932 _posix4=no
1933 cc_check -lposix4 && _posix4=yes
1934 if test "$_posix4" = yes ; then
1935 _ld_arch="-lposix4 $_ld_arch"
1937 echores "$_posix4"
1940 echocheck "lrintf"
1941 cat > $TMPC << EOF
1942 #include <math.h>
1943 int main(void) { (void) lrintf(0.0); return 0; }
1945 _lrintf=no
1946 cc_check -lm && _lrintf=yes
1947 if test "$_lrintf" = yes ; then
1948 _def_lrintf="#define HAVE_LRINTF 1"
1949 else
1950 _def_lrintf="#undef HAVE_LRINTF"
1952 echores "$_lrintf"
1955 echocheck "nanosleep"
1956 # also check for nanosleep
1957 cat > $TMPC << EOF
1958 #include <time.h>
1959 int main(void) { (void) nanosleep(0, 0); return 0; }
1961 _nanosleep=no
1962 cc_check $_ld_arch && _nanosleep=yes
1963 if test "$_nanosleep" = yes ; then
1964 _def_nanosleep='#define HAVE_NANOSLEEP 1'
1965 else
1966 _def_nanosleep='#undef HAVE_NANOSLEEP'
1968 echores "$_nanosleep"
1971 echocheck "socklib"
1972 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
1973 cat > $TMPC << EOF
1974 #include <netdb.h>
1975 int main(void) { (void) gethostbyname(0); return 0; }
1977 cc_check -lsocket && _ld_sock="-lsocket"
1978 cc_check -lnsl && _ld_sock="-lnsl"
1979 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
1980 if test $_winsock2 = auto && not cygwin ; then
1981 _winsock2=no
1982 cat > $TMPC << EOF
1983 #include <winsock2.h>
1984 int main(void) { (void) gethostbyname(0); return 0; }
1986 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
1988 if test "$_ld_sock" ; then
1989 echores "yes (using $_ld_sock)"
1990 else
1991 echores "no"
1995 if test $_winsock2 = yes ; then
1996 _ld_sock="-lws2_32"
1997 _def_winsock2='#define HAVE_WINSOCK2 1'
1998 else
1999 _def_winsock2='#undef HAVE_WINSOCK2'
2003 _use_aton=no
2004 echocheck "inet_pton()"
2005 cat > $TMPC << EOF
2006 #include <sys/types.h>
2007 #include <sys/socket.h>
2008 #include <arpa/inet.h>
2009 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2011 if test "$_winsock2" = yes ; then
2012 echores "not needed (using winsock2 functions)"
2013 elif cc_check $_ld_sock ; then
2014 # NOTE: Linux has libresolv but does not need it
2016 echores "yes (using $_ld_sock)"
2017 elif cc_check $_ld_sock -lresolv ; then
2018 # NOTE: needed for SunOS at least
2019 _ld_sock="$_ld_sock -lresolv"
2020 echores "yes (using $_ld_sock)"
2021 else
2022 echores "no (=> i'll try inet_aton next)"
2024 echocheck "inet_aton()"
2025 cat > $TMPC << EOF
2026 #include <sys/types.h>
2027 #include <sys/socket.h>
2028 #include <arpa/inet.h>
2029 int main(void) { (void) inet_aton(0, 0); return 0; }
2031 _use_aton=yes
2032 if cc_check $_ld_sock ; then
2033 # NOTE: Linux has libresolv but does not need it
2035 echores "yes (using $_ld_sock)"
2036 elif cc_check $_ld_sock -lresolv ; then
2037 # NOTE: needed for SunOS at least
2038 _ld_sock="$_ld_sock -lresolv"
2039 echores "yes (using $_ld_sock)"
2040 else
2041 _use_aton=no
2042 _network=no
2043 echores "no (=> network support disabled)"
2047 _def_use_aton='#undef USE_ATON'
2048 if test "$_use_aton" != no; then
2049 _def_use_aton='#define USE_ATON 1'
2053 echocheck "inttypes.h (required)"
2054 cat > $TMPC << EOF
2055 #include <inttypes.h>
2056 int main(void) { return 0; }
2058 _inttypes=no
2059 cc_check && _inttypes=yes
2060 if test "$_inttypes" = yes ; then
2061 # nothing to do
2063 else
2064 die "cannot find header inttypes.h (see DOCS/en/faq.html)"
2066 echores "$_inttypes"
2069 echocheck "word size"
2070 _mp_wordsize="#undef MP_WORDSIZE"
2071 cat > $TMPC << EOF
2072 #include <stdio.h>
2073 #include <sys/types.h>
2074 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2076 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2077 echores "$_wordsize"
2080 echocheck "stddef.h"
2081 cat > $TMPC << EOF
2082 #include <stddef.h>
2083 int main(void) { return 0; }
2085 _stddef=no
2086 cc_check && _stddef=yes
2087 if test "$_stddef" = yes ; then
2088 _def_stddef='#define HAVE_STDDEF_H 1'
2089 else
2090 _def_stddef='#undef HAVE_STDDEF_H'
2092 echores "$_stddef"
2095 echocheck "malloc.h"
2096 cat > $TMPC << EOF
2097 #include <malloc.h>
2098 int main(void) { (void) malloc(0); return 0; }
2100 _malloc=no
2101 cc_check && _malloc=yes
2102 if test "$_malloc" = yes ; then
2103 _def_malloc='#define HAVE_MALLOC_H 1'
2104 else
2105 _def_malloc='#undef HAVE_MALLOC_H'
2107 # malloc.h emits a warning in FreeBSD and OpenBSD
2108 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2109 echores "$_malloc"
2112 echocheck "memalign()"
2113 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2114 cat > $TMPC << EOF
2115 #include <malloc.h>
2116 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2118 _memalign=no
2119 cc_check && _memalign=yes
2120 if test "$_memalign" = yes ; then
2121 _def_memalign='#define HAVE_MEMALIGN 1'
2122 else
2123 _def_memalign='#undef HAVE_MEMALIGN'
2125 echores "$_memalign"
2128 echocheck "alloca.h"
2129 cat > $TMPC << EOF
2130 #include <alloca.h>
2131 int main(void) { (void) alloca(0); return 0; }
2133 _alloca=no
2134 cc_check && _alloca=yes
2135 if cc_check ; then
2136 _def_alloca='#define HAVE_ALLOCA_H 1'
2137 else
2138 _def_alloca='#undef HAVE_ALLOCA_H'
2140 echores "$_alloca"
2143 echocheck "mman.h"
2144 cat > $TMPC << EOF
2145 #include <sys/types.h>
2146 #include <sys/mman.h>
2147 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2149 _mman=no
2150 cc_check && _mman=yes
2151 if test "$_mman" = yes ; then
2152 _def_mman='#define HAVE_SYS_MMAN_H 1'
2153 else
2154 _def_mman='#undef HAVE_SYS_MMAN_H'
2156 echores "$_mman"
2158 echocheck "dynamic loader"
2159 cat > $TMPC << EOF
2160 #include <dlfcn.h>
2161 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2163 _dl=no
2164 if cc_check ; then
2165 _dl=yes
2166 elif cc_check -ldl ; then
2167 _dl=yes
2168 _ld_dl='-ldl'
2170 if test "$_dl" = yes ; then
2171 _def_dl='#define HAVE_LIBDL 1'
2172 else
2173 _def_dl='#undef HAVE_LIBDL'
2175 echores "$_dl"
2178 echocheck "dynamic a/v plugins support"
2179 if test "$_dl" = no ; then
2180 _dynamic_plugins=no
2182 if test "$_dynamic_plugins" = yes ; then
2183 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2184 else
2185 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2187 echores "$_dynamic_plugins"
2190 #echocheck "dynamic linking"
2191 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2192 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2193 #cat > $TMPC << EOF
2194 #int main(void) { return 0; }
2195 #EOF
2196 #if cc_check -rdynamic ; then
2197 # _ld_dl_dynamic='-rdynamic'
2198 #elif cc_check -Bdynamic ; then
2199 # _ld_dl_dynamic='-Bdynamic'
2200 #elif cc_check ; then
2201 # _ld_dl_dynamic=''
2203 #echores "using $_ld_dl_dynamic"
2206 echocheck "pthread"
2207 cat > $TMPC << EOF
2208 #include <pthread.h>
2209 void* func(void *arg) { return arg; }
2210 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2212 if mingw32 ; then
2213 _ld_pthread=''
2214 elif ( cc_check && $TMPO ) ; then # QNX
2215 _ld_pthread=''
2216 elif ( cc_check -lpthread && $TMPO ) ; then
2217 _ld_pthread='-lpthread'
2218 elif ( cc_check -pthread && $TMPO ) ; then
2219 _ld_pthread='-pthread'
2220 else
2221 if test "$_ld_static" ; then
2222 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2223 if ( cc_check -lpthread ) ; then
2224 _ld_pthread='-lpthread'
2225 elif ( cc_check -pthread ) ; then
2226 _ld_pthread='-pthread'
2227 else
2228 die "Static lib pthread not found (needed by Windows and networking stufff)."
2230 else
2231 die "Lib pthread not found (needed by Windows and networking stuff)."
2234 echores "yes (using $_ld_pthread)"
2237 echocheck "sys/soundcard.h"
2238 cat > $TMPC << EOF
2239 #include <sys/soundcard.h>
2240 int main(void) { return 0; }
2242 _sys_soundcard=no
2243 cc_check && _sys_soundcard=yes
2244 if test "$_sys_soundcard" = yes ; then
2245 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2246 _inc_soundcard='#include <sys/soundcard.h>'
2247 else
2248 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2250 echores "$_sys_soundcard"
2252 if test "$_sys_soundcard" != yes ; then
2253 echocheck "soundcard.h"
2254 cat > $TMPC << EOF
2255 #include <soundcard.h>
2256 int main(void) { return 0; }
2258 _soundcard=no
2259 cc_check && _soundcard=yes
2260 if linux || test "$_ossaudio" != no ; then
2261 # use soundcard.h on Linux, or when OSS support is enabled
2262 echores "$_soundcard"
2263 else
2264 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2265 echores "$_soundcard, but ignored!"
2266 _soundcard=no
2268 if test "$_soundcard" = yes ; then
2269 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2270 _inc_soundcard='#include <soundcard.h>'
2271 else
2272 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2274 else
2275 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2279 echocheck "sys/dvdio.h"
2280 cat > $TMPC << EOF
2281 #include <unistd.h>
2282 #include <sys/dvdio.h>
2283 int main(void) { return 0; }
2285 _dvdio=no
2286 cc_check && _dvdio=yes
2287 if test "$_dvdio" = yes ; then
2288 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2289 else
2290 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2292 echores "$_dvdio"
2295 echocheck "sys/cdio.h"
2296 cat > $TMPC << EOF
2297 #include <unistd.h>
2298 #include <sys/cdio.h>
2299 int main(void) { return 0; }
2301 _cdio=no
2302 cc_check && _cdio=yes
2303 if test "$_cdio" = yes ; then
2304 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2305 else
2306 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2308 echores "$_cdio"
2311 echocheck "linux/cdrom.h"
2312 cat > $TMPC << EOF
2313 #include <sys/types.h>
2314 #include <linux/cdrom.h>
2315 int main(void) { return 0; }
2317 _cdrom=no
2318 cc_check && _cdrom=yes
2319 if test "$_cdrom" = yes ; then
2320 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2321 else
2322 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2324 echores "$_cdrom"
2327 echocheck "dvd.h"
2328 cat > $TMPC << EOF
2329 #include <dvd.h>
2330 int main(void) { return 0; }
2332 _dvd=no
2333 cc_check && _dvd=yes
2334 if test "$_dvd" = yes ; then
2335 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2336 else
2337 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2339 echores "$_dvd"
2342 echocheck "BSDI dvd.h"
2343 cat > $TMPC << EOF
2344 #include <dvd.h>
2345 int main(void) { return 0; }
2347 _bsdi_dvd=no
2348 cc_check && _bsdi_dvd=yes
2349 if test "$_bsdi_dvd" = yes ; then
2350 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2351 else
2352 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2354 echores "$_bsdi_dvd"
2357 echocheck "HPUX SCSI header"
2358 cat > $TMPC << EOF
2359 #include <sys/scsi.h>
2360 int main(void) { return 0; }
2362 _hpux_scsi_h=no
2363 cc_check && _hpux_scsi_h=yes
2364 if test "$_hpux_scsi_h" = yes ; then
2365 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2366 else
2367 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2369 echores "$_hpux_scsi_h"
2372 echocheck "userspace SCSI headers (Solaris)"
2373 cat > $TMPC << EOF
2374 # include <unistd.h>
2375 # include <stropts.h>
2376 # include <sys/scsi/scsi_types.h>
2377 # include <sys/scsi/impl/uscsi.h>
2378 int main(void) { return 0; }
2380 _sol_scsi_h=no
2381 cc_check && _sol_scsi_h=yes
2382 if test "$_sol_scsi_h" = yes ; then
2383 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2384 else
2385 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2387 echores "$_sol_scsi_h"
2390 echocheck "termcap"
2391 if test "$_termcap" = auto ; then
2392 cat > $TMPC <<EOF
2393 int main(void) { return 0; }
2395 _termcap=no
2396 cc_check -ltermcap && _termcap=yes
2398 if test "$_termcap" = yes ; then
2399 _def_termcap='#define USE_TERMCAP 1'
2400 _ld_termcap='-ltermcap'
2401 else
2402 _def_termcap='#undef USE_TERMCAP'
2404 echores "$_termcap"
2407 echocheck "termios"
2408 if test "$_termios" = auto ; then
2409 cat > $TMPC <<EOF
2410 #include <sys/termios.h>
2411 int main(void) { return 0; }
2413 _termios=no
2414 cc_check && _termios=yes
2415 _def_termios_h_name='sys/termios.h'
2417 # second test:
2418 if test "$_termios" = no ; then
2419 cat > $TMPC <<EOF
2420 #include <termios.h>
2421 int main(void) { return 0; }
2423 _termios=no
2424 cc_check && _termios=yes
2425 _def_termios_h_name='termios.h'
2428 if test "$_termios" = yes ; then
2429 _def_termios='#define HAVE_TERMIOS 1'
2430 _def_termios_h='#undef HAVE_TERMIOS_H'
2431 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
2433 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
2434 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
2435 elif test "$_def_termios_h_name" = 'termios.h' ; then
2436 _def_termios_h='#define HAVE_TERMIOS_H 1'
2438 echores "yes (using $_def_termios_h_name)"
2439 else
2440 _def_termios='#undef HAVE_TERMIOS'
2441 _def_termios_h_name=''
2442 echores "no"
2446 echocheck "shm"
2447 if test "$_shm" = auto ; then
2448 cat > $TMPC << EOF
2449 #include <sys/types.h>
2450 #include <sys/shm.h>
2451 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
2453 _shm=no
2454 cc_check && _shm=yes
2456 if test "$_shm" = yes ; then
2457 _def_shm='#define HAVE_SHM 1'
2458 else
2459 _def_shm='#undef HAVE_SHM'
2461 echores "$_shm"
2464 # XXX: FIXME, add runtime checking
2465 echocheck "linux devfs"
2466 echores "$_linux_devfs"
2469 echocheck "scandir()"
2470 cat > $TMPC << EOF
2471 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
2473 _scandir=no
2474 cc_check && _scandir=yes
2475 if test "$_scandir" = yes ; then
2476 _def_scandir='#define HAVE_SCANDIR 1'
2477 else
2478 _def_scandir='#undef HAVE_SCANDIR'
2480 echores "$_scandir"
2483 echocheck "strsep()"
2484 cat > $TMPC << EOF
2485 #include <string.h>
2486 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
2488 _strsep=no
2489 cc_check && _strsep=yes
2490 if test "$_strsep" = yes ; then
2491 _def_strsep='#define HAVE_STRSEP 1'
2492 else
2493 _def_strsep='#undef HAVE_STRSEP'
2495 echores "$_strsep"
2498 echocheck "vsscanf()"
2499 cat > $TMPC << EOF
2500 #include <stdarg.h>
2501 int main(void) { vsscanf(0, 0, 0); return 0; }
2503 _vsscanf=no
2504 cc_check && _vsscanf=yes
2505 if test "$_vsscanf" = yes ; then
2506 _def_vsscanf='#define HAVE_VSSCANF 1'
2507 else
2508 _def_vsscanf='#undef HAVE_VSSCANF'
2510 echores "$_vsscanf"
2513 echocheck "posix select()"
2514 cat > $TMPC << EOF
2515 #include <stdio.h>
2516 #include <stdlib.h>
2517 #include <sys/types.h>
2518 #include <string.h>
2519 #include <sys/time.h>
2520 #include <unistd.h>
2521 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
2523 _posix_select=no
2524 cc_check && _posix_select=yes
2525 if test "$_posix_select" = no ; then
2526 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
2527 else
2528 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
2530 echores "$_posix_select"
2533 echocheck "gettimeofday()"
2534 cat > $TMPC << EOF
2535 #include <stdio.h>
2536 #include <sys/time.h>
2537 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
2539 _gettimeofday=no
2540 cc_check && _gettimeofday=yes
2541 if test "$_gettimeofday" = yes ; then
2542 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
2543 else
2544 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
2546 echores "$_gettimeofday"
2549 echocheck "glob()"
2550 cat > $TMPC << EOF
2551 #include <stdio.h>
2552 #include <glob.h>
2553 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
2555 _glob=no
2556 cc_check && _glob=yes
2557 if test "$_glob" = yes ; then
2558 _def_glob='#define HAVE_GLOB 1'
2559 else
2560 _def_glob='#undef HAVE_GLOB'
2562 echores "$_glob"
2565 echocheck "sys/sysinfo.h"
2566 cat > $TMPC << EOF
2567 #include <sys/sysinfo.h>
2568 int main(void) {
2569 struct sysinfo s_info;
2570 sysinfo(&s_info);
2571 return 0;
2574 _sys_sysinfo=no
2575 cc_check && _sys_sysinfo=yes
2576 if test "$_sys_sysinfo" = yes ; then
2577 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
2578 _inc_sysinfo='#include <sys/sysinfo.h>'
2579 else
2580 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
2582 echores "$_sys_sysinfo"
2585 echocheck "Mac OS X APIs"
2586 if test "$_macosx" = auto ; then
2587 if darwin && ppc; then
2588 _macosx=yes
2589 else
2590 _macosx=no
2591 _def_macosx='#undef MACOSX'
2592 _noaomodules="macosx $_noaomodules"
2595 if test "$_macosx" = yes ; then
2596 cat > $TMPC <<EOF
2597 #include <Carbon/Carbon.h>
2598 #include <QuickTime/QuickTime.h>
2599 #include <CoreAudio/CoreAudio.h>
2600 int main(void) {
2601 EnterMovies();
2602 ExitMovies();
2603 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
2606 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
2607 _macosx=yes
2608 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio"
2609 _def_macosx='#define MACOSX 1'
2610 _aosrc="$_aosrc ao_macosx.c"
2611 _aomodules="macosx $_aomodules"
2612 else
2613 _macosx=no
2614 _def_macosx='#undef MACOSX'
2615 _noaomodules="macosx $_noaomodules"
2618 echores "$_macosx"
2621 echocheck "Samba support (libsmbclient)"
2622 if test "$_smbsupport" = auto; then
2623 _smbsupport=no
2624 cat > $TMPC << EOF
2625 #include <libsmbclient.h>
2626 int main(void) { smbc_opendir("smb://"); return 0; }
2628 if cc_check -lsmbclient ; then
2629 _smbsupport=yes
2630 _ld_smb="-lsmbclient"
2631 else
2632 if cc_check -lsmbclient $_ld_dl ; then
2633 _smbsupport=yes
2634 _ld_smb="-lsmbclient $_ld_dl"
2635 else
2636 if cc_check -lsmbclient $_ld_dl -lnsl ; then
2637 _smbsupport=yes
2638 _ld_smb="-lsmbclient $_ld_dl -lnsl"
2644 if test "$_smbsupport" = yes; then
2645 _ld_smb="-lsmbclient"
2646 _def_smbsupport="#define LIBSMBCLIENT"
2647 _inputmodules="smb $_inputmodules"
2648 else
2649 _def_smbsupport="#undef LIBSMBCLIENT"
2650 _noinputmodules="smb $_noinputmodules"
2652 echores "$_smbsupport"
2655 #########
2656 # VIDEO #
2657 #########
2660 echocheck "3dfx"
2661 if test "$_3dfx" = yes ; then
2662 _def_3dfx='#define HAVE_3DFX 1'
2663 _vosrc="$_vosrc vo_3dfx.c"
2664 _vomodules="3dfx $_vomodules"
2665 else
2666 _def_3dfx='#undef HAVE_3DFX'
2667 _novomodules="3dfx $_novomodules"
2669 echores "$_3dfx"
2672 echocheck "tdfxfb"
2673 if test "$_tdfxfb" = yes ; then
2674 _def_tdfxfb='#define HAVE_TDFXFB 1'
2675 _vosrc="$_vosrc vo_tdfxfb.c"
2676 _vomodules="tdfxfb $_vomodules"
2677 else
2678 _def_tdfxfb='#undef HAVE_TDFXFB'
2679 _novomodules="tdfxfb $_novomodules"
2681 echores "$_tdfxfb"
2683 echocheck "tdfxvid"
2684 if test "$_tdfxvid" = yes ; then
2685 _def_tdfxvid='#define HAVE_TDFX_VID 1'
2686 _vosrc="$_vosrc vo_tdfx_vid.c"
2687 _vomodules="tdfx_vid $_vomodules"
2688 else
2689 _def_tdfxvid='#undef HAVE_TDFX_VID'
2690 _novomodules="tdfx_vid $_novomodules"
2692 echores "$_tdfxfb"
2694 echocheck "tga"
2695 if test "$_tga" = yes ; then
2696 _def_tga='#define HAVE_TGA 1'
2697 _vosrc="$_vosrc vo_tga.c"
2698 _vomodules="tga $_vomodules"
2699 else
2700 _def_tga='#undef HAVE_TGA'
2701 _novomodules="tga $_novomodules"
2703 echores "$_tga"
2705 echocheck "DirectFB headers presence"
2706 if test -z "$_inc_directfb" ; then
2707 for I in /usr/include /usr/local/include; do
2708 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
2709 _inc_directfb="-I$I/directfb"
2710 echores "yes (using $_inc_directfb)"
2711 break
2713 if test -d "$I" && test -f "$I/directfb.h" ; then
2714 _inc_directfb="-I$I"
2715 echores "yes (using $_inc_directfb)"
2716 break
2718 done
2719 if test -z "$_inc_directfb" ; then
2720 _directfb=no
2721 echores "not found"
2723 else
2724 echores "yes (using $_inc_directfb)"
2726 if test "$_inc_directfb" = "-I/usr/include" ; then
2727 _inc_directfb=""
2730 echocheck "DirectFB"
2731 if test "$_directfb" = auto ; then
2732 _directfb=no
2733 cat > $TMPC <<EOF
2734 #include <directfb.h>
2735 int main(void) { IDirectFB *foo; return 0; }
2737 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
2740 if test "$_directfb" = yes; then
2741 cat > $TMPC <<EOF
2742 #include <directfb.h>
2743 int main(void) {
2744 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
2745 return 0;
2748 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
2749 _directfb_version=`"$TMPO"`
2750 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
2751 echores "yes ($_directfb_version)"
2752 else
2753 _directfb=no
2754 echores "no (failed to get version)"
2756 else
2757 echores "$_directfb"
2760 if test "$_directfb" = yes ; then
2761 _def_directfb='#define HAVE_DIRECTFB 1'
2762 if test "$_directfb_version" -ge 913; then
2763 _vosrc="$_vosrc vo_directfb2.c"
2764 else
2765 _vosrc="$_vosrc vo_directfb.c"
2767 _vomodules="directfb $_vomodules"
2768 _ld_directfb='-ldirectfb'
2770 if test "$_directfb_version" -ge 915; then
2771 _vosrc="$_vosrc vo_dfbmga.c"
2772 _vomodules="dfbmga $_vomodules"
2774 else
2775 _def_directfb='#undef HAVE_DIRECTFB'
2776 _novomodules="directfb $_novomodules"
2777 _inc_directfb=""
2781 echocheck "X11 headers presence"
2782 if test -z "$_inc_x11" ; then
2783 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
2784 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
2785 _inc_x11="-I$I"
2786 echores "yes (using $I)"
2787 break
2789 done
2790 if test -z "$_inc_x11" ; then
2791 _x11=no
2792 echores "not found (check if the dev(el) packages are installed)"
2794 else
2795 echores "yes (using $_inc_x11)"
2797 if test "$_inc_x11" = "-I/usr/include" ; then
2798 _inc_x11=""
2802 echocheck "X11 libs presence"
2803 if test -z "$_ld_x11" ; then
2804 for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 ; do
2805 if test -d "$I" && ( test -f "$I/libX11.so" || test -f "$I/libX11.a" ) ; then
2806 _ld_x11="-L$I"
2807 echores "yes (using $I)"
2808 break;
2810 done
2811 if test -z "$_ld_x11" ; then
2812 _x11=no
2813 echores "not found (check if the dev(el) packages are installed)"
2815 else
2816 echores "yes (using $_ld_x11)"
2818 _ld_x11="$_ld_x11 -lXext -lX11 $_ld_sock"
2821 echocheck "X11"
2822 if test "$_x11" != no ; then
2823 cat > $TMPC <<EOF
2824 #include <X11/Xlib.h>
2825 #include <X11/Xutil.h>
2826 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
2828 _x11=no
2829 cc_check $_inc_x11 $_ld_x11 && _x11=yes
2831 if test "$_x11" = yes ; then
2832 _def_x11='#define HAVE_X11 1'
2833 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
2834 _vomodules="x11 xover $_vomodules"
2835 else
2836 _def_x11='#undef HAVE_X11'
2837 _inc_x11=''
2838 _ld_x11=''
2839 _novomodules="x11 $_novomodules"
2841 echores "$_x11"
2844 echocheck "DPMS"
2845 _xdpms3=no
2846 if test "$_x11" = yes ; then
2847 cat > $TMPC <<EOF
2848 #include <X11/Xmd.h>
2849 #include <X11/Xlib.h>
2850 #include <X11/Xutil.h>
2851 #include <X11/Xatom.h>
2852 #include <X11/extensions/dpms.h>
2853 int main(void) {
2854 (void) DPMSQueryExtension(0, 0, 0);
2857 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
2859 _xdpms4=no
2860 if test "$_x11" = yes ; then
2861 cat > $TMPC <<EOF
2862 #include <X11/Xlib.h>
2863 #include <X11/extensions/dpms.h>
2864 int main(void) {
2865 (void) DPMSQueryExtension(0, 0, 0);
2868 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
2870 if test "$_xdpms4" = yes ; then
2871 _def_xdpms='#define HAVE_XDPMS 1'
2872 echores "yes (using Xdpms 4)"
2873 elif test "$_xdpms3" = yes ; then
2874 _def_xdpms='#define HAVE_XDPMS 1'
2875 _ld_x11="-lXdpms $_ld_x11"
2876 echores "yes (using Xdpms 3)"
2877 else
2878 _def_xdpms='#undef HAVE_XDPMS'
2879 echores "no"
2883 echocheck "Xv"
2884 if test "$_x11" = yes && test "$_xv" != no ; then
2885 cat > $TMPC <<EOF
2886 #include <X11/Xlib.h>
2887 #include <X11/extensions/Xvlib.h>
2888 int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); return 0; }
2890 _xv=no
2891 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
2892 else
2893 _xv=no
2895 if test "$_xv" = yes ; then
2896 _def_xv='#define HAVE_XV 1'
2897 _ld_xv='-lXv'
2898 _vosrc="$_vosrc vo_xv.c"
2899 _vomodules="xv $_vomodules"
2900 else
2901 _def_xv='#undef HAVE_XV'
2902 _novomodules="xv $_novomodules"
2904 echores "$_xv"
2907 echocheck "XvMC"
2908 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
2909 _xvmc=no
2910 cat > $TMPC <<EOF
2911 #include <X11/Xlib.h>
2912 #include <X11/extensions/Xvlib.h>
2913 #include <X11/extensions/XvMClib.h>
2914 int main(void) {
2915 (void) XvMCQueryExtension(0,0,0);
2916 (void) XvMCCreateContext(0,0,0,0,0,0,0);
2917 return 0; }
2919 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
2921 if test "$_xvmc" = yes ; then
2922 _def_xvmc='#define HAVE_XVMC 1'
2923 _ld_xvmc="-lXvMC -l$_xvmclib"
2924 _vosrc="$_vosrc vo_xvmc.c"
2925 _vomodules="xvmc $_vomodules"
2926 else
2927 _def_xvmc='#undef HAVE_XVMC'
2928 _novomodules="xvmc $_novomodules"
2930 echores "$_xvmc"
2933 echocheck "Xinerama"
2934 if test "$_x11" = yes && test "$_xinerama" != no ; then
2935 cat > $TMPC <<EOF
2936 #include <X11/Xlib.h>
2937 #include <X11/extensions/Xinerama.h>
2938 int main(void) { (void) XineramaIsActive(0); return 0; }
2940 _xinerama=no
2941 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
2942 else
2943 _xinerama=no
2945 if test "$_xinerama" = yes ; then
2946 _def_xinerama='#define HAVE_XINERAMA 1'
2947 _ld_xinerama='-lXinerama'
2948 else
2949 _def_xinerama='#undef HAVE_XINERAMA'
2951 echores "$_xinerama"
2954 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
2955 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
2956 # named 'X extensions' or something similar.
2957 # This check may be useful for future mplayer versions (to change resolution)
2958 # If you run into problems, remove '-lXxf86vm'.
2959 echocheck "Xxf86vm"
2960 if test "$_x11" = yes && test "$_vm" != no ; then
2961 cat > $TMPC <<EOF
2962 #include <X11/Xlib.h>
2963 #include <X11/extensions/xf86vmode.h>
2964 #include <X11/XF86keysym.h>
2965 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
2967 _vm=no
2968 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
2969 else
2970 _vm=no
2972 if test "$_vm" = yes ; then
2973 _def_vm='#define HAVE_XF86VM 1'
2974 _ld_vm='-lXxf86vm'
2975 else
2976 _def_vm='#undef HAVE_XF86VM'
2978 echores "$_vm"
2981 echocheck "DGA"
2982 # Version 2 is preferred to version 1 if available
2983 if test "$_dga" = auto ; then
2984 cat > $TMPC << EOF
2985 #include <X11/Xlib.h>
2986 #include <X11/extensions/xf86dga.h>
2987 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
2989 _dga=no
2990 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
2992 cat > $TMPC << EOF
2993 #include <X11/Xlib.h>
2994 #include <X11/extensions/xf86dga.h>
2995 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
2997 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3000 _def_dga='#undef HAVE_DGA'
3001 _def_dga2='#undef HAVE_DGA2'
3002 if test "$_dga" = 1 ; then
3003 _def_dga='#define HAVE_DGA 1'
3004 _ld_dga='-lXxf86dga'
3005 _vosrc="$_vosrc vo_dga.c"
3006 _vomodules="dga $_vomodules"
3007 echores "yes (using DGA 1.0)"
3008 elif test "$_dga" = 2 ; then
3009 _def_dga='#define HAVE_DGA 1'
3010 _def_dga2='#define HAVE_DGA2 1'
3011 _ld_dga='-lXxf86dga'
3012 _vosrc="$_vosrc vo_dga.c"
3013 _vomodules="dga $_vomodules"
3014 echores "yes (using DGA 2.0)"
3015 elif test "$_dga" = no ; then
3016 echores "no"
3017 _novomodules="dga $_novomodules"
3018 else
3019 die "DGA version must be 1 or 2"
3023 echocheck "OpenGL"
3024 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3025 if (test "$_x11" = yes || mingw32 || cygwin) && test "$_gl" != no ; then
3026 cat > $TMPC << EOF
3027 #include <GL/gl.h>
3028 int main(void) { return 0; }
3030 _gl=no
3031 if cc_check $_inc_x11 $_ld_x11 -lGL -lm ; then
3032 _gl=yes
3033 _ld_gl="-lGL"
3034 elif cc_check $_inc_x11 $_ld_x11 -lGL -lm $_ld_pthread ; then
3035 _gl=yes
3036 _ld_gl="-lGL $_ld_pthread"
3037 elif cc_check -lopengl32 ; then
3038 _gl=yes
3039 _gl_win32=yes
3040 _ld_gl="-lopengl32 -lgdi32"
3042 else
3043 _gl=no
3045 if test "$_gl" = yes ; then
3046 _def_gl='#define HAVE_GL 1'
3047 if test "$_gl_win32" = yes ; then
3048 _def_gl_win32='#define GL_WIN32 1'
3049 _vosrc="$_vosrc vo_gl2.c w32_common.c"
3050 else
3051 _vosrc="$_vosrc vo_gl.c vo_gl2.c"
3053 _vomodules="opengl $_vomodules"
3054 else
3055 _def_gl='#undef HAVE_GL'
3056 _def_gl_win32='#undef GL_WIN32'
3057 _novomodules="opengl $_novomodules"
3059 echores "$_gl"
3062 echocheck "/dev/mga_vid"
3063 if test "$_mga" = auto ; then
3064 _mga=no
3065 test -c /dev/mga_vid && _mga=yes
3067 if test "$_mga" = yes ; then
3068 _def_mga='#define HAVE_MGA 1'
3069 _vosrc="$_vosrc vo_mga.c"
3070 _vomodules="mga $_vomodules"
3071 else
3072 _def_mga='#undef HAVE_MGA'
3073 _novomodules="mga $_novomodules"
3075 echores "$_mga"
3078 # echocheck "syncfb"
3079 # _syncfb=no
3080 # test "$_mga" = yes && _syncfb=yes
3081 # if test "$_syncfb" = yes ; then
3082 # _def_syncfb='#define HAVE_SYNCFB 1'
3083 # _vosrc="$_vosrc vo_syncfb.c"
3084 # else
3085 # _def_syncfb='#undef HAVE_SYNCFB'
3086 # fi
3087 # echores "$_syncfb"
3090 echocheck "xmga"
3091 if test "$_xmga" = auto ; then
3092 _xmga=no
3093 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3095 if test "$_xmga" = yes ; then
3096 _def_xmga='#define HAVE_XMGA 1'
3097 _vosrc="$_vosrc vo_xmga.c"
3098 _vomodules="xmga $_vomodules"
3099 else
3100 _def_xmga='#undef HAVE_XMGA'
3101 _novomodules="xmga $_novomodules"
3103 echores "$_xmga"
3106 echocheck "GGI"
3107 if test "$_ggi" = auto ; then
3108 cat > $TMPC << EOF
3109 #include <ggi/ggi.h>
3110 int main(void) { return 0; }
3112 _ggi=no
3113 cc_check -lggi && _ggi=yes
3115 if test "$_ggi" = yes ; then
3116 _def_ggi='#define HAVE_GGI 1'
3117 _ld_ggi='-lggi'
3118 _vosrc="$_vosrc vo_ggi.c"
3119 _vomodules="ggi $_vomodules"
3120 else
3121 _def_ggi='#undef HAVE_GGI'
3122 _novomodules="ggi $_novomodules"
3124 echores "$_ggi"
3127 echocheck "AA"
3128 if test "$_aa" = auto ; then
3129 cat > $TMPC << EOF
3130 #include <aalib.h>
3131 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3133 _aa=no
3134 cc_check -laa && _aa=yes
3136 if test "$_aa" = yes ; then
3137 _def_aa='#define HAVE_AA 1'
3138 if cygwin ; then
3139 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3140 else
3141 _ld_aa='-laa'
3143 _vosrc="$_vosrc vo_aa.c"
3144 _vomodules="aa $_vomodules"
3145 else
3146 _def_aa='#undef HAVE_AA'
3147 _novomodules="aa $_novomodules"
3149 echores "$_aa"
3152 echocheck "SVGAlib"
3153 if test "$_svga" = auto ; then
3154 cat > $TMPC << EOF
3155 #include <vga.h>
3156 #include <vgagl.h>
3157 int main(void) { return 0; }
3159 _svga=no
3160 cc_check -lvgagl -lvga -lm && _svga=yes
3162 if test "$_svga" = yes ; then
3163 _def_svga='#define HAVE_SVGALIB 1'
3164 _ld_svga='-lvgagl -lvga -lm'
3165 _vosrc="$_vosrc vo_svga.c"
3166 _vomodules="svga $_vomodules"
3167 else
3168 _def_svga='#undef HAVE_SVGALIB'
3169 _novomodules="svga $_novomodules"
3171 echores "$_svga"
3174 echocheck "FBDev"
3175 if test "$_fbdev" = auto ; then
3176 _fbdev=no
3177 linux && test -c /dev/fb0 && _fbdev=yes
3179 if test "$_fbdev" = yes ; then
3180 _def_fbdev='#define HAVE_FBDEV 1'
3181 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3182 _vomodules="fbdev $_vomodules"
3183 else
3184 _def_fbdev='#undef HAVE_FBDEV'
3185 _novomodules="fbdev $_novomodules"
3187 echores "$_fbdev"
3191 echocheck "DVB"
3192 if test "$_dvb" != no ; then
3193 _dvb=no
3194 cat >$TMPC << EOF
3195 #include <sys/poll.h>
3196 #include <sys/ioctl.h>
3197 #include <stdio.h>
3198 #include <time.h>
3199 #include <unistd.h>
3201 #include <ost/dmx.h>
3202 #include <ost/frontend.h>
3203 #include <ost/sec.h>
3204 #include <ost/video.h>
3205 #include <ost/audio.h>
3206 int main(void) {return 0;}
3208 if cc_check ; then
3209 _dvb=yes
3210 echores "yes"
3211 else
3212 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
3213 if cc_check "$I" ; then
3214 _dvb=yes
3215 _inc_dvb="$I"
3216 echores "yes (using $_inc_dvb)"
3217 break
3219 done
3220 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
3222 else
3223 echores "no"
3225 if test "$_dvb" = yes ; then
3226 _def_dvb='#define HAVE_DVB 1'
3227 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3228 _aomodules="mpegpes(dvb) $_aomodules"
3229 _vomodules="mpegpes(dvb) $_vomodules"
3231 if test "$_dvbhead" != no ; then
3232 echocheck "DVB HEAD"
3233 if test "$_dvbhead" != no ; then
3234 _dvbhead=no
3236 cat >$TMPC << EOF
3237 #include <sys/poll.h>
3238 #include <sys/ioctl.h>
3239 #include <stdio.h>
3240 #include <time.h>
3241 #include <unistd.h>
3243 #include <linux/dvb/dmx.h>
3244 #include <linux/dvb/frontend.h>
3245 #include <linux/dvb/video.h>
3246 #include <linux/dvb/audio.h>
3247 int main(void) {return 0;}
3249 if cc_check ; then
3250 _dvbhead=yes
3251 echores "yes"
3252 else
3253 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
3254 if cc_check "$I" ; then
3255 _dvbhead=yes
3256 _inc_dvb="$I"
3257 echores "yes (using $_inc_dvb)"
3258 break
3260 done
3261 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
3263 else
3264 echores "no"
3266 if test "$_dvbhead" = yes ; then
3267 _def_dvb='#define HAVE_DVB_HEAD 1'
3268 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3269 _aomodules="mpegpes(dvb) $_aomodules"
3270 _vomodules="mpegpes(dvb) $_vomodules"
3273 if test "$_dvbhead" = no && test "$_dvb" = no ; then
3274 _def_dvb='#undef HAVE_DVB'
3275 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
3276 _aomodules="mpegpes(file) $_aomodules"
3277 _vomodules="mpegpes(file) $_vomodules"
3280 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
3281 _dvbin=yes
3282 else
3283 _dvbin=no
3286 echocheck "PNG support"
3287 if test "$_png" = auto ; then
3288 _png=no
3289 if irix ; then
3290 # Don't check for -lpng on irix since it has its own libpng
3291 # incompatible with the GNU libpng
3292 echores "disabled on irix (not GNU libpng)"
3293 else
3294 cat > $TMPC << EOF
3295 #include <png.h>
3296 #include <string.h>
3297 int main(void) {
3298 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
3299 printf("libpng: %s\n", png_libpng_ver);
3300 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
3303 if cc_check -lpng -lz -lm ; then
3304 if "$TMPO" >> "$TMPLOG" ; then
3305 _png=yes
3306 echores yes
3307 else
3308 echores "no (mismatch of library and header versions)"
3310 else
3311 echores no
3314 else
3315 echores "$_png"
3317 if test "$_png" = yes ; then
3318 _def_png='#define HAVE_PNG 1'
3319 _ld_png='-lpng -lz'
3320 _vosrc="$_vosrc vo_png.c"
3321 _vomodules="png $_vomodules"
3322 _mkf_png="yes"
3323 else
3324 _def_png='#undef HAVE_PNG'
3325 _novomodules="png $_novomodules"
3326 _mkf_png="no"
3329 echocheck "JPEG support"
3330 if test "$_jpg" = auto ; then
3331 _jpg=no
3332 cat > $TMPC << EOF
3333 #include <stdio.h>
3334 #include <stdlib.h>
3335 #include <setjmp.h>
3336 #include <string.h>
3337 #include <jpeglib.h>
3338 int main(void) {
3339 return 0;
3342 if cc_check -ljpeg -lm ; then
3343 if "$TMPO" >> "$TMPLOG" ; then
3344 _jpg=yes
3348 echores "$_jpg"
3350 if test "$_jpg" = yes ; then
3351 _def_jpg='#define HAVE_JPEG 1'
3352 _vosrc="$_vosrc vo_jpeg.c"
3353 _vomodules="jpeg $_vomodules"
3354 _ld_jpg="-ljpeg"
3355 _mkf_jpg="yes"
3356 else
3357 _def_jpg='#undef HAVE_JPEG'
3358 _novomodules="jpeg $_novomodules"
3359 _mkf_jpg="no"
3363 echocheck "GIF support"
3364 if test "$_gif" = auto ; then
3365 _gif=no
3366 cat > $TMPC << EOF
3367 #include <gif_lib.h>
3368 int main(void) {
3369 return 0;
3372 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
3373 _gif=yes
3374 _ld_gif="-lungif"
3375 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3376 _gif=yes
3377 _ld_gif="-lungif $_ld_x11"
3378 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
3379 _gif=yes
3380 _ld_gif="-lgif"
3381 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3382 _gif=yes
3383 _ld_gif="-lgif $_ld_x11"
3387 if test "$_gif" = yes ; then
3388 _def_gif='#define HAVE_GIF 1'
3389 _vosrc="$_vosrc vo_gif89a.c"
3390 _codecmodules="gif $_codecmodules"
3391 _vomodules="gif89a $_vomodules"
3392 _mkf_gif="yes"
3393 _gif="yes (old version, some encoding functions disabled)"
3394 _def_gif_4='#undef HAVE_GIF_4'
3396 cat > $TMPC << EOF
3397 #include <signal.h>
3398 #include <gif_lib.h>
3399 void catch() { exit(1); }
3400 int main(void) {
3401 signal(SIGSEGV, catch); // catch segfault
3402 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
3403 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
3404 return 0;
3407 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3408 _def_gif_4='#define HAVE_GIF_4 1'
3409 _gif="yes"
3411 else
3412 _def_gif='#undef HAVE_GIF'
3413 _def_gif_4='#undef HAVE_GIF_4'
3414 _novomodules="gif89a $_novomodules"
3415 _nocodecmodules="gif $_codecmodules"
3416 _mkf_gif="no"
3418 echores "$_gif"
3421 case "$_gif" in yes*)
3422 echocheck "broken giflib workaround"
3423 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
3425 cat > $TMPC << EOF
3426 #include <gif_lib.h>
3427 int main(void) {
3428 GifFileType gif;
3429 printf("UserData is at address %p\n", gif.UserData);
3430 return 0;
3433 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3434 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
3435 echores "disabled"
3436 else
3437 echores "enabled"
3440 esac
3443 if test "$_vesa" != no ; then
3444 echocheck "VESA support"
3445 if x86 && linux ; then
3446 _def_vesa='#define HAVE_VESA 1'
3447 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
3448 _vomodules="vesa $_vomodules"
3449 echores "yes"
3450 else
3451 _def_vesa='#undef HAVE_VESA'
3452 _novomodules="vesa $_novomodules"
3453 echores "no (not supported on this OS/architecture)"
3455 else
3456 _def_vesa='#undef HAVE_VESA'
3460 #################
3461 # VIDEO + AUDIO #
3462 #################
3465 echocheck "SDL"
3466 if test -z "$_sdlconfig" ; then
3467 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
3468 _sdlconfig="sdl-config"
3469 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
3470 _sdlconfig="sdl11-config"
3471 else
3472 _sdlconfig=false
3475 if test "$_sdl" = auto || test "$_sdl" = yes ; then
3476 cat > $TMPC << EOF
3477 #include <SDL.h>
3478 int main(int argc, char *argv[]) { return 0; }
3480 _sdl=no
3481 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
3482 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
3483 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
3484 if test "$_sdlversion" -gt 116 ; then
3485 if test "$_sdlversion" -lt 121 ; then
3486 _def_sdlbuggy='#define BUGGY_SDL'
3487 else
3488 _def_sdlbuggy='#undef BUGGY_SDL'
3490 _sdl=yes
3491 else
3492 _sdl=outdated
3497 if test "$_sdl" = yes ; then
3498 _def_sdl='#define HAVE_SDL 1'
3499 if cygwin ; then
3500 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
3501 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
3502 else
3503 _ld_sdl=`$_sdlconfig --libs`
3504 _inc_sdl=`$_sdlconfig --cflags`
3506 _vosrc="$_vosrc vo_sdl.c"
3507 _vomodules="sdl $_vomodules"
3508 _aosrc="$_aosrc ao_sdl.c"
3509 _aomodules="sdl $_aomodules"
3510 echores "yes (using $_sdlconfig)"
3511 else
3512 _def_sdl='#undef HAVE_SDL'
3513 _novomodules="sdl $_novomodules"
3514 _noaomodules="sdl $_noaomodules"
3515 echores "no"
3518 echocheck "Windows waveout"
3519 if test "$_win32waveout" = auto ; then
3520 cat > $TMPC << EOF
3521 #include <windows.h>
3522 #include <mmsystem.h>
3523 int main(void) { return 0; }
3525 _win32waveout=no
3526 cc_check -lwinmm && _win32waveout=yes
3528 if test "$_win32waveout" = yes ; then
3529 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
3530 _ld_win32libs="-lwinmm $_ld_win32libs"
3531 _aosrc="$_aosrc ao_win32.c"
3532 _aomodules="win32 $_aomodules"
3533 else
3534 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
3535 _noaomodules="win32 $_noaomodules"
3537 echores "$_win32waveout"
3539 echocheck "Directx"
3540 if test "$_directx" = auto ; then
3541 cat > $TMPC << EOF
3542 #include <windows.h>
3543 #include <ddraw.h>
3544 int main(void) { return 0; }
3546 _directx=no
3547 cc_check -lgdi32 && _directx=yes
3549 if test "$_directx" = yes ; then
3550 _def_directx='#define HAVE_DIRECTX 1'
3551 _ld_win32libs="-lgdi32 $_ld_win32libs"
3552 _vosrc="$_vosrc vo_directx.c"
3553 _vomodules="directx $_vomodules"
3554 else
3555 _def_directx='#undef HAVE_DIRECTX'
3556 _novomodules="directx $_novomodules"
3558 echores "$_directx"
3560 echocheck "NAS"
3561 if test "$_nas" = auto || test "$_nas" = yes ; then
3562 cat > $TMPC << EOF
3563 #include <audio/audiolib.h>
3564 int main(void) { return 0; }
3566 _nas=no
3567 cc_check -laudio $_inc_x11 -lXt $_ld_x11 -lm && _nas=yes
3569 if test "$_nas" = yes ; then
3570 _def_nas='#define HAVE_NAS 1'
3571 _ld_nas="-laudio -lXt $_ld_x11"
3572 _aosrc="$_aosrc ao_nas.c"
3573 _aomodules="nas $_aomodules"
3574 else
3575 _noaomodules="nas $_noaomodules"
3576 _def_nas='#undef HAVE_NAS'
3578 echores "$_nas"
3580 echocheck "DXR2"
3581 if test "$_dxr2" = auto; then
3582 _dxr2=no
3583 for _inc_dxr2 in "$_inc_dxr2" \
3584 "-I/usr/local/include/dxr2" \
3585 "-I/usr/include/dxr2"; do
3586 cat > $TMPC << EOF
3587 #include <dxr2ioctl.h>
3588 int main(void) { return 0; }
3590 cc_check $_inc_dxr2 && _dxr2=yes && break
3591 done
3593 if test "$_dxr2" = yes; then
3594 _def_dxr2='#define HAVE_DXR2 1'
3595 _vosrc="$_vosrc vo_dxr2.c"
3596 _aosrc="$_aosrc ao_dxr2.c"
3597 _aomodules="dxr2 $_aomodules"
3598 _vomodules="dxr2 $_vomodules"
3599 echores "yes (using $_inc_dxr2)"
3600 else
3601 _def_dxr2='#undef HAVE_DXR2'
3602 _noaomodules="dxr2 $_noaomodules"
3603 _novomodules="dxr2 $_novomodules"
3604 _inc_dxr2=""
3605 echores "no"
3608 echocheck "DXR3/H+"
3609 if test "$_dxr3" = auto ; then
3610 cat > $TMPC << EOF
3611 #include <linux/em8300.h>
3612 int main(void) { return 0; }
3614 _dxr3=no
3615 cc_check && _dxr3=yes
3617 if test "$_dxr3" = yes ; then
3618 _def_dxr3='#define HAVE_DXR3 1'
3619 _vosrc="$_vosrc vo_dxr3.c"
3620 _vomodules="dxr3 $_vomodules"
3621 else
3622 _def_dxr3='#undef HAVE_DXR3'
3623 _novomodules="dxr3 $_novomodules"
3624 if test "$_mp1e" = auto ; then
3625 # we don't need mp1e
3626 _mp1e=no
3629 echores "$_dxr3"
3631 echocheck "libmp1e"
3632 if test "$_mmx" = no ; then
3633 # mp1e REQUIRES mmx!
3634 _mp1e=no
3636 if test "$_mp1e" != no ; then
3637 _mp1e=yes
3638 _def_mp1e='#define USE_MP1E'
3639 _ld_mp1e='libmp1e/libmp1e.a'
3640 _dep_mp1e='libmp1e/libmp1e.a'
3641 else
3642 _mp1e=no
3643 _def_mp1e='#undef USE_MP1E'
3644 _ld_mp1e=""
3645 _dep_mp1e=''
3647 echores "$_mp1e"
3650 echocheck "libfame"
3651 if test "$_fame" = auto ; then
3652 _fame=no
3653 test "$_dxr2" = yes && _fame=auto
3654 test "$_dxr3" = yes && _fame=auto
3655 test "$_dvb" = yes && _fame=auto
3657 if test "$_fame" = auto ; then
3658 _fame=no
3659 if test -d libfame && test -f libfame/fame.h ; then
3660 # disable fame on cygwin as no sense to port - atmos
3661 cygwin || _fame=yes
3662 echores $_fame
3663 else
3664 echores "no (no fame dir)"
3666 else
3667 echores "$_fame"
3670 _def_fame='#undef USE_LIBFAME'
3671 if test "$_fame" = yes ; then
3672 _def_fame='#define USE_LIBFAME 1'
3673 _ld_fame='libfame/libfame.a'
3677 #########
3678 # AUDIO #
3679 #########
3682 echocheck "OSS Audio"
3683 if test "$_ossaudio" = auto ; then
3684 cat > $TMPC << EOF
3685 #include <sys/ioctl.h>
3686 $_inc_soundcard
3687 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
3689 _ossaudio=no
3690 cc_check && _ossaudio=yes
3692 if test "$_ossaudio" = yes ; then
3693 _def_ossaudio='#define USE_OSS_AUDIO 1'
3694 _aosrc="$_aosrc ao_oss.c"
3695 _aomodules="oss $_aomodules"
3696 if test "$_linux_devfs" = yes; then
3697 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
3698 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
3699 else
3700 cat > $TMPC << EOF
3701 #include <sys/ioctl.h>
3702 $_inc_soundcard
3703 #ifdef OPEN_SOUND_SYSTEM
3704 int main(void) { return 0; }
3705 #else
3706 #error Not the real thing
3707 #endif
3709 _real_ossaudio=no
3710 cc_check && _real_ossaudio=yes
3711 if test "$_real_ossaudio" = yes; then
3712 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3713 elif netbsd || openbsd ; then
3714 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
3715 _ld_arch="$_ld_arch -lossaudio"
3716 else
3717 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3719 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
3721 else
3722 _def_ossaudio='#undef USE_OSS_AUDIO'
3723 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
3724 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
3725 _noaomodules="oss $_noaomodules"
3727 echores "$_ossaudio"
3730 echocheck "aRts"
3731 if test "$_arts" = auto ; then
3732 _arts=no
3733 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
3735 cat > $TMPC << EOF
3736 #include <artsc.h>
3737 int main(void) { return 0; }
3739 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
3744 if test "$_arts" = yes ; then
3745 _def_arts='#define USE_ARTS 1'
3746 _aosrc="$_aosrc ao_arts.c"
3747 _aomodules="arts $_aomodules"
3748 _ld_arts=`artsc-config --libs`
3749 _inc_arts=`artsc-config --cflags`
3750 else
3751 _noaomodules="arts $_noaomodules"
3753 echores "$_arts"
3756 echocheck "EsounD"
3757 if test "$_esd" = auto ; then
3758 _esd=no
3759 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
3761 cat > $TMPC << EOF
3762 #include <esd.h>
3763 int main(void) { return 0; }
3765 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
3769 echores "$_esd"
3771 if test "$_esd" = yes ; then
3772 _def_esd='#define USE_ESD 1'
3773 _aosrc="$_aosrc ao_esd.c"
3774 _aomodules="esd $_aomodules"
3775 _ld_esd=`esd-config --libs`
3776 _inc_esd=`esd-config --cflags`
3778 echocheck "esd_get_latency()"
3779 cat > $TMPC << EOF
3780 #include <esd.h>
3781 int main(void) { return esd_get_latency(0); }
3783 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
3784 echores "$_esd_latency"
3785 else
3786 _def_esd='#undef USE_ESD'
3787 _def_esd_latency='#undef HAVE_ESD_LATENCY'
3788 _noaomodules="esd $_noaomodules"
3791 echocheck "ALSA audio"
3792 if test "$_alsa" != no ; then
3793 _alsa=no
3794 cat > $TMPC << EOF
3795 #include <sys/asoundlib.h>
3796 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
3798 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
3800 cat > $TMPC << EOF
3801 #include <sys/asoundlib.h>
3802 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3804 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
3805 cat > $TMPC << EOF
3806 #include <alsa/asoundlib.h>
3807 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3809 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
3811 _def_alsa5='#undef HAVE_ALSA5'
3812 _def_alsa9='#undef HAVE_ALSA9'
3813 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
3814 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
3815 if test "$_alsaver" ; then
3816 if test "$_alsaver" = '0.5.x' ; then
3817 _aosrc="$_aosrc ao_alsa5.c"
3818 _aomodules="alsa5 $_aomodules"
3819 _def_alsa5='#define HAVE_ALSA5 1'
3820 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3821 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
3822 elif test "$_alsaver" = '0.9.x-sys' ; then
3823 _aosrc="$_aosrc ao_alsa9.c"
3824 _aomodules="alsa9 $_aomodules"
3825 _def_alsa9='#define HAVE_ALSA9 1'
3826 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3827 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
3828 elif test "$_alsaver" = '0.9.x-alsa' ; then
3829 _aosrc="$_aosrc ao_alsa9.c"
3830 _aomodules="alsa9 $_aomodules"
3831 _def_alsa9='#define HAVE_ALSA9 1'
3832 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
3833 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
3835 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
3836 else
3837 _noaomodules="alsa $_noaomodules"
3838 echores "no"
3842 echocheck "Sun audio"
3843 if test "$_sunaudio" = auto ; then
3844 cat > $TMPC << EOF
3845 #include <sys/types.h>
3846 #include <sys/audioio.h>
3847 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
3849 _sunaudio=no
3850 cc_check && _sunaudio=yes
3852 if test "$_sunaudio" = yes ; then
3853 _def_sunaudio='#define USE_SUN_AUDIO 1'
3854 _aosrc="$_aosrc ao_sun.c"
3855 _aomodules="sun $_aomodules"
3856 else
3857 _def_sunaudio='#undef USE_SUN_AUDIO'
3858 _noaomodules="sun $_noaomodules"
3860 echores "$_sunaudio"
3863 echocheck "Sun mediaLib"
3864 if test "$_mlib" = auto ; then
3865 _mlib=no
3866 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
3867 cat > $TMPC << EOF
3868 #include <mlib.h>
3869 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
3871 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
3873 if test "$_mlib" = yes ; then
3874 _def_mlib='#define HAVE_MLIB 1'
3875 _inc_mlib=" -I${_mlibdir}/include "
3876 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
3877 else
3878 _def_mlib='#undef HAVE_MLIB'
3880 echores "$_mlib"
3883 echocheck "SGI audio"
3884 if test "$_sgiaudio" = auto ; then
3885 # check for SGI audio
3886 cat > $TMPC << EOF
3887 #include <dmedia/audio.h>
3888 int main(void) { return 0; }
3890 _sgiaudio=no
3891 cc_check && _sgiaudio=yes
3893 if test "$_sgiaudio" = "yes" ; then
3894 _def_sgiaudio='#define USE_SGI_AUDIO 1'
3895 _ld_sgiaudio='-laudio'
3896 _aosrc="$_aosrc ao_sgi.c"
3897 _aomodules="sgi $_aomodules"
3898 else
3899 _def_sgiaudio='#undef USE_SGI_AUDIO'
3900 _noaomodules="sgi $_noaomodules"
3902 echores "$_sgiaudio"
3905 echocheck "VCD support"
3906 if linux || bsdos || freebsd || netbsd || sunos ; then
3907 _inputmodules="vcd $_inputmodules"
3908 _def_vcd='#define HAVE_VCD 1'
3909 echores "ok"
3910 else
3911 _def_vcd='#undef HAVE_VCD'
3912 _noinputmodules="vcd $_noinputmodules"
3913 echores "not supported on this OS"
3916 echocheck "DVD support (libmpdvdkit)"
3917 if test "$_dvdkit" = auto ; then
3918 _dvdkit=no
3919 if linux || freebsd || netbsd || darwin || cygwin || mingw32 || openbsd || sunos || hpux; then
3920 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
3921 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
3924 if test "$_dvdkit" = yes ; then
3925 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
3926 if test -f "./libmpdvdkit2/Makefile" ; then
3927 _inputmodules="mpdvdkit2 $_inputmodules"
3928 _dvdread=libmpdvdkit2
3929 _dvdkit2=yes
3930 _dvdkit=no
3931 else
3932 _inputmodules="mpdvdkit $_inputmodules"
3933 _dvdread=libmpdvdkit
3935 else
3936 _noinputmodules="mpdvdkit $_noinputmodules"
3938 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
3939 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
3940 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
3941 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
3942 if linux || netbsd || openbsd || bsdos ; then
3943 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
3944 if openbsd ; then
3945 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
3947 else
3948 if freebsd ; then
3949 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
3950 else
3951 if darwin ; then
3952 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
3956 else
3957 _noinputmodules="mpdvdkit $_noinputmodules"
3959 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
3960 echores "yes"
3961 else
3962 echores "no"
3965 echocheck "DVD support (libcss - old style)"
3966 if test "$_css" = auto ; then
3967 cat > $TMPC <<EOF
3968 #include <sys/types.h>
3969 #include <css.h>
3970 int main(void) { (void) CSSisEncrypted(0); return 0; }
3972 _css=no
3973 cc_check -lcss $_ld_dl && _css=yes
3975 if test "$_css" = yes ; then
3976 _def_css='#define HAVE_LIBCSS 1'
3977 test "$_csslibdir" && _ld_css="-L${_csslibdir} $_ld_css"
3978 _inputmodules="dvdcss $_inputmodules"
3979 _largefiles=yes
3980 echores "yes"
3981 else
3982 _def_css='#undef HAVE_LIBCSS'
3983 _noinputmodules="dvdcss $_noinputmodules"
3984 echores "no"
3987 echocheck "DVD support (libdvdread - new style)"
3988 if test "$_dvdread" = auto ; then
3989 cat > $TMPC << EOF
3990 #include <inttypes.h>
3991 #include <dvdread/dvd_reader.h>
3992 #include <dvdread/ifo_types.h>
3993 #include <dvdread/ifo_read.h>
3994 #include <dvdread/nav_read.h>
3995 int main(void) { return 0; }
3997 _dvdread=no
3998 if test "$_dl" = yes; then
3999 cc_check \
4000 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4001 _dvdread=yes
4004 _def_mpdvdkit="#undef USE_MPDVDKIT"
4005 case "$_dvdread" in
4006 yes)
4007 _largefiles=yes
4008 _def_dvdread='#define USE_DVDREAD 1'
4009 _ld_css='-ldvdread'
4010 _inputmodules="dvdread $_inputmodules"
4011 echores "yes"
4014 _def_dvdread='#undef USE_DVDREAD'
4015 _noinputmodules="dvdread $_noinputmodules"
4016 echores "no"
4018 libmpdvdkit)
4019 _largefiles=yes
4020 _def_dvdread='#define USE_DVDREAD 1'
4021 _ld_css='-Llibmpdvdkit -lmpdvdkit'
4022 _noinputmodules="dvdread $_noinputmodules"
4023 _def_mpdvdkit="#define USE_MPDVDKIT 1"
4024 echores "disabled by libmpdvdkit"
4026 libmpdvdkit2)
4027 _largefiles=yes
4028 _def_dvdread='#define USE_DVDREAD 1'
4029 _ld_css='-Llibmpdvdkit2 -lmpdvdkit'
4030 _noinputmodules="dvdread $_noinputmodules"
4031 _def_mpdvdkit="#define USE_MPDVDKIT 2"
4032 echores "disabled by libmpdvdkit2"
4034 esac
4036 # dvdnav disabled, it does not work
4037 # echocheck "DVD support (libdvdnav)"
4038 # if test "$_dvdnav" = yes ; then
4039 # cat > $TMPC <<EOF
4040 # #include <dvdnav.h>
4041 # int main(void) { dvdnav_t *dvd=0; return 0; }
4042 # EOF
4043 # _dvdnav=no
4044 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4045 # if test -z "$_dvdnavconfig" ; then
4046 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4047 # _dvdnavconfig="dvdnav-config"
4048 # fi
4049 # fi
4050 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4051 # _used_css=
4052 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4053 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4054 # fi
4055 # if test "$_dvdnav" = yes ; then
4056 # _largefiles=yes
4057 # _def_dvdnav='#define USE_DVDNAV 1'
4058 # if test -n "$_legal_dvdnavdir" ; then
4059 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4060 # elif test -n "$_dvdnavconfig" ; then
4061 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4062 # else
4063 # _ld_css="$_ld_css -ldvdnav"
4064 # fi
4065 # if test -n "$_dvdnavconfig" ; then
4066 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
4067 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
4068 # fi
4069 # if test -n "$_dvdnavdir" ; then
4070 # _inc_extra="$_inc_extra -I$_dvdnavdir"
4071 # fi
4072 # _inputmodules="dvdnav $_inputmodules"
4073 # echores "yes"
4074 # else
4075 # _def_dvdnav='#undef USE_DVDNAV'
4076 # _noinputmodules="dvdnav $_noinputmodules"
4077 # echores "no"
4078 # fi
4080 echocheck "cdparanoia"
4081 if test "$_cdparanoia" = auto ; then
4082 cat > $TMPC <<EOF
4083 #include <cdda_interface.h>
4084 #include <cdda_paranoia.h>
4085 // This need a better test. How ?
4086 int main(void) { return 1; }
4088 _cdparanoia=no
4089 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4090 _cdparanoia=yes
4091 else
4092 for I in /usr/include/cdda /usr/local/include/cdda ; do
4093 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4094 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
4096 done
4099 if test "$_cdparanoia" = yes ; then
4100 _def_cdparanoia='#define HAVE_CDDA'
4101 _inputmodules="cdda $_inputmodules"
4102 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
4103 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
4104 else
4105 _def_cdparanoia='#undef HAVE_CDDA'
4106 _noinputmodules="cdda $_noinputmodules"
4108 echores "$_cdparanoia"
4110 echocheck "freetype >= 2.0.9"
4111 if test "$_freetype" = auto ; then
4112 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
4113 cat > $TMPC << EOF
4114 #include <stdio.h>
4115 #include <freetype/freetype.h>
4116 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
4117 #error "Need FreeType 2.0.9 or newer"
4118 #endif
4119 int main()
4121 FT_Library library;
4122 FT_Int major=-1,minor=-1,patch=-1;
4123 int err=FT_Init_FreeType(&library);
4124 if(err){
4125 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
4126 exit(err);
4128 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
4129 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
4130 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
4131 (int)major,(int)minor,(int)patch );
4132 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
4133 printf("Library and header version mismatch! Fix it in your distribution!\n");
4134 exit(1);
4136 return 0;
4139 _freetype=no
4140 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
4141 else
4142 _freetype=no
4145 if test "$_freetype" = yes ; then
4146 _def_freetype='#define HAVE_FREETYPE'
4147 _inc_freetype=`$_freetypeconfig --cflags`
4148 _ld_freetype=`$_freetypeconfig --libs`
4149 else
4150 _def_freetype='#undef HAVE_FREETYPE'
4152 echores "$_freetype"
4155 echocheck "fribidi with charsets"
4156 if test "$_fribidi" = yes ; then
4157 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
4158 cat > $TMPC << EOF
4159 #include <stdio.h>
4160 #include <fribidi/fribidi.h>
4161 int main()
4163 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
4164 printf("Fribidi headers are not consistents with the library!\n");
4165 exit(1);
4167 return 0;
4170 _fribidi=no
4171 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
4172 else
4173 _fribidi=no
4176 if test "$_fribidi" = yes ; then
4177 _def_fribidi='#define USE_FRIBIDI'
4178 _inc_fribidi=`$_fribidiconfig --cflags`
4179 _ld_fribidi=`$_fribidiconfig --libs`
4180 else
4181 _def_fribidi='#undef USE_FRIBIDI'
4183 echores "$_fribidi"
4186 echocheck "zlib"
4187 cat > $TMPC << EOF
4188 #include <zlib.h>
4189 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
4191 _zlib=no
4192 cc_check -lz && _zlib=yes
4193 if test "$_zlib" = yes ; then
4194 _def_zlib='#define HAVE_ZLIB 1'
4195 _ld_zlib='-lz'
4196 else
4197 _def_zlib='#undef HAVE_ZLIB'
4199 echores "$_zlib"
4202 echocheck "RTC"
4203 if linux ; then
4204 if test "$_rtc" = auto ; then
4205 cat > $TMPC << EOF
4206 #include <sys/ioctl.h>
4207 #include <linux/rtc.h>
4208 int main(void) { return RTC_IRQP_READ; }
4210 _rtc=no
4211 cc_check && _rtc=yes
4213 echores "$_rtc"
4214 else
4215 _rtc=no
4216 echores "no (Linux specific feature)"
4218 if test "$_rtc" = yes ; then
4219 _def_rtc='#define HAVE_RTC 1'
4220 else
4221 _def_rtc='#undef HAVE_RTC'
4225 echocheck "external liblzo support"
4226 if test "$_liblzo" = auto ; then
4227 _liblzo=no
4228 cat > $TMPC << EOF
4229 #include <lzo1x.h>
4230 int main(void) { lzo_init();return 0; }
4232 cc_check -llzo && _liblzo=yes
4234 if test "$_liblzo" = yes ; then
4235 _def_liblzo='#define USE_LIBLZO 1'
4236 _ld_liblzo='-llzo'
4237 _codecmodules="liblzo $_codecmodules"
4238 else
4239 _def_liblzo='#undef USE_LIBLZO'
4240 _nocodecmodules="liblzo $_nocodecmodules"
4242 echores "$_liblzo"
4245 echocheck "mad support"
4246 if test "$_mad" = auto ; then
4247 _mad=no
4248 cat > $TMPC << EOF
4249 #include <mad.h>
4250 int main(void) { return 0; }
4252 cc_check $_madlibdir -lmad && _mad=yes
4254 if test "$_mad" = yes ; then
4255 _def_mad='#define USE_LIBMAD 1'
4256 _ld_mad='-lmad'
4257 _codecmodules="libmad $_codecmodules"
4258 else
4259 _def_mad='#undef USE_LIBMAD'
4260 _nocodecmodules="libmad $_nocodecmodules"
4262 echores "$_mad"
4265 echocheck "OggVorbis support"
4266 if test "$_vorbis" = auto ; then
4267 _vorbis=no
4268 cat > $TMPC << EOF
4269 #include <vorbis/codec.h>
4270 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
4272 cc_check -lvorbis -logg -lm && _vorbis=yes
4274 if test "$_vorbis" = yes ; then
4275 _def_vorbis='#define HAVE_OGGVORBIS 1'
4276 if test "$_tremor" = yes ; then
4277 _def_tremor='#define TREMOR 1'
4278 _ld_vorbis='-lvorbisidec'
4279 else
4280 _def_tremor='#undef TREMOR'
4281 _ld_vorbis='-lvorbis -logg'
4283 _codecmodules="libvorbis $_codecmodules"
4284 else
4285 _def_vorbis='#undef HAVE_OGGVORBIS'
4286 _def_tremor='#undef TREMOR'
4287 _nocodecmodules="libvorbis $_nocodecmodules"
4289 if test "$_vorbis" = yes -a "$_tremor" = yes ; then
4290 echores "$_vorbis (Tremor)"
4291 else
4292 echores "$_vorbis"
4295 echocheck "OggTheora support (only the CVS version!)"
4296 if test "$_theora" = auto ; then
4297 _theora=no
4298 cat > $TMPC << EOF
4299 #include <theora/theora.h>
4300 #include <string.h>
4301 int main(void)
4303 /* theora is in flux, make sure that all interface routines and
4304 * datatypes exist and work the way we expect it, so we don't break
4305 * mplayer */
4306 ogg_packet op;
4307 theora_comment tc;
4308 theora_info inf;
4309 theora_state st;
4310 yuv_buffer yuv;
4311 int r;
4312 double t;
4314 theora_info_init (&inf);
4315 theora_comment_init (&tc);
4317 return 0;
4319 /* we don't want to execute this kind of nonsense; just for making sure
4320 * that compilation works... */
4321 memset(&op, 0, sizeof(op));
4322 r = theora_decode_header (&inf, &tc, &op);
4323 r = theora_decode_init (&st, &inf);
4324 t = theora_granule_time (&st, op.granulepos);
4325 r = theora_decode_packetin (&st, &op);
4326 r = theora_decode_YUVout (&st, &yuv);
4327 theora_clear (&st);
4329 return 0;
4332 cc_check -ltheora -logg -lm && _theora=yes
4334 if test "$_theora" = yes ; then
4335 _def_theora='#define HAVE_OGGTHEORA 1'
4336 _codecmodules="libtheora $_codecmodules"
4337 _ld_theora="-ltheora -logg"
4338 else
4339 _def_theora='#undef HAVE_OGGTHEORA'
4340 _nocodecmodules="libtheora $_nocodecmodules"
4342 echores "$_theora"
4345 echocheck "Matroska support (0.5.0 or later)"
4346 if test "$_matroska" != no ; then
4347 _matroska=no
4348 _TMPC=$TMPC
4349 TMPC=${TMPC}pp
4350 cat > $TMPC << EOF
4351 #include <ebml/EbmlVersion.h>
4352 #include <matroska/KaxVersion.h>
4354 #if LIBEBML_VERSION < 000500
4355 #error libebml is too old
4356 #endif
4358 #if LIBMATROSKA_VERSION < 000500
4359 #error libmatroska is too old
4360 #endif
4362 int main(void) { return 0; }
4364 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4365 if test "$_matroska" = no ; then
4366 _saved_inc_extra=$_inc_extra
4367 _inc_extra="$_inc_extra -I/usr/local/include"
4368 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4369 if test "$_matroska" = no ; then
4370 _inc_extra=$_saved_inc_extra
4373 TMPC=$_TMPC
4375 if test "$_matroska" = yes ; then
4376 _def_matroska='#define HAVE_MATROSKA 1'
4377 _inputmodules="matroska $_inputmodules"
4378 _ld_matroska="-lmatroska -lebml -lstdc++"
4379 else
4380 _def_matroska='#undef HAVE_MATROSKA'
4381 _noinputmodules="matroska $_noinputmodules"
4383 echores "$_matroska"
4385 echocheck "faad2 (AAC) support"
4386 _def_faad_internal="#undef USE_INTERNAL_FAAD"
4387 if test "$_faad" = no ; then
4388 echores "no (disabled)"
4389 else
4390 if test "$_faad_local" = no ; then
4391 _ld_faad='-lfaad'
4392 # external faad: check if it's really faad2 :)
4393 if test "$_faad" = auto ; then
4394 _faad=no
4395 cat > $TMPC << EOF
4396 #include <faad.h>
4397 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); return 0; }
4399 cc_check $_inc_faad $_ld_faad -lm && _faad=yes
4401 echores "$_faad (external)"
4402 else
4403 _inc_faad="-I`pwd`/libfaad2"
4404 _faad=yes
4405 # the faad check needs a config.h file
4406 if test -f "config.h" ; then
4407 _rm_config_h=no
4408 else
4409 _rm_config_h=yes
4410 echo "" > config.h
4412 # internal faad: check if our dear gcc is able to compile it...
4413 echo "$_cc -c -O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer $CFLAGS $_inc_faad $_inc_extra `pwd`/libfaad2/cfft.c -o $TMPO" >> "$TMPLOG"
4414 if ( $_cc -c -O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer $CFLAGS $_inc_faad $_inc_extra "`pwd`/libfaad2/cfft.c" -o "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
4415 echores "$_faad (internal)"
4416 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
4417 else
4418 _faad=no
4419 _faad_local=no
4420 echores "no (broken gcc)"
4422 # remove a temporarily config.h, which was needed for the faad compile check
4423 if test "$_rm_config_h" = yes; then
4424 rm config.h
4429 if test "$_faad" = yes; then
4430 echocheck "faad2 version"
4431 cat > $TMPC <<EOF
4432 #include <faad.h>
4433 #ifndef FAAD_MIN_STREAMSIZE
4434 #error Too old version
4435 #endif
4436 int main(void) {
4437 #ifdef FAAD2_VERSION
4438 printf("%s\n",FAAD2_VERSION);
4439 #else
4440 printf("1.0\n");
4441 #endif
4442 return 0;
4445 if cc_check $_inc_faad $_ld_faad -lm && "$TMPO" >> "$TMPLOG" ; then
4446 _faad_version=`"$TMPO"`
4447 _faad_tempversion=`"$TMPO" | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1\2/'`
4448 _def_faad_version="#define FAADVERSION $_faad_tempversion"
4449 echores "$_faad_version"
4450 else
4451 _faad=no
4452 echores "failed to get version"
4456 if test "$_faad" = yes ; then
4457 _def_faad='#define HAVE_FAAD 1'
4458 _codecmodules="faad2 $_codecmodules"
4459 else
4460 _def_faad='#undef HAVE_FAAD'
4461 _nocodecmodules="faad2 $_nocodecmodules"
4462 _inc_faad=
4463 _ld_faad=
4468 if test "$_win32" = auto ; then
4469 if x86 ; then
4470 qnx && _win32=no
4471 else
4472 _win32=no # x86 arch only
4476 if test "$_win32" != no ; then
4477 if test -z "$_win32libdir" ; then
4478 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/win32 /usr/lib/win32 ; do
4479 if test -d "$I" ; then
4480 _win32libdir="$I"
4481 break;
4483 done
4487 echocheck "Win32 codec DLL support"
4488 if test "$_win32" = auto ; then
4489 _win32=no
4490 test -n "$_win32libdir" && _win32=yes
4492 if test "$_win32" = yes ; then
4493 _def_win32='#define USE_WIN32DLL 1'
4494 echores "yes (using $_win32libdir)"
4495 else
4496 _def_win32='#undef USE_WIN32DLL'
4497 _nocodecmodules="win32 $_nocodecmodules"
4498 _dshow=no
4499 echores "no"
4502 if test "$_win32" != no ; then
4503 _def_win32_loader='#undef WIN32_LOADER'
4504 echocheck "Win32 loader support"
4505 if not cygwin && not mingw32 ; then
4506 _ld_win32='loader/libloader.a'
4507 _dep_win32='loader/libloader.a'
4508 _codecmodules="win32 $_codecmodules"
4509 if openbsd ; then
4510 x86 && _ld_win32="$_ld_win32 -li386"
4512 _def_win32_loader='#define WIN32_LOADER 1'
4513 echores "yes"
4514 else
4515 _ld_win32='loader/driver.o loader/vfl.o loader/afl.o'
4516 _dep_win32='loader/driver.o loader/vfl.o loader/afl.o'
4517 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
4518 _codecmodules="win32 $_codecmodules"
4519 echores "no (using native windows)"
4523 echocheck "DirectShow"
4524 if false ; then
4526 if test "$_dshow" != no ; then
4527 _dshow=no
4528 # check if compiler supports C++ and C++-libs are installed correctly
4529 cat > "$TMPCPP" << EOF
4530 #include <string>
4531 class myclass {
4532 private: int ret;
4533 public: int myreturn(void);
4535 int myclass::myreturn(void) { ret = 0; return ret ; }
4536 int main(void) { myclass myobject; return myobject.myreturn(); }
4538 echo "------------------------------------------------" >> "$TMPLOG"
4539 cat "$TMPCPP" >> "$TMPLOG"
4540 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
4541 _dshow=yes
4542 echores "yes (C++ is ok)"
4543 else
4544 echores "no"
4545 cat << EOF
4547 Your C++ runtime environment is broken.
4549 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
4550 Are the C++ libraries correctly installed?
4551 Check for libstdc++ and in (/etc/)ld.so.conf.
4553 If you do not need DirectShow support, you can also use:
4554 ./configure --disable-dshow <your-normal-configure-options>
4555 to disable building the C++ based DirectShow code.
4558 die "$_cc's C++ is broken"
4564 echores "$_dshow"
4566 if test "$_dshow" = yes ; then
4567 _def_dshow='#define USE_DIRECTSHOW 1'
4568 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4569 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4570 _codecmodules="dshow/dmo $_codecmodules"
4571 else
4572 _def_dshow='#undef USE_DIRECTSHOW'
4573 _nocodecmodules="dshow/dmo $_nocodecmodules"
4577 echocheck "XAnim DLL"
4578 if test "$_xanim" = auto ; then
4579 _xanim=no
4580 if test "$_dl" = yes ; then
4581 if test -z "$_xanimlibdir" ; then
4582 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
4583 if test -d "$I" ; then
4584 _xanimlibdir="$I"
4585 break;
4587 done
4589 test "$_xanimlibdir" && _xanim=yes
4590 if test "$_xanim" = yes ; then
4591 echores "yes (using $_xanimlibdir)"
4592 else
4593 echores "no (no suitable directory found - see DOCS/en/codecs.html)"
4595 else
4596 echores "no (dynamic loader support needed)"
4598 else
4599 echores "$_xanim (using $_xanimlibdir)"
4601 if test "$_xanim" = yes ; then
4602 _def_xanim='#define USE_XANIM 1'
4603 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
4604 _codecmodules="xanim $_codecmodules"
4605 else
4606 _def_xanim='#undef USE_XANIM'
4607 _def_xanim_path='#undef XACODEC_PATH'
4608 _nocodecmodules="xanim $_nocodecmodules"
4611 echocheck "RealPlayer DLL"
4612 if test "$_real" = auto ; then
4613 _real=no
4614 if test "$_dl" = yes || test "$_win32" = yes ; then
4615 # if test "$_dl" = yes ; then
4616 if linux || freebsd || netbsd || cygwin || mingw32 ; then
4617 _real=yes
4618 else
4619 echores "no (tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW)"
4621 if test "$_real" = yes ; then
4622 if test -z "$_reallibdir" ; then
4623 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
4624 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
4625 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
4626 "$_win32libdir"; do
4627 if test -d "$I" ; then
4628 _reallibdir="$I"
4629 break
4631 done
4633 test "$_reallibdir" || _real=no
4634 if test "$_real" = yes ; then
4635 echores "yes (using $_reallibdir)"
4636 else
4637 echores "no (no suitable directory found - see DOCS/en/codecs.html)"
4640 else
4641 echores "no (dynamic loader support needed)"
4643 else
4644 echores "$_real (using $_reallibdir)"
4646 if test "$_real" = yes ; then
4647 _def_real='#define USE_REALCODECS 1'
4648 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
4649 _codecmodules="real $_codecmodules"
4650 else
4651 _def_real='#undef USE_REALCODECS'
4652 _def_real_path="#undef REALCODEC_PATH"
4653 _nocodecmodules="real $_nocodecmodules"
4657 if test -z "$_livelibdir" ; then
4658 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
4659 if test -d "$I" ; then
4660 _livelibdir="$I"
4661 break;
4663 done
4666 echocheck "LIVE.COM Streaming Media libraries"
4667 if test "$_live" = auto && test "$_network" = yes ; then
4668 _live=yes
4669 test "$_livelibdir" || _live=no
4670 # TODO: deeper, more reliable test of libs, and version!
4671 # (users may have empty live/ dir or something different there, for
4672 # example 'live config files', or they may have old, incompatibel version)
4674 if test "$_live" = yes && test "$_network" = yes ; then
4675 echores "yes (using $_livelibdir)"
4676 _def_live='#define STREAMING_LIVE_DOT_COM 1'
4677 _live_libs_def="# LIVE.COM Streaming Media libraries:
4678 LIVE_LIB_DIR = $_livelibdir
4679 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
4680 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
4681 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
4682 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
4683 LIVE_LIBS += -lstdc++"
4684 _ld_live='$(LIVE_LIBS)'
4685 _inputmodules="live.com $_inputmodules"
4686 else
4687 echores "no"
4688 _def_live='#undef STREAMING_LIVE_DOT_COM'
4689 _noinputmodules="live.com $_noinputmodules"
4693 echocheck "iconv"
4694 if test "$_iconv" = auto ; then
4695 _iconv_tmp='#include <iconv.h>'
4697 cat > $TMPC << EOF
4698 #include <stdio.h>
4699 #include <unistd.h>
4700 $_iconv_tmp
4701 #define INBUFSIZE 1024
4702 #define OUTBUFSIZE 4096
4704 char inbuffer[INBUFSIZE];
4705 char outbuffer[OUTBUFSIZE];
4707 int main(void) {
4708 size_t numread;
4709 iconv_t icdsc;
4710 char *tocode="UTF-8";
4711 char *fromcode="cp1250";
4712 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
4713 while ((numread = read (0, inbuffer, INBUFSIZE))) {
4714 char *iptr=inbuffer;
4715 char *optr=outbuffer;
4716 size_t inleft=numread;
4717 size_t outleft=OUTBUFSIZE;
4718 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
4719 != (size_t)(-1)) {
4720 write (1, outbuffer, OUTBUFSIZE - outleft);
4723 if (iconv_close(icdsc) == -1)
4728 _iconv=no
4729 if cc_check -lm -liconv ; then
4730 _iconv=yes
4731 _ld_iconv='-liconv'
4732 else
4733 cc_check -lm && _iconv=yes
4736 if test "$_iconv" = yes ; then
4737 _def_iconv='#define USE_ICONV 1'
4738 else
4739 _def_iconv='#undef USE_ICONV'
4741 echores "$_iconv"
4744 echocheck "FFmpeg libavcodec (static)"
4745 if test "$_libavcodec" = auto ; then
4746 # Note: static linking is preferred to dynamic linking
4747 _libavcodec=no
4748 if test -d libavcodec && test -f libavcodec/utils.c ; then
4749 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
4750 _libavcodec=yes
4751 echores "yes"
4752 else
4753 echores "no (old ffmpeg version, use CVS !)"
4755 else
4756 echores "no (see DOCS/en/codecs.html)"
4758 else
4759 echores "$_libavcodec"
4762 if test "$_libavcodec" != yes ; then
4763 echocheck "FFmpeg libavcodec (dynamic)"
4764 if test "$_libavcodecso" = auto ; then
4765 _libavcodecso=no
4766 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
4767 cat > $TMPC << EOF
4768 #define FF_POSTPROCESS 1
4769 #include <ffmpeg/avcodec.h>
4770 int main(void) {
4771 avcodec_find_encoder_by_name("");
4772 return 0;
4775 if cc_check -lavcodec -lm ; then
4776 _libavcodecso=yes
4777 echores "yes (using libavcodec.so)"
4778 else
4779 echores "no (libavcodec.so is broken/obsolete)"
4781 else
4782 echores "$_libavcodecso"
4786 _def_libavcodec='#undef USE_LIBAVCODEC'
4787 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
4788 _def_ffpostprocess='#undef FF_POSTPROCESS'
4789 if test "$_libavcodec" = yes ; then
4790 _def_libavcodec='#define USE_LIBAVCODEC 1'
4791 _ld_libavcodec='libavcodec/libavcodec.a'
4792 _dep_libavcodec='libavcodec/libavcodec.a'
4793 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4794 _codecmodules="libavcodec $_codecmodules"
4795 elif test "$_libavcodecso" = yes ; then
4796 _def_libavcodec='#define USE_LIBAVCODEC 1'
4797 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
4798 _ld_libavcodec='-lavcodec'
4799 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4800 _codecmodules="libavcodec.so $_codecmodules"
4801 else
4802 _nocodecmodules="libavcodec $_nocodecmodules"
4805 echocheck "libdv-0.9.5+"
4806 if test "$_libdv" = auto ; then
4807 _libdv=no
4808 cat > $TMPC <<EOF
4809 #include <libdv/dv.h>
4810 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
4812 cc_check -ldv -lm && _libdv=yes
4814 if test "$_libdv" = yes ; then
4815 _def_libdv='#define HAVE_LIBDV095 1'
4816 _ld_libdv="-ldv"
4817 _codecmodules="libdv $_codecmodules"
4818 else
4819 _def_libdv='#undef HAVE_LIBDV095'
4820 _nocodecmodules="libdv $_nocodecmodules"
4822 echores "$_libdv"
4824 echocheck "zr"
4825 if test "$_zr" = auto ; then
4826 #36067's seem to identify themselves as 36057PQC's, so the line
4827 #below should work for 36067's and 36057's.
4828 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
4829 _zr=yes
4830 else
4831 _zr=no
4834 if test "$_zr" = yes ; then
4835 if test "$_libavcodec" = yes ; then
4836 _def_zr='#define HAVE_ZR 1'
4837 _vosrc="$_vosrc vo_zr.c jpeg_enc.c"
4838 _vomodules="zr $_vomodules"
4839 echores "$_zr"
4840 else
4841 echores "libavcodec (static) is required by zr, sorry"
4842 _novomodules="zr $_novomodules"
4843 _def_zr='#undef HAVE_ZR'
4845 else
4846 _def_zr='#undef HAVE_ZR'
4847 _novomodules="zr $_novomodules"
4848 echores "$_zr"
4851 echocheck "bl"
4852 if test "$_bl" = yes ; then
4853 _def_bl='#define HAVE_BL 1'
4854 _vosrc="$_vosrc vo_bl.c"
4855 _vomodules="bl $_vomodules"
4856 else
4857 _def_bl='#undef HAVE_BL'
4858 _novomodules="bl $_novomodules"
4860 echores "$_bl"
4862 echocheck "XviD"
4863 cat > $TMPC << EOF
4864 #include <xvid.h>
4865 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
4867 if test "$_xvid" != no && cc_check "$_xvidcore" -lm ; then
4868 _xvid=yes
4869 _ld_xvid="$_xvidcore"
4870 _def_xvid='#define HAVE_XVID 1'
4871 _codecmodules="xvid $_codecmodules"
4872 elif test "$_xvid" != no && cc_check -lxvidcore -lm ; then
4873 _xvid=yes
4874 _ld_xvid='-lxvidcore'
4875 _def_xvid='#define HAVE_XVID 1'
4876 _codecmodules="xvid $_codecmodules"
4877 else
4878 _xvid=no
4879 _ld_xvid=''
4880 _def_xvid='#undef HAVE_XVID'
4881 _nocodecmodules="xvid $_nocodecmodules"
4883 echores "$_xvid"
4885 _xvidcompat=no
4886 _def_decore_xvid='#undef DECORE_XVID'
4887 _def_encore_xvid='#undef ENCORE_XVID'
4888 if test "$_xvid" = yes ; then
4889 echocheck "DivX4 compatibility in XviD"
4890 cat > $TMPC << EOF
4891 #include <divx4.h>
4892 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
4894 cc_check -lm "$_ld_xvid" && _xvidcompat=yes
4895 echores "$_xvidcompat"
4899 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
4900 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
4901 cat > $TMPC << EOF
4902 #include <decore.h>
4903 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
4905 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
4906 _opendivx=no
4907 _ld_decore='-ldivxdecore'
4908 _def_decore='#define NEW_DECORE 1'
4909 _def_divx='#define USE_DIVX'
4910 _def_divx5='#undef DECORE_DIVX5'
4911 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4912 _codecmodules="divx4linux $_codecmodules"
4913 echores "DivX4linux (with libdivxdecore.so)"
4914 else
4915 # if test "$_divx4linux" != no ; then
4916 # DivX5 check
4917 # OdivxPP disabled because of:
4918 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
4919 cat > $TMPC << EOF
4920 #include <decore.h>
4921 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
4923 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
4924 _opendivx=no
4925 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
4926 _ld_decore='-ldivxdecore'
4927 _def_decore='#define NEW_DECORE 1'
4928 _def_divx='#define USE_DIVX'
4929 _def_divx5='#define DECORE_DIVX5 1'
4930 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
4931 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4932 _codecmodules="divx5linux $_codecmodules"
4933 _nocodecmodules="divx4linux $_nocodecmodules"
4934 echores "DivX5linux (with libdivxdecore.so)"
4935 elif test "$_opendivx" != no ; then
4936 _opendivx=yes
4937 _ld_decore='opendivx/libdecore.a'
4938 _def_decore='#undef NEW_DECORE'
4939 _def_divx='#define USE_DIVX'
4940 _def_divx5='#undef DECORE_DIVX5'
4941 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
4942 _codecmodules="opendivx $_codecmodules"
4943 _nocodecmodules="divx5linux $_nocodecmodules"
4944 echores "OpenDivX"
4945 elif test "$_xvidcompat" = yes ; then
4946 _opendivx=no
4947 _ld_decore=''
4948 _def_decore='#define NEW_DECORE 1'
4949 _def_divx='#define USE_DIVX 1'
4950 _def_divx5='#undef DECORE_DIVX5'
4951 _def_decore_xvid='#define DECORE_XVID 1'
4952 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4953 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
4954 echores "XviD compat."
4955 else
4956 _opendivx=no
4957 _ld_decore=''
4958 _def_decore='#undef NEW_DECORE'
4959 _def_divx='#undef USE_DIVX'
4960 _def_divx5='#undef DECORE_DIVX5'
4961 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4962 _nocodecmodules="opendivx $_nocodecmodules"
4963 echores "no"
4964 fi # DivX5 check
4968 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
4969 if test "$_mencoder" != no ; then
4971 echocheck "libmp3lame (for mencoder)"
4972 _mp3lame=no
4973 cat > $TMPC <<EOF
4974 #include <lame/lame.h>
4975 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; }
4977 # Note: libmp3lame usually depends on vorbis
4978 cc_check -lmp3lame $_ld_vorbis -lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
4979 if test "$_mp3lame" = yes ; then
4980 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
4981 _ld_mp3lame="-lmp3lame $_ld_vorbis"
4982 else
4983 _def_mp3lame='#undef HAVE_MP3LAME'
4985 echores "$_mp3lame"
4988 echocheck "DivX4linux encore (for mencoder)"
4989 cat > $TMPC << EOF
4990 #include <encore2.h>
4991 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
4993 if test "$_divx4linux" != no && cc_check -ldivxencore -lm ; then
4994 _def_encore='#define HAVE_DIVX4ENCORE 1'
4995 _ld_encore='-ldivxencore'
4996 echores "DivX4linux (with libdivxencore.so)"
4997 elif test "$_xvidcompat" = yes ; then
4998 _def_encore='#define HAVE_DIVX4ENCORE 1'
4999 _ld_encore=''
5000 _def_encore_xvid='#define ENCORE_XVID 1'
5001 echores "XviD compat."
5002 else
5003 _def_encore='#undef HAVE_DIVX4ENCORE'
5004 echores "no"
5009 echocheck "mencoder"
5010 _mencoder_flag='#undef HAVE_MENCODER'
5011 if test "$_mencoder" = yes ; then
5012 _mencoder_flag='#define HAVE_MENCODER'
5014 echores "$_mencoder"
5016 echocheck "fastmemcpy"
5017 # fastmemcpy check is done earlier with tests of CPU & binutils features
5018 if test "$_fastmemcpy" = yes ; then
5019 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
5020 else
5021 _def_fastmemcpy='#undef USE_FASTMEMCPY'
5023 echores "$_fastmemcpy"
5025 echocheck "UniquE RAR File Library"
5026 if test "$_unrarlib" = yes ; then
5027 _def_unrarlib='#define USE_UNRARLIB 1'
5028 else
5029 _def_unrarlib='#undef USE_UNRARLIB'
5031 echores "$_unrarlib"
5033 echocheck "TV interface"
5034 if test "$_tv" = yes ; then
5035 _def_tv='#define USE_TV 1'
5036 _inputmodules="tv $_inputmodules"
5037 else
5038 _noinputmodules="tv $_noinputmodules"
5039 _def_tv='#undef USE_TV'
5041 echores "$_tv"
5043 echocheck "EDL support"
5044 if test "$_edl" = yes ; then
5045 _def_edl='#define USE_EDL'
5046 _inputmodules="edl $_inputmodules"
5047 else
5048 _noinputmodules="edl $_noinputmodules"
5049 _def_edl='#undef USE_EDL'
5051 echores "$_edl"
5053 echocheck "*BSD BrookTree 848 TV interface"
5054 if test "$_tv_bsdbt848" = auto ; then
5055 _tv_bsdbt848=no
5056 if test "$_tv" = yes ; then
5057 cat > $TMPC <<EOF
5058 #include <sys/types.h>
5059 #if defined(__NetBSD__)
5060 #include <dev/ic/bt8xx.h>
5061 #else
5062 #include <machine/ioctl_bt848.h>
5063 #endif
5064 int main(void) { return 0; }
5066 cc_check && _tv_bsdbt848=yes
5069 if test "$_tv_bsdbt848" = yes ; then
5070 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
5071 _inputmodules="tv-bsdbt848 $_inputmodules"
5072 else
5073 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
5074 _noinputmodules="tv-bsdbt848 $_noinputmodules"
5076 echores "$_tv_bsdbt848"
5078 echocheck "Video 4 Linux TV interface"
5079 if test "$_tv_v4l" = auto ; then
5080 _tv_v4l=no
5081 if test "$_tv" = yes && linux ; then
5082 for I in /dev/video /dev/video? ; do
5083 if test -c $I ; then
5084 cat > $TMPC <<EOF
5085 #include <stdlib.h>
5086 #include <linux/videodev.h>
5087 int main(void) { return 0; }
5089 cc_check && _tv_v4l=yes
5090 break
5092 done
5095 if test "$_tv_v4l" = yes ; then
5096 _def_tv_v4l='#define HAVE_TV_V4L 1'
5097 _inputmodules="tv-v4l $_inputmodules"
5098 else
5099 _noinputmodules="tv-v4l $_noinputmodules"
5100 _def_tv_v4l='#undef HAVE_TV_V4L'
5102 echores "$_tv_v4l"
5105 echocheck "Video 4 Linux 2 TV interface"
5106 if test "$_tv_v4l2" = auto ; then
5107 _tv_v4l2=no
5108 if test "$_tv" = yes && linux ; then
5109 for I in /dev/video /dev/video? ; do
5110 if test -c $I ; then
5111 _tv_v4l2=yes
5112 break
5114 done
5117 if test "$_tv_v4l2" = yes ; then
5118 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
5119 _inputmodules="tv-v4l2 $_inputmodules"
5120 else
5121 _noinputmodules="tv-v4l2 $_noinputmodules"
5122 _def_tv_v4l2='#undef HAVE_TV_V4L2'
5124 echores "$_tv_v4l2"
5127 echocheck "audio select()"
5128 if test "$_select" = no ; then
5129 _def_select='#undef HAVE_AUDIO_SELECT'
5130 elif test "$_select" = yes ; then
5131 _def_select='#define HAVE_AUDIO_SELECT 1'
5133 echores "$_select"
5136 echocheck "network"
5137 # FIXME network check
5138 if test "$_network" != no ; then
5139 _def_network='#define MPLAYER_NETWORK 1'
5140 _ld_network="$_ld_sock"
5141 _inputmodules="network $_inputmodules"
5142 else
5143 _noinputmodules="network $_noinputmodules"
5144 _def_network='#undef MPLAYER_NETWORK'
5146 echores "$_network"
5148 echocheck "ftp"
5149 if test "$_ftp" != no ; then
5150 _def_ftp='#define HAVE_FTP 1'
5151 _inputmodules="ftp $_inputmodules"
5152 else
5153 _noinputmodules="ftp $_noinputmodules"
5154 _def_ftp='#undef HAVE_FTP'
5156 echores "$_ftp"
5158 # endian testing
5159 echocheck "byte order"
5160 if test "$_big_endian" = auto ; then
5161 cat > $TMPC <<EOF
5162 #include <inttypes.h>
5163 int main(void) {
5164 volatile uint32_t i=0x01234567;
5165 return (*((uint8_t*)(&i))) == 0x67;
5168 if cc_check ; then
5169 if $TMPO ; then
5170 _big_endian=yes
5171 else
5172 _big_endian=no
5174 else
5175 echo -n "failed to autodetect byte order, defaulting to "
5178 if test "$_big_endian" = yes ; then
5179 _byte_order='Big Endian'
5180 _def_words_endian='#define WORDS_BIGENDIAN 1'
5181 else
5182 _byte_order='Little Endian'
5183 _def_words_endian='#undef WORDS_BIGENDIAN'
5185 echores "$_byte_order"
5187 echocheck "shared postprocess lib"
5188 echores "$_shared_pp"
5190 echocheck "OSD menu"
5191 if test "$_menu" = yes ; then
5192 _def_menu='#define HAVE_MENU 1'
5193 else
5194 _def_menu='#undef HAVE_MENU'
5196 echores "$_menu"
5198 # Check to see if they want QTX codecs enabled
5199 echocheck "QTX codecs"
5200 if test "$_qtx" = auto ; then
5201 _qtx=$_win32
5203 if test "$_qtx" = yes ; then
5204 _def_qtx='#define USE_QTX_CODECS 1'
5205 _codecmodules="qtx $_codecmodules"
5206 else
5207 _def_qtx='#undef USE_QTX_CODECS'
5208 _nocodecmodules="qtx $_nocodecmodules"
5210 echores "$_qtx"
5213 echocheck "Subtitles sorting"
5214 if test "$_sortsub" = yes ; then
5215 _def_sortsub='#define USE_SORTSUB 1'
5216 else
5217 _def_sortsub='#undef USE_SORTSUB'
5219 echores "$_sortsub"
5222 echocheck "XMMS inputplugin support"
5223 if test "$_xmms" = yes ; then
5225 if ( xmms-config --version ) >/dev/null 2>&1 ; then
5226 if test -z "$_xmmsplugindir" ; then
5227 _xmmsplugindir=`xmms-config --input-plugin-dir`
5229 if test -z "$_xmmslibdir" ; then
5230 _xmmslibdir=`xmms-config --exec-prefix`/lib
5232 else
5233 if test -z "$_xmmsplugindir" ; then
5234 _xmmsplugindir=/usr/lib/xmms/Input
5236 if test -z "$_xmmslibdir" ; then
5237 _xmmslibdir=/usr/lib
5241 _def_xmms='#define HAVE_XMMS 1'
5242 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
5243 else
5244 _def_xmms='#undef HAVE_XMMS'
5246 echores "$_xmms"
5248 echocheck "FLAC support"
5249 if ! test "$_flac" = "no" ; then
5250 if ! test -f libmpflac/dither.c ; then
5251 _flac=no
5252 echores "no (necessary files missing)"
5253 break
5255 if ! test -f libmpflac/stream_decoder.c ; then
5256 _external_flac=yes
5258 if test "$_external_flac" = "yes" ; then
5259 cat > $TMPC << EOF
5260 #include <FLAC/stream_decoder.h>
5261 #include <stdlib.h>
5263 int main()
5265 FLAC__StreamDecoder *fdec = FLAC__stream_decoder_new();
5266 return fdec != NULL;
5269 _flac=no
5270 if cc_check -lFLAC -lm ; then
5271 _flac=external
5273 else
5274 _flac=yes
5278 if test "$_flac" = external ; then
5279 _def_flac='#define HAVE_FLAC 1'
5280 #Still use dither.c & replay_gain from libmpflac
5281 _def_mpflac='#undef USE_MPFLAC_DECODER'
5282 _mpflac='process'
5283 _ld_flac='-lFLAC -lm -Llibmpflac -lmpflac'
5284 _codecmodules="flac(external) $_codecmodules"
5285 echores "yes (using external libFLAC)"
5286 else
5287 if test "$_flac" = yes ; then
5288 _def_flac='#define HAVE_FLAC 1'
5289 #use decoder, dither.c & replay_gain from libmpflac
5290 _def_mpflac='#define USE_MPFLAC_DECODER 1'
5291 _mpflac='full'
5292 _ld_flac='-Llibmpflac -lmpflac'
5293 _codecmodules="flac(internal) $_codecmodules"
5294 echores "yes (using internal libmpflac)"
5295 else
5296 _def_flac='#undef HAVE_FLAC'
5297 _def_mpflac='#undef USE_MPFLAC_DECODER'
5298 _mpflac='none'
5299 _ld_flac=''
5300 _nocodecmodules="flac $_nocodecmodules"
5301 echores "no"
5304 echores "$_flac"
5306 echocheck "inet6"
5307 if test "$_inet6" = auto ; then
5308 cat > $TMPC << EOF
5309 #include <sys/types.h>
5310 #include <sys/socket.h>
5311 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
5313 _inet6=no
5314 if cc_check ; then
5315 _inet6=yes
5318 if test "$_inet6" = yes ; then
5319 _def_inet6='#define HAVE_AF_INET6 1'
5320 else
5321 _def_inet6='#undef HAVE_AF_INET6'
5323 echores "$_inet6"
5326 echocheck "gethostbyname2"
5327 if test "$_gethostbyname2" = auto ; then
5328 cat > $TMPC << EOF
5329 #include <sys/types.h>
5330 #include <sys/socket.h>
5331 #include <netdb.h>
5332 int main(void) { gethostbyname2("", AF_INET); }
5334 _gethostbyname2=no
5335 if cc_check ; then
5336 _gethostbyname2=yes
5340 if test "$_gethostbyname2" = yes ; then
5341 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
5342 else
5343 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
5345 echores "$_gethostbyname2"
5347 # --------------- GUI specific tests begin -------------------
5348 echocheck "GUI"
5349 echo "$_gui"
5350 if test "$_gui" = yes ; then
5352 # Required libraries
5353 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
5354 test "$_x11" != yes && die "X11 support required for GUI compilation"
5356 echocheck "XShape extension"
5357 _xshape=no
5358 if test "$_x11" = yes ; then
5359 cat > $TMPC << EOF
5360 #include <X11/Xlib.h>
5361 #include <X11/Xproto.h>
5362 #include <X11/Xutil.h>
5363 #include <X11/extensions/shape.h>
5364 #include <stdlib.h>
5365 int main(void) {
5366 char *name = ":0.0";
5367 Display *wsDisplay;
5368 int exitvar = 0;
5369 int eventbase, errorbase;
5370 if (getenv("DISPLAY"))
5371 name=getenv("DISPLAY");
5372 wsDisplay=XOpenDisplay(name);
5373 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
5374 exitvar=1;
5375 XCloseDisplay(wsDisplay);
5376 return exitvar;
5379 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
5381 if test "$_xshape" = yes ; then
5382 _def_xshape='#define HAVE_XSHAPE 1'
5383 else
5384 die "the GUI requires the X11 extension XShape (which was not found)"
5386 echores "$_xshape"
5389 # Check for GTK:
5390 echocheck "gtk version"
5391 if test -z "$_gtkconfig" ; then
5392 if ( gtk-config --version ) >/dev/null 2>&1 ; then
5393 _gtkconfig="gtk-config"
5394 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
5395 _gtkconfig="gtk12-config"
5396 else
5397 die "the GUI requires GTK (which was not found)"
5400 _gtk=`$_gtkconfig --version 2>&1`
5401 _inc_gtk=`$_gtkconfig --cflags 2>&1`
5402 _ld_gtk=`$_gtkconfig --libs 2>&1`
5403 echores "$_gtk (using $_gtkconfig)"
5405 # Check for GLIB
5406 echocheck "glib version"
5407 if test -z "$_glibconfig" ; then
5408 if ( glib-config --version ) >/dev/null 2>&1 ; then
5409 _glibconfig="glib-config"
5410 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
5411 _glibconfig="glib12-config"
5412 else
5413 die "the GUI requires GLIB (which was not found)"
5416 _glib=`$_glibconfig --version 2>&1`
5417 _inc_glib=`$_glibconfig --cflags 2>&1`
5418 _ld_glib=`$_glibconfig --libs 2>&1`
5419 echores "$_glib (using $_glibconfig)"
5421 _def_gui='#define HAVE_NEW_GUI 1'
5422 _ld_gui='$(GTKLIB) $(GLIBLIB)'
5424 echo "Creating Gui/config.mak"
5425 cat > Gui/config.mak << EOF
5426 # -------- Generated by configure -----------
5428 GTKINC = $_inc_gtk
5429 GTKLIBS = $_ld_gtk
5430 GLIBINC = $_inc_glib
5431 GLIBLIBS = $_ld_glib
5435 else
5436 _def_gui='#undef HAVE_NEW_GUI'
5438 # --------------- GUI specific tests end -------------------
5442 #############################################################################
5444 # Checking for CFLAGS
5445 _stripbinaries=yes
5446 if test "$_profile" != "" || test "$_debug" != "" ; then
5447 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
5448 if test "$_cc_major" -ge "3" ; then
5449 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
5451 _stripbinaries=no
5452 elif test -z "$CFLAGS" ; then
5453 if test "$host_arch" != "mips" ; then
5454 CFLAGS="-O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer"
5455 else
5456 CFLAGS="-O4 $_march $_mcpu -ffast-math -fomit-frame-pointer"
5458 # always compile with '-g' if .developer:
5459 if test -f ".developer" ; then
5460 CFLAGS="-g $CFLAGS"
5461 _stripbinaries=no
5463 else
5464 cat <<EOF
5466 MPlayer compilation will use the CFLAGS set by you, but:
5468 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
5470 It is strongly recommended to let MPlayer choose the correct CFLAGS!
5471 To do so, execute 'CFLAGS= ./configure <options>'
5475 if darwin ; then
5476 # use gnu style cpp on Darwin
5477 CFLAGS="$CFLAGS -no-cpp-precomp -DSYS_DARWIN"
5478 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
5479 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
5481 if hpux ; then
5482 # use flag for HPUX missing setenv()
5483 CFLAGS="$CFLAGS -DHPUX"
5485 # Thread support
5486 if linux ; then
5487 CFLAGS="$CFLAGS -D_REENTRANT"
5488 elif bsd ; then
5489 # FIXME bsd needs this so maybe other OS'es
5490 CFLAGS="$CFLAGS -D_THREAD_SAFE"
5492 # 64 bit file offsets?
5493 if test "$_largefiles" = yes || freebsd ; then
5494 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
5495 if test "$_dvdread" = yes ; then
5496 # dvdread support requires this (for off64_t)
5497 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
5501 echocheck "ftello()"
5502 # if we don't have ftello map it to ftell
5503 cat > $TMPC << EOF
5504 #include <stdio.h>
5505 int main (void) { ftello(stdin); return 0; }
5507 _ftello=no
5508 cc_check && _ftello=yes
5509 if test "$_ftello" = yes ; then
5510 _def_ftello='#define HAVE_FTELLO 1'
5511 else
5512 _def_ftello='#undef HAVE_FTELLO'
5514 echores "$_ftello"
5516 # Determine OS dependent libs
5517 if cygwin ; then
5518 _confcygwin='TARGET_CYGWIN = yes'
5519 _def_confwin32='#define WIN32'
5520 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
5521 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
5522 CFLAGS="$CFLAGS -D__CYGWIN__"
5523 else
5524 _confcygwin="TARGET_CYGWIN = no"
5527 if mingw32 ; then
5528 _confmingw32='TARGET_MINGW32 = yes'
5529 else
5530 _confmingw32='TARGET_MINGW32 = no'
5533 # Dynamic linking flags
5534 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
5535 _ld_dl_dynamic=''
5536 bsd && _ld_dl_dynamic='-rdynamic'
5537 test "$_xanim" = yes && _ld_dl_dynamic='-rdynamic'
5538 test "$_real" = yes && _ld_dl_dynamic='-rdynamic'
5540 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
5541 bsdos && _ld_arch="$_ld_arch -ldvd"
5542 if netbsd ; then
5543 x86 && _ld_arch="$_ld_arch -li386"
5546 _def_debug='#undef MP_DEBUG'
5547 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
5549 _def_linux='#undef TARGET_LINUX'
5550 linux && _def_linux='#define TARGET_LINUX 1'
5552 # TODO cleanup the VIDIX stuff here
5553 _def_vidix='#define CONFIG_VIDIX 1'
5554 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
5555 if test "$_vidix" = yes; then
5556 _vosrc="$_vosrc vo_cvidix.c"
5557 _vomodules="cvidix $_vomodules"
5558 else
5559 _novomodules="cvidix $_novomodules"
5561 if test "$_vidix" = yes && (cygwin || mingw32); then
5562 _vosrc="$_vosrc vo_winvidix.c"
5563 _vomodules="winvidix $_vomodules"
5564 else
5565 _novomodules="winvidix $_novomodules"
5567 if test "$_vidix" = yes && test "$_x11" = yes; then
5568 _vosrc="$_vosrc vo_xvidix.c"
5569 _vomodules="xvidix $_vomodules"
5570 else
5571 _novomodules="xvidix $_novomodules"
5573 echo Checking for VIDIX ... "$_vidix"
5575 _def_joystick='#undef HAVE_JOYSTICK'
5576 if test "$_joystick" = yes ; then
5577 if linux ; then
5578 # TODO add some check
5579 _def_joystick='#define HAVE_JOYSTICK 1'
5580 else
5581 _joystick="no (unsupported under $system_name)"
5584 echo Checking for joystick ... "$_joystick"
5586 echocheck "lirc"
5587 if test "$_lirc" = auto ; then
5588 _lirc=no
5589 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
5590 cat > $TMPC <<EOF
5591 #include <lirc/lirc_client.h>
5592 int main(void) { return 0; }
5594 cc_check -llirc_client && _lirc=yes
5597 if test "$_lirc" = yes ; then
5598 _def_lirc='#define HAVE_LIRC 1'
5599 _ld_lirc='-llirc_client'
5600 else
5601 _def_lirc='#undef HAVE_LIRC'
5603 echores "$_lirc"
5605 echocheck "lircc"
5606 if test "$_lircc" = auto ; then
5607 _lircc=no
5608 cat > $TMPC <<EOF
5609 #include <lirc/lircc.h>
5610 int main(void) { return 0; }
5612 cc_check -llircc && _lircc=yes
5614 if test "$_lircc" = yes ; then
5615 _def_lircc='#define HAVE_LIRCC 1'
5616 _ld_lircc='-llircc'
5617 else
5618 _def_lircc='#undef HAVE_LIRCC'
5620 echores "$_lircc"
5622 #############################################################################
5623 echo "Creating config.mak"
5624 cat > config.mak << EOF
5625 # -------- Generated by configure -----------
5627 LANG = C
5628 LANGUAGES = $LANGUAGES
5629 TARGET_OS = $system_name
5630 DESTDIR =
5631 prefix = \$(DESTDIR)$_prefix
5632 BINDIR = \$(DESTDIR)$_bindir
5633 DATADIR = \$(DESTDIR)$_datadir
5634 MANDIR = \$(DESTDIR)$_mandir
5635 CONFDIR = \$(DESTDIR)$_confdir
5636 LIBDIR = \$(DESTDIR)$_libdir
5637 #AR = ar
5638 CC = $_cc
5639 AWK = $_awk
5640 RANLIB = $_ranlib
5641 INSTALL = $_install
5642 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu -pipe -fomit-frame-pointer -ffast-math
5643 OPTFLAGS = $CFLAGS
5644 EXTRA_INC = $_inc_extra $_inc_gtk
5645 STRIPBINARIES = $_stripbinaries
5647 $_live_libs_def
5649 MPLAYER_NETWORK = $_network
5650 STREAMING_LIVE_DOT_COM = $_live
5651 MPLAYER_NETWORK_LIB = $_ld_network $_ld_live
5652 DVBIN = $_dvbin
5653 VIDIX = $_vidix
5654 SHARED_PP = $_shared_pp
5655 CONFIG_PP = yes
5656 CONFIG_RISKY = yes
5657 LIBMENU = $_menu
5658 I18NLIBS = $_i18n_libs
5659 MATROSKA = $_matroska
5660 MATROSKA_LIB = $_ld_matroska
5662 OPENDIVX = $_opendivx
5664 UNRARLIB = $_unrarlib
5666 PNG = $_mkf_png
5667 JPEG = $_mkf_jpg
5668 GIF = $_mkf_gif
5670 EXTRA_LIB = $_ld_extra
5671 Z_LIB = $_ld_static $_ld_zlib
5672 HAVE_MLIB = $_mlib
5673 WIN32_LIB = $_ld_win32libs
5674 STATIC_LIB = $_ld_static
5676 X11_INC = $_inc_x11
5677 X11DIR = $_ld_x11
5679 HAVE_XVMC_ACCEL = $_xvmc
5681 # for libavcodec:
5682 SRC_PATH=.
5684 # video output
5685 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_mad $_ld_sock
5686 GGI_LIB = $_ld_ggi
5687 MLIB_LIB = $_ld_mlib
5688 MLIB_INC = $_inc_mlib
5689 DXR2_INC = $_inc_dxr2
5690 DVB_INC = $_inc_dvb
5691 PNG_LIB = $_ld_png
5692 JPEG_LIB = $_ld_jpg
5693 GIF_LIB = $_ld_gif
5694 SDL_LIB = $_ld_sdl
5695 SVGA_LIB = $_ld_svga
5696 AA_LIB = $_ld_aa
5698 # audio output
5699 ALSA_LIB = $_ld_alsa
5700 NAS_LIB = $_ld_nas
5701 ARTS_LIB = $_ld_arts
5702 ARTS_INC = $_inc_arts
5703 ESD_LIB = $_ld_esd
5704 ESD_INC = $_inc_esd
5705 SGIAUDIO_LIB = $_ld_sgiaudio
5707 # input/demuxer/codecs
5708 TERMCAP_LIB = $_ld_termcap
5709 LIRC_LIB = $_ld_lirc
5710 LIRCC_LIB = $_ld_lircc
5711 CSS_USE = $_css
5712 CSS_LIB = $_ld_css
5713 DVDKIT = $_dvdkit
5714 DVDKIT2 = $_dvdkit2
5715 DVDKIT_SHARED = no
5716 SDL_INC = $_inc_sdl
5717 W32_DEP = $_dep_win32
5718 W32_LIB = $_ld_win32
5719 DS_DEP = $_dep_dshow
5720 DS_LIB = $_ld_dshow
5721 AV_DEP = $_dep_libavcodec
5722 AV_LIB = $_ld_libavcodec
5723 FAME = $_fame
5724 FAME_LIB = $_ld_fame
5725 MP1E_DEP = $_dep_mp1e
5726 MP1E_LIB = $_ld_mp1e
5727 ARCH_LIB = $_ld_arch $_ld_iconv
5728 XVID = $_xvid
5729 XVID_LIB = $_ld_xvid
5730 DECORE_LIB = $_ld_decore
5731 MENCODER = $_mencoder
5732 ENCORE_LIB = $_ld_encore $_ld_mp3lame
5733 DIRECTFB_INC = $_inc_directfb
5734 DIRECTFB_LIB = $_ld_directfb
5735 CDPARANOIA_INC = $_inc_cdparanoia
5736 CDPARANOIA_LIB = $_ld_cdparanoia
5737 FREETYPE_INC = $_inc_freetype
5738 FREETYPE_LIB = $_ld_freetype
5739 FRIBIDI_INC = $_inc_fribidi
5740 FRIBIDI_LIB = $_ld_fribidi
5741 LIBLZO_LIB= $_ld_liblzo
5742 MAD_LIB = $_ld_mad
5743 VORBIS_LIB = $_ld_vorbis $_ld_libdv
5744 THEORA_LIB = $_ld_theora
5745 FAAD_LIB = $_ld_faad
5746 INTERNAL_FAAD = $_faad_local
5747 SMBSUPPORT_LIB = $_ld_smb
5748 XMMS_PLUGINS = $_xmms
5749 XMMS_LIB = $_xmms_lib
5750 MACOSX = $_macosx
5751 MACOSX_FRAMEWORKS = $_macosx_frameworks
5752 FLAC_LIB = $_ld_flac
5753 MPFLAC = $_mpflac
5755 # --- Some stuff for autoconfigure ----
5756 $_target_arch
5757 $_confcygwin
5758 $_confmingw32
5759 TARGET_CPU=$iproc
5760 TARGET_MMX = $_mmx
5761 TARGET_MMX2 = $_mmx2
5762 TARGET_3DNOW = $_3dnow
5763 TARGET_3DNOWEX = $_3dnowex
5764 TARGET_SSE = $_sse
5765 TARGET_ALTIVEC = $_altivec
5767 # --- GUI stuff ---
5768 GTKLIB = $_ld_static $_ld_gtk
5769 GLIBLIB = $_ld_static $_ld_glib
5770 GTK_LIBS = $_ld_static $_ld_gui
5771 GUI = $_gui
5772 DEBUG = -DDEBUG
5776 #############################################################################
5777 echo "Creating config.h"
5778 cat > config.h << EOF
5779 /* -------- This file has been automatically generated by configure ---------
5780 Note: Any changes in it will be lost when you run configure again. */
5782 /* use GNU internationalization */
5783 $_def_i18n
5785 /* use setlocale() function */
5786 $_def_setlocale
5788 /* Runtime CPU detection */
5789 $_def_runtime_cpudetection
5791 /* Dynamic a/v plugins */
5792 $_def_dynamic_plugins
5794 /* "restrict" keyword */
5795 #define restrict $_def_restrict_keyword
5797 #define PREFIX "$_prefix"
5799 /* define this to use simple idct with patched libavcodec */
5800 #define SIMPLE_IDCT 1
5802 #define USE_OSD 1
5803 #define USE_SUB 1
5805 /* enable/disable SIGHANDLER */
5806 $_def_sighandler
5808 /* Toggles debugging informations */
5809 $_def_debug
5811 /* Indicates that Ogle's libdvdread is available for DVD playback */
5812 $_def_dvdread
5814 /* Indicates that dvdread is from libmpdvdkit */
5815 $_def_mpdvdkit
5817 /* Additional options for libmpdvdkit*/
5818 $_def_dvd
5819 $_def_cdrom
5820 $_def_cdio
5821 $_def_dvdio
5822 $_def_bsdi_dvd
5823 $_def_dvd_bsd
5824 $_def_dvd_linux
5825 $_dev_dvd_openbsd
5826 $_def_dvd_darwin
5827 $_def_sol_scsi_h
5828 $_def_hpux_scsi_h
5829 $_def_stddef
5831 /* Common data directory (for fonts, etc) */
5832 #define MPLAYER_DATADIR "$_datadir"
5833 #define MPLAYER_CONFDIR "$_confdir"
5834 #define MPLAYER_LIBDIR "$_libdir"
5836 /* Define this to compile stream-caching support, it can be enabled via
5837 -cache <kilobytes> */
5838 #define USE_STREAM_CACHE 1
5840 /* Define to include support for XviD/Divx4Linux/OpenDivx */
5841 $_def_divx
5843 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
5844 /* You have to change DECORE_LIBS in config.mak, too! */
5845 $_def_decore
5847 /* Define if you are using DivX5Linux Decore library */
5848 $_def_divx5
5850 /* Define if you are using XviD library */
5851 $_def_xvid
5852 $_def_decore_xvid
5853 $_def_encore_xvid
5855 /* Define to include support for libdv-0.9.5 */
5856 $_def_libdv
5858 /* If build mencoder */
5859 $_mencoder_flag
5861 /* Indicates if XviD/Divx4linux encore is available
5862 Note: for mencoder */
5863 $_def_encore
5865 /* Indicates if libmp3lame is available
5866 Note: for mencoder */
5867 $_def_mp3lame
5869 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
5870 $_def_mp1e
5872 /* Define this to enable avg. byte/sec-based AVI sync method by default:
5873 (use -bps or -nobps commandline option for run-time method selection)
5874 -bps gives better sync for vbr mp3 audio, it is now default */
5875 #define AVI_SYNC_BPS 1
5877 /* Undefine this if you do not want to select mono audio (left or right)
5878 with a stereo MPEG layer 2/3 audio stream. The command line option
5879 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
5880 right-only), with 0 being the default.
5882 #define USE_FAKE_MONO 1
5884 /* Undefine this if your sound card driver has no working select().
5885 If you have kernel Oops, player hangups, or just no audio, you should
5886 try to recompile MPlayer with this option disabled! */
5887 $_def_select
5889 /* define this to use iconv(3) function to codepage conversions */
5890 $_def_iconv
5892 /* define this to use RTC (/dev/rtc) for video timers (LINUX only) */
5893 $_def_rtc
5895 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
5896 #define MAX_OUTBURST 65536
5898 /* set up audio OUTBURST. Do not change this! */
5899 #define OUTBURST 512
5901 /* Define this if your system has the header file for the OSS sound interface */
5902 $_def_sys_soundcard
5904 /* Define this if your system has the header file for the OSS sound interface
5905 * in /usr/include */
5906 $_def_soundcard
5908 /* Define this if your system has the sysinfo header */
5909 $_def_sys_sysinfo
5911 /* Define this if your system uses ftello() for off_t seeking */
5913 $_def_ftello
5914 #ifndef HAVE_FTELLO
5915 # define ftello(a) ftell(a)
5916 #endif
5918 /* Define this if your system has the "malloc.h" header file */
5919 $_def_malloc
5921 /* memalign is mapped to malloc if unsupported */
5922 $_def_memalign
5923 #ifndef HAVE_MEMALIGN
5924 # define memalign(a,b) malloc(b)
5925 #endif
5927 /* Define this if your system has the "alloca.h" header file */
5928 $_def_alloca
5930 /* Define this if your system has the "sys/mman.h" header file */
5931 $_def_mman
5933 /* Define this if you have the elf dynamic linker -ldl library */
5934 $_def_dl
5936 /* Define this if you have the kstat kernel statistics library */
5937 $_def_kstat
5939 /* Define this if you have zlib */
5940 $_def_zlib
5942 /* Define this if you have shm support */
5943 $_def_shm
5945 /* Define this if your system has scandir & alphasort */
5946 $_def_scandir
5948 /* Define this if your system has strsep */
5949 $_def_strsep
5951 /* Define this if your system has vsscanf */
5952 $_def_vsscanf
5954 /* Define this if your system has no posix select */
5955 $_def_no_posix_select
5957 /* Define this if your system has gettimeofday */
5958 $_def_gettimeofday
5960 /* Define this if your system has glob */
5961 $_def_glob
5963 /* LIRC (remote control, see www.lirc.org) support: */
5964 $_def_lirc
5967 * LIRCCD (LIRC client daemon)
5968 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
5970 $_def_lircc
5973 * FLAC decoding
5975 $_def_flac
5976 $_def_mpflac
5978 /* DeCSS support using libcss */
5979 $_def_css
5981 /* DVD navigation support using libdvdnav */
5982 $_def_dvdnav
5983 $_def_dvdnav_version
5985 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
5986 #define MPEG12_POSTPROC 1
5988 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
5989 $_def_ffpostprocess
5991 /* Define to include support for OpenDivx postprocessing */
5992 $_def_odivx_postprocess
5994 /* Win32 DLL support */
5995 $_def_win32
5996 #define WIN32_PATH "$_win32libdir"
5998 /* DirectShow support */
5999 $_def_dshow
6001 /* Mac OS X specific features */
6002 $_def_macosx
6004 /* Build our Win32-loader */
6005 $_def_win32_loader
6007 /* ffmpeg's libavcodec support (requires libavcodec source) */
6008 $_def_libavcodec
6009 $_def_libavcodecso
6011 /* risky codecs */
6012 #define CONFIG_RISKY 1
6014 /* Use libavcodec's decoders */
6015 #define CONFIG_DECODERS 1
6016 /* Use libavcodec's encoders */
6017 #define CONFIG_ENCODERS 1
6019 /* Use codec libs included in mplayer CVS / source dist: */
6020 #define USE_MP3LIB
6021 #define USE_LIBA52
6022 #define USE_LIBMPEG2
6024 /* Use the SVQ1 decoder in libmpcodecs - we don't want/need it with libavcodec */
6025 #ifndef USE_LIBAVCODEC
6026 #define USE_SVQ1
6027 #endif
6029 /* Use libfame encoder filter */
6030 $_def_fame
6032 /* XAnim DLL support */
6033 $_def_xanim
6034 /* Default search path */
6035 $_def_xanim_path
6037 /* RealPlayer DLL support */
6038 $_def_real
6039 /* Default search path */
6040 $_def_real_path
6042 /* LIVE.COM Streaming Media library support */
6043 $_def_live
6045 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
6046 $_def_fastmemcpy
6048 /* Use unrarlib for Vobsubs */
6049 $_def_unrarlib
6051 /* gui support, please do not edit this option */
6052 $_def_gui
6054 /* Audio output drivers */
6055 $_def_ossaudio
6056 $_def_ossaudio_devdsp
6057 $_def_ossaudio_devmixer
6058 $_def_alsa5
6059 $_def_alsa9
6060 $_def_arts
6061 $_def_esd
6062 $_def_esd_latency
6063 $_def_sys_asoundlib_h
6064 $_def_alsa_asoundlib_h
6065 $_def_sunaudio
6066 $_def_sgiaudio
6067 $_def_win32waveout
6068 $_def_nas
6070 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6071 #undef FAST_OSD
6072 #undef FAST_OSD_TABLE
6074 /* Enable TV Interface support */
6075 $_def_tv
6077 /* Enable EDL support */
6078 $_def_edl
6080 /* Enable Video 4 Linux TV interface support */
6081 $_def_tv_v4l
6083 /* Enable Video 4 Linux 2 TV interface support */
6084 $_def_tv_v4l2
6086 /* Enable *BSD BrookTree TV interface support */
6087 $_def_tv_bsdbt848
6089 /* Define if your processor stores words with the most significant
6090 byte first (like Motorola and SPARC, unlike Intel and VAX). */
6091 $_def_words_endian
6093 $_def_arch
6095 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
6096 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
6098 #ifdef ARCH_POWERPC
6099 #define ARCH_PPC 1
6100 #endif
6102 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
6103 #ifdef ARCH_ARMV4L
6104 #define ARCH_ARM 1
6105 #endif
6107 /* only gcc3 can compile mvi instructions */
6108 $_def_gcc_mvi_support
6110 /* Define this for Cygwin build for win32 */
6111 $_def_confwin32
6113 /* Define this to any prefered value from 386 up to infinity with step 100 */
6114 #define __CPU__ $iproc
6116 $_mp_wordsize
6118 $_def_linux
6120 $_def_vcd
6122 #ifdef sun
6123 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
6124 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6125 #elif defined(HPUX)
6126 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6127 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6128 #elif defined(WIN32)
6129 #define DEFAULT_CDROM_DEVICE "D:"
6130 #define DEFAULT_DVD_DEVICE "D:"
6131 #elif defined(SYS_DARWIN)
6132 #define DEFAULT_CDROM_DEVICE "/dev/rdiskN"
6133 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6134 #else
6135 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6136 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6137 #endif
6140 /*----------------------------------------------------------------------------
6142 ** NOTE: Instead of modifying these definitions here, use the
6143 ** --enable/--disable options of the ./configure script!
6144 ** See ./configure --help for details.
6146 *---------------------------------------------------------------------------*/
6148 /* C99 lrintf function available */
6149 $_def_lrintf
6151 /* nanosleep support */
6152 $_def_nanosleep
6154 /* SMB support */
6155 $_def_smbsupport
6157 /* termcap flag for getch2.c */
6158 $_def_termcap
6160 /* termios flag for getch2.c */
6161 $_def_termios
6162 $_def_termios_h
6163 $_def_termios_sys_h
6165 /* enable PNG support */
6166 $_def_png
6168 /* enable JPEG support */
6169 $_def_jpg
6171 /* enable GIF support */
6172 $_def_gif
6173 $_def_gif_4
6174 $_def_gif_tvt_hack
6176 /* enable FreeType support */
6177 $_def_freetype
6179 /* enable FriBiDi usage */
6180 $_def_fribidi
6182 /* liblzo support */
6183 $_def_liblzo
6185 /* libmad support */
6186 $_def_mad
6188 /* enable OggVorbis support */
6189 $_def_vorbis
6191 /* enable Tremor as vorbis decoder */
6192 $_def_tremor
6194 /* enable OggTheora support */
6195 $_def_theora
6197 /* enable Matroska support */
6198 $_def_matroska
6200 /* enable FAAD (AAC) support */
6201 $_def_faad
6202 $_def_faad_internal
6203 $_def_faad_version
6205 /* enable network */
6206 $_def_network
6208 /* enable ftp support */
6209 $_def_ftp
6211 /* enable winsock2 instead of Unix functions*/
6212 $_def_winsock2
6214 /* define this to use inet_aton() instead of inet_pton() */
6215 $_def_use_aton
6217 /* enables / disables cdparanoia support */
6218 $_def_cdparanoia
6220 /* enables / disables VIDIX usage */
6221 $_def_vidix
6223 /* enables / disables new input joystick support */
6224 $_def_joystick
6226 /* enables / disables QTX codecs */
6227 $_def_qtx
6229 /* enables / disables osd menu */
6230 $_def_menu
6232 /* enables / disables subtitles sorting */
6233 $_def_sortsub
6235 /* XMMS input plugin support */
6236 $_def_xmms
6237 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6239 /* enables inet6 support */
6240 $_def_inet6
6242 /* do we have gethostbyname2? */
6243 $_def_gethostbyname2
6245 /* Extension defines */
6246 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
6247 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
6248 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
6249 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
6250 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
6251 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
6252 $_def_altivec // only define if you have Altivec (G4)
6254 #ifdef HAVE_MMX
6255 #define USE_MMX_IDCT 1
6256 #endif
6258 $_def_altivec_h // enables usage of altivec.h
6261 $_def_mlib // Sun mediaLib, available only on solaris
6263 /* libmpeg2 uses a different feature test macro for mediaLib */
6264 #ifdef HAVE_MLIB
6265 #define LIBMPEG2_MLIB 1
6266 #endif
6268 /* libvo options */
6269 #define SCREEN_SIZE_X 1
6270 #define SCREEN_SIZE_Y 1
6271 $_def_x11
6272 $_def_xv
6273 $_def_xvmc
6274 $_def_vm
6275 $_def_xinerama
6276 $_def_gl
6277 $_def_gl_win32
6278 $_def_dga
6279 $_def_dga2
6280 $_def_sdl
6281 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
6282 $_def_sdlbuggy
6283 $_def_directx
6284 $_def_ggi
6285 $_def_3dfx
6286 $_def_tdfxfb
6287 $_def_tdfxvid
6288 $_def_directfb
6289 $_def_directfb_version
6290 $_def_zr
6291 $_def_bl
6292 $_def_mga
6293 $_def_xmga
6294 $_def_syncfb
6295 $_def_fbdev
6296 $_def_dxr2
6297 $_def_dxr3
6298 $_def_dvb
6299 $_def_dvb_in
6300 $_def_svga
6301 $_def_vesa
6302 $_def_xdpms
6303 $_def_aa
6304 $_def_tga
6306 /* used by GUI: */
6307 $_def_xshape
6309 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
6310 #define X11_FULLSCREEN 1
6311 #endif
6315 #############################################################################
6317 echo "Creating libvo/config.mak"
6318 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g'`
6319 cat > libvo/config.mak << EOF
6320 include ../config.mak
6321 OPTIONAL_SRCS = $_vosrc
6322 OPTIONAL_OBJS = $_voobj
6325 #############################################################################
6327 echo "Creating libao2/config.mak"
6328 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
6329 cat > libao2/config.mak << EOF
6330 include ../config.mak
6331 OPTIONAL_SRCS = $_aosrc
6332 OPTIONAL_OBJS = $_aoobj
6335 #############################################################################
6337 echo "Creating help_mp.h"
6338 cat > help_mp.h << EOF
6340 // WARNING! This is a generated file. Do NOT edit.
6341 // See the help/ subdir for the editable files.
6343 #include "$_mp_help"
6346 if test $_mp_help != "help/help_mp-en.h"; then
6347 echo "Adding untranslated messages to help_mp.h"
6348 echo '// untranslated messages from the english master-file:' >> help_mp.h
6349 help/help_diff.sh $_mp_help <help/help_mp-en.h >> help_mp.h
6352 #############################################################################
6354 cat << EOF
6356 Config files successfully generated by ./configure !
6358 Install prefix: $_prefix
6359 Data directory: $_datadir
6360 Config direct.: $_confdir
6362 Byte order: $_byte_order
6363 Optimizing for: $_optimizing
6365 Languages:
6366 Messages/GUI: $_language
6369 echo -n " Manual pages: $LANGUAGES"
6370 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
6371 echo
6373 cat << EOF
6375 Enabled optional drivers:
6376 Input: $_inputmodules
6377 Codecs: $_codecmodules
6378 Audio output: $_aomodules
6379 Video output: $_vomodules
6380 Disabled optional drivers:
6381 Input: $_noinputmodules
6382 Codecs: $_nocodecmodules
6383 Audio output: $_noaomodules
6384 Video output: $_novomodules
6386 'config.h' and 'config.mak' contain your configuration options.
6387 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
6388 compile *** DO NOT REPORT BUGS if you tweak these files ***
6390 'make' will now compile MPlayer and 'make install' will install it.
6391 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
6396 if test "$_mtrr" = yes ; then
6397 echo "Please check mtrr settings at /proc/mtrr (see DOCS/en/video.html#mtrr)"
6398 echo
6401 if test "$_sdl" = "outdated" ; then
6402 cat <<EOF
6403 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
6404 support has therefore been disabled.
6406 Please upgrade to a more recent version (version 1.1.8 and above are known to
6407 work). You may get this library from: http://www.libsdl.org
6409 You need to rerun ./configure and recompile after updating SDL. If you are
6410 only interested in the libSDL audio drivers, then an older version might work.
6412 Use --enable-sdl to force usage of libSDL.
6417 if x86; then
6418 if test "$_win32" = no ; then
6419 if test "$_win32libdir" ; then
6420 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
6421 else
6422 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
6424 cat << EOF
6425 Create it and copy the DLL files there! You can download the codecs from our
6426 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
6430 else
6431 cat <<EOF
6432 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
6433 operating system ($system_name). You may encounter a few AVI files that
6434 cannot be played due to missing Open Source video/audio codec support.
6440 cat <<EOF
6442 Check $TMPLOG if you wonder why an autodetection failed (check whether
6443 the development headers/packages are installed).
6445 If you suspect a bug, please read DOCS/en/bugreports.html.
6449 if test "$_vidix" = no ; then
6450 cat <<EOF
6451 You've disabled VIDIX. Although it would be better to PORT it instead.
6452 Have a look at the documentation for supported cards!
6457 # Last move:
6458 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"